The Swift Package Index logo.Swift Package Index

Build Information

Successful build of BindingKit, reference main (13a5a6), with Swift 6.1 for macOS (SPM) on 17 Aug 2026 08:37:32 UTC.

Swift 6 data race errors: 0

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures

Build Log

========================================
RunAll
========================================
Builder version: undefined version: run 'make version' to update
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/mkj-is/BindingKit.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/mkj-is/BindingKit
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at 13a5a61 Create Binding+Validation.swift (#1)
Cloned https://github.com/mkj-is/BindingKit.git
Revision (git rev-parse @):
13a5a61c8ab44f185f6ac44c44e65e60cc6deac5
SUCCESS checkout https://github.com/mkj-is/BindingKit.git at main
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/mkj-is/BindingKit.git
https://github.com/mkj-is/BindingKit.git
{
  "dependencies" : [
  ],
  "manifest_display_name" : "BindingKit",
  "name" : "BindingKit",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "13.0"
    },
    {
      "name" : "macos",
      "version" : "10.15"
    },
    {
      "name" : "tvos",
      "version" : "13.0"
    },
    {
      "name" : "watchos",
      "version" : "6.0"
    }
  ],
  "products" : [
    {
      "name" : "BindingKit",
      "targets" : [
        "BindingKit"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "BindingKitTests",
      "module_type" : "SwiftTarget",
      "name" : "BindingKitTests",
      "path" : "Tests/BindingKitTests",
      "sources" : [
        "CoalescingTests.swift",
        "EffectTests.swift",
        "KeyPathTests.swift",
        "MapTests.swift",
        "StoreValueTests.swift"
      ],
      "target_dependencies" : [
        "BindingKit"
      ],
      "type" : "test"
    },
    {
      "c99name" : "BindingKit",
      "module_type" : "SwiftTarget",
      "name" : "BindingKit",
      "path" : "Sources/BindingKit",
      "product_memberships" : [
        "BindingKit"
      ],
      "sources" : [
        "Binding+Coalescing.swift",
        "Binding+Effects.swift",
        "Binding+KeyPath.swift",
        "Binding+Map.swift",
        "Binding+StoredValue.swift",
        "Binding+Validation.swift",
        "Transformation.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.3"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-2F0A5646E1D333AE.txt
[3/10] Compiling BindingKit Transformation.swift
[4/10] Compiling BindingKit Binding+KeyPath.swift
/Users/admin/builder/spi-builder-workspace/Sources/BindingKit/Binding+KeyPath.swift:10:13: warning: capture of 'root' with non-sendable type 'Root' in a '@Sendable' closure
 6 |     ///   - root: A reference type which has a writable key path.
 7 |     ///   - keyPath: A writable key path referencing one of the root type properties.
 8 |     public init<Root>(_ root: Root, keyPath: ReferenceWritableKeyPath<Root, Value>) {
   |                 `- note: consider making generic parameter 'Root' conform to the 'Sendable' protocol
 9 |         self.init {
10 |             root[keyPath: keyPath]
   |             `- warning: capture of 'root' with non-sendable type 'Root' in a '@Sendable' closure
11 |         } set: { newValue in
12 |             root[keyPath: keyPath] = newValue
/Users/admin/builder/spi-builder-workspace/Sources/BindingKit/Binding+KeyPath.swift:10:27: warning: capture of 'keyPath' with non-sendable type 'ReferenceWritableKeyPath<Root, Value>' in a '@Sendable' closure
 8 |     public init<Root>(_ root: Root, keyPath: ReferenceWritableKeyPath<Root, Value>) {
 9 |         self.init {
10 |             root[keyPath: keyPath]
   |                           `- warning: capture of 'keyPath' with non-sendable type 'ReferenceWritableKeyPath<Root, Value>' in a '@Sendable' closure
11 |         } set: { newValue in
12 |             root[keyPath: keyPath] = newValue
Swift.ReferenceWritableKeyPath:1:14: note: generic class 'ReferenceWritableKeyPath' does not conform to the 'Sendable' protocol
1 | public class ReferenceWritableKeyPath<Root, Value> : WritableKeyPath<Root, Value> {
  |              `- note: generic class 'ReferenceWritableKeyPath' does not conform to the 'Sendable' protocol
2 |     @objc deinit
3 | }
/Users/admin/builder/spi-builder-workspace/Sources/BindingKit/Binding+KeyPath.swift:12:13: warning: capture of 'root' with non-sendable type 'Root' in a '@Sendable' closure
 6 |     ///   - root: A reference type which has a writable key path.
 7 |     ///   - keyPath: A writable key path referencing one of the root type properties.
 8 |     public init<Root>(_ root: Root, keyPath: ReferenceWritableKeyPath<Root, Value>) {
   |                 `- note: consider making generic parameter 'Root' conform to the 'Sendable' protocol
 9 |         self.init {
10 |             root[keyPath: keyPath]
11 |         } set: { newValue in
12 |             root[keyPath: keyPath] = newValue
   |             `- warning: capture of 'root' with non-sendable type 'Root' in a '@Sendable' closure
13 |         }
14 |     }
/Users/admin/builder/spi-builder-workspace/Sources/BindingKit/Binding+KeyPath.swift:12:27: warning: capture of 'keyPath' with non-sendable type 'ReferenceWritableKeyPath<Root, Value>' in a '@Sendable' closure
10 |             root[keyPath: keyPath]
11 |         } set: { newValue in
12 |             root[keyPath: keyPath] = newValue
   |                           `- warning: capture of 'keyPath' with non-sendable type 'ReferenceWritableKeyPath<Root, Value>' in a '@Sendable' closure
13 |         }
14 |     }
Swift.ReferenceWritableKeyPath:1:14: note: generic class 'ReferenceWritableKeyPath' does not conform to the 'Sendable' protocol
1 | public class ReferenceWritableKeyPath<Root, Value> : WritableKeyPath<Root, Value> {
  |              `- note: generic class 'ReferenceWritableKeyPath' does not conform to the 'Sendable' protocol
2 |     @objc deinit
3 | }
[5/10] Compiling BindingKit Binding+Map.swift
/Users/admin/builder/spi-builder-workspace/Sources/BindingKit/Binding+Map.swift:11:20: warning: capture of 'forth' with non-sendable type '(Value) -> T' in a '@Sendable' closure
 9 |     public func map<T>(forth: @escaping (Value) -> T, back: @escaping (T) -> Value) -> Binding<T> {
10 |         Binding<T>(
11 |             get: { forth(self.wrappedValue) },
   |                    |- warning: capture of 'forth' with non-sendable type '(Value) -> T' in a '@Sendable' closure
   |                    `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
12 |             set: { value in
13 |                 self.wrappedValue = back(value)
/Users/admin/builder/spi-builder-workspace/Sources/BindingKit/Binding+Map.swift:11:26: warning: capture of 'self' with non-sendable type 'Binding<Value>' in a '@Sendable' closure
 9 |     public func map<T>(forth: @escaping (Value) -> T, back: @escaping (T) -> Value) -> Binding<T> {
10 |         Binding<T>(
11 |             get: { forth(self.wrappedValue) },
   |                          `- warning: capture of 'self' with non-sendable type 'Binding<Value>' in a '@Sendable' closure
12 |             set: { value in
13 |                 self.wrappedValue = back(value)
/Users/admin/builder/spi-builder-workspace/Sources/BindingKit/Binding+Map.swift:13:17: warning: capture of 'self' with non-sendable type 'Binding<Value>' in a '@Sendable' closure
11 |             get: { forth(self.wrappedValue) },
12 |             set: { value in
13 |                 self.wrappedValue = back(value)
   |                 `- warning: capture of 'self' with non-sendable type 'Binding<Value>' in a '@Sendable' closure
14 |             }
15 |         )
/Users/admin/builder/spi-builder-workspace/Sources/BindingKit/Binding+Map.swift:13:37: warning: capture of 'back' with non-sendable type '(T) -> Value' in a '@Sendable' closure
11 |             get: { forth(self.wrappedValue) },
12 |             set: { value in
13 |                 self.wrappedValue = back(value)
   |                                     |- warning: capture of 'back' with non-sendable type '(T) -> Value' in a '@Sendable' closure
   |                                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
14 |             }
15 |         )
[6/10] Compiling BindingKit Binding+Validation.swift
/Users/admin/builder/spi-builder-workspace/Sources/BindingKit/Binding+Validation.swift:10:20: warning: capture of 'self' with non-sendable type 'Binding<Value>' in a '@Sendable' closure
 8 |     public func validate(_ validation: @escaping (Value) -> Bool) -> Self {
 9 |         Binding(
10 |             get: { self.wrappedValue },
   |                    `- warning: capture of 'self' with non-sendable type 'Binding<Value>' in a '@Sendable' closure
11 |             set: { newValue in
12 |                 if validation(newValue) {
/Users/admin/builder/spi-builder-workspace/Sources/BindingKit/Binding+Validation.swift:12:20: warning: capture of 'validation' with non-sendable type '(Value) -> Bool' in a '@Sendable' closure
10 |             get: { self.wrappedValue },
11 |             set: { newValue in
12 |                 if validation(newValue) {
   |                    |- warning: capture of 'validation' with non-sendable type '(Value) -> Bool' in a '@Sendable' closure
   |                    `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
13 |                     self.wrappedValue = newValue
14 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/BindingKit/Binding+Validation.swift:13:21: warning: capture of 'self' with non-sendable type 'Binding<Value>' in a '@Sendable' closure
11 |             set: { newValue in
12 |                 if validation(newValue) {
13 |                     self.wrappedValue = newValue
   |                     `- warning: capture of 'self' with non-sendable type 'Binding<Value>' in a '@Sendable' closure
14 |                 }
15 |             }
[7/10] Compiling BindingKit Binding+Effects.swift
/Users/admin/builder/spi-builder-workspace/Sources/BindingKit/Binding+Effects.swift:9:20: warning: capture of 'self' with non-sendable type 'Binding<Value>' in a '@Sendable' closure
 7 |     public func didSet(effect: @escaping (Value) -> Void) -> Self {
 8 |         Binding(
 9 |             get: { self.wrappedValue },
   |                    `- warning: capture of 'self' with non-sendable type 'Binding<Value>' in a '@Sendable' closure
10 |             set: { newValue in
11 |                 self.wrappedValue = newValue
/Users/admin/builder/spi-builder-workspace/Sources/BindingKit/Binding+Effects.swift:11:17: warning: capture of 'self' with non-sendable type 'Binding<Value>' in a '@Sendable' closure
 9 |             get: { self.wrappedValue },
10 |             set: { newValue in
11 |                 self.wrappedValue = newValue
   |                 `- warning: capture of 'self' with non-sendable type 'Binding<Value>' in a '@Sendable' closure
12 |                 effect(newValue)
13 |             }
/Users/admin/builder/spi-builder-workspace/Sources/BindingKit/Binding+Effects.swift:12:17: warning: capture of 'effect' with non-sendable type '(Value) -> Void' in a '@Sendable' closure
10 |             set: { newValue in
11 |                 self.wrappedValue = newValue
12 |                 effect(newValue)
   |                 |- warning: capture of 'effect' with non-sendable type '(Value) -> Void' in a '@Sendable' closure
   |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
13 |             }
14 |         )
/Users/admin/builder/spi-builder-workspace/Sources/BindingKit/Binding+Effects.swift:23:20: warning: capture of 'self' with non-sendable type 'Binding<Value>' in a '@Sendable' closure
21 |     public func willSet(effect: @escaping (Value) -> Void) -> Self {
22 |         Binding(
23 |             get: { self.wrappedValue },
   |                    `- warning: capture of 'self' with non-sendable type 'Binding<Value>' in a '@Sendable' closure
24 |             set: { newValue in
25 |                 effect(newValue)
/Users/admin/builder/spi-builder-workspace/Sources/BindingKit/Binding+Effects.swift:25:17: warning: capture of 'effect' with non-sendable type '(Value) -> Void' in a '@Sendable' closure
23 |             get: { self.wrappedValue },
24 |             set: { newValue in
25 |                 effect(newValue)
   |                 |- warning: capture of 'effect' with non-sendable type '(Value) -> Void' in a '@Sendable' closure
   |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
26 |                 self.wrappedValue = newValue
27 |             }
/Users/admin/builder/spi-builder-workspace/Sources/BindingKit/Binding+Effects.swift:26:17: warning: capture of 'self' with non-sendable type 'Binding<Value>' in a '@Sendable' closure
24 |             set: { newValue in
25 |                 effect(newValue)
26 |                 self.wrappedValue = newValue
   |                 `- warning: capture of 'self' with non-sendable type 'Binding<Value>' in a '@Sendable' closure
27 |             }
28 |         )
[8/10] Emitting module BindingKit
[9/10] Compiling BindingKit Binding+StoredValue.swift
/Users/admin/builder/spi-builder-workspace/Sources/BindingKit/Binding+StoredValue.swift:8:21: warning: capture of 'innerValue' with non-sendable type 'Value' in a '@Sendable' closure
 6 |     public init(storedValue: Value) {
 7 |         var innerValue = storedValue
 8 |         self.init { innerValue }
   |                     `- warning: capture of 'innerValue' with non-sendable type 'Value' in a '@Sendable' closure
 9 |              set: { innerValue = $0 }
10 |     }
/Users/admin/builder/spi-builder-workspace/Sources/BindingKit/Binding+StoredValue.swift:8:21: warning: reference to captured var 'innerValue' in concurrently-executing code
 6 |     public init(storedValue: Value) {
 7 |         var innerValue = storedValue
 8 |         self.init { innerValue }
   |                     `- warning: reference to captured var 'innerValue' in concurrently-executing code
 9 |              set: { innerValue = $0 }
10 |     }
/Users/admin/builder/spi-builder-workspace/Sources/BindingKit/Binding+StoredValue.swift:9:21: warning: capture of 'innerValue' with non-sendable type 'Value' in a '@Sendable' closure
 7 |         var innerValue = storedValue
 8 |         self.init { innerValue }
 9 |              set: { innerValue = $0 }
   |                     `- warning: capture of 'innerValue' with non-sendable type 'Value' in a '@Sendable' closure
10 |     }
11 | }
/Users/admin/builder/spi-builder-workspace/Sources/BindingKit/Binding+StoredValue.swift:9:21: warning: mutation of captured var 'innerValue' in concurrently-executing code
 7 |         var innerValue = storedValue
 8 |         self.init { innerValue }
 9 |              set: { innerValue = $0 }
   |                     `- warning: mutation of captured var 'innerValue' in concurrently-executing code
10 |     }
11 | }
[10/10] Compiling BindingKit Binding+Coalescing.swift
/Users/admin/builder/spi-builder-workspace/Sources/BindingKit/Binding+Coalescing.swift:12:13: warning: capture of 'lhs' with non-sendable type 'Binding<Optional<T>>' in a '@Sendable' closure
 8 |     /// - Returns: Binding with the same type returning value from right side of the operator.
 9 |     ///   The type of the values is the same and remains optional.
10 |     public static func ?? <T>(lhs: Self, rhs: Value) -> Binding<Value> where Value == T? {
   |                            `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
11 |         Binding {
12 |             lhs.wrappedValue ?? rhs
   |             `- warning: capture of 'lhs' with non-sendable type 'Binding<Optional<T>>' in a '@Sendable' closure
13 |         } set: { newValue in
14 |             lhs.wrappedValue = newValue
/Users/admin/builder/spi-builder-workspace/Sources/BindingKit/Binding+Coalescing.swift:12:33: warning: capture of 'rhs' with non-sendable type 'Optional<T>' in a '@Sendable' closure
 8 |     /// - Returns: Binding with the same type returning value from right side of the operator.
 9 |     ///   The type of the values is the same and remains optional.
10 |     public static func ?? <T>(lhs: Self, rhs: Value) -> Binding<Value> where Value == T? {
   |                            `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
11 |         Binding {
12 |             lhs.wrappedValue ?? rhs
   |                                 `- warning: capture of 'rhs' with non-sendable type 'Optional<T>' in a '@Sendable' closure
13 |         } set: { newValue in
14 |             lhs.wrappedValue = newValue
/Users/admin/builder/spi-builder-workspace/Sources/BindingKit/Binding+Coalescing.swift:12:33: warning: implicit capture of 'rhs' requires that 'Optional<T>' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 8 |     /// - Returns: Binding with the same type returning value from right side of the operator.
 9 |     ///   The type of the values is the same and remains optional.
10 |     public static func ?? <T>(lhs: Self, rhs: Value) -> Binding<Value> where Value == T? {
   |                            `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
11 |         Binding {
12 |             lhs.wrappedValue ?? rhs
   |                                 `- warning: implicit capture of 'rhs' requires that 'Optional<T>' conforms to 'Sendable'; this is an error in the Swift 6 language mode
13 |         } set: { newValue in
14 |             lhs.wrappedValue = newValue
/Users/admin/builder/spi-builder-workspace/Sources/BindingKit/Binding+Coalescing.swift:14:13: warning: capture of 'lhs' with non-sendable type 'Binding<Optional<T>>' in a '@Sendable' closure
 8 |     /// - Returns: Binding with the same type returning value from right side of the operator.
 9 |     ///   The type of the values is the same and remains optional.
10 |     public static func ?? <T>(lhs: Self, rhs: Value) -> Binding<Value> where Value == T? {
   |                            `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
11 |         Binding {
12 |             lhs.wrappedValue ?? rhs
13 |         } set: { newValue in
14 |             lhs.wrappedValue = newValue
   |             `- warning: capture of 'lhs' with non-sendable type 'Binding<Optional<T>>' in a '@Sendable' closure
15 |         }
16 |         .transaction(lhs.transaction)
/Users/admin/builder/spi-builder-workspace/Sources/BindingKit/Binding+Coalescing.swift:27:13: warning: capture of 'lhs' with non-sendable type 'Binding<Optional<T>>' in a '@Sendable' closure
23 |     /// - Returns: Binding with unwrapped value returning value from right side of the operator
24 |     ///   instead of nil values.
25 |     public static func ?? <T>(lhs: Self, rhs: T) -> Binding<T> where Value == T? {
   |                            `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
26 |         Binding<T> {
27 |             lhs.wrappedValue ?? rhs
   |             `- warning: capture of 'lhs' with non-sendable type 'Binding<Optional<T>>' in a '@Sendable' closure
28 |         } set: { newValue in
29 |             lhs.wrappedValue = newValue
/Users/admin/builder/spi-builder-workspace/Sources/BindingKit/Binding+Coalescing.swift:27:33: warning: capture of 'rhs' with non-sendable type 'T' in a '@Sendable' closure
23 |     /// - Returns: Binding with unwrapped value returning value from right side of the operator
24 |     ///   instead of nil values.
25 |     public static func ?? <T>(lhs: Self, rhs: T) -> Binding<T> where Value == T? {
   |                            `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
26 |         Binding<T> {
27 |             lhs.wrappedValue ?? rhs
   |                                 `- warning: capture of 'rhs' with non-sendable type 'T' in a '@Sendable' closure
28 |         } set: { newValue in
29 |             lhs.wrappedValue = newValue
/Users/admin/builder/spi-builder-workspace/Sources/BindingKit/Binding+Coalescing.swift:27:33: warning: implicit capture of 'rhs' requires that 'T' conforms to 'Sendable'; this is an error in the Swift 6 language mode
23 |     /// - Returns: Binding with unwrapped value returning value from right side of the operator
24 |     ///   instead of nil values.
25 |     public static func ?? <T>(lhs: Self, rhs: T) -> Binding<T> where Value == T? {
   |                            `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
26 |         Binding<T> {
27 |             lhs.wrappedValue ?? rhs
   |                                 `- warning: implicit capture of 'rhs' requires that 'T' conforms to 'Sendable'; this is an error in the Swift 6 language mode
28 |         } set: { newValue in
29 |             lhs.wrappedValue = newValue
/Users/admin/builder/spi-builder-workspace/Sources/BindingKit/Binding+Coalescing.swift:29:13: warning: capture of 'lhs' with non-sendable type 'Binding<Optional<T>>' in a '@Sendable' closure
23 |     /// - Returns: Binding with unwrapped value returning value from right side of the operator
24 |     ///   instead of nil values.
25 |     public static func ?? <T>(lhs: Self, rhs: T) -> Binding<T> where Value == T? {
   |                            `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
26 |         Binding<T> {
27 |             lhs.wrappedValue ?? rhs
28 |         } set: { newValue in
29 |             lhs.wrappedValue = newValue
   |             `- warning: capture of 'lhs' with non-sendable type 'Binding<Optional<T>>' in a '@Sendable' closure
30 |         }
31 |         .transaction(lhs.transaction)
Build complete! (9.02s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "BindingKit",
  "name" : "BindingKit",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "13.0"
    },
    {
      "name" : "macos",
      "version" : "10.15"
    },
    {
      "name" : "tvos",
      "version" : "13.0"
    },
    {
      "name" : "watchos",
      "version" : "6.0"
    }
  ],
  "products" : [
    {
      "name" : "BindingKit",
      "targets" : [
        "BindingKit"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "BindingKitTests",
      "module_type" : "SwiftTarget",
      "name" : "BindingKitTests",
      "path" : "Tests/BindingKitTests",
      "sources" : [
        "CoalescingTests.swift",
        "EffectTests.swift",
        "KeyPathTests.swift",
        "MapTests.swift",
        "StoreValueTests.swift"
      ],
      "target_dependencies" : [
        "BindingKit"
      ],
      "type" : "test"
    },
    {
      "c99name" : "BindingKit",
      "module_type" : "SwiftTarget",
      "name" : "BindingKit",
      "path" : "Sources/BindingKit",
      "product_memberships" : [
        "BindingKit"
      ],
      "sources" : [
        "Binding+Coalescing.swift",
        "Binding+Effects.swift",
        "Binding+KeyPath.swift",
        "Binding+Map.swift",
        "Binding+StoredValue.swift",
        "Binding+Validation.swift",
        "Transformation.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.3"
}
Done.