The Swift Package Index logo.Swift Package Index

Track the adoption of Swift 6 strict concurrency checks for data race safety. How many packages are Ready for Swift 6?

Build Information

Successful build of SwiftSpellbook, reference 1.1.7 (9a4146), with Swift 6.0 for macOS (SPM) on 19 Dec 2024 12:27:18 UTC.

Swift 6 data race errors: 93

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.2.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

    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 78 |                 }
 79 |             }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - DispatchQueue.swift:74:14: warning: concurrently-executed local function 'schedule(firstRun:)' must be marked as '@Sendable'; this is an error in the Swift 6 language mode
 72 |         execute: @escaping () -> Bool
 73 |     ) {
 74 |         func schedule(firstRun: Bool) {
    |              `- warning: concurrently-executed local function 'schedule(firstRun:)' must be marked as '@Sendable'; this is an error in the Swift 6 language mode
 75 |             asyncAfter(delay: (firstRun && immediately) ? 0 : interval, qos: qos, flags: flags) {
 76 |                 if execute() {
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - DispatchQueue.swift:93:17: warning: capture of 'execute' with non-sendable type '(@escaping () -> Void) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 91 |         func schedule(firstRun: Bool) {
 92 |             asyncAfter(delay: (firstRun && immediately) ? 0 : interval, qos: qos, flags: flags) {
 93 |                 execute {
    |                 |- warning: capture of 'execute' with non-sendable type '(@escaping () -> Void) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 94 |                     schedule(firstRun: false)
 95 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - DispatchQueue.swift:94:21: warning: capture of 'schedule(firstRun:)' with non-sendable type '(Bool) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 92 |             asyncAfter(delay: (firstRun && immediately) ? 0 : interval, qos: qos, flags: flags) {
 93 |                 execute {
 94 |                     schedule(firstRun: false)
    |                     |- warning: capture of 'schedule(firstRun:)' with non-sendable type '(Bool) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 95 |                 }
 96 |             }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - DispatchQueue.swift:94:21: warning: capture of 'schedule(firstRun:)' with non-sendable type '(Bool) -> ()' in an isolated closure; this is an error in the Swift 6 language mode
 92 |             asyncAfter(delay: (firstRun && immediately) ? 0 : interval, qos: qos, flags: flags) {
 93 |                 execute {
 94 |                     schedule(firstRun: false)
    |                     |- warning: capture of 'schedule(firstRun:)' with non-sendable type '(Bool) -> ()' in an isolated closure; this is an error in the Swift 6 language mode
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 95 |                 }
 96 |             }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - DispatchQueue.swift:91:14: warning: concurrently-executed local function 'schedule(firstRun:)' must be marked as '@Sendable'; this is an error in the Swift 6 language mode
 89 |         execute: @escaping (@escaping () -> Void) -> Void
 90 |     ) {
 91 |         func schedule(firstRun: Bool) {
    |              `- warning: concurrently-executed local function 'schedule(firstRun:)' must be marked as '@Sendable'; this is an error in the Swift 6 language mode
 92 |             asyncAfter(delay: (firstRun && immediately) ? 0 : interval, qos: qos, flags: flags) {
 93 |                 execute {
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Synchronized.swift:218:13: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
215 | @available(macOS 13.0, iOS 16.0, tvOS 16.0, watchOS 9.0, *)
216 | extension OSAllocatedUnfairLock: SynchronizedLocking where State == Void {
217 |     func withWriteLock<R>(_ body: () throws -> R) rethrows -> R {
    |                        `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
218 |         try withLock { try body() }
    |             `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
219 |     }
220 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Synchronized.swift:218:28: warning: capture of 'body' with non-sendable type '() throws -> R' in a `@Sendable` closure; this is an error in the Swift 6 language mode
216 | extension OSAllocatedUnfairLock: SynchronizedLocking where State == Void {
217 |     func withWriteLock<R>(_ body: () throws -> R) rethrows -> R {
218 |         try withLock { try body() }
    |                            |- warning: capture of 'body' with non-sendable type '() throws -> R' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                            `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
219 |     }
220 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Synchronized.swift:234:41: warning: passing non-sendable parameter 'body' to function expecting a @Sendable closure
231 |     }
232 |
233 |     func withAsyncWriteLock(_ body: @escaping () -> Void) {
    |                               `- note: parameter 'body' is implicitly non-sendable
234 |         async(flags: .barrier, execute: body)
    |                                         `- warning: passing non-sendable parameter 'body' to function expecting a @Sendable closure
235 |     }
236 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - Task.swift:31:27: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
29 |         completion: @escaping (Result<R, Error>) -> Void
30 |     ) where Success == Void, Failure == Never {
31 |         Task<Void, Never> {
   |                           `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
32 |             do {
33 |                 let result = try await body()
34 |                 completion(.success(result))
   |                 `- note: closure captures 'completion' which is accessible to code in the current task
35 |             } catch {
36 |                 completion(.failure(error))
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - Task.swift:45:27: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
43 |         completion: @escaping (R) -> Void
44 |     ) where Success == Void, Failure == Never {
45 |         Task<Void, Never> {
   |                           `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
46 |             completion(await body())
   |             `- note: closure captures 'completion' which is accessible to code in the current task
47 |         }
48 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - Task.swift:54:27: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
52 |         completion: @escaping (Error?) -> Void
53 |     ) where Success == Void, Failure == Never {
54 |         Task<Void, Never> {
   |                           `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
55 |             do {
56 |                 try await body()
57 |                 completion(nil)
   |                 `- note: closure captures 'completion' which is accessible to code in the current task
58 |             } catch {
59 |                 completion(error)
[55/67] Compiling SpellbookFoundation SynchronizedObjC.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - DispatchQueue.swift:60:79: warning: passing non-sendable parameter 'work' to function expecting a @Sendable closure
 56 |         qos: DispatchQoS = .unspecified,
 57 |         flags: DispatchWorkItemFlags = [],
 58 |         execute work: @escaping () -> Void
    |                 `- note: parameter 'work' is implicitly non-sendable
 59 |     ) {
 60 |         asyncAfter(deadline: .now() + delay, qos: qos, flags: flags, execute: work)
    |                                                                               `- warning: passing non-sendable parameter 'work' to function expecting a @Sendable closure
 61 |     }
 62 |
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - DispatchQueue.swift:76:20: warning: capture of 'execute' with non-sendable type '() -> Bool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 74 |         func schedule(firstRun: Bool) {
 75 |             asyncAfter(delay: (firstRun && immediately) ? 0 : interval, qos: qos, flags: flags) {
 76 |                 if execute() {
    |                    |- warning: capture of 'execute' with non-sendable type '() -> Bool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                    `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 77 |                     schedule(firstRun: false)
 78 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - DispatchQueue.swift:77:21: warning: capture of 'schedule(firstRun:)' with non-sendable type '(Bool) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 75 |             asyncAfter(delay: (firstRun && immediately) ? 0 : interval, qos: qos, flags: flags) {
 76 |                 if execute() {
 77 |                     schedule(firstRun: false)
    |                     |- warning: capture of 'schedule(firstRun:)' with non-sendable type '(Bool) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 78 |                 }
 79 |             }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - DispatchQueue.swift:74:14: warning: concurrently-executed local function 'schedule(firstRun:)' must be marked as '@Sendable'; this is an error in the Swift 6 language mode
 72 |         execute: @escaping () -> Bool
 73 |     ) {
 74 |         func schedule(firstRun: Bool) {
    |              `- warning: concurrently-executed local function 'schedule(firstRun:)' must be marked as '@Sendable'; this is an error in the Swift 6 language mode
 75 |             asyncAfter(delay: (firstRun && immediately) ? 0 : interval, qos: qos, flags: flags) {
 76 |                 if execute() {
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - DispatchQueue.swift:93:17: warning: capture of 'execute' with non-sendable type '(@escaping () -> Void) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 91 |         func schedule(firstRun: Bool) {
 92 |             asyncAfter(delay: (firstRun && immediately) ? 0 : interval, qos: qos, flags: flags) {
 93 |                 execute {
    |                 |- warning: capture of 'execute' with non-sendable type '(@escaping () -> Void) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 94 |                     schedule(firstRun: false)
 95 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - DispatchQueue.swift:94:21: warning: capture of 'schedule(firstRun:)' with non-sendable type '(Bool) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 92 |             asyncAfter(delay: (firstRun && immediately) ? 0 : interval, qos: qos, flags: flags) {
 93 |                 execute {
 94 |                     schedule(firstRun: false)
    |                     |- warning: capture of 'schedule(firstRun:)' with non-sendable type '(Bool) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 95 |                 }
 96 |             }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - DispatchQueue.swift:94:21: warning: capture of 'schedule(firstRun:)' with non-sendable type '(Bool) -> ()' in an isolated closure; this is an error in the Swift 6 language mode
 92 |             asyncAfter(delay: (firstRun && immediately) ? 0 : interval, qos: qos, flags: flags) {
 93 |                 execute {
 94 |                     schedule(firstRun: false)
    |                     |- warning: capture of 'schedule(firstRun:)' with non-sendable type '(Bool) -> ()' in an isolated closure; this is an error in the Swift 6 language mode
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 95 |                 }
 96 |             }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - DispatchQueue.swift:91:14: warning: concurrently-executed local function 'schedule(firstRun:)' must be marked as '@Sendable'; this is an error in the Swift 6 language mode
 89 |         execute: @escaping (@escaping () -> Void) -> Void
 90 |     ) {
 91 |         func schedule(firstRun: Bool) {
    |              `- warning: concurrently-executed local function 'schedule(firstRun:)' must be marked as '@Sendable'; this is an error in the Swift 6 language mode
 92 |             asyncAfter(delay: (firstRun && immediately) ? 0 : interval, qos: qos, flags: flags) {
 93 |                 execute {
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Synchronized.swift:218:13: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
215 | @available(macOS 13.0, iOS 16.0, tvOS 16.0, watchOS 9.0, *)
216 | extension OSAllocatedUnfairLock: SynchronizedLocking where State == Void {
217 |     func withWriteLock<R>(_ body: () throws -> R) rethrows -> R {
    |                        `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
218 |         try withLock { try body() }
    |             `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
219 |     }
220 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Synchronized.swift:218:28: warning: capture of 'body' with non-sendable type '() throws -> R' in a `@Sendable` closure; this is an error in the Swift 6 language mode
216 | extension OSAllocatedUnfairLock: SynchronizedLocking where State == Void {
217 |     func withWriteLock<R>(_ body: () throws -> R) rethrows -> R {
218 |         try withLock { try body() }
    |                            |- warning: capture of 'body' with non-sendable type '() throws -> R' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                            `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
219 |     }
220 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Synchronized.swift:234:41: warning: passing non-sendable parameter 'body' to function expecting a @Sendable closure
231 |     }
232 |
233 |     func withAsyncWriteLock(_ body: @escaping () -> Void) {
    |                               `- note: parameter 'body' is implicitly non-sendable
234 |         async(flags: .barrier, execute: body)
    |                                         `- warning: passing non-sendable parameter 'body' to function expecting a @Sendable closure
235 |     }
236 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - Task.swift:31:27: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
29 |         completion: @escaping (Result<R, Error>) -> Void
30 |     ) where Success == Void, Failure == Never {
31 |         Task<Void, Never> {
   |                           `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
32 |             do {
33 |                 let result = try await body()
34 |                 completion(.success(result))
   |                 `- note: closure captures 'completion' which is accessible to code in the current task
35 |             } catch {
36 |                 completion(.failure(error))
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - Task.swift:45:27: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
43 |         completion: @escaping (R) -> Void
44 |     ) where Success == Void, Failure == Never {
45 |         Task<Void, Never> {
   |                           `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
46 |             completion(await body())
   |             `- note: closure captures 'completion' which is accessible to code in the current task
47 |         }
48 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - Task.swift:54:27: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
52 |         completion: @escaping (Error?) -> Void
53 |     ) where Success == Void, Failure == Never {
54 |         Task<Void, Never> {
   |                           `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
55 |             do {
56 |                 try await body()
57 |                 completion(nil)
   |                 `- note: closure captures 'completion' which is accessible to code in the current task
58 |             } catch {
59 |                 completion(error)
[56/67] Compiling SpellbookFoundation Extensions - Codable.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/Extensions - Codable.swift:25:13: warning: let 'codableLogger' is not concurrency-safe because non-'Sendable' type 'any SpellbookLog' may have shared mutable state; this is an error in the Swift 6 language mode
 23 | import Foundation
 24 |
 25 | private let codableLogger = SpellbookLogger.internal(category: "Codable")
    |             |- warning: let 'codableLogger' is not concurrency-safe because non-'Sendable' type 'any SpellbookLog' may have shared mutable state; this is an error in the Swift 6 language mode
    |             |- note: annotate 'codableLogger' with '@MainActor' if property should only be accessed from the main actor
    |             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 26 |
 27 | extension Encodable {
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/SpellbookLog.swift:26:17: note: protocol 'SpellbookLog' does not conform to the 'Sendable' protocol
 24 | import os
 25 |
 26 | public protocol SpellbookLog {
    |                 `- note: protocol 'SpellbookLog' does not conform to the 'Sendable' protocol
 27 |     func _custom(
 28 |         level: SpellbookLogLevel,
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/SBUnit.swift:59:23: warning: static property 'kilobyte' is not concurrency-safe because non-'Sendable' type 'SBUnitInformationStorage' may have shared mutable state; this is an error in the Swift 6 language mode
53 | }
54 |
55 | public struct SBUnitInformationStorage: SBUnit {
   |               `- note: consider making struct 'SBUnitInformationStorage' conform to the 'Sendable' protocol
56 |     public var rawValue: Int
57 |     public init(rawValue: Int) { self.rawValue = rawValue }
58 |
59 |     public static let kilobyte = Self(rawValue: 1024)
   |                       |- warning: static property 'kilobyte' is not concurrency-safe because non-'Sendable' type 'SBUnitInformationStorage' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'kilobyte' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
60 |     public static let megabyte = Self(rawValue: 1024 * kilobyte.rawValue)
61 |     public static let gigabyte = Self(rawValue: 1024 * megabyte.rawValue)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/SBUnit.swift:60:23: warning: static property 'megabyte' is not concurrency-safe because non-'Sendable' type 'SBUnitInformationStorage' may have shared mutable state; this is an error in the Swift 6 language mode
53 | }
54 |
55 | public struct SBUnitInformationStorage: SBUnit {
   |               `- note: consider making struct 'SBUnitInformationStorage' conform to the 'Sendable' protocol
56 |     public var rawValue: Int
57 |     public init(rawValue: Int) { self.rawValue = rawValue }
58 |
59 |     public static let kilobyte = Self(rawValue: 1024)
60 |     public static let megabyte = Self(rawValue: 1024 * kilobyte.rawValue)
   |                       |- warning: static property 'megabyte' is not concurrency-safe because non-'Sendable' type 'SBUnitInformationStorage' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'megabyte' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
61 |     public static let gigabyte = Self(rawValue: 1024 * megabyte.rawValue)
62 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/SBUnit.swift:61:23: warning: static property 'gigabyte' is not concurrency-safe because non-'Sendable' type 'SBUnitInformationStorage' may have shared mutable state; this is an error in the Swift 6 language mode
53 | }
54 |
55 | public struct SBUnitInformationStorage: SBUnit {
   |               `- note: consider making struct 'SBUnitInformationStorage' conform to the 'Sendable' protocol
56 |     public var rawValue: Int
57 |     public init(rawValue: Int) { self.rawValue = rawValue }
   :
59 |     public static let kilobyte = Self(rawValue: 1024)
60 |     public static let megabyte = Self(rawValue: 1024 * kilobyte.rawValue)
61 |     public static let gigabyte = Self(rawValue: 1024 * megabyte.rawValue)
   |                       |- warning: static property 'gigabyte' is not concurrency-safe because non-'Sendable' type 'SBUnitInformationStorage' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'gigabyte' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
62 | }
63 |
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/SBUnit.swift:68:23: warning: static property 'minute' is not concurrency-safe because non-'Sendable' type 'SBUnitTime' may have shared mutable state; this is an error in the Swift 6 language mode
62 | }
63 |
64 | public struct SBUnitTime: SBUnit {
   |               `- note: consider making struct 'SBUnitTime' conform to the 'Sendable' protocol
65 |     public var rawValue: TimeInterval
66 |     public init(rawValue: TimeInterval) { self.rawValue = rawValue }
67 |
68 |     public static let minute = Self(rawValue: 60)
   |                       |- warning: static property 'minute' is not concurrency-safe because non-'Sendable' type 'SBUnitTime' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'minute' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
69 |     public static let hour = Self(rawValue: 60 * minute.rawValue)
70 |     public static let day = Self(rawValue: 24 * hour.rawValue)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/SBUnit.swift:69:23: warning: static property 'hour' is not concurrency-safe because non-'Sendable' type 'SBUnitTime' may have shared mutable state; this is an error in the Swift 6 language mode
62 | }
63 |
64 | public struct SBUnitTime: SBUnit {
   |               `- note: consider making struct 'SBUnitTime' conform to the 'Sendable' protocol
65 |     public var rawValue: TimeInterval
66 |     public init(rawValue: TimeInterval) { self.rawValue = rawValue }
67 |
68 |     public static let minute = Self(rawValue: 60)
69 |     public static let hour = Self(rawValue: 60 * minute.rawValue)
   |                       |- warning: static property 'hour' is not concurrency-safe because non-'Sendable' type 'SBUnitTime' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'hour' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
70 |     public static let day = Self(rawValue: 24 * hour.rawValue)
71 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/SBUnit.swift:70:23: warning: static property 'day' is not concurrency-safe because non-'Sendable' type 'SBUnitTime' may have shared mutable state; this is an error in the Swift 6 language mode
62 | }
63 |
64 | public struct SBUnitTime: SBUnit {
   |               `- note: consider making struct 'SBUnitTime' conform to the 'Sendable' protocol
65 |     public var rawValue: TimeInterval
66 |     public init(rawValue: TimeInterval) { self.rawValue = rawValue }
   :
68 |     public static let minute = Self(rawValue: 60)
69 |     public static let hour = Self(rawValue: 60 * minute.rawValue)
70 |     public static let day = Self(rawValue: 24 * hour.rawValue)
   |                       |- warning: static property 'day' is not concurrency-safe because non-'Sendable' type 'SBUnitTime' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'day' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
71 | }
72 |
[57/67] Compiling SpellbookFoundation Extensions - Collections.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/Extensions - Codable.swift:25:13: warning: let 'codableLogger' is not concurrency-safe because non-'Sendable' type 'any SpellbookLog' may have shared mutable state; this is an error in the Swift 6 language mode
 23 | import Foundation
 24 |
 25 | private let codableLogger = SpellbookLogger.internal(category: "Codable")
    |             |- warning: let 'codableLogger' is not concurrency-safe because non-'Sendable' type 'any SpellbookLog' may have shared mutable state; this is an error in the Swift 6 language mode
    |             |- note: annotate 'codableLogger' with '@MainActor' if property should only be accessed from the main actor
    |             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 26 |
 27 | extension Encodable {
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/SpellbookLog.swift:26:17: note: protocol 'SpellbookLog' does not conform to the 'Sendable' protocol
 24 | import os
 25 |
 26 | public protocol SpellbookLog {
    |                 `- note: protocol 'SpellbookLog' does not conform to the 'Sendable' protocol
 27 |     func _custom(
 28 |         level: SpellbookLogLevel,
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/SBUnit.swift:59:23: warning: static property 'kilobyte' is not concurrency-safe because non-'Sendable' type 'SBUnitInformationStorage' may have shared mutable state; this is an error in the Swift 6 language mode
53 | }
54 |
55 | public struct SBUnitInformationStorage: SBUnit {
   |               `- note: consider making struct 'SBUnitInformationStorage' conform to the 'Sendable' protocol
56 |     public var rawValue: Int
57 |     public init(rawValue: Int) { self.rawValue = rawValue }
58 |
59 |     public static let kilobyte = Self(rawValue: 1024)
   |                       |- warning: static property 'kilobyte' is not concurrency-safe because non-'Sendable' type 'SBUnitInformationStorage' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'kilobyte' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
60 |     public static let megabyte = Self(rawValue: 1024 * kilobyte.rawValue)
61 |     public static let gigabyte = Self(rawValue: 1024 * megabyte.rawValue)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/SBUnit.swift:60:23: warning: static property 'megabyte' is not concurrency-safe because non-'Sendable' type 'SBUnitInformationStorage' may have shared mutable state; this is an error in the Swift 6 language mode
53 | }
54 |
55 | public struct SBUnitInformationStorage: SBUnit {
   |               `- note: consider making struct 'SBUnitInformationStorage' conform to the 'Sendable' protocol
56 |     public var rawValue: Int
57 |     public init(rawValue: Int) { self.rawValue = rawValue }
58 |
59 |     public static let kilobyte = Self(rawValue: 1024)
60 |     public static let megabyte = Self(rawValue: 1024 * kilobyte.rawValue)
   |                       |- warning: static property 'megabyte' is not concurrency-safe because non-'Sendable' type 'SBUnitInformationStorage' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'megabyte' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
61 |     public static let gigabyte = Self(rawValue: 1024 * megabyte.rawValue)
62 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/SBUnit.swift:61:23: warning: static property 'gigabyte' is not concurrency-safe because non-'Sendable' type 'SBUnitInformationStorage' may have shared mutable state; this is an error in the Swift 6 language mode
53 | }
54 |
55 | public struct SBUnitInformationStorage: SBUnit {
   |               `- note: consider making struct 'SBUnitInformationStorage' conform to the 'Sendable' protocol
56 |     public var rawValue: Int
57 |     public init(rawValue: Int) { self.rawValue = rawValue }
   :
59 |     public static let kilobyte = Self(rawValue: 1024)
60 |     public static let megabyte = Self(rawValue: 1024 * kilobyte.rawValue)
61 |     public static let gigabyte = Self(rawValue: 1024 * megabyte.rawValue)
   |                       |- warning: static property 'gigabyte' is not concurrency-safe because non-'Sendable' type 'SBUnitInformationStorage' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'gigabyte' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
62 | }
63 |
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/SBUnit.swift:68:23: warning: static property 'minute' is not concurrency-safe because non-'Sendable' type 'SBUnitTime' may have shared mutable state; this is an error in the Swift 6 language mode
62 | }
63 |
64 | public struct SBUnitTime: SBUnit {
   |               `- note: consider making struct 'SBUnitTime' conform to the 'Sendable' protocol
65 |     public var rawValue: TimeInterval
66 |     public init(rawValue: TimeInterval) { self.rawValue = rawValue }
67 |
68 |     public static let minute = Self(rawValue: 60)
   |                       |- warning: static property 'minute' is not concurrency-safe because non-'Sendable' type 'SBUnitTime' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'minute' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
69 |     public static let hour = Self(rawValue: 60 * minute.rawValue)
70 |     public static let day = Self(rawValue: 24 * hour.rawValue)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/SBUnit.swift:69:23: warning: static property 'hour' is not concurrency-safe because non-'Sendable' type 'SBUnitTime' may have shared mutable state; this is an error in the Swift 6 language mode
62 | }
63 |
64 | public struct SBUnitTime: SBUnit {
   |               `- note: consider making struct 'SBUnitTime' conform to the 'Sendable' protocol
65 |     public var rawValue: TimeInterval
66 |     public init(rawValue: TimeInterval) { self.rawValue = rawValue }
67 |
68 |     public static let minute = Self(rawValue: 60)
69 |     public static let hour = Self(rawValue: 60 * minute.rawValue)
   |                       |- warning: static property 'hour' is not concurrency-safe because non-'Sendable' type 'SBUnitTime' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'hour' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
70 |     public static let day = Self(rawValue: 24 * hour.rawValue)
71 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/SBUnit.swift:70:23: warning: static property 'day' is not concurrency-safe because non-'Sendable' type 'SBUnitTime' may have shared mutable state; this is an error in the Swift 6 language mode
62 | }
63 |
64 | public struct SBUnitTime: SBUnit {
   |               `- note: consider making struct 'SBUnitTime' conform to the 'Sendable' protocol
65 |     public var rawValue: TimeInterval
66 |     public init(rawValue: TimeInterval) { self.rawValue = rawValue }
   :
68 |     public static let minute = Self(rawValue: 60)
69 |     public static let hour = Self(rawValue: 60 * minute.rawValue)
70 |     public static let day = Self(rawValue: 24 * hour.rawValue)
   |                       |- warning: static property 'day' is not concurrency-safe because non-'Sendable' type 'SBUnitTime' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'day' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
71 | }
72 |
[58/67] Compiling SpellbookFoundation Extensions - Comparable.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/Extensions - Codable.swift:25:13: warning: let 'codableLogger' is not concurrency-safe because non-'Sendable' type 'any SpellbookLog' may have shared mutable state; this is an error in the Swift 6 language mode
 23 | import Foundation
 24 |
 25 | private let codableLogger = SpellbookLogger.internal(category: "Codable")
    |             |- warning: let 'codableLogger' is not concurrency-safe because non-'Sendable' type 'any SpellbookLog' may have shared mutable state; this is an error in the Swift 6 language mode
    |             |- note: annotate 'codableLogger' with '@MainActor' if property should only be accessed from the main actor
    |             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 26 |
 27 | extension Encodable {
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/SpellbookLog.swift:26:17: note: protocol 'SpellbookLog' does not conform to the 'Sendable' protocol
 24 | import os
 25 |
 26 | public protocol SpellbookLog {
    |                 `- note: protocol 'SpellbookLog' does not conform to the 'Sendable' protocol
 27 |     func _custom(
 28 |         level: SpellbookLogLevel,
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/SBUnit.swift:59:23: warning: static property 'kilobyte' is not concurrency-safe because non-'Sendable' type 'SBUnitInformationStorage' may have shared mutable state; this is an error in the Swift 6 language mode
53 | }
54 |
55 | public struct SBUnitInformationStorage: SBUnit {
   |               `- note: consider making struct 'SBUnitInformationStorage' conform to the 'Sendable' protocol
56 |     public var rawValue: Int
57 |     public init(rawValue: Int) { self.rawValue = rawValue }
58 |
59 |     public static let kilobyte = Self(rawValue: 1024)
   |                       |- warning: static property 'kilobyte' is not concurrency-safe because non-'Sendable' type 'SBUnitInformationStorage' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'kilobyte' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
60 |     public static let megabyte = Self(rawValue: 1024 * kilobyte.rawValue)
61 |     public static let gigabyte = Self(rawValue: 1024 * megabyte.rawValue)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/SBUnit.swift:60:23: warning: static property 'megabyte' is not concurrency-safe because non-'Sendable' type 'SBUnitInformationStorage' may have shared mutable state; this is an error in the Swift 6 language mode
53 | }
54 |
55 | public struct SBUnitInformationStorage: SBUnit {
   |               `- note: consider making struct 'SBUnitInformationStorage' conform to the 'Sendable' protocol
56 |     public var rawValue: Int
57 |     public init(rawValue: Int) { self.rawValue = rawValue }
58 |
59 |     public static let kilobyte = Self(rawValue: 1024)
60 |     public static let megabyte = Self(rawValue: 1024 * kilobyte.rawValue)
   |                       |- warning: static property 'megabyte' is not concurrency-safe because non-'Sendable' type 'SBUnitInformationStorage' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'megabyte' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
61 |     public static let gigabyte = Self(rawValue: 1024 * megabyte.rawValue)
62 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/SBUnit.swift:61:23: warning: static property 'gigabyte' is not concurrency-safe because non-'Sendable' type 'SBUnitInformationStorage' may have shared mutable state; this is an error in the Swift 6 language mode
53 | }
54 |
55 | public struct SBUnitInformationStorage: SBUnit {
   |               `- note: consider making struct 'SBUnitInformationStorage' conform to the 'Sendable' protocol
56 |     public var rawValue: Int
57 |     public init(rawValue: Int) { self.rawValue = rawValue }
   :
59 |     public static let kilobyte = Self(rawValue: 1024)
60 |     public static let megabyte = Self(rawValue: 1024 * kilobyte.rawValue)
61 |     public static let gigabyte = Self(rawValue: 1024 * megabyte.rawValue)
   |                       |- warning: static property 'gigabyte' is not concurrency-safe because non-'Sendable' type 'SBUnitInformationStorage' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'gigabyte' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
62 | }
63 |
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/SBUnit.swift:68:23: warning: static property 'minute' is not concurrency-safe because non-'Sendable' type 'SBUnitTime' may have shared mutable state; this is an error in the Swift 6 language mode
62 | }
63 |
64 | public struct SBUnitTime: SBUnit {
   |               `- note: consider making struct 'SBUnitTime' conform to the 'Sendable' protocol
65 |     public var rawValue: TimeInterval
66 |     public init(rawValue: TimeInterval) { self.rawValue = rawValue }
67 |
68 |     public static let minute = Self(rawValue: 60)
   |                       |- warning: static property 'minute' is not concurrency-safe because non-'Sendable' type 'SBUnitTime' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'minute' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
69 |     public static let hour = Self(rawValue: 60 * minute.rawValue)
70 |     public static let day = Self(rawValue: 24 * hour.rawValue)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/SBUnit.swift:69:23: warning: static property 'hour' is not concurrency-safe because non-'Sendable' type 'SBUnitTime' may have shared mutable state; this is an error in the Swift 6 language mode
62 | }
63 |
64 | public struct SBUnitTime: SBUnit {
   |               `- note: consider making struct 'SBUnitTime' conform to the 'Sendable' protocol
65 |     public var rawValue: TimeInterval
66 |     public init(rawValue: TimeInterval) { self.rawValue = rawValue }
67 |
68 |     public static let minute = Self(rawValue: 60)
69 |     public static let hour = Self(rawValue: 60 * minute.rawValue)
   |                       |- warning: static property 'hour' is not concurrency-safe because non-'Sendable' type 'SBUnitTime' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'hour' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
70 |     public static let day = Self(rawValue: 24 * hour.rawValue)
71 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/SBUnit.swift:70:23: warning: static property 'day' is not concurrency-safe because non-'Sendable' type 'SBUnitTime' may have shared mutable state; this is an error in the Swift 6 language mode
62 | }
63 |
64 | public struct SBUnitTime: SBUnit {
   |               `- note: consider making struct 'SBUnitTime' conform to the 'Sendable' protocol
65 |     public var rawValue: TimeInterval
66 |     public init(rawValue: TimeInterval) { self.rawValue = rawValue }
   :
68 |     public static let minute = Self(rawValue: 60)
69 |     public static let hour = Self(rawValue: 60 * minute.rawValue)
70 |     public static let day = Self(rawValue: 24 * hour.rawValue)
   |                       |- warning: static property 'day' is not concurrency-safe because non-'Sendable' type 'SBUnitTime' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'day' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
71 | }
72 |
[59/67] Compiling SpellbookFoundation Extensions - Formatters.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/Extensions - Codable.swift:25:13: warning: let 'codableLogger' is not concurrency-safe because non-'Sendable' type 'any SpellbookLog' may have shared mutable state; this is an error in the Swift 6 language mode
 23 | import Foundation
 24 |
 25 | private let codableLogger = SpellbookLogger.internal(category: "Codable")
    |             |- warning: let 'codableLogger' is not concurrency-safe because non-'Sendable' type 'any SpellbookLog' may have shared mutable state; this is an error in the Swift 6 language mode
    |             |- note: annotate 'codableLogger' with '@MainActor' if property should only be accessed from the main actor
    |             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 26 |
 27 | extension Encodable {
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/SpellbookLog.swift:26:17: note: protocol 'SpellbookLog' does not conform to the 'Sendable' protocol
 24 | import os
 25 |
 26 | public protocol SpellbookLog {
    |                 `- note: protocol 'SpellbookLog' does not conform to the 'Sendable' protocol
 27 |     func _custom(
 28 |         level: SpellbookLogLevel,
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/SBUnit.swift:59:23: warning: static property 'kilobyte' is not concurrency-safe because non-'Sendable' type 'SBUnitInformationStorage' may have shared mutable state; this is an error in the Swift 6 language mode
53 | }
54 |
55 | public struct SBUnitInformationStorage: SBUnit {
   |               `- note: consider making struct 'SBUnitInformationStorage' conform to the 'Sendable' protocol
56 |     public var rawValue: Int
57 |     public init(rawValue: Int) { self.rawValue = rawValue }
58 |
59 |     public static let kilobyte = Self(rawValue: 1024)
   |                       |- warning: static property 'kilobyte' is not concurrency-safe because non-'Sendable' type 'SBUnitInformationStorage' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'kilobyte' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
60 |     public static let megabyte = Self(rawValue: 1024 * kilobyte.rawValue)
61 |     public static let gigabyte = Self(rawValue: 1024 * megabyte.rawValue)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/SBUnit.swift:60:23: warning: static property 'megabyte' is not concurrency-safe because non-'Sendable' type 'SBUnitInformationStorage' may have shared mutable state; this is an error in the Swift 6 language mode
53 | }
54 |
55 | public struct SBUnitInformationStorage: SBUnit {
   |               `- note: consider making struct 'SBUnitInformationStorage' conform to the 'Sendable' protocol
56 |     public var rawValue: Int
57 |     public init(rawValue: Int) { self.rawValue = rawValue }
58 |
59 |     public static let kilobyte = Self(rawValue: 1024)
60 |     public static let megabyte = Self(rawValue: 1024 * kilobyte.rawValue)
   |                       |- warning: static property 'megabyte' is not concurrency-safe because non-'Sendable' type 'SBUnitInformationStorage' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'megabyte' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
61 |     public static let gigabyte = Self(rawValue: 1024 * megabyte.rawValue)
62 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/SBUnit.swift:61:23: warning: static property 'gigabyte' is not concurrency-safe because non-'Sendable' type 'SBUnitInformationStorage' may have shared mutable state; this is an error in the Swift 6 language mode
53 | }
54 |
55 | public struct SBUnitInformationStorage: SBUnit {
   |               `- note: consider making struct 'SBUnitInformationStorage' conform to the 'Sendable' protocol
56 |     public var rawValue: Int
57 |     public init(rawValue: Int) { self.rawValue = rawValue }
   :
59 |     public static let kilobyte = Self(rawValue: 1024)
60 |     public static let megabyte = Self(rawValue: 1024 * kilobyte.rawValue)
61 |     public static let gigabyte = Self(rawValue: 1024 * megabyte.rawValue)
   |                       |- warning: static property 'gigabyte' is not concurrency-safe because non-'Sendable' type 'SBUnitInformationStorage' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'gigabyte' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
62 | }
63 |
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/SBUnit.swift:68:23: warning: static property 'minute' is not concurrency-safe because non-'Sendable' type 'SBUnitTime' may have shared mutable state; this is an error in the Swift 6 language mode
62 | }
63 |
64 | public struct SBUnitTime: SBUnit {
   |               `- note: consider making struct 'SBUnitTime' conform to the 'Sendable' protocol
65 |     public var rawValue: TimeInterval
66 |     public init(rawValue: TimeInterval) { self.rawValue = rawValue }
67 |
68 |     public static let minute = Self(rawValue: 60)
   |                       |- warning: static property 'minute' is not concurrency-safe because non-'Sendable' type 'SBUnitTime' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'minute' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
69 |     public static let hour = Self(rawValue: 60 * minute.rawValue)
70 |     public static let day = Self(rawValue: 24 * hour.rawValue)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/SBUnit.swift:69:23: warning: static property 'hour' is not concurrency-safe because non-'Sendable' type 'SBUnitTime' may have shared mutable state; this is an error in the Swift 6 language mode
62 | }
63 |
64 | public struct SBUnitTime: SBUnit {
   |               `- note: consider making struct 'SBUnitTime' conform to the 'Sendable' protocol
65 |     public var rawValue: TimeInterval
66 |     public init(rawValue: TimeInterval) { self.rawValue = rawValue }
67 |
68 |     public static let minute = Self(rawValue: 60)
69 |     public static let hour = Self(rawValue: 60 * minute.rawValue)
   |                       |- warning: static property 'hour' is not concurrency-safe because non-'Sendable' type 'SBUnitTime' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'hour' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
70 |     public static let day = Self(rawValue: 24 * hour.rawValue)
71 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/SBUnit.swift:70:23: warning: static property 'day' is not concurrency-safe because non-'Sendable' type 'SBUnitTime' may have shared mutable state; this is an error in the Swift 6 language mode
62 | }
63 |
64 | public struct SBUnitTime: SBUnit {
   |               `- note: consider making struct 'SBUnitTime' conform to the 'Sendable' protocol
65 |     public var rawValue: TimeInterval
66 |     public init(rawValue: TimeInterval) { self.rawValue = rawValue }
   :
68 |     public static let minute = Self(rawValue: 60)
69 |     public static let hour = Self(rawValue: 60 * minute.rawValue)
70 |     public static let day = Self(rawValue: 24 * hour.rawValue)
   |                       |- warning: static property 'day' is not concurrency-safe because non-'Sendable' type 'SBUnitTime' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'day' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
71 | }
72 |
[60/67] Compiling SpellbookFoundation Extensions - StandardTypes.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/Extensions - Codable.swift:25:13: warning: let 'codableLogger' is not concurrency-safe because non-'Sendable' type 'any SpellbookLog' may have shared mutable state; this is an error in the Swift 6 language mode
 23 | import Foundation
 24 |
 25 | private let codableLogger = SpellbookLogger.internal(category: "Codable")
    |             |- warning: let 'codableLogger' is not concurrency-safe because non-'Sendable' type 'any SpellbookLog' may have shared mutable state; this is an error in the Swift 6 language mode
    |             |- note: annotate 'codableLogger' with '@MainActor' if property should only be accessed from the main actor
    |             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 26 |
 27 | extension Encodable {
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/SpellbookLog.swift:26:17: note: protocol 'SpellbookLog' does not conform to the 'Sendable' protocol
 24 | import os
 25 |
 26 | public protocol SpellbookLog {
    |                 `- note: protocol 'SpellbookLog' does not conform to the 'Sendable' protocol
 27 |     func _custom(
 28 |         level: SpellbookLogLevel,
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/SBUnit.swift:59:23: warning: static property 'kilobyte' is not concurrency-safe because non-'Sendable' type 'SBUnitInformationStorage' may have shared mutable state; this is an error in the Swift 6 language mode
53 | }
54 |
55 | public struct SBUnitInformationStorage: SBUnit {
   |               `- note: consider making struct 'SBUnitInformationStorage' conform to the 'Sendable' protocol
56 |     public var rawValue: Int
57 |     public init(rawValue: Int) { self.rawValue = rawValue }
58 |
59 |     public static let kilobyte = Self(rawValue: 1024)
   |                       |- warning: static property 'kilobyte' is not concurrency-safe because non-'Sendable' type 'SBUnitInformationStorage' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'kilobyte' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
60 |     public static let megabyte = Self(rawValue: 1024 * kilobyte.rawValue)
61 |     public static let gigabyte = Self(rawValue: 1024 * megabyte.rawValue)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/SBUnit.swift:60:23: warning: static property 'megabyte' is not concurrency-safe because non-'Sendable' type 'SBUnitInformationStorage' may have shared mutable state; this is an error in the Swift 6 language mode
53 | }
54 |
55 | public struct SBUnitInformationStorage: SBUnit {
   |               `- note: consider making struct 'SBUnitInformationStorage' conform to the 'Sendable' protocol
56 |     public var rawValue: Int
57 |     public init(rawValue: Int) { self.rawValue = rawValue }
58 |
59 |     public static let kilobyte = Self(rawValue: 1024)
60 |     public static let megabyte = Self(rawValue: 1024 * kilobyte.rawValue)
   |                       |- warning: static property 'megabyte' is not concurrency-safe because non-'Sendable' type 'SBUnitInformationStorage' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'megabyte' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
61 |     public static let gigabyte = Self(rawValue: 1024 * megabyte.rawValue)
62 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/SBUnit.swift:61:23: warning: static property 'gigabyte' is not concurrency-safe because non-'Sendable' type 'SBUnitInformationStorage' may have shared mutable state; this is an error in the Swift 6 language mode
53 | }
54 |
55 | public struct SBUnitInformationStorage: SBUnit {
   |               `- note: consider making struct 'SBUnitInformationStorage' conform to the 'Sendable' protocol
56 |     public var rawValue: Int
57 |     public init(rawValue: Int) { self.rawValue = rawValue }
   :
59 |     public static let kilobyte = Self(rawValue: 1024)
60 |     public static let megabyte = Self(rawValue: 1024 * kilobyte.rawValue)
61 |     public static let gigabyte = Self(rawValue: 1024 * megabyte.rawValue)
   |                       |- warning: static property 'gigabyte' is not concurrency-safe because non-'Sendable' type 'SBUnitInformationStorage' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'gigabyte' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
62 | }
63 |
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/SBUnit.swift:68:23: warning: static property 'minute' is not concurrency-safe because non-'Sendable' type 'SBUnitTime' may have shared mutable state; this is an error in the Swift 6 language mode
62 | }
63 |
64 | public struct SBUnitTime: SBUnit {
   |               `- note: consider making struct 'SBUnitTime' conform to the 'Sendable' protocol
65 |     public var rawValue: TimeInterval
66 |     public init(rawValue: TimeInterval) { self.rawValue = rawValue }
67 |
68 |     public static let minute = Self(rawValue: 60)
   |                       |- warning: static property 'minute' is not concurrency-safe because non-'Sendable' type 'SBUnitTime' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'minute' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
69 |     public static let hour = Self(rawValue: 60 * minute.rawValue)
70 |     public static let day = Self(rawValue: 24 * hour.rawValue)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/SBUnit.swift:69:23: warning: static property 'hour' is not concurrency-safe because non-'Sendable' type 'SBUnitTime' may have shared mutable state; this is an error in the Swift 6 language mode
62 | }
63 |
64 | public struct SBUnitTime: SBUnit {
   |               `- note: consider making struct 'SBUnitTime' conform to the 'Sendable' protocol
65 |     public var rawValue: TimeInterval
66 |     public init(rawValue: TimeInterval) { self.rawValue = rawValue }
67 |
68 |     public static let minute = Self(rawValue: 60)
69 |     public static let hour = Self(rawValue: 60 * minute.rawValue)
   |                       |- warning: static property 'hour' is not concurrency-safe because non-'Sendable' type 'SBUnitTime' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'hour' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
70 |     public static let day = Self(rawValue: 24 * hour.rawValue)
71 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/SBUnit.swift:70:23: warning: static property 'day' is not concurrency-safe because non-'Sendable' type 'SBUnitTime' may have shared mutable state; this is an error in the Swift 6 language mode
62 | }
63 |
64 | public struct SBUnitTime: SBUnit {
   |               `- note: consider making struct 'SBUnitTime' conform to the 'Sendable' protocol
65 |     public var rawValue: TimeInterval
66 |     public init(rawValue: TimeInterval) { self.rawValue = rawValue }
   :
68 |     public static let minute = Self(rawValue: 60)
69 |     public static let hour = Self(rawValue: 60 * minute.rawValue)
70 |     public static let day = Self(rawValue: 24 * hour.rawValue)
   |                       |- warning: static property 'day' is not concurrency-safe because non-'Sendable' type 'SBUnitTime' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'day' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
71 | }
72 |
[61/67] Compiling SpellbookFoundation SBUnit.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/Extensions - Codable.swift:25:13: warning: let 'codableLogger' is not concurrency-safe because non-'Sendable' type 'any SpellbookLog' may have shared mutable state; this is an error in the Swift 6 language mode
 23 | import Foundation
 24 |
 25 | private let codableLogger = SpellbookLogger.internal(category: "Codable")
    |             |- warning: let 'codableLogger' is not concurrency-safe because non-'Sendable' type 'any SpellbookLog' may have shared mutable state; this is an error in the Swift 6 language mode
    |             |- note: annotate 'codableLogger' with '@MainActor' if property should only be accessed from the main actor
    |             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 26 |
 27 | extension Encodable {
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/SpellbookLog.swift:26:17: note: protocol 'SpellbookLog' does not conform to the 'Sendable' protocol
 24 | import os
 25 |
 26 | public protocol SpellbookLog {
    |                 `- note: protocol 'SpellbookLog' does not conform to the 'Sendable' protocol
 27 |     func _custom(
 28 |         level: SpellbookLogLevel,
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/SBUnit.swift:59:23: warning: static property 'kilobyte' is not concurrency-safe because non-'Sendable' type 'SBUnitInformationStorage' may have shared mutable state; this is an error in the Swift 6 language mode
53 | }
54 |
55 | public struct SBUnitInformationStorage: SBUnit {
   |               `- note: consider making struct 'SBUnitInformationStorage' conform to the 'Sendable' protocol
56 |     public var rawValue: Int
57 |     public init(rawValue: Int) { self.rawValue = rawValue }
58 |
59 |     public static let kilobyte = Self(rawValue: 1024)
   |                       |- warning: static property 'kilobyte' is not concurrency-safe because non-'Sendable' type 'SBUnitInformationStorage' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'kilobyte' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
60 |     public static let megabyte = Self(rawValue: 1024 * kilobyte.rawValue)
61 |     public static let gigabyte = Self(rawValue: 1024 * megabyte.rawValue)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/SBUnit.swift:60:23: warning: static property 'megabyte' is not concurrency-safe because non-'Sendable' type 'SBUnitInformationStorage' may have shared mutable state; this is an error in the Swift 6 language mode
53 | }
54 |
55 | public struct SBUnitInformationStorage: SBUnit {
   |               `- note: consider making struct 'SBUnitInformationStorage' conform to the 'Sendable' protocol
56 |     public var rawValue: Int
57 |     public init(rawValue: Int) { self.rawValue = rawValue }
58 |
59 |     public static let kilobyte = Self(rawValue: 1024)
60 |     public static let megabyte = Self(rawValue: 1024 * kilobyte.rawValue)
   |                       |- warning: static property 'megabyte' is not concurrency-safe because non-'Sendable' type 'SBUnitInformationStorage' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'megabyte' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
61 |     public static let gigabyte = Self(rawValue: 1024 * megabyte.rawValue)
62 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/SBUnit.swift:61:23: warning: static property 'gigabyte' is not concurrency-safe because non-'Sendable' type 'SBUnitInformationStorage' may have shared mutable state; this is an error in the Swift 6 language mode
53 | }
54 |
55 | public struct SBUnitInformationStorage: SBUnit {
   |               `- note: consider making struct 'SBUnitInformationStorage' conform to the 'Sendable' protocol
56 |     public var rawValue: Int
57 |     public init(rawValue: Int) { self.rawValue = rawValue }
   :
59 |     public static let kilobyte = Self(rawValue: 1024)
60 |     public static let megabyte = Self(rawValue: 1024 * kilobyte.rawValue)
61 |     public static let gigabyte = Self(rawValue: 1024 * megabyte.rawValue)
   |                       |- warning: static property 'gigabyte' is not concurrency-safe because non-'Sendable' type 'SBUnitInformationStorage' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'gigabyte' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
62 | }
63 |
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/SBUnit.swift:68:23: warning: static property 'minute' is not concurrency-safe because non-'Sendable' type 'SBUnitTime' may have shared mutable state; this is an error in the Swift 6 language mode
62 | }
63 |
64 | public struct SBUnitTime: SBUnit {
   |               `- note: consider making struct 'SBUnitTime' conform to the 'Sendable' protocol
65 |     public var rawValue: TimeInterval
66 |     public init(rawValue: TimeInterval) { self.rawValue = rawValue }
67 |
68 |     public static let minute = Self(rawValue: 60)
   |                       |- warning: static property 'minute' is not concurrency-safe because non-'Sendable' type 'SBUnitTime' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'minute' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
69 |     public static let hour = Self(rawValue: 60 * minute.rawValue)
70 |     public static let day = Self(rawValue: 24 * hour.rawValue)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/SBUnit.swift:69:23: warning: static property 'hour' is not concurrency-safe because non-'Sendable' type 'SBUnitTime' may have shared mutable state; this is an error in the Swift 6 language mode
62 | }
63 |
64 | public struct SBUnitTime: SBUnit {
   |               `- note: consider making struct 'SBUnitTime' conform to the 'Sendable' protocol
65 |     public var rawValue: TimeInterval
66 |     public init(rawValue: TimeInterval) { self.rawValue = rawValue }
67 |
68 |     public static let minute = Self(rawValue: 60)
69 |     public static let hour = Self(rawValue: 60 * minute.rawValue)
   |                       |- warning: static property 'hour' is not concurrency-safe because non-'Sendable' type 'SBUnitTime' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'hour' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
70 |     public static let day = Self(rawValue: 24 * hour.rawValue)
71 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/SBUnit.swift:70:23: warning: static property 'day' is not concurrency-safe because non-'Sendable' type 'SBUnitTime' may have shared mutable state; this is an error in the Swift 6 language mode
62 | }
63 |
64 | public struct SBUnitTime: SBUnit {
   |               `- note: consider making struct 'SBUnitTime' conform to the 'Sendable' protocol
65 |     public var rawValue: TimeInterval
66 |     public init(rawValue: TimeInterval) { self.rawValue = rawValue }
   :
68 |     public static let minute = Self(rawValue: 60)
69 |     public static let hour = Self(rawValue: 60 * minute.rawValue)
70 |     public static let day = Self(rawValue: 24 * hour.rawValue)
   |                       |- warning: static property 'day' is not concurrency-safe because non-'Sendable' type 'SBUnitTime' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'day' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
71 | }
72 |
[62/67] Compiling SpellbookFoundation EventAsk.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:26:13: warning: let 'log' is not concurrency-safe because non-'Sendable' type 'any SpellbookLog' may have shared mutable state; this is an error in the Swift 6 language mode
 24 | import Foundation
 25 |
 26 | private let log = SpellbookLogger.internal(category: "EventAsk")
    |             |- warning: let 'log' is not concurrency-safe because non-'Sendable' type 'any SpellbookLog' may have shared mutable state; this is an error in the Swift 6 language mode
    |             |- note: annotate 'log' with '@MainActor' if property should only be accessed from the main actor
    |             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 27 |
 28 | public typealias EventAskCombined<Input, Output> = EventAskEx<Input, Output, Output>
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/SpellbookLog.swift:26:17: note: protocol 'SpellbookLog' does not conform to the 'Sendable' protocol
 24 | import os
 25 |
 26 | public protocol SpellbookLog {
    |                 `- note: protocol 'SpellbookLog' does not conform to the 'Sendable' protocol
 27 |     func _custom(
 28 |         level: SpellbookLogLevel,
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:110:24: warning: capture of 'once' with non-sendable type 'AtomicFlag' in a `@Sendable` closure; this is an error in the Swift 6 language mode
108 |         if let timeout {
109 |             queue.asyncAfter(delay: timeout.interval) {
110 |                 guard !once.testAndSet() else { return }
    |                        `- warning: capture of 'once' with non-sendable type 'AtomicFlag' in a `@Sendable` closure; this is an error in the Swift 6 language mode
111 |                 completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
112 |             }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Atomic.swift:58:20: note: class 'AtomicFlag' does not conform to the 'Sendable' protocol
56 | }
57 |
58 | public final class AtomicFlag {
   |                    `- note: class 'AtomicFlag' does not conform to the 'Sendable' protocol
59 |     private let pointer: UnsafeMutablePointer<atomic_flag>
60 |
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:17: warning: capture of 'completion' with non-sendable type '(Output) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
109 |             queue.asyncAfter(delay: timeout.interval) {
110 |                 guard !once.testAndSet() else { return }
111 |                 completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
    |                 |- warning: capture of 'completion' with non-sendable type '(Output) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
112 |             }
113 |         }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:28: warning: capture of 'values' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Values' in a `@Sendable` closure; this is an error in the Swift 6 language mode
109 |             queue.asyncAfter(delay: timeout.interval) {
110 |                 guard !once.testAndSet() else { return }
111 |                 completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
    |                            `- warning: capture of 'values' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Values' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 |             }
113 |         }
    :
171 |
172 | extension EventAskEx {
173 |     private class Values {
    |                   `- note: class 'Values' does not conform to the 'Sendable' protocol
174 |         private var values: [Transformed?]
175 |         private var lock = UnfairLock()
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:49: warning: capture of 'timeout' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Timeout' in a `@Sendable` closure; this is an error in the Swift 6 language mode
109 |             queue.asyncAfter(delay: timeout.interval) {
110 |                 guard !once.testAndSet() else { return }
111 |                 completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
    |                                                 `- warning: capture of 'timeout' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Timeout' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 |             }
113 |         }
    :
150 |
151 | extension EventAskEx {
152 |     public struct Timeout {
    |                   `- note: consider making struct 'Timeout' conform to the 'Sendable' protocol
153 |         public var interval: TimeInterval
154 |         public var onTimeout: () -> Fallback? = { nil }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:79: warning: capture of 'self' with non-sendable type 'EventAskEx<Input, Transformed, Output>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 29 | public typealias EventAsk<Input, Output> = EventAskEx<Input, Output, [Output]>
 30 |
 31 | public class EventAskEx<Input, Transformed, Output> {
    |              `- note: generic class 'EventAskEx' does not conform to the 'Sendable' protocol
 32 |     private typealias Entry<T> = (transform: AsyncTransform, queue: DispatchQueue?)
 33 |     private let transforms = Synchronized<[UUID: Entry<AsyncTransform>]>(.concurrent)
    :
109 |             queue.asyncAfter(delay: timeout.interval) {
110 |                 guard !once.testAndSet() else { return }
111 |                 completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
    |                                                                               `- warning: capture of 'self' with non-sendable type 'EventAskEx<Input, Transformed, Output>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 |             }
113 |         }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventNotify.swift:76:33: warning: capture of 'action' with non-sendable type '(T, Any?) -> Void' in a `@Sendable` closure
74 |     private func notifyOne(_ value: T, _ context: Any?, action: @escaping (T, Any?) -> Void) {
75 |         if let notifyQueue = notifyQueue {
76 |             notifyQueue.async { action(value, context) }
   |                                 |- warning: capture of 'action' with non-sendable type '(T, Any?) -> Void' in a `@Sendable` closure
   |                                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
77 |         } else {
78 |             action(value, context)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventNotify.swift:76:40: warning: capture of 'value' with non-sendable type 'T' in a `@Sendable` closure
23 | import Foundation
24 |
25 | public final class EventNotify<T>: ValueObserving {
   |                                `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
26 |     private typealias Handler = (T, Any?) -> Void
27 |
   :
74 |     private func notifyOne(_ value: T, _ context: Any?, action: @escaping (T, Any?) -> Void) {
75 |         if let notifyQueue = notifyQueue {
76 |             notifyQueue.async { action(value, context) }
   |                                        `- warning: capture of 'value' with non-sendable type 'T' in a `@Sendable` closure
77 |         } else {
78 |             action(value, context)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventNotify.swift:76:47: warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure
74 |     private func notifyOne(_ value: T, _ context: Any?, action: @escaping (T, Any?) -> Void) {
75 |         if let notifyQueue = notifyQueue {
76 |             notifyQueue.async { action(value, context) }
   |                                               `- warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure
77 |         } else {
78 |             action(value, context)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:75:31: warning: capture of 'receiveValue' with non-sendable type '(Self.Value, Any?) -> Void' in a `@Sendable` closure
 73 |         AnyValueObserving { suppressInitialNotify, receiveValue in
 74 |             self.subscribe(suppressInitialNotify: suppressInitialNotify) { value, context in
 75 |                 queue.async { receiveValue(value, context) }
    |                               |- warning: capture of 'receiveValue' with non-sendable type '(Self.Value, Any?) -> Void' in a `@Sendable` closure
    |                               `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 76 |             }
 77 |         }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:75:44: warning: capture of 'value' with non-sendable type 'Self.Value' in a `@Sendable` closure
 73 |         AnyValueObserving { suppressInitialNotify, receiveValue in
 74 |             self.subscribe(suppressInitialNotify: suppressInitialNotify) { value, context in
 75 |                 queue.async { receiveValue(value, context) }
    |                                            `- warning: capture of 'value' with non-sendable type 'Self.Value' in a `@Sendable` closure
 76 |             }
 77 |         }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:75:51: warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure
 73 |         AnyValueObserving { suppressInitialNotify, receiveValue in
 74 |             self.subscribe(suppressInitialNotify: suppressInitialNotify) { value, context in
 75 |                 queue.async { receiveValue(value, context) }
    |                                                   `- warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure
 76 |             }
 77 |         }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:62:62: warning: sending '$0' risks causing data races; this is an error in the Swift 6 language mode
 60 |     public func ask(_ value: Input, timeout: Timeout? = nil) async -> Output {
 61 |         await withCheckedContinuation { continuation in
 62 |             askAsync(value, timeout: timeout) { continuation.resume(returning: $0) }
    |                                                              |- warning: sending '$0' risks causing data races; this is an error in the Swift 6 language mode
    |                                                              `- note: task-isolated '$0' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
 63 |         }
 64 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:144:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
142 |     public func subscribe(transform: @escaping ConcurrentTransform) -> SubscriptionToken {
143 |         subscribe(on: nil) { input, reply in
144 |             Task {
    |                  `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
145 |                 reply(await transform(input))
    |                             `- note: closure captures 'transform' which is accessible to code in the current task
146 |             }
147 |         }
[63/67] Compiling SpellbookFoundation EventNotify.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:26:13: warning: let 'log' is not concurrency-safe because non-'Sendable' type 'any SpellbookLog' may have shared mutable state; this is an error in the Swift 6 language mode
 24 | import Foundation
 25 |
 26 | private let log = SpellbookLogger.internal(category: "EventAsk")
    |             |- warning: let 'log' is not concurrency-safe because non-'Sendable' type 'any SpellbookLog' may have shared mutable state; this is an error in the Swift 6 language mode
    |             |- note: annotate 'log' with '@MainActor' if property should only be accessed from the main actor
    |             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 27 |
 28 | public typealias EventAskCombined<Input, Output> = EventAskEx<Input, Output, Output>
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/SpellbookLog.swift:26:17: note: protocol 'SpellbookLog' does not conform to the 'Sendable' protocol
 24 | import os
 25 |
 26 | public protocol SpellbookLog {
    |                 `- note: protocol 'SpellbookLog' does not conform to the 'Sendable' protocol
 27 |     func _custom(
 28 |         level: SpellbookLogLevel,
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:110:24: warning: capture of 'once' with non-sendable type 'AtomicFlag' in a `@Sendable` closure; this is an error in the Swift 6 language mode
108 |         if let timeout {
109 |             queue.asyncAfter(delay: timeout.interval) {
110 |                 guard !once.testAndSet() else { return }
    |                        `- warning: capture of 'once' with non-sendable type 'AtomicFlag' in a `@Sendable` closure; this is an error in the Swift 6 language mode
111 |                 completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
112 |             }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Atomic.swift:58:20: note: class 'AtomicFlag' does not conform to the 'Sendable' protocol
56 | }
57 |
58 | public final class AtomicFlag {
   |                    `- note: class 'AtomicFlag' does not conform to the 'Sendable' protocol
59 |     private let pointer: UnsafeMutablePointer<atomic_flag>
60 |
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:17: warning: capture of 'completion' with non-sendable type '(Output) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
109 |             queue.asyncAfter(delay: timeout.interval) {
110 |                 guard !once.testAndSet() else { return }
111 |                 completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
    |                 |- warning: capture of 'completion' with non-sendable type '(Output) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
112 |             }
113 |         }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:28: warning: capture of 'values' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Values' in a `@Sendable` closure; this is an error in the Swift 6 language mode
109 |             queue.asyncAfter(delay: timeout.interval) {
110 |                 guard !once.testAndSet() else { return }
111 |                 completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
    |                            `- warning: capture of 'values' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Values' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 |             }
113 |         }
    :
171 |
172 | extension EventAskEx {
173 |     private class Values {
    |                   `- note: class 'Values' does not conform to the 'Sendable' protocol
174 |         private var values: [Transformed?]
175 |         private var lock = UnfairLock()
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:49: warning: capture of 'timeout' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Timeout' in a `@Sendable` closure; this is an error in the Swift 6 language mode
109 |             queue.asyncAfter(delay: timeout.interval) {
110 |                 guard !once.testAndSet() else { return }
111 |                 completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
    |                                                 `- warning: capture of 'timeout' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Timeout' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 |             }
113 |         }
    :
150 |
151 | extension EventAskEx {
152 |     public struct Timeout {
    |                   `- note: consider making struct 'Timeout' conform to the 'Sendable' protocol
153 |         public var interval: TimeInterval
154 |         public var onTimeout: () -> Fallback? = { nil }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:79: warning: capture of 'self' with non-sendable type 'EventAskEx<Input, Transformed, Output>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 29 | public typealias EventAsk<Input, Output> = EventAskEx<Input, Output, [Output]>
 30 |
 31 | public class EventAskEx<Input, Transformed, Output> {
    |              `- note: generic class 'EventAskEx' does not conform to the 'Sendable' protocol
 32 |     private typealias Entry<T> = (transform: AsyncTransform, queue: DispatchQueue?)
 33 |     private let transforms = Synchronized<[UUID: Entry<AsyncTransform>]>(.concurrent)
    :
109 |             queue.asyncAfter(delay: timeout.interval) {
110 |                 guard !once.testAndSet() else { return }
111 |                 completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
    |                                                                               `- warning: capture of 'self' with non-sendable type 'EventAskEx<Input, Transformed, Output>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 |             }
113 |         }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventNotify.swift:76:33: warning: capture of 'action' with non-sendable type '(T, Any?) -> Void' in a `@Sendable` closure
74 |     private func notifyOne(_ value: T, _ context: Any?, action: @escaping (T, Any?) -> Void) {
75 |         if let notifyQueue = notifyQueue {
76 |             notifyQueue.async { action(value, context) }
   |                                 |- warning: capture of 'action' with non-sendable type '(T, Any?) -> Void' in a `@Sendable` closure
   |                                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
77 |         } else {
78 |             action(value, context)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventNotify.swift:76:40: warning: capture of 'value' with non-sendable type 'T' in a `@Sendable` closure
23 | import Foundation
24 |
25 | public final class EventNotify<T>: ValueObserving {
   |                                `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
26 |     private typealias Handler = (T, Any?) -> Void
27 |
   :
74 |     private func notifyOne(_ value: T, _ context: Any?, action: @escaping (T, Any?) -> Void) {
75 |         if let notifyQueue = notifyQueue {
76 |             notifyQueue.async { action(value, context) }
   |                                        `- warning: capture of 'value' with non-sendable type 'T' in a `@Sendable` closure
77 |         } else {
78 |             action(value, context)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventNotify.swift:76:47: warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure
74 |     private func notifyOne(_ value: T, _ context: Any?, action: @escaping (T, Any?) -> Void) {
75 |         if let notifyQueue = notifyQueue {
76 |             notifyQueue.async { action(value, context) }
   |                                               `- warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure
77 |         } else {
78 |             action(value, context)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:75:31: warning: capture of 'receiveValue' with non-sendable type '(Self.Value, Any?) -> Void' in a `@Sendable` closure
 73 |         AnyValueObserving { suppressInitialNotify, receiveValue in
 74 |             self.subscribe(suppressInitialNotify: suppressInitialNotify) { value, context in
 75 |                 queue.async { receiveValue(value, context) }
    |                               |- warning: capture of 'receiveValue' with non-sendable type '(Self.Value, Any?) -> Void' in a `@Sendable` closure
    |                               `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 76 |             }
 77 |         }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:75:44: warning: capture of 'value' with non-sendable type 'Self.Value' in a `@Sendable` closure
 73 |         AnyValueObserving { suppressInitialNotify, receiveValue in
 74 |             self.subscribe(suppressInitialNotify: suppressInitialNotify) { value, context in
 75 |                 queue.async { receiveValue(value, context) }
    |                                            `- warning: capture of 'value' with non-sendable type 'Self.Value' in a `@Sendable` closure
 76 |             }
 77 |         }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:75:51: warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure
 73 |         AnyValueObserving { suppressInitialNotify, receiveValue in
 74 |             self.subscribe(suppressInitialNotify: suppressInitialNotify) { value, context in
 75 |                 queue.async { receiveValue(value, context) }
    |                                                   `- warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure
 76 |             }
 77 |         }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:62:62: warning: sending '$0' risks causing data races; this is an error in the Swift 6 language mode
 60 |     public func ask(_ value: Input, timeout: Timeout? = nil) async -> Output {
 61 |         await withCheckedContinuation { continuation in
 62 |             askAsync(value, timeout: timeout) { continuation.resume(returning: $0) }
    |                                                              |- warning: sending '$0' risks causing data races; this is an error in the Swift 6 language mode
    |                                                              `- note: task-isolated '$0' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
 63 |         }
 64 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:144:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
142 |     public func subscribe(transform: @escaping ConcurrentTransform) -> SubscriptionToken {
143 |         subscribe(on: nil) { input, reply in
144 |             Task {
    |                  `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
145 |                 reply(await transform(input))
    |                             `- note: closure captures 'transform' which is accessible to code in the current task
146 |             }
147 |         }
[64/67] Compiling SpellbookFoundation ValueObservable.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:26:13: warning: let 'log' is not concurrency-safe because non-'Sendable' type 'any SpellbookLog' may have shared mutable state; this is an error in the Swift 6 language mode
 24 | import Foundation
 25 |
 26 | private let log = SpellbookLogger.internal(category: "EventAsk")
    |             |- warning: let 'log' is not concurrency-safe because non-'Sendable' type 'any SpellbookLog' may have shared mutable state; this is an error in the Swift 6 language mode
    |             |- note: annotate 'log' with '@MainActor' if property should only be accessed from the main actor
    |             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 27 |
 28 | public typealias EventAskCombined<Input, Output> = EventAskEx<Input, Output, Output>
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/SpellbookLog.swift:26:17: note: protocol 'SpellbookLog' does not conform to the 'Sendable' protocol
 24 | import os
 25 |
 26 | public protocol SpellbookLog {
    |                 `- note: protocol 'SpellbookLog' does not conform to the 'Sendable' protocol
 27 |     func _custom(
 28 |         level: SpellbookLogLevel,
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:110:24: warning: capture of 'once' with non-sendable type 'AtomicFlag' in a `@Sendable` closure; this is an error in the Swift 6 language mode
108 |         if let timeout {
109 |             queue.asyncAfter(delay: timeout.interval) {
110 |                 guard !once.testAndSet() else { return }
    |                        `- warning: capture of 'once' with non-sendable type 'AtomicFlag' in a `@Sendable` closure; this is an error in the Swift 6 language mode
111 |                 completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
112 |             }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Atomic.swift:58:20: note: class 'AtomicFlag' does not conform to the 'Sendable' protocol
56 | }
57 |
58 | public final class AtomicFlag {
   |                    `- note: class 'AtomicFlag' does not conform to the 'Sendable' protocol
59 |     private let pointer: UnsafeMutablePointer<atomic_flag>
60 |
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:17: warning: capture of 'completion' with non-sendable type '(Output) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
109 |             queue.asyncAfter(delay: timeout.interval) {
110 |                 guard !once.testAndSet() else { return }
111 |                 completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
    |                 |- warning: capture of 'completion' with non-sendable type '(Output) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
112 |             }
113 |         }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:28: warning: capture of 'values' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Values' in a `@Sendable` closure; this is an error in the Swift 6 language mode
109 |             queue.asyncAfter(delay: timeout.interval) {
110 |                 guard !once.testAndSet() else { return }
111 |                 completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
    |                            `- warning: capture of 'values' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Values' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 |             }
113 |         }
    :
171 |
172 | extension EventAskEx {
173 |     private class Values {
    |                   `- note: class 'Values' does not conform to the 'Sendable' protocol
174 |         private var values: [Transformed?]
175 |         private var lock = UnfairLock()
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:49: warning: capture of 'timeout' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Timeout' in a `@Sendable` closure; this is an error in the Swift 6 language mode
109 |             queue.asyncAfter(delay: timeout.interval) {
110 |                 guard !once.testAndSet() else { return }
111 |                 completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
    |                                                 `- warning: capture of 'timeout' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Timeout' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 |             }
113 |         }
    :
150 |
151 | extension EventAskEx {
152 |     public struct Timeout {
    |                   `- note: consider making struct 'Timeout' conform to the 'Sendable' protocol
153 |         public var interval: TimeInterval
154 |         public var onTimeout: () -> Fallback? = { nil }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:79: warning: capture of 'self' with non-sendable type 'EventAskEx<Input, Transformed, Output>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 29 | public typealias EventAsk<Input, Output> = EventAskEx<Input, Output, [Output]>
 30 |
 31 | public class EventAskEx<Input, Transformed, Output> {
    |              `- note: generic class 'EventAskEx' does not conform to the 'Sendable' protocol
 32 |     private typealias Entry<T> = (transform: AsyncTransform, queue: DispatchQueue?)
 33 |     private let transforms = Synchronized<[UUID: Entry<AsyncTransform>]>(.concurrent)
    :
109 |             queue.asyncAfter(delay: timeout.interval) {
110 |                 guard !once.testAndSet() else { return }
111 |                 completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
    |                                                                               `- warning: capture of 'self' with non-sendable type 'EventAskEx<Input, Transformed, Output>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 |             }
113 |         }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventNotify.swift:76:33: warning: capture of 'action' with non-sendable type '(T, Any?) -> Void' in a `@Sendable` closure
74 |     private func notifyOne(_ value: T, _ context: Any?, action: @escaping (T, Any?) -> Void) {
75 |         if let notifyQueue = notifyQueue {
76 |             notifyQueue.async { action(value, context) }
   |                                 |- warning: capture of 'action' with non-sendable type '(T, Any?) -> Void' in a `@Sendable` closure
   |                                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
77 |         } else {
78 |             action(value, context)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventNotify.swift:76:40: warning: capture of 'value' with non-sendable type 'T' in a `@Sendable` closure
23 | import Foundation
24 |
25 | public final class EventNotify<T>: ValueObserving {
   |                                `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
26 |     private typealias Handler = (T, Any?) -> Void
27 |
   :
74 |     private func notifyOne(_ value: T, _ context: Any?, action: @escaping (T, Any?) -> Void) {
75 |         if let notifyQueue = notifyQueue {
76 |             notifyQueue.async { action(value, context) }
   |                                        `- warning: capture of 'value' with non-sendable type 'T' in a `@Sendable` closure
77 |         } else {
78 |             action(value, context)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventNotify.swift:76:47: warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure
74 |     private func notifyOne(_ value: T, _ context: Any?, action: @escaping (T, Any?) -> Void) {
75 |         if let notifyQueue = notifyQueue {
76 |             notifyQueue.async { action(value, context) }
   |                                               `- warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure
77 |         } else {
78 |             action(value, context)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:75:31: warning: capture of 'receiveValue' with non-sendable type '(Self.Value, Any?) -> Void' in a `@Sendable` closure
 73 |         AnyValueObserving { suppressInitialNotify, receiveValue in
 74 |             self.subscribe(suppressInitialNotify: suppressInitialNotify) { value, context in
 75 |                 queue.async { receiveValue(value, context) }
    |                               |- warning: capture of 'receiveValue' with non-sendable type '(Self.Value, Any?) -> Void' in a `@Sendable` closure
    |                               `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 76 |             }
 77 |         }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:75:44: warning: capture of 'value' with non-sendable type 'Self.Value' in a `@Sendable` closure
 73 |         AnyValueObserving { suppressInitialNotify, receiveValue in
 74 |             self.subscribe(suppressInitialNotify: suppressInitialNotify) { value, context in
 75 |                 queue.async { receiveValue(value, context) }
    |                                            `- warning: capture of 'value' with non-sendable type 'Self.Value' in a `@Sendable` closure
 76 |             }
 77 |         }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:75:51: warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure
 73 |         AnyValueObserving { suppressInitialNotify, receiveValue in
 74 |             self.subscribe(suppressInitialNotify: suppressInitialNotify) { value, context in
 75 |                 queue.async { receiveValue(value, context) }
    |                                                   `- warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure
 76 |             }
 77 |         }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:62:62: warning: sending '$0' risks causing data races; this is an error in the Swift 6 language mode
 60 |     public func ask(_ value: Input, timeout: Timeout? = nil) async -> Output {
 61 |         await withCheckedContinuation { continuation in
 62 |             askAsync(value, timeout: timeout) { continuation.resume(returning: $0) }
    |                                                              |- warning: sending '$0' risks causing data races; this is an error in the Swift 6 language mode
    |                                                              `- note: task-isolated '$0' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
 63 |         }
 64 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:144:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
142 |     public func subscribe(transform: @escaping ConcurrentTransform) -> SubscriptionToken {
143 |         subscribe(on: nil) { input, reply in
144 |             Task {
    |                  `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
145 |                 reply(await transform(input))
    |                             `- note: closure captures 'transform' which is accessible to code in the current task
146 |             }
147 |         }
[65/67] Compiling SpellbookFoundation ValueObserving.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:26:13: warning: let 'log' is not concurrency-safe because non-'Sendable' type 'any SpellbookLog' may have shared mutable state; this is an error in the Swift 6 language mode
 24 | import Foundation
 25 |
 26 | private let log = SpellbookLogger.internal(category: "EventAsk")
    |             |- warning: let 'log' is not concurrency-safe because non-'Sendable' type 'any SpellbookLog' may have shared mutable state; this is an error in the Swift 6 language mode
    |             |- note: annotate 'log' with '@MainActor' if property should only be accessed from the main actor
    |             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 27 |
 28 | public typealias EventAskCombined<Input, Output> = EventAskEx<Input, Output, Output>
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/SpellbookLog.swift:26:17: note: protocol 'SpellbookLog' does not conform to the 'Sendable' protocol
 24 | import os
 25 |
 26 | public protocol SpellbookLog {
    |                 `- note: protocol 'SpellbookLog' does not conform to the 'Sendable' protocol
 27 |     func _custom(
 28 |         level: SpellbookLogLevel,
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:110:24: warning: capture of 'once' with non-sendable type 'AtomicFlag' in a `@Sendable` closure; this is an error in the Swift 6 language mode
108 |         if let timeout {
109 |             queue.asyncAfter(delay: timeout.interval) {
110 |                 guard !once.testAndSet() else { return }
    |                        `- warning: capture of 'once' with non-sendable type 'AtomicFlag' in a `@Sendable` closure; this is an error in the Swift 6 language mode
111 |                 completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
112 |             }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Atomic.swift:58:20: note: class 'AtomicFlag' does not conform to the 'Sendable' protocol
56 | }
57 |
58 | public final class AtomicFlag {
   |                    `- note: class 'AtomicFlag' does not conform to the 'Sendable' protocol
59 |     private let pointer: UnsafeMutablePointer<atomic_flag>
60 |
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:17: warning: capture of 'completion' with non-sendable type '(Output) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
109 |             queue.asyncAfter(delay: timeout.interval) {
110 |                 guard !once.testAndSet() else { return }
111 |                 completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
    |                 |- warning: capture of 'completion' with non-sendable type '(Output) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
112 |             }
113 |         }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:28: warning: capture of 'values' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Values' in a `@Sendable` closure; this is an error in the Swift 6 language mode
109 |             queue.asyncAfter(delay: timeout.interval) {
110 |                 guard !once.testAndSet() else { return }
111 |                 completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
    |                            `- warning: capture of 'values' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Values' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 |             }
113 |         }
    :
171 |
172 | extension EventAskEx {
173 |     private class Values {
    |                   `- note: class 'Values' does not conform to the 'Sendable' protocol
174 |         private var values: [Transformed?]
175 |         private var lock = UnfairLock()
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:49: warning: capture of 'timeout' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Timeout' in a `@Sendable` closure; this is an error in the Swift 6 language mode
109 |             queue.asyncAfter(delay: timeout.interval) {
110 |                 guard !once.testAndSet() else { return }
111 |                 completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
    |                                                 `- warning: capture of 'timeout' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Timeout' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 |             }
113 |         }
    :
150 |
151 | extension EventAskEx {
152 |     public struct Timeout {
    |                   `- note: consider making struct 'Timeout' conform to the 'Sendable' protocol
153 |         public var interval: TimeInterval
154 |         public var onTimeout: () -> Fallback? = { nil }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:79: warning: capture of 'self' with non-sendable type 'EventAskEx<Input, Transformed, Output>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 29 | public typealias EventAsk<Input, Output> = EventAskEx<Input, Output, [Output]>
 30 |
 31 | public class EventAskEx<Input, Transformed, Output> {
    |              `- note: generic class 'EventAskEx' does not conform to the 'Sendable' protocol
 32 |     private typealias Entry<T> = (transform: AsyncTransform, queue: DispatchQueue?)
 33 |     private let transforms = Synchronized<[UUID: Entry<AsyncTransform>]>(.concurrent)
    :
109 |             queue.asyncAfter(delay: timeout.interval) {
110 |                 guard !once.testAndSet() else { return }
111 |                 completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
    |                                                                               `- warning: capture of 'self' with non-sendable type 'EventAskEx<Input, Transformed, Output>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 |             }
113 |         }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventNotify.swift:76:33: warning: capture of 'action' with non-sendable type '(T, Any?) -> Void' in a `@Sendable` closure
74 |     private func notifyOne(_ value: T, _ context: Any?, action: @escaping (T, Any?) -> Void) {
75 |         if let notifyQueue = notifyQueue {
76 |             notifyQueue.async { action(value, context) }
   |                                 |- warning: capture of 'action' with non-sendable type '(T, Any?) -> Void' in a `@Sendable` closure
   |                                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
77 |         } else {
78 |             action(value, context)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventNotify.swift:76:40: warning: capture of 'value' with non-sendable type 'T' in a `@Sendable` closure
23 | import Foundation
24 |
25 | public final class EventNotify<T>: ValueObserving {
   |                                `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
26 |     private typealias Handler = (T, Any?) -> Void
27 |
   :
74 |     private func notifyOne(_ value: T, _ context: Any?, action: @escaping (T, Any?) -> Void) {
75 |         if let notifyQueue = notifyQueue {
76 |             notifyQueue.async { action(value, context) }
   |                                        `- warning: capture of 'value' with non-sendable type 'T' in a `@Sendable` closure
77 |         } else {
78 |             action(value, context)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventNotify.swift:76:47: warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure
74 |     private func notifyOne(_ value: T, _ context: Any?, action: @escaping (T, Any?) -> Void) {
75 |         if let notifyQueue = notifyQueue {
76 |             notifyQueue.async { action(value, context) }
   |                                               `- warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure
77 |         } else {
78 |             action(value, context)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:75:31: warning: capture of 'receiveValue' with non-sendable type '(Self.Value, Any?) -> Void' in a `@Sendable` closure
 73 |         AnyValueObserving { suppressInitialNotify, receiveValue in
 74 |             self.subscribe(suppressInitialNotify: suppressInitialNotify) { value, context in
 75 |                 queue.async { receiveValue(value, context) }
    |                               |- warning: capture of 'receiveValue' with non-sendable type '(Self.Value, Any?) -> Void' in a `@Sendable` closure
    |                               `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 76 |             }
 77 |         }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:75:44: warning: capture of 'value' with non-sendable type 'Self.Value' in a `@Sendable` closure
 73 |         AnyValueObserving { suppressInitialNotify, receiveValue in
 74 |             self.subscribe(suppressInitialNotify: suppressInitialNotify) { value, context in
 75 |                 queue.async { receiveValue(value, context) }
    |                                            `- warning: capture of 'value' with non-sendable type 'Self.Value' in a `@Sendable` closure
 76 |             }
 77 |         }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:75:51: warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure
 73 |         AnyValueObserving { suppressInitialNotify, receiveValue in
 74 |             self.subscribe(suppressInitialNotify: suppressInitialNotify) { value, context in
 75 |                 queue.async { receiveValue(value, context) }
    |                                                   `- warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure
 76 |             }
 77 |         }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:62:62: warning: sending '$0' risks causing data races; this is an error in the Swift 6 language mode
 60 |     public func ask(_ value: Input, timeout: Timeout? = nil) async -> Output {
 61 |         await withCheckedContinuation { continuation in
 62 |             askAsync(value, timeout: timeout) { continuation.resume(returning: $0) }
    |                                                              |- warning: sending '$0' risks causing data races; this is an error in the Swift 6 language mode
    |                                                              `- note: task-isolated '$0' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
 63 |         }
 64 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:144:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
142 |     public func subscribe(transform: @escaping ConcurrentTransform) -> SubscriptionToken {
143 |         subscribe(on: nil) { input, reply in
144 |             Task {
    |                  `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
145 |                 reply(await transform(input))
    |                             `- note: closure captures 'transform' which is accessible to code in the current task
146 |             }
147 |         }
[66/67] Compiling SpellbookFoundation ValueStore.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:26:13: warning: let 'log' is not concurrency-safe because non-'Sendable' type 'any SpellbookLog' may have shared mutable state; this is an error in the Swift 6 language mode
 24 | import Foundation
 25 |
 26 | private let log = SpellbookLogger.internal(category: "EventAsk")
    |             |- warning: let 'log' is not concurrency-safe because non-'Sendable' type 'any SpellbookLog' may have shared mutable state; this is an error in the Swift 6 language mode
    |             |- note: annotate 'log' with '@MainActor' if property should only be accessed from the main actor
    |             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 27 |
 28 | public typealias EventAskCombined<Input, Output> = EventAskEx<Input, Output, Output>
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/SpellbookLog.swift:26:17: note: protocol 'SpellbookLog' does not conform to the 'Sendable' protocol
 24 | import os
 25 |
 26 | public protocol SpellbookLog {
    |                 `- note: protocol 'SpellbookLog' does not conform to the 'Sendable' protocol
 27 |     func _custom(
 28 |         level: SpellbookLogLevel,
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:110:24: warning: capture of 'once' with non-sendable type 'AtomicFlag' in a `@Sendable` closure; this is an error in the Swift 6 language mode
108 |         if let timeout {
109 |             queue.asyncAfter(delay: timeout.interval) {
110 |                 guard !once.testAndSet() else { return }
    |                        `- warning: capture of 'once' with non-sendable type 'AtomicFlag' in a `@Sendable` closure; this is an error in the Swift 6 language mode
111 |                 completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
112 |             }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Atomic.swift:58:20: note: class 'AtomicFlag' does not conform to the 'Sendable' protocol
56 | }
57 |
58 | public final class AtomicFlag {
   |                    `- note: class 'AtomicFlag' does not conform to the 'Sendable' protocol
59 |     private let pointer: UnsafeMutablePointer<atomic_flag>
60 |
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:17: warning: capture of 'completion' with non-sendable type '(Output) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
109 |             queue.asyncAfter(delay: timeout.interval) {
110 |                 guard !once.testAndSet() else { return }
111 |                 completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
    |                 |- warning: capture of 'completion' with non-sendable type '(Output) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
112 |             }
113 |         }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:28: warning: capture of 'values' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Values' in a `@Sendable` closure; this is an error in the Swift 6 language mode
109 |             queue.asyncAfter(delay: timeout.interval) {
110 |                 guard !once.testAndSet() else { return }
111 |                 completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
    |                            `- warning: capture of 'values' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Values' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 |             }
113 |         }
    :
171 |
172 | extension EventAskEx {
173 |     private class Values {
    |                   `- note: class 'Values' does not conform to the 'Sendable' protocol
174 |         private var values: [Transformed?]
175 |         private var lock = UnfairLock()
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:49: warning: capture of 'timeout' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Timeout' in a `@Sendable` closure; this is an error in the Swift 6 language mode
109 |             queue.asyncAfter(delay: timeout.interval) {
110 |                 guard !once.testAndSet() else { return }
111 |                 completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
    |                                                 `- warning: capture of 'timeout' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Timeout' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 |             }
113 |         }
    :
150 |
151 | extension EventAskEx {
152 |     public struct Timeout {
    |                   `- note: consider making struct 'Timeout' conform to the 'Sendable' protocol
153 |         public var interval: TimeInterval
154 |         public var onTimeout: () -> Fallback? = { nil }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:79: warning: capture of 'self' with non-sendable type 'EventAskEx<Input, Transformed, Output>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 29 | public typealias EventAsk<Input, Output> = EventAskEx<Input, Output, [Output]>
 30 |
 31 | public class EventAskEx<Input, Transformed, Output> {
    |              `- note: generic class 'EventAskEx' does not conform to the 'Sendable' protocol
 32 |     private typealias Entry<T> = (transform: AsyncTransform, queue: DispatchQueue?)
 33 |     private let transforms = Synchronized<[UUID: Entry<AsyncTransform>]>(.concurrent)
    :
109 |             queue.asyncAfter(delay: timeout.interval) {
110 |                 guard !once.testAndSet() else { return }
111 |                 completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
    |                                                                               `- warning: capture of 'self' with non-sendable type 'EventAskEx<Input, Transformed, Output>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 |             }
113 |         }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventNotify.swift:76:33: warning: capture of 'action' with non-sendable type '(T, Any?) -> Void' in a `@Sendable` closure
74 |     private func notifyOne(_ value: T, _ context: Any?, action: @escaping (T, Any?) -> Void) {
75 |         if let notifyQueue = notifyQueue {
76 |             notifyQueue.async { action(value, context) }
   |                                 |- warning: capture of 'action' with non-sendable type '(T, Any?) -> Void' in a `@Sendable` closure
   |                                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
77 |         } else {
78 |             action(value, context)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventNotify.swift:76:40: warning: capture of 'value' with non-sendable type 'T' in a `@Sendable` closure
23 | import Foundation
24 |
25 | public final class EventNotify<T>: ValueObserving {
   |                                `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
26 |     private typealias Handler = (T, Any?) -> Void
27 |
   :
74 |     private func notifyOne(_ value: T, _ context: Any?, action: @escaping (T, Any?) -> Void) {
75 |         if let notifyQueue = notifyQueue {
76 |             notifyQueue.async { action(value, context) }
   |                                        `- warning: capture of 'value' with non-sendable type 'T' in a `@Sendable` closure
77 |         } else {
78 |             action(value, context)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventNotify.swift:76:47: warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure
74 |     private func notifyOne(_ value: T, _ context: Any?, action: @escaping (T, Any?) -> Void) {
75 |         if let notifyQueue = notifyQueue {
76 |             notifyQueue.async { action(value, context) }
   |                                               `- warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure
77 |         } else {
78 |             action(value, context)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:75:31: warning: capture of 'receiveValue' with non-sendable type '(Self.Value, Any?) -> Void' in a `@Sendable` closure
 73 |         AnyValueObserving { suppressInitialNotify, receiveValue in
 74 |             self.subscribe(suppressInitialNotify: suppressInitialNotify) { value, context in
 75 |                 queue.async { receiveValue(value, context) }
    |                               |- warning: capture of 'receiveValue' with non-sendable type '(Self.Value, Any?) -> Void' in a `@Sendable` closure
    |                               `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 76 |             }
 77 |         }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:75:44: warning: capture of 'value' with non-sendable type 'Self.Value' in a `@Sendable` closure
 73 |         AnyValueObserving { suppressInitialNotify, receiveValue in
 74 |             self.subscribe(suppressInitialNotify: suppressInitialNotify) { value, context in
 75 |                 queue.async { receiveValue(value, context) }
    |                                            `- warning: capture of 'value' with non-sendable type 'Self.Value' in a `@Sendable` closure
 76 |             }
 77 |         }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:75:51: warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure
 73 |         AnyValueObserving { suppressInitialNotify, receiveValue in
 74 |             self.subscribe(suppressInitialNotify: suppressInitialNotify) { value, context in
 75 |                 queue.async { receiveValue(value, context) }
    |                                                   `- warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure
 76 |             }
 77 |         }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:62:62: warning: sending '$0' risks causing data races; this is an error in the Swift 6 language mode
 60 |     public func ask(_ value: Input, timeout: Timeout? = nil) async -> Output {
 61 |         await withCheckedContinuation { continuation in
 62 |             askAsync(value, timeout: timeout) { continuation.resume(returning: $0) }
    |                                                              |- warning: sending '$0' risks causing data races; this is an error in the Swift 6 language mode
    |                                                              `- note: task-isolated '$0' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
 63 |         }
 64 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:144:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
142 |     public func subscribe(transform: @escaping ConcurrentTransform) -> SubscriptionToken {
143 |         subscribe(on: nil) { input, reply in
144 |             Task {
    |                  `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
145 |                 reply(await transform(input))
    |                             `- note: closure captures 'transform' which is accessible to code in the current task
146 |             }
147 |         }
[67/67] Compiling SpellbookFoundation ValueView.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:26:13: warning: let 'log' is not concurrency-safe because non-'Sendable' type 'any SpellbookLog' may have shared mutable state; this is an error in the Swift 6 language mode
 24 | import Foundation
 25 |
 26 | private let log = SpellbookLogger.internal(category: "EventAsk")
    |             |- warning: let 'log' is not concurrency-safe because non-'Sendable' type 'any SpellbookLog' may have shared mutable state; this is an error in the Swift 6 language mode
    |             |- note: annotate 'log' with '@MainActor' if property should only be accessed from the main actor
    |             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 27 |
 28 | public typealias EventAskCombined<Input, Output> = EventAskEx<Input, Output, Output>
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/SpellbookLog.swift:26:17: note: protocol 'SpellbookLog' does not conform to the 'Sendable' protocol
 24 | import os
 25 |
 26 | public protocol SpellbookLog {
    |                 `- note: protocol 'SpellbookLog' does not conform to the 'Sendable' protocol
 27 |     func _custom(
 28 |         level: SpellbookLogLevel,
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:110:24: warning: capture of 'once' with non-sendable type 'AtomicFlag' in a `@Sendable` closure; this is an error in the Swift 6 language mode
108 |         if let timeout {
109 |             queue.asyncAfter(delay: timeout.interval) {
110 |                 guard !once.testAndSet() else { return }
    |                        `- warning: capture of 'once' with non-sendable type 'AtomicFlag' in a `@Sendable` closure; this is an error in the Swift 6 language mode
111 |                 completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
112 |             }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Atomic.swift:58:20: note: class 'AtomicFlag' does not conform to the 'Sendable' protocol
56 | }
57 |
58 | public final class AtomicFlag {
   |                    `- note: class 'AtomicFlag' does not conform to the 'Sendable' protocol
59 |     private let pointer: UnsafeMutablePointer<atomic_flag>
60 |
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:17: warning: capture of 'completion' with non-sendable type '(Output) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
109 |             queue.asyncAfter(delay: timeout.interval) {
110 |                 guard !once.testAndSet() else { return }
111 |                 completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
    |                 |- warning: capture of 'completion' with non-sendable type '(Output) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
112 |             }
113 |         }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:28: warning: capture of 'values' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Values' in a `@Sendable` closure; this is an error in the Swift 6 language mode
109 |             queue.asyncAfter(delay: timeout.interval) {
110 |                 guard !once.testAndSet() else { return }
111 |                 completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
    |                            `- warning: capture of 'values' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Values' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 |             }
113 |         }
    :
171 |
172 | extension EventAskEx {
173 |     private class Values {
    |                   `- note: class 'Values' does not conform to the 'Sendable' protocol
174 |         private var values: [Transformed?]
175 |         private var lock = UnfairLock()
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:49: warning: capture of 'timeout' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Timeout' in a `@Sendable` closure; this is an error in the Swift 6 language mode
109 |             queue.asyncAfter(delay: timeout.interval) {
110 |                 guard !once.testAndSet() else { return }
111 |                 completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
    |                                                 `- warning: capture of 'timeout' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Timeout' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 |             }
113 |         }
    :
150 |
151 | extension EventAskEx {
152 |     public struct Timeout {
    |                   `- note: consider making struct 'Timeout' conform to the 'Sendable' protocol
153 |         public var interval: TimeInterval
154 |         public var onTimeout: () -> Fallback? = { nil }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:79: warning: capture of 'self' with non-sendable type 'EventAskEx<Input, Transformed, Output>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 29 | public typealias EventAsk<Input, Output> = EventAskEx<Input, Output, [Output]>
 30 |
 31 | public class EventAskEx<Input, Transformed, Output> {
    |              `- note: generic class 'EventAskEx' does not conform to the 'Sendable' protocol
 32 |     private typealias Entry<T> = (transform: AsyncTransform, queue: DispatchQueue?)
 33 |     private let transforms = Synchronized<[UUID: Entry<AsyncTransform>]>(.concurrent)
    :
109 |             queue.asyncAfter(delay: timeout.interval) {
110 |                 guard !once.testAndSet() else { return }
111 |                 completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
    |                                                                               `- warning: capture of 'self' with non-sendable type 'EventAskEx<Input, Transformed, Output>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 |             }
113 |         }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventNotify.swift:76:33: warning: capture of 'action' with non-sendable type '(T, Any?) -> Void' in a `@Sendable` closure
74 |     private func notifyOne(_ value: T, _ context: Any?, action: @escaping (T, Any?) -> Void) {
75 |         if let notifyQueue = notifyQueue {
76 |             notifyQueue.async { action(value, context) }
   |                                 |- warning: capture of 'action' with non-sendable type '(T, Any?) -> Void' in a `@Sendable` closure
   |                                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
77 |         } else {
78 |             action(value, context)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventNotify.swift:76:40: warning: capture of 'value' with non-sendable type 'T' in a `@Sendable` closure
23 | import Foundation
24 |
25 | public final class EventNotify<T>: ValueObserving {
   |                                `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
26 |     private typealias Handler = (T, Any?) -> Void
27 |
   :
74 |     private func notifyOne(_ value: T, _ context: Any?, action: @escaping (T, Any?) -> Void) {
75 |         if let notifyQueue = notifyQueue {
76 |             notifyQueue.async { action(value, context) }
   |                                        `- warning: capture of 'value' with non-sendable type 'T' in a `@Sendable` closure
77 |         } else {
78 |             action(value, context)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventNotify.swift:76:47: warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure
74 |     private func notifyOne(_ value: T, _ context: Any?, action: @escaping (T, Any?) -> Void) {
75 |         if let notifyQueue = notifyQueue {
76 |             notifyQueue.async { action(value, context) }
   |                                               `- warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure
77 |         } else {
78 |             action(value, context)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:75:31: warning: capture of 'receiveValue' with non-sendable type '(Self.Value, Any?) -> Void' in a `@Sendable` closure
 73 |         AnyValueObserving { suppressInitialNotify, receiveValue in
 74 |             self.subscribe(suppressInitialNotify: suppressInitialNotify) { value, context in
 75 |                 queue.async { receiveValue(value, context) }
    |                               |- warning: capture of 'receiveValue' with non-sendable type '(Self.Value, Any?) -> Void' in a `@Sendable` closure
    |                               `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 76 |             }
 77 |         }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:75:44: warning: capture of 'value' with non-sendable type 'Self.Value' in a `@Sendable` closure
 73 |         AnyValueObserving { suppressInitialNotify, receiveValue in
 74 |             self.subscribe(suppressInitialNotify: suppressInitialNotify) { value, context in
 75 |                 queue.async { receiveValue(value, context) }
    |                                            `- warning: capture of 'value' with non-sendable type 'Self.Value' in a `@Sendable` closure
 76 |             }
 77 |         }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:75:51: warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure
 73 |         AnyValueObserving { suppressInitialNotify, receiveValue in
 74 |             self.subscribe(suppressInitialNotify: suppressInitialNotify) { value, context in
 75 |                 queue.async { receiveValue(value, context) }
    |                                                   `- warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure
 76 |             }
 77 |         }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:62:62: warning: sending '$0' risks causing data races; this is an error in the Swift 6 language mode
 60 |     public func ask(_ value: Input, timeout: Timeout? = nil) async -> Output {
 61 |         await withCheckedContinuation { continuation in
 62 |             askAsync(value, timeout: timeout) { continuation.resume(returning: $0) }
    |                                                              |- warning: sending '$0' risks causing data races; this is an error in the Swift 6 language mode
    |                                                              `- note: task-isolated '$0' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
 63 |         }
 64 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:144:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
142 |     public func subscribe(transform: @escaping ConcurrentTransform) -> SubscriptionToken {
143 |         subscribe(on: nil) { input, reply in
144 |             Task {
    |                  `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
145 |                 reply(await transform(input))
    |                             `- note: closure captures 'transform' which is accessible to code in the current task
146 |             }
147 |         }
[68/82] Compiling SpellbookBinaryParsing BinaryParsingError.swift
[69/82] Compiling SpellbookBinaryParsing BinaryWriterOutput.swift
[70/82] Compiling SpellbookBinaryParsing BinaryReaderInput.swift
[71/82] Emitting module SpellbookBinaryParsing
[72/82] Compiling SpellbookBinaryParsing BinaryWriter.swift
[73/82] Compiling SpellbookBinaryParsing BinaryReader.swift
[74/82] Compiling SpellbookHTTP HTTPTypes.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPTypes.swift:33:23: warning: static property 'get' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
 25 | import Foundation
 26 |
 27 | public struct HTTPMethod: RawRepresentable, Hashable {
    |               `- note: consider making struct 'HTTPMethod' conform to the 'Sendable' protocol
 28 |     public var rawValue: String
 29 |     public init(rawValue: String) { self.rawValue = rawValue }
    :
 31 |
 32 | extension HTTPMethod {
 33 |     public static let get = Self(rawValue: "GET")
    |                       |- warning: static property 'get' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'get' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 34 |     public static let post = Self(rawValue: "POST")
 35 |     public static let patch = Self(rawValue: "PATCH")
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPTypes.swift:34:23: warning: static property 'post' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
 25 | import Foundation
 26 |
 27 | public struct HTTPMethod: RawRepresentable, Hashable {
    |               `- note: consider making struct 'HTTPMethod' conform to the 'Sendable' protocol
 28 |     public var rawValue: String
 29 |     public init(rawValue: String) { self.rawValue = rawValue }
    :
 32 | extension HTTPMethod {
 33 |     public static let get = Self(rawValue: "GET")
 34 |     public static let post = Self(rawValue: "POST")
    |                       |- warning: static property 'post' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'post' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 35 |     public static let patch = Self(rawValue: "PATCH")
 36 |     public static let delete = Self(rawValue: "DELETE")
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPTypes.swift:35:23: warning: static property 'patch' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
 25 | import Foundation
 26 |
 27 | public struct HTTPMethod: RawRepresentable, Hashable {
    |               `- note: consider making struct 'HTTPMethod' conform to the 'Sendable' protocol
 28 |     public var rawValue: String
 29 |     public init(rawValue: String) { self.rawValue = rawValue }
    :
 33 |     public static let get = Self(rawValue: "GET")
 34 |     public static let post = Self(rawValue: "POST")
 35 |     public static let patch = Self(rawValue: "PATCH")
    |                       |- warning: static property 'patch' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'patch' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 36 |     public static let delete = Self(rawValue: "DELETE")
 37 |     public static let put = Self(rawValue: "PUT")
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPTypes.swift:36:23: warning: static property 'delete' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
 25 | import Foundation
 26 |
 27 | public struct HTTPMethod: RawRepresentable, Hashable {
    |               `- note: consider making struct 'HTTPMethod' conform to the 'Sendable' protocol
 28 |     public var rawValue: String
 29 |     public init(rawValue: String) { self.rawValue = rawValue }
    :
 34 |     public static let post = Self(rawValue: "POST")
 35 |     public static let patch = Self(rawValue: "PATCH")
 36 |     public static let delete = Self(rawValue: "DELETE")
    |                       |- warning: static property 'delete' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'delete' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 37 |     public static let put = Self(rawValue: "PUT")
 38 |     public static let options = Self(rawValue: "OPTIONS")
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPTypes.swift:37:23: warning: static property 'put' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
 25 | import Foundation
 26 |
 27 | public struct HTTPMethod: RawRepresentable, Hashable {
    |               `- note: consider making struct 'HTTPMethod' conform to the 'Sendable' protocol
 28 |     public var rawValue: String
 29 |     public init(rawValue: String) { self.rawValue = rawValue }
    :
 35 |     public static let patch = Self(rawValue: "PATCH")
 36 |     public static let delete = Self(rawValue: "DELETE")
 37 |     public static let put = Self(rawValue: "PUT")
    |                       |- warning: static property 'put' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'put' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 38 |     public static let options = Self(rawValue: "OPTIONS")
 39 |     public static let head = Self(rawValue: "HEAD")
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPTypes.swift:38:23: warning: static property 'options' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
 25 | import Foundation
 26 |
 27 | public struct HTTPMethod: RawRepresentable, Hashable {
    |               `- note: consider making struct 'HTTPMethod' conform to the 'Sendable' protocol
 28 |     public var rawValue: String
 29 |     public init(rawValue: String) { self.rawValue = rawValue }
    :
 36 |     public static let delete = Self(rawValue: "DELETE")
 37 |     public static let put = Self(rawValue: "PUT")
 38 |     public static let options = Self(rawValue: "OPTIONS")
    |                       |- warning: static property 'options' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'options' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 39 |     public static let head = Self(rawValue: "HEAD")
 40 |     public static let trace = Self(rawValue: "TRACE")
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPTypes.swift:39:23: warning: static property 'head' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
 25 | import Foundation
 26 |
 27 | public struct HTTPMethod: RawRepresentable, Hashable {
    |               `- note: consider making struct 'HTTPMethod' conform to the 'Sendable' protocol
 28 |     public var rawValue: String
 29 |     public init(rawValue: String) { self.rawValue = rawValue }
    :
 37 |     public static let put = Self(rawValue: "PUT")
 38 |     public static let options = Self(rawValue: "OPTIONS")
 39 |     public static let head = Self(rawValue: "HEAD")
    |                       |- warning: static property 'head' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'head' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 40 |     public static let trace = Self(rawValue: "TRACE")
 41 |     public static let connect = Self(rawValue: "CONNECT")
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPTypes.swift:40:23: warning: static property 'trace' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
 25 | import Foundation
 26 |
 27 | public struct HTTPMethod: RawRepresentable, Hashable {
    |               `- note: consider making struct 'HTTPMethod' conform to the 'Sendable' protocol
 28 |     public var rawValue: String
 29 |     public init(rawValue: String) { self.rawValue = rawValue }
    :
 38 |     public static let options = Self(rawValue: "OPTIONS")
 39 |     public static let head = Self(rawValue: "HEAD")
 40 |     public static let trace = Self(rawValue: "TRACE")
    |                       |- warning: static property 'trace' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'trace' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 41 |     public static let connect = Self(rawValue: "CONNECT")
 42 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPTypes.swift:41:23: warning: static property 'connect' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
 25 | import Foundation
 26 |
 27 | public struct HTTPMethod: RawRepresentable, Hashable {
    |               `- note: consider making struct 'HTTPMethod' conform to the 'Sendable' protocol
 28 |     public var rawValue: String
 29 |     public init(rawValue: String) { self.rawValue = rawValue }
    :
 39 |     public static let head = Self(rawValue: "HEAD")
 40 |     public static let trace = Self(rawValue: "TRACE")
 41 |     public static let connect = Self(rawValue: "CONNECT")
    |                       |- warning: static property 'connect' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'connect' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 42 | }
 43 |
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPTypes.swift:57:23: warning: static property 'userAgent' is not concurrency-safe because non-'Sendable' type 'HTTPHeader' may have shared mutable state; this is an error in the Swift 6 language mode
 48 | }
 49 |
 50 | public struct HTTPHeader: RawRepresentable, Hashable {
    |               `- note: consider making struct 'HTTPHeader' conform to the 'Sendable' protocol
 51 |     public var rawValue: String
 52 |     public init(rawValue: String) { self.rawValue = rawValue }
    :
 55 |
 56 | extension HTTPHeader {
 57 |     public static let userAgent = HTTPHeader(rawValue: "user-agent")
    |                       |- warning: static property 'userAgent' is not concurrency-safe because non-'Sendable' type 'HTTPHeader' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'userAgent' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 58 |     public static let authorization = HTTPHeader(rawValue: "authorization")
 59 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPTypes.swift:58:23: warning: static property 'authorization' is not concurrency-safe because non-'Sendable' type 'HTTPHeader' may have shared mutable state; this is an error in the Swift 6 language mode
 48 | }
 49 |
 50 | public struct HTTPHeader: RawRepresentable, Hashable {
    |               `- note: consider making struct 'HTTPHeader' conform to the 'Sendable' protocol
 51 |     public var rawValue: String
 52 |     public init(rawValue: String) { self.rawValue = rawValue }
    :
 56 | extension HTTPHeader {
 57 |     public static let userAgent = HTTPHeader(rawValue: "user-agent")
 58 |     public static let authorization = HTTPHeader(rawValue: "authorization")
    |                       |- warning: static property 'authorization' is not concurrency-safe because non-'Sendable' type 'HTTPHeader' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'authorization' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 59 | }
 60 |
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPTypes.swift:85:23: warning: static property 'basic' is not concurrency-safe because non-'Sendable' type 'HTTPAuthorizationType' may have shared mutable state; this is an error in the Swift 6 language mode
 63 | }
 64 |
 65 | public struct HTTPAuthorizationType: RawRepresentable, Hashable {
    |               `- note: consider making struct 'HTTPAuthorizationType' conform to the 'Sendable' protocol
 66 |     public var rawValue: String
 67 |     public init(rawValue: String) { self.rawValue = rawValue }
    :
 83 |
 84 | extension HTTPAuthorizationType {
 85 |     public static let basic = HTTPAuthorizationType(rawValue: "Basic")
    |                       |- warning: static property 'basic' is not concurrency-safe because non-'Sendable' type 'HTTPAuthorizationType' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'basic' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 86 |     public static let bearer = HTTPAuthorizationType(rawValue: "Bearer")
 87 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPTypes.swift:86:23: warning: static property 'bearer' is not concurrency-safe because non-'Sendable' type 'HTTPAuthorizationType' may have shared mutable state; this is an error in the Swift 6 language mode
 63 | }
 64 |
 65 | public struct HTTPAuthorizationType: RawRepresentable, Hashable {
    |               `- note: consider making struct 'HTTPAuthorizationType' conform to the 'Sendable' protocol
 66 |     public var rawValue: String
 67 |     public init(rawValue: String) { self.rawValue = rawValue }
    :
 84 | extension HTTPAuthorizationType {
 85 |     public static let basic = HTTPAuthorizationType(rawValue: "Basic")
 86 |     public static let bearer = HTTPAuthorizationType(rawValue: "Bearer")
    |                       |- warning: static property 'bearer' is not concurrency-safe because non-'Sendable' type 'HTTPAuthorizationType' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'bearer' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 87 | }
 88 |
[75/82] Compiling SpellbookHTTP HTTPResult.swift
[76/82] Compiling SpellbookHTTP HTTPRequest.swift
[77/82] Emitting module SpellbookHTTP
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPTypes.swift:33:23: warning: static property 'get' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
 25 | import Foundation
 26 |
 27 | public struct HTTPMethod: RawRepresentable, Hashable {
    |               `- note: consider making struct 'HTTPMethod' conform to the 'Sendable' protocol
 28 |     public var rawValue: String
 29 |     public init(rawValue: String) { self.rawValue = rawValue }
    :
 31 |
 32 | extension HTTPMethod {
 33 |     public static let get = Self(rawValue: "GET")
    |                       |- warning: static property 'get' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'get' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 34 |     public static let post = Self(rawValue: "POST")
 35 |     public static let patch = Self(rawValue: "PATCH")
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPTypes.swift:34:23: warning: static property 'post' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
 25 | import Foundation
 26 |
 27 | public struct HTTPMethod: RawRepresentable, Hashable {
    |               `- note: consider making struct 'HTTPMethod' conform to the 'Sendable' protocol
 28 |     public var rawValue: String
 29 |     public init(rawValue: String) { self.rawValue = rawValue }
    :
 32 | extension HTTPMethod {
 33 |     public static let get = Self(rawValue: "GET")
 34 |     public static let post = Self(rawValue: "POST")
    |                       |- warning: static property 'post' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'post' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 35 |     public static let patch = Self(rawValue: "PATCH")
 36 |     public static let delete = Self(rawValue: "DELETE")
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPTypes.swift:35:23: warning: static property 'patch' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
 25 | import Foundation
 26 |
 27 | public struct HTTPMethod: RawRepresentable, Hashable {
    |               `- note: consider making struct 'HTTPMethod' conform to the 'Sendable' protocol
 28 |     public var rawValue: String
 29 |     public init(rawValue: String) { self.rawValue = rawValue }
    :
 33 |     public static let get = Self(rawValue: "GET")
 34 |     public static let post = Self(rawValue: "POST")
 35 |     public static let patch = Self(rawValue: "PATCH")
    |                       |- warning: static property 'patch' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'patch' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 36 |     public static let delete = Self(rawValue: "DELETE")
 37 |     public static let put = Self(rawValue: "PUT")
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPTypes.swift:36:23: warning: static property 'delete' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
 25 | import Foundation
 26 |
 27 | public struct HTTPMethod: RawRepresentable, Hashable {
    |               `- note: consider making struct 'HTTPMethod' conform to the 'Sendable' protocol
 28 |     public var rawValue: String
 29 |     public init(rawValue: String) { self.rawValue = rawValue }
    :
 34 |     public static let post = Self(rawValue: "POST")
 35 |     public static let patch = Self(rawValue: "PATCH")
 36 |     public static let delete = Self(rawValue: "DELETE")
    |                       |- warning: static property 'delete' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'delete' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 37 |     public static let put = Self(rawValue: "PUT")
 38 |     public static let options = Self(rawValue: "OPTIONS")
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPTypes.swift:37:23: warning: static property 'put' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
 25 | import Foundation
 26 |
 27 | public struct HTTPMethod: RawRepresentable, Hashable {
    |               `- note: consider making struct 'HTTPMethod' conform to the 'Sendable' protocol
 28 |     public var rawValue: String
 29 |     public init(rawValue: String) { self.rawValue = rawValue }
    :
 35 |     public static let patch = Self(rawValue: "PATCH")
 36 |     public static let delete = Self(rawValue: "DELETE")
 37 |     public static let put = Self(rawValue: "PUT")
    |                       |- warning: static property 'put' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'put' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 38 |     public static let options = Self(rawValue: "OPTIONS")
 39 |     public static let head = Self(rawValue: "HEAD")
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPTypes.swift:38:23: warning: static property 'options' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
 25 | import Foundation
 26 |
 27 | public struct HTTPMethod: RawRepresentable, Hashable {
    |               `- note: consider making struct 'HTTPMethod' conform to the 'Sendable' protocol
 28 |     public var rawValue: String
 29 |     public init(rawValue: String) { self.rawValue = rawValue }
    :
 36 |     public static let delete = Self(rawValue: "DELETE")
 37 |     public static let put = Self(rawValue: "PUT")
 38 |     public static let options = Self(rawValue: "OPTIONS")
    |                       |- warning: static property 'options' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'options' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 39 |     public static let head = Self(rawValue: "HEAD")
 40 |     public static let trace = Self(rawValue: "TRACE")
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPTypes.swift:39:23: warning: static property 'head' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
 25 | import Foundation
 26 |
 27 | public struct HTTPMethod: RawRepresentable, Hashable {
    |               `- note: consider making struct 'HTTPMethod' conform to the 'Sendable' protocol
 28 |     public var rawValue: String
 29 |     public init(rawValue: String) { self.rawValue = rawValue }
    :
 37 |     public static let put = Self(rawValue: "PUT")
 38 |     public static let options = Self(rawValue: "OPTIONS")
 39 |     public static let head = Self(rawValue: "HEAD")
    |                       |- warning: static property 'head' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'head' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 40 |     public static let trace = Self(rawValue: "TRACE")
 41 |     public static let connect = Self(rawValue: "CONNECT")
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPTypes.swift:40:23: warning: static property 'trace' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
 25 | import Foundation
 26 |
 27 | public struct HTTPMethod: RawRepresentable, Hashable {
    |               `- note: consider making struct 'HTTPMethod' conform to the 'Sendable' protocol
 28 |     public var rawValue: String
 29 |     public init(rawValue: String) { self.rawValue = rawValue }
    :
 38 |     public static let options = Self(rawValue: "OPTIONS")
 39 |     public static let head = Self(rawValue: "HEAD")
 40 |     public static let trace = Self(rawValue: "TRACE")
    |                       |- warning: static property 'trace' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'trace' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 41 |     public static let connect = Self(rawValue: "CONNECT")
 42 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPTypes.swift:41:23: warning: static property 'connect' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
 25 | import Foundation
 26 |
 27 | public struct HTTPMethod: RawRepresentable, Hashable {
    |               `- note: consider making struct 'HTTPMethod' conform to the 'Sendable' protocol
 28 |     public var rawValue: String
 29 |     public init(rawValue: String) { self.rawValue = rawValue }
    :
 39 |     public static let head = Self(rawValue: "HEAD")
 40 |     public static let trace = Self(rawValue: "TRACE")
 41 |     public static let connect = Self(rawValue: "CONNECT")
    |                       |- warning: static property 'connect' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'connect' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 42 | }
 43 |
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPTypes.swift:57:23: warning: static property 'userAgent' is not concurrency-safe because non-'Sendable' type 'HTTPHeader' may have shared mutable state; this is an error in the Swift 6 language mode
 48 | }
 49 |
 50 | public struct HTTPHeader: RawRepresentable, Hashable {
    |               `- note: consider making struct 'HTTPHeader' conform to the 'Sendable' protocol
 51 |     public var rawValue: String
 52 |     public init(rawValue: String) { self.rawValue = rawValue }
    :
 55 |
 56 | extension HTTPHeader {
 57 |     public static let userAgent = HTTPHeader(rawValue: "user-agent")
    |                       |- warning: static property 'userAgent' is not concurrency-safe because non-'Sendable' type 'HTTPHeader' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'userAgent' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 58 |     public static let authorization = HTTPHeader(rawValue: "authorization")
 59 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPTypes.swift:58:23: warning: static property 'authorization' is not concurrency-safe because non-'Sendable' type 'HTTPHeader' may have shared mutable state; this is an error in the Swift 6 language mode
 48 | }
 49 |
 50 | public struct HTTPHeader: RawRepresentable, Hashable {
    |               `- note: consider making struct 'HTTPHeader' conform to the 'Sendable' protocol
 51 |     public var rawValue: String
 52 |     public init(rawValue: String) { self.rawValue = rawValue }
    :
 56 | extension HTTPHeader {
 57 |     public static let userAgent = HTTPHeader(rawValue: "user-agent")
 58 |     public static let authorization = HTTPHeader(rawValue: "authorization")
    |                       |- warning: static property 'authorization' is not concurrency-safe because non-'Sendable' type 'HTTPHeader' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'authorization' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 59 | }
 60 |
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPTypes.swift:85:23: warning: static property 'basic' is not concurrency-safe because non-'Sendable' type 'HTTPAuthorizationType' may have shared mutable state; this is an error in the Swift 6 language mode
 63 | }
 64 |
 65 | public struct HTTPAuthorizationType: RawRepresentable, Hashable {
    |               `- note: consider making struct 'HTTPAuthorizationType' conform to the 'Sendable' protocol
 66 |     public var rawValue: String
 67 |     public init(rawValue: String) { self.rawValue = rawValue }
    :
 83 |
 84 | extension HTTPAuthorizationType {
 85 |     public static let basic = HTTPAuthorizationType(rawValue: "Basic")
    |                       |- warning: static property 'basic' is not concurrency-safe because non-'Sendable' type 'HTTPAuthorizationType' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'basic' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 86 |     public static let bearer = HTTPAuthorizationType(rawValue: "Bearer")
 87 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPTypes.swift:86:23: warning: static property 'bearer' is not concurrency-safe because non-'Sendable' type 'HTTPAuthorizationType' may have shared mutable state; this is an error in the Swift 6 language mode
 63 | }
 64 |
 65 | public struct HTTPAuthorizationType: RawRepresentable, Hashable {
    |               `- note: consider making struct 'HTTPAuthorizationType' conform to the 'Sendable' protocol
 66 |     public var rawValue: String
 67 |     public init(rawValue: String) { self.rawValue = rawValue }
    :
 84 | extension HTTPAuthorizationType {
 85 |     public static let basic = HTTPAuthorizationType(rawValue: "Basic")
 86 |     public static let bearer = HTTPAuthorizationType(rawValue: "Bearer")
    |                       |- warning: static property 'bearer' is not concurrency-safe because non-'Sendable' type 'HTTPAuthorizationType' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'bearer' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 87 | }
 88 |
[78/82] Compiling SpellbookHTTP HTTPClient.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPClient.swift:80:17: warning: capture of 'completion' with non-sendable type '(Result<HTTPResult<Data>, any Error>) -> Void' in a `@Sendable` closure
 78 |         session.dataTask(with: urlRequest) { data, response, error in
 79 |             if let error {
 80 |                 completion(.failure(error))
    |                 |- warning: capture of 'completion' with non-sendable type '(Result<HTTPResult<Data>, any Error>) -> Void' in a `@Sendable` closure
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 81 |                 return
 82 |             }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPClient.swift:38:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 36 |     public func data(for request: () throws -> URLRequest, completion: @escaping (Result<HTTPResult<Data>, any Error>) -> Void) {
 37 |         let request = Result(catching: request)
 38 |         Task {
    |              `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 39 |             do {
 40 |                 let result = try await data(for: request.get, delegate: nil)
    |                                        `- note: closure captures non-Sendable 'self'
 41 |                 completion(.success(result))
    |                 `- note: closure captures non-Sendable 'completion'
 42 |             } catch {
 43 |                 completion(.failure(error))
[79/82] Compiling SpellbookTestUtils Testing.swift
[80/82] Compiling SpellbookTestUtils Extensions - XCTestCase.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookTestUtils/Extensions - XCTestCase.swift:37:23: warning: static property 'waitRate' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
35 |     public static var waitRate = 100.0
36 | #else
37 |     public static var waitRate = 1.0
   |                       |- warning: static property 'waitRate' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'waitRate' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'waitRate' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
38 | #endif
39 |
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookTestUtils/Extensions - XCTestCase.swift:40:23: warning: static property 'waitTimeout' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
38 | #endif
39 |
40 |     public static var waitTimeout: TimeInterval = 0.5
   |                       |- warning: static property 'waitTimeout' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'waitTimeout' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'waitTimeout' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
41 |
42 |     public static var testBundle: Bundle {
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookTestUtils/Extensions - XCTestCase.swift:58:9: warning: call to main actor-isolated instance method 'waitForExpectations(timeout:handler:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
54 |
55 |     @discardableResult
56 |     public func waitForExpectations(timeout: TimeInterval = XCTestCase.waitTimeout, ignoreWaitRate: Bool) -> Error? {
   |                 `- note: add '@MainActor' to make instance method 'waitForExpectations(timeout:ignoreWaitRate:)' part of global actor 'MainActor'
57 |         var error: Error?
58 |         waitForExpectations(timeout: timeout * Self.waitRate) {
   |         `- warning: call to main actor-isolated instance method 'waitForExpectations(timeout:handler:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
59 |             error = $0
60 |         }
XCTest.XCTestCase:5:26: note: calls to instance method 'waitForExpectations(timeout:handler:)' from outside of its actor context are implicitly asynchronous
 3 |     @available(swift, obsoleted: 3, renamed: "expectation(description:)")
 4 |     open func expectationWithDescription(_ description: String) -> XCTestExpectation
 5 |     @MainActor open func waitForExpectations(timeout: TimeInterval, handler: (@Sendable ((any Error)?) -> Void)? = nil)
   |                          `- note: calls to instance method 'waitForExpectations(timeout:handler:)' from outside of its actor context are implicitly asynchronous
 6 |     @available(swift, obsoleted: 3, renamed: "waitForExpectations(timeout:handler:)")
 7 |     @MainActor open func waitForExpectationsWithTimeout(_ timeout: TimeInterval, handler: (@Sendable ((any Error)?) -> Void)? = nil)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookTestUtils/Extensions - XCTestCase.swift:59:13: warning: mutation of captured var 'error' in concurrently-executing code
57 |         var error: Error?
58 |         waitForExpectations(timeout: timeout * Self.waitRate) {
59 |             error = $0
   |             `- warning: mutation of captured var 'error' in concurrently-executing code
60 |         }
61 |
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookTestUtils/Extensions - XCTestCase.swift:58:9: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
56 |     public func waitForExpectations(timeout: TimeInterval = XCTestCase.waitTimeout, ignoreWaitRate: Bool) -> Error? {
57 |         var error: Error?
58 |         waitForExpectations(timeout: timeout * Self.waitRate) {
   |         |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
   |         `- note: sending task-isolated 'self' to main actor-isolated instance method 'waitForExpectations(timeout:handler:)' risks causing data races between main actor-isolated and task-isolated uses
59 |             error = $0
60 |         }
[81/82] Emitting module SpellbookTestUtils
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookTestUtils/Extensions - XCTestCase.swift:37:23: warning: static property 'waitRate' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
35 |     public static var waitRate = 100.0
36 | #else
37 |     public static var waitRate = 1.0
   |                       |- warning: static property 'waitRate' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'waitRate' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'waitRate' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
38 | #endif
39 |
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookTestUtils/Extensions - XCTestCase.swift:40:23: warning: static property 'waitTimeout' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
38 | #endif
39 |
40 |     public static var waitTimeout: TimeInterval = 0.5
   |                       |- warning: static property 'waitTimeout' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'waitTimeout' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'waitTimeout' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
41 |
42 |     public static var testBundle: Bundle {
[82/82] Compiling SpellbookTestUtils TestError.swift
Build complete! (25.52s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "SwiftSpellbook",
  "name" : "SwiftSpellbook",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "10.15"
    },
    {
      "name" : "ios",
      "version" : "13.0"
    },
    {
      "name" : "tvos",
      "version" : "13.0"
    },
    {
      "name" : "watchos",
      "version" : "6.0"
    }
  ],
  "products" : [
    {
      "name" : "SpellbookFoundation",
      "targets" : [
        "SpellbookFoundation"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "SpellbookHTTP",
      "targets" : [
        "SpellbookHTTP"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "SpellbookBinaryParsing",
      "targets" : [
        "SpellbookBinaryParsing"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "SpellbookTestUtils",
      "targets" : [
        "SpellbookTestUtils"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "_SpellbookFoundationObjC",
      "module_type" : "ClangTarget",
      "name" : "_SpellbookFoundationObjC",
      "path" : "Sources/SpellbookFoundationObjC",
      "product_memberships" : [
        "SpellbookFoundation",
        "SpellbookHTTP",
        "SpellbookBinaryParsing",
        "SpellbookTestUtils"
      ],
      "sources" : [
        "SpellbookObjC.mm"
      ],
      "type" : "library"
    },
    {
      "c99name" : "SpellbookTests",
      "module_type" : "SwiftTarget",
      "name" : "SpellbookTests",
      "path" : "Tests/SpellbookTests",
      "sources" : [
        "BinaryParsing/BinaryParsingTests.swift",
        "Common/BlockingQueueTests.swift",
        "Common/CancellationTokenTests.swift",
        "Common/ObjectBuilderTests.swift",
        "Common/OtherCommonTests.swift",
        "Common/SBLogTests.swift",
        "Common/SBUnitTests.swift",
        "Common/UtilsTests.swift",
        "Common/WildcardExpressionTests.swift",
        "DictionaryParsing/DictionaryParsingTests.swift",
        "Errors/CommonErrorTests.swift",
        "Errors/ErrorExtensionsTests.swift",
        "Errors/NSErrorTests.swift",
        "Extensions Tests/CodableTests.swift",
        "Extensions Tests/CollectionsTests.swift",
        "Extensions Tests/StandardTypesTests.swift",
        "Filesystem & Bundle/FileEnumeratorTests.swift",
        "Filesystem & Bundle/FileManagerTests.swift",
        "Filesystem & Bundle/FileStoreTests.swift",
        "Filesystem & Bundle/TemporaryDirectoryTests.swift",
        "GUITests/GUITests.swift",
        "LowLevel/AuditTokenTests.swift",
        "LowLevel/MachTests.swift",
        "LowLevel/UnsafeTests.swift",
        "Observing/EventAskTests.swift",
        "Observing/EventNotifyTests.swift",
        "Observing/ObservableTests.swift",
        "Observing/ValueObservingTests.swift",
        "Observing/ValueStoreTests.swift",
        "Other/ObjCTests.swift",
        "Threading & Concurrency/ConcurrentBlockOperationTests.swift",
        "Threading & Concurrency/DispatchQueueExtensionsTests.swift",
        "Threading & Concurrency/SynchronousExecutorTests.swift",
        "Types & PropertyWrappers/PropertyWrapperTests.swift",
        "Types & PropertyWrappers/RefreshableTests.swift",
        "Types & PropertyWrappers/ResourceTests.swift",
        "Types & PropertyWrappers/TypesTests.swift"
      ],
      "target_dependencies" : [
        "SpellbookFoundation",
        "SpellbookBinaryParsing",
        "SpellbookTestUtils"
      ],
      "type" : "test"
    },
    {
      "c99name" : "SpellbookTestUtilsTests",
      "module_type" : "SwiftTarget",
      "name" : "SpellbookTestUtilsTests",
      "path" : "Tests/SpellbookTestUtilsTests",
      "sources" : [
        "TestingTests.swift"
      ],
      "target_dependencies" : [
        "SpellbookFoundation",
        "SpellbookTestUtils"
      ],
      "type" : "test"
    },
    {
      "c99name" : "SpellbookTestUtils",
      "module_type" : "SwiftTarget",
      "name" : "SpellbookTestUtils",
      "path" : "Sources/SpellbookTestUtils",
      "product_memberships" : [
        "SpellbookTestUtils"
      ],
      "sources" : [
        "Extensions - XCTestCase.swift",
        "TestError.swift",
        "Testing.swift"
      ],
      "target_dependencies" : [
        "SpellbookFoundation"
      ],
      "type" : "library"
    },
    {
      "c99name" : "SpellbookHTTP",
      "module_type" : "SwiftTarget",
      "name" : "SpellbookHTTP",
      "path" : "Sources/SpellbookHTTP",
      "product_memberships" : [
        "SpellbookHTTP"
      ],
      "sources" : [
        "HTTPClient.swift",
        "HTTPRequest.swift",
        "HTTPResult.swift",
        "HTTPTypes.swift"
      ],
      "target_dependencies" : [
        "SpellbookFoundation"
      ],
      "type" : "library"
    },
    {
      "c99name" : "SpellbookFoundation",
      "module_type" : "SwiftTarget",
      "name" : "SpellbookFoundation",
      "path" : "Sources/SpellbookFoundation",
      "product_memberships" : [
        "SpellbookFoundation",
        "SpellbookHTTP",
        "SpellbookBinaryParsing",
        "SpellbookTestUtils"
      ],
      "sources" : [
        "Combine/Extensions - Combine.swift",
        "Combine/Proxies - Combine.swift",
        "Common/Benchmark.swift",
        "Common/CancellationToken.swift",
        "Common/Environment.swift",
        "Common/Exceptions.swift",
        "Common/Extensions - Codable.swift",
        "Common/Extensions - Collections.swift",
        "Common/Extensions - Comparable.swift",
        "Common/Extensions - Formatters.swift",
        "Common/Extensions - StandardTypes.swift",
        "Common/SBUnit.swift",
        "Common/SpellbookLog.swift",
        "Common/Utils.swift",
        "Common/ValueBuilder.swift",
        "Common/WildcardExpression.swift",
        "DictionaryParsing/DictionaryCodingKey.swift",
        "DictionaryParsing/DictionaryReader.swift",
        "DictionaryParsing/DictionaryWriter.swift",
        "Errors/CommonError.swift",
        "Errors/CustomErrorUpdating.swift",
        "Errors/Extensions - Error.swift",
        "Errors/Extensions - NSError.swift",
        "Errors/IOKitError.swift",
        "Filesystem & Bundle/Extensions - Bundle.swift",
        "Filesystem & Bundle/Extensions - FileManager.swift",
        "Filesystem & Bundle/FileEnumerator.swift",
        "Filesystem & Bundle/FileStore.swift",
        "Filesystem & Bundle/TemporaryDirectory.swift",
        "GUI/Extensions - CoreGraphics.swift",
        "Internal.swift",
        "Low Level/AuditToken.swift",
        "Low Level/BridgedCEnum.swift",
        "Low Level/MachTime.swift",
        "Low Level/POD+Swift.swift",
        "Low Level/Unsafe.swift",
        "Private/_ValueUpdateWrapping.swift",
        "System & Hardware/DeviceInfo.swift",
        "System & Hardware/Extensions - ProcessInfo.swift",
        "Threading & Concurrency/Atomic.swift",
        "Threading & Concurrency/BlockingQueue.swift",
        "Threading & Concurrency/ConcurrentBlockOperation.swift",
        "Threading & Concurrency/Extensions - DispatchQueue.swift",
        "Threading & Concurrency/Extensions - Locks.swift",
        "Threading & Concurrency/Extensions - Task.swift",
        "Threading & Concurrency/PosixLocks.swift",
        "Threading & Concurrency/Synchronized.swift",
        "Threading & Concurrency/SynchronizedObjC.swift",
        "Threading & Concurrency/SynchronousExecutor.swift",
        "Types & PropertyWrappers/Boxing.swift",
        "Types & PropertyWrappers/Closure.swift",
        "Types & PropertyWrappers/Refreshable.swift",
        "Types & PropertyWrappers/Resource (RAII).swift",
        "Types & PropertyWrappers/Types.swift",
        "ValueObserving/EventAsk.swift",
        "ValueObserving/EventNotify.swift",
        "ValueObserving/ValueObservable.swift",
        "ValueObserving/ValueObserving.swift",
        "ValueObserving/ValueStore.swift",
        "ValueObserving/ValueView.swift"
      ],
      "target_dependencies" : [
        "_SpellbookFoundationObjC"
      ],
      "type" : "library"
    },
    {
      "c99name" : "SpellbookBinaryParsing",
      "module_type" : "SwiftTarget",
      "name" : "SpellbookBinaryParsing",
      "path" : "Sources/SpellbookBinaryParsing",
      "product_memberships" : [
        "SpellbookBinaryParsing"
      ],
      "sources" : [
        "BinaryParsingError.swift",
        "BinaryReader.swift",
        "BinaryReaderInput.swift",
        "BinaryWriter.swift",
        "BinaryWriterOutput.swift"
      ],
      "target_dependencies" : [
        "SpellbookFoundation"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.9"
}
Done.