The Swift Package Index logo.Swift Package Index

Build Information

Failed to build AsyncBLE, reference 0.1.1 (fb4eee), with Swift 6.2 for macOS (SPM) on 9 Sep 2026 09:16:07 UTC.

Build Command

env DEVELOPER_DIR=/Applications/Xcode-26.3.0.app xcrun swift build --arch arm64

Build Log

318 |         _ duration: Duration,
    |                     `- error: 'Duration' is only available in macOS 13.0 or newer
319 |         _ work: @escaping @Sendable (ConnectionCore) -> Void
320 |     ) -> ScheduledWork {
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/ConnectionCore.swift:370:9: error: 'Task' is only available in macOS 10.15 or newer
 16 |
 17 | /// The engine behind one ``Connection``.
 18 | final class ConnectionCore: ConnectionSink, @unchecked Sendable {
    |             `- note: add '@available' attribute to enclosing class
 19 |     let peripheralID: UUID
 20 |     let library: LibraryQueue
    :
361 |     /// the instant the link came back must not overtake the resubscribe that the caller never
362 |     /// asked for but is entitled to.
363 |     private func startSubscriptionRestore() {
    |                  `- note: add '@available' attribute to enclosing instance method
364 |         guard !subscriptions.pendingRestore.isEmpty else { return }
365 |         reconnectLog.notice(
    :
368 |         )
369 |         let ticket = ioQueue.enqueue()
370 |         Task { [weak connection] in
    |         |- error: 'Task' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
371 |             await connection?.restoreSubscriptions(holding: ticket)
372 |         }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/ConnectionCore.swift:370:9: error: 'init(name:priority:operation:)' is only available in macOS 10.15 or newer
 16 |
 17 | /// The engine behind one ``Connection``.
 18 | final class ConnectionCore: ConnectionSink, @unchecked Sendable {
    |             `- note: add '@available' attribute to enclosing class
 19 |     let peripheralID: UUID
 20 |     let library: LibraryQueue
    :
361 |     /// the instant the link came back must not overtake the resubscribe that the caller never
362 |     /// asked for but is entitled to.
363 |     private func startSubscriptionRestore() {
    |                  `- note: add '@available' attribute to enclosing instance method
364 |         guard !subscriptions.pendingRestore.isEmpty else { return }
365 |         reconnectLog.notice(
    :
368 |         )
369 |         let ticket = ioQueue.enqueue()
370 |         Task { [weak connection] in
    |         |- error: 'init(name:priority:operation:)' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
371 |             await connection?.restoreSubscriptions(holding: ticket)
372 |         }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/StateMachine/ConnectionEffect.swift:30:30: error: 'Duration' is only available in macOS 13.0 or newer
17 | /// setup, and queued I/O is always failed before a reconnect is armed, so a caller can never
18 | /// see a write land on the far side of a drop it was queued before.
19 | enum ConnectionEffect: Sendable, Equatable {
   |      `- note: add '@available' attribute to enclosing enum
20 |     /// Issue `connect(peripheral:options:)`. Stays pending until fulfilled or cancelled.
21 |     case armConnect
   :
28 |     ///
29 |     /// - Parameter duration: How long the attempt may run.
30 |     case startConnectTimeout(Duration)
   |                              `- error: 'Duration' is only available in macOS 13.0 or newer
31 |
32 |     /// Cancel the connect attempt's deadline.
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/StateMachine/ConnectionEffect.swift:41:30: error: 'Duration' is only available in macOS 13.0 or newer
17 | /// setup, and queued I/O is always failed before a reconnect is armed, so a caller can never
18 | /// see a write land on the far side of a drop it was queued before.
19 | enum ConnectionEffect: Sendable, Equatable {
   |      `- note: add '@available' attribute to enclosing enum
20 |     /// Issue `connect(peripheral:options:)`. Stays pending until fulfilled or cancelled.
21 |     case armConnect
   :
39 |     ///
40 |     /// - Parameter duration: How long to keep waiting.
41 |     case startGiveUpDeadline(Duration)
   |                              `- error: 'Duration' is only available in macOS 13.0 or newer
42 |
43 |     /// Cancel the give-up deadline.
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/StateMachine/ConnectionEffect.swift:53:26: error: 'Duration' is only available in macOS 13.0 or newer
17 | /// setup, and queued I/O is always failed before a reconnect is armed, so a caller can never
18 | /// see a write land on the far side of a drop it was queued before.
19 | enum ConnectionEffect: Sendable, Equatable {
   |      `- note: add '@available' attribute to enclosing enum
20 |     /// Issue `connect(peripheral:options:)`. Stays pending until fulfilled or cancelled.
21 |     case armConnect
   :
51 |     ///
52 |     /// - Parameter interval: The cadence from ``ReconnectPolicy/reArmInterval``.
53 |     case startReArmTimer(Duration)
   |                          `- error: 'Duration' is only available in macOS 13.0 or newer
54 |
55 |     /// Cancel the re-arm cadence. Emitted when the adapter goes away, because re-arming
[26/43] Compiling AsyncBLE ConnectionRegistry.swift
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/ConnectionCore+IO.swift:119:26: error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
  9 | import Foundation
 10 |
 11 | extension ConnectionCore {
    | `- note: add '@available' attribute to enclosing extension
 12 |     // MARK: Preconditions
 13 |
    :
115 |
116 |     /// Creates a notification stream and registers it.
117 |     func subscribe(
    |          `- note: add '@available' attribute to enclosing instance method
118 |         to uuid: CBUUID,
119 |         bufferingPolicy: AsyncThrowingStream<Data, Error>.Continuation.BufferingPolicy
    |                          `- error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
120 |     ) -> (subscription: SubscriptionRegistry.Subscription, stream: AsyncThrowingStream<Data, Error>) {
121 |         subscriptions.subscribe(to: uuid, bufferingPolicy: bufferingPolicy)
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/ConnectionCore+IO.swift:120:68: error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
  9 | import Foundation
 10 |
 11 | extension ConnectionCore {
    | `- note: add '@available' attribute to enclosing extension
 12 |     // MARK: Preconditions
 13 |
    :
115 |
116 |     /// Creates a notification stream and registers it.
117 |     func subscribe(
    |          `- note: add '@available' attribute to enclosing instance method
118 |         to uuid: CBUUID,
119 |         bufferingPolicy: AsyncThrowingStream<Data, Error>.Continuation.BufferingPolicy
120 |     ) -> (subscription: SubscriptionRegistry.Subscription, stream: AsyncThrowingStream<Data, Error>) {
    |                                                                    `- error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
121 |         subscriptions.subscribe(to: uuid, bufferingPolicy: bufferingPolicy)
122 |     }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/ConnectionCore.swift:132:34: error: 'Duration' is only available in macOS 13.0 or newer
 16 |
 17 | /// The engine behind one ``Connection``.
 18 | final class ConnectionCore: ConnectionSink, @unchecked Sendable {
    |             `- note: add '@available' attribute to enclosing class
 19 |     let peripheralID: UUID
 20 |     let library: LibraryQueue
    :
130 |
131 |     /// Asks for a link. `timeout` of `nil` is a pending connect with no deadline.
132 |     func requestConnect(timeout: Duration?) {
    |          |                       `- error: 'Duration' is only available in macOS 13.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
133 |         library.assertIsolated()
134 |         handle(.connectRequested(timeout: timeout))
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/ConnectionCore.swift:318:21: error: 'Duration' is only available in macOS 13.0 or newer
 16 |
 17 | /// The engine behind one ``Connection``.
 18 | final class ConnectionCore: ConnectionSink, @unchecked Sendable {
    |             `- note: add '@available' attribute to enclosing class
 19 |     let peripheralID: UUID
 20 |     let library: LibraryQueue
    :
315 |     }
316 |
317 |     private func schedule(
    |                  `- note: add '@available' attribute to enclosing instance method
318 |         _ duration: Duration,
    |                     `- error: 'Duration' is only available in macOS 13.0 or newer
319 |         _ work: @escaping @Sendable (ConnectionCore) -> Void
320 |     ) -> ScheduledWork {
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/ConnectionCore.swift:370:9: error: 'Task' is only available in macOS 10.15 or newer
 16 |
 17 | /// The engine behind one ``Connection``.
 18 | final class ConnectionCore: ConnectionSink, @unchecked Sendable {
    |             `- note: add '@available' attribute to enclosing class
 19 |     let peripheralID: UUID
 20 |     let library: LibraryQueue
    :
361 |     /// the instant the link came back must not overtake the resubscribe that the caller never
362 |     /// asked for but is entitled to.
363 |     private func startSubscriptionRestore() {
    |                  `- note: add '@available' attribute to enclosing instance method
364 |         guard !subscriptions.pendingRestore.isEmpty else { return }
365 |         reconnectLog.notice(
    :
368 |         )
369 |         let ticket = ioQueue.enqueue()
370 |         Task { [weak connection] in
    |         |- error: 'Task' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
371 |             await connection?.restoreSubscriptions(holding: ticket)
372 |         }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/ConnectionCore.swift:370:9: error: 'init(name:priority:operation:)' is only available in macOS 10.15 or newer
 16 |
 17 | /// The engine behind one ``Connection``.
 18 | final class ConnectionCore: ConnectionSink, @unchecked Sendable {
    |             `- note: add '@available' attribute to enclosing class
 19 |     let peripheralID: UUID
 20 |     let library: LibraryQueue
    :
361 |     /// the instant the link came back must not overtake the resubscribe that the caller never
362 |     /// asked for but is entitled to.
363 |     private func startSubscriptionRestore() {
    |                  `- note: add '@available' attribute to enclosing instance method
364 |         guard !subscriptions.pendingRestore.isEmpty else { return }
365 |         reconnectLog.notice(
    :
368 |         )
369 |         let ticket = ioQueue.enqueue()
370 |         Task { [weak connection] in
    |         |- error: 'init(name:priority:operation:)' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
371 |             await connection?.restoreSubscriptions(holding: ticket)
372 |         }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/StateMachine/ConnectionEffect.swift:30:30: error: 'Duration' is only available in macOS 13.0 or newer
17 | /// setup, and queued I/O is always failed before a reconnect is armed, so a caller can never
18 | /// see a write land on the far side of a drop it was queued before.
19 | enum ConnectionEffect: Sendable, Equatable {
   |      `- note: add '@available' attribute to enclosing enum
20 |     /// Issue `connect(peripheral:options:)`. Stays pending until fulfilled or cancelled.
21 |     case armConnect
   :
28 |     ///
29 |     /// - Parameter duration: How long the attempt may run.
30 |     case startConnectTimeout(Duration)
   |                              `- error: 'Duration' is only available in macOS 13.0 or newer
31 |
32 |     /// Cancel the connect attempt's deadline.
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/StateMachine/ConnectionEffect.swift:41:30: error: 'Duration' is only available in macOS 13.0 or newer
17 | /// setup, and queued I/O is always failed before a reconnect is armed, so a caller can never
18 | /// see a write land on the far side of a drop it was queued before.
19 | enum ConnectionEffect: Sendable, Equatable {
   |      `- note: add '@available' attribute to enclosing enum
20 |     /// Issue `connect(peripheral:options:)`. Stays pending until fulfilled or cancelled.
21 |     case armConnect
   :
39 |     ///
40 |     /// - Parameter duration: How long to keep waiting.
41 |     case startGiveUpDeadline(Duration)
   |                              `- error: 'Duration' is only available in macOS 13.0 or newer
42 |
43 |     /// Cancel the give-up deadline.
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/StateMachine/ConnectionEffect.swift:53:26: error: 'Duration' is only available in macOS 13.0 or newer
17 | /// setup, and queued I/O is always failed before a reconnect is armed, so a caller can never
18 | /// see a write land on the far side of a drop it was queued before.
19 | enum ConnectionEffect: Sendable, Equatable {
   |      `- note: add '@available' attribute to enclosing enum
20 |     /// Issue `connect(peripheral:options:)`. Stays pending until fulfilled or cancelled.
21 |     case armConnect
   :
51 |     ///
52 |     /// - Parameter interval: The cadence from ``ReconnectPolicy/reArmInterval``.
53 |     case startReArmTimer(Duration)
   |                          `- error: 'Duration' is only available in macOS 13.0 or newer
54 |
55 |     /// Cancel the re-arm cadence. Emitted when the adapter goes away, because re-arming
[27/43] Compiling AsyncBLE ConnectionEffect.swift
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/ConnectionCore+IO.swift:119:26: error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
  9 | import Foundation
 10 |
 11 | extension ConnectionCore {
    | `- note: add '@available' attribute to enclosing extension
 12 |     // MARK: Preconditions
 13 |
    :
115 |
116 |     /// Creates a notification stream and registers it.
117 |     func subscribe(
    |          `- note: add '@available' attribute to enclosing instance method
118 |         to uuid: CBUUID,
119 |         bufferingPolicy: AsyncThrowingStream<Data, Error>.Continuation.BufferingPolicy
    |                          `- error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
120 |     ) -> (subscription: SubscriptionRegistry.Subscription, stream: AsyncThrowingStream<Data, Error>) {
121 |         subscriptions.subscribe(to: uuid, bufferingPolicy: bufferingPolicy)
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/ConnectionCore+IO.swift:120:68: error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
  9 | import Foundation
 10 |
 11 | extension ConnectionCore {
    | `- note: add '@available' attribute to enclosing extension
 12 |     // MARK: Preconditions
 13 |
    :
115 |
116 |     /// Creates a notification stream and registers it.
117 |     func subscribe(
    |          `- note: add '@available' attribute to enclosing instance method
118 |         to uuid: CBUUID,
119 |         bufferingPolicy: AsyncThrowingStream<Data, Error>.Continuation.BufferingPolicy
120 |     ) -> (subscription: SubscriptionRegistry.Subscription, stream: AsyncThrowingStream<Data, Error>) {
    |                                                                    `- error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
121 |         subscriptions.subscribe(to: uuid, bufferingPolicy: bufferingPolicy)
122 |     }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/ConnectionCore.swift:132:34: error: 'Duration' is only available in macOS 13.0 or newer
 16 |
 17 | /// The engine behind one ``Connection``.
 18 | final class ConnectionCore: ConnectionSink, @unchecked Sendable {
    |             `- note: add '@available' attribute to enclosing class
 19 |     let peripheralID: UUID
 20 |     let library: LibraryQueue
    :
130 |
131 |     /// Asks for a link. `timeout` of `nil` is a pending connect with no deadline.
132 |     func requestConnect(timeout: Duration?) {
    |          |                       `- error: 'Duration' is only available in macOS 13.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
133 |         library.assertIsolated()
134 |         handle(.connectRequested(timeout: timeout))
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/ConnectionCore.swift:318:21: error: 'Duration' is only available in macOS 13.0 or newer
 16 |
 17 | /// The engine behind one ``Connection``.
 18 | final class ConnectionCore: ConnectionSink, @unchecked Sendable {
    |             `- note: add '@available' attribute to enclosing class
 19 |     let peripheralID: UUID
 20 |     let library: LibraryQueue
    :
315 |     }
316 |
317 |     private func schedule(
    |                  `- note: add '@available' attribute to enclosing instance method
318 |         _ duration: Duration,
    |                     `- error: 'Duration' is only available in macOS 13.0 or newer
319 |         _ work: @escaping @Sendable (ConnectionCore) -> Void
320 |     ) -> ScheduledWork {
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/ConnectionCore.swift:370:9: error: 'Task' is only available in macOS 10.15 or newer
 16 |
 17 | /// The engine behind one ``Connection``.
 18 | final class ConnectionCore: ConnectionSink, @unchecked Sendable {
    |             `- note: add '@available' attribute to enclosing class
 19 |     let peripheralID: UUID
 20 |     let library: LibraryQueue
    :
361 |     /// the instant the link came back must not overtake the resubscribe that the caller never
362 |     /// asked for but is entitled to.
363 |     private func startSubscriptionRestore() {
    |                  `- note: add '@available' attribute to enclosing instance method
364 |         guard !subscriptions.pendingRestore.isEmpty else { return }
365 |         reconnectLog.notice(
    :
368 |         )
369 |         let ticket = ioQueue.enqueue()
370 |         Task { [weak connection] in
    |         |- error: 'Task' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
371 |             await connection?.restoreSubscriptions(holding: ticket)
372 |         }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/ConnectionCore.swift:370:9: error: 'init(name:priority:operation:)' is only available in macOS 10.15 or newer
 16 |
 17 | /// The engine behind one ``Connection``.
 18 | final class ConnectionCore: ConnectionSink, @unchecked Sendable {
    |             `- note: add '@available' attribute to enclosing class
 19 |     let peripheralID: UUID
 20 |     let library: LibraryQueue
    :
361 |     /// the instant the link came back must not overtake the resubscribe that the caller never
362 |     /// asked for but is entitled to.
363 |     private func startSubscriptionRestore() {
    |                  `- note: add '@available' attribute to enclosing instance method
364 |         guard !subscriptions.pendingRestore.isEmpty else { return }
365 |         reconnectLog.notice(
    :
368 |         )
369 |         let ticket = ioQueue.enqueue()
370 |         Task { [weak connection] in
    |         |- error: 'init(name:priority:operation:)' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
371 |             await connection?.restoreSubscriptions(holding: ticket)
372 |         }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/StateMachine/ConnectionEffect.swift:30:30: error: 'Duration' is only available in macOS 13.0 or newer
17 | /// setup, and queued I/O is always failed before a reconnect is armed, so a caller can never
18 | /// see a write land on the far side of a drop it was queued before.
19 | enum ConnectionEffect: Sendable, Equatable {
   |      `- note: add '@available' attribute to enclosing enum
20 |     /// Issue `connect(peripheral:options:)`. Stays pending until fulfilled or cancelled.
21 |     case armConnect
   :
28 |     ///
29 |     /// - Parameter duration: How long the attempt may run.
30 |     case startConnectTimeout(Duration)
   |                              `- error: 'Duration' is only available in macOS 13.0 or newer
31 |
32 |     /// Cancel the connect attempt's deadline.
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/StateMachine/ConnectionEffect.swift:41:30: error: 'Duration' is only available in macOS 13.0 or newer
17 | /// setup, and queued I/O is always failed before a reconnect is armed, so a caller can never
18 | /// see a write land on the far side of a drop it was queued before.
19 | enum ConnectionEffect: Sendable, Equatable {
   |      `- note: add '@available' attribute to enclosing enum
20 |     /// Issue `connect(peripheral:options:)`. Stays pending until fulfilled or cancelled.
21 |     case armConnect
   :
39 |     ///
40 |     /// - Parameter duration: How long to keep waiting.
41 |     case startGiveUpDeadline(Duration)
   |                              `- error: 'Duration' is only available in macOS 13.0 or newer
42 |
43 |     /// Cancel the give-up deadline.
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/StateMachine/ConnectionEffect.swift:53:26: error: 'Duration' is only available in macOS 13.0 or newer
17 | /// setup, and queued I/O is always failed before a reconnect is armed, so a caller can never
18 | /// see a write land on the far side of a drop it was queued before.
19 | enum ConnectionEffect: Sendable, Equatable {
   |      `- note: add '@available' attribute to enclosing enum
20 |     /// Issue `connect(peripheral:options:)`. Stays pending until fulfilled or cancelled.
21 |     case armConnect
   :
51 |     ///
52 |     /// - Parameter interval: The cadence from ``ReconnectPolicy/reArmInterval``.
53 |     case startReArmTimer(Duration)
   |                          `- error: 'Duration' is only available in macOS 13.0 or newer
54 |
55 |     /// Cancel the re-arm cadence. Emitted when the adapter goes away, because re-arming
[28/43] Compiling AsyncBLE LibraryQueue.swift
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Support/LibraryQueue.swift:28:26: error: 'UnownedSerialExecutor' is only available in macOS 10.15 or newer
19 | ///
20 | /// One per ``Central``, shared with every ``Connection`` that central creates.
21 | final class LibraryQueue: @unchecked Sendable {
   |             `- note: add '@available' attribute to enclosing class
22 |     /// The queue handed to `CBCentralManager`, and the queue the executor runs jobs on.
23 |     let dispatchQueue: DispatchQueue
   :
26 |
27 |     /// The executor to return from an actor's `unownedExecutor`.
28 |     var unownedExecutor: UnownedSerialExecutor { executor.asUnownedSerialExecutor() }
   |         |                `- error: 'UnownedSerialExecutor' is only available in macOS 10.15 or newer
   |         `- note: add '@available' attribute to enclosing property
29 |
30 |     /// Creates a queue and its executor.
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Support/LibraryQueue.swift:56:39: error: 'UnownedSerialExecutor' is only available in macOS 10.15 or newer
47 |
48 | /// A `SerialExecutor` that runs actor jobs on a `DispatchQueue`.
49 | private final class LibraryExecutor: SerialExecutor {
   |                     `- note: add '@available' attribute to enclosing class
50 |     private let queue: DispatchQueue
51 |
   :
54 |     }
55 |
56 |     func asUnownedSerialExecutor() -> UnownedSerialExecutor {
   |          |                            `- error: 'UnownedSerialExecutor' is only available in macOS 10.15 or newer
   |          `- note: add '@available' attribute to enclosing instance method
57 |         UnownedSerialExecutor(ordinary: self)
58 |     }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Support/LibraryQueue.swift:60:25: error: 'UnownedJob' is only available in macOS 10.15 or newer
47 |
48 | /// A `SerialExecutor` that runs actor jobs on a `DispatchQueue`.
49 | private final class LibraryExecutor: SerialExecutor {
   |                     `- note: add '@available' attribute to enclosing class
50 |     private let queue: DispatchQueue
51 |
   :
58 |     }
59 |
60 |     func enqueue(_ job: UnownedJob) {
   |          |              `- error: 'UnownedJob' is only available in macOS 10.15 or newer
   |          `- note: add '@available' attribute to enclosing instance method
61 |         let executor = asUnownedSerialExecutor()
62 |         queue.async { job.runSynchronously(on: executor) }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Support/LibraryQueue.swift:57:9: error: 'UnownedSerialExecutor' is only available in macOS 10.15 or newer
47 |
48 | /// A `SerialExecutor` that runs actor jobs on a `DispatchQueue`.
49 | private final class LibraryExecutor: SerialExecutor {
   |                     `- note: add '@available' attribute to enclosing class
50 |     private let queue: DispatchQueue
51 |
   :
54 |     }
55 |
56 |     func asUnownedSerialExecutor() -> UnownedSerialExecutor {
   |          `- note: add '@available' attribute to enclosing instance method
57 |         UnownedSerialExecutor(ordinary: self)
   |         |- error: 'UnownedSerialExecutor' is only available in macOS 10.15 or newer
   |         `- note: add 'if #available' version check
58 |     }
59 |
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Support/Scheduler.swift:21:35: error: 'Duration' is only available in macOS 13.0 or newer
15 |
16 | /// Something that can run work later, and be told not to.
17 | protocol Scheduler: AnyObject, Sendable {
   |          `- note: add '@available' attribute to enclosing protocol
18 |     /// Schedules `work` to run on the library queue after `duration`.
19 |     ///
20 |     /// - Returns: A handle that cancels the work if it has not run yet.
21 |     func schedule(after duration: Duration, _ work: @escaping @Sendable () -> Void) -> ScheduledWork
   |          |                        `- error: 'Duration' is only available in macOS 13.0 or newer
   |          `- note: add '@available' attribute to enclosing instance method
22 | }
23 |
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Support/Scheduler.swift:38:35: error: 'Duration' is only available in macOS 13.0 or newer
29 |
30 | /// The real scheduler: `DispatchQueue.asyncAfter` on the library queue.
31 | final class QueueScheduler: Scheduler {
   |             `- note: add '@available' attribute to enclosing class
32 |     private let queue: DispatchQueue
33 |
   :
36 |     }
37 |
38 |     func schedule(after duration: Duration, _ work: @escaping @Sendable () -> Void) -> ScheduledWork {
   |          |                        `- error: 'Duration' is only available in macOS 13.0 or newer
   |          `- note: add '@available' attribute to enclosing instance method
39 |         let item = DispatchWorkItem(block: work)
40 |         // Wall time, not uptime. A give-up deadline means what it says, and
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Support/Scheduler.swift:61:11: error: 'Duration' is only available in macOS 13.0 or newer
59 | }
60 |
61 | extension Duration {
   | |         `- error: 'Duration' is only available in macOS 13.0 or newer
   | `- note: add '@available' attribute to enclosing extension
62 |     /// The duration in seconds, for the APIs that predate `Duration`.
63 |     var seconds: Double {
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Support/Scheduler.swift:64:36: error: 'components' is only available in macOS 13.0 or newer
59 | }
60 |
61 | extension Duration {
   | `- note: add '@available' attribute to enclosing extension
62 |     /// The duration in seconds, for the APIs that predate `Duration`.
63 |     var seconds: Double {
   |         `- note: add '@available' attribute to enclosing property
64 |         let (whole, attoseconds) = components
   |                                    |- error: 'components' is only available in macOS 13.0 or newer
   |                                    `- note: add 'if #available' version check
65 |         return Double(whole) + Double(attoseconds) / 1e18
66 |     }
[29/43] Compiling AsyncBLE Log.swift
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Support/LibraryQueue.swift:28:26: error: 'UnownedSerialExecutor' is only available in macOS 10.15 or newer
19 | ///
20 | /// One per ``Central``, shared with every ``Connection`` that central creates.
21 | final class LibraryQueue: @unchecked Sendable {
   |             `- note: add '@available' attribute to enclosing class
22 |     /// The queue handed to `CBCentralManager`, and the queue the executor runs jobs on.
23 |     let dispatchQueue: DispatchQueue
   :
26 |
27 |     /// The executor to return from an actor's `unownedExecutor`.
28 |     var unownedExecutor: UnownedSerialExecutor { executor.asUnownedSerialExecutor() }
   |         |                `- error: 'UnownedSerialExecutor' is only available in macOS 10.15 or newer
   |         `- note: add '@available' attribute to enclosing property
29 |
30 |     /// Creates a queue and its executor.
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Support/LibraryQueue.swift:56:39: error: 'UnownedSerialExecutor' is only available in macOS 10.15 or newer
47 |
48 | /// A `SerialExecutor` that runs actor jobs on a `DispatchQueue`.
49 | private final class LibraryExecutor: SerialExecutor {
   |                     `- note: add '@available' attribute to enclosing class
50 |     private let queue: DispatchQueue
51 |
   :
54 |     }
55 |
56 |     func asUnownedSerialExecutor() -> UnownedSerialExecutor {
   |          |                            `- error: 'UnownedSerialExecutor' is only available in macOS 10.15 or newer
   |          `- note: add '@available' attribute to enclosing instance method
57 |         UnownedSerialExecutor(ordinary: self)
58 |     }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Support/LibraryQueue.swift:60:25: error: 'UnownedJob' is only available in macOS 10.15 or newer
47 |
48 | /// A `SerialExecutor` that runs actor jobs on a `DispatchQueue`.
49 | private final class LibraryExecutor: SerialExecutor {
   |                     `- note: add '@available' attribute to enclosing class
50 |     private let queue: DispatchQueue
51 |
   :
58 |     }
59 |
60 |     func enqueue(_ job: UnownedJob) {
   |          |              `- error: 'UnownedJob' is only available in macOS 10.15 or newer
   |          `- note: add '@available' attribute to enclosing instance method
61 |         let executor = asUnownedSerialExecutor()
62 |         queue.async { job.runSynchronously(on: executor) }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Support/LibraryQueue.swift:57:9: error: 'UnownedSerialExecutor' is only available in macOS 10.15 or newer
47 |
48 | /// A `SerialExecutor` that runs actor jobs on a `DispatchQueue`.
49 | private final class LibraryExecutor: SerialExecutor {
   |                     `- note: add '@available' attribute to enclosing class
50 |     private let queue: DispatchQueue
51 |
   :
54 |     }
55 |
56 |     func asUnownedSerialExecutor() -> UnownedSerialExecutor {
   |          `- note: add '@available' attribute to enclosing instance method
57 |         UnownedSerialExecutor(ordinary: self)
   |         |- error: 'UnownedSerialExecutor' is only available in macOS 10.15 or newer
   |         `- note: add 'if #available' version check
58 |     }
59 |
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Support/Scheduler.swift:21:35: error: 'Duration' is only available in macOS 13.0 or newer
15 |
16 | /// Something that can run work later, and be told not to.
17 | protocol Scheduler: AnyObject, Sendable {
   |          `- note: add '@available' attribute to enclosing protocol
18 |     /// Schedules `work` to run on the library queue after `duration`.
19 |     ///
20 |     /// - Returns: A handle that cancels the work if it has not run yet.
21 |     func schedule(after duration: Duration, _ work: @escaping @Sendable () -> Void) -> ScheduledWork
   |          |                        `- error: 'Duration' is only available in macOS 13.0 or newer
   |          `- note: add '@available' attribute to enclosing instance method
22 | }
23 |
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Support/Scheduler.swift:38:35: error: 'Duration' is only available in macOS 13.0 or newer
29 |
30 | /// The real scheduler: `DispatchQueue.asyncAfter` on the library queue.
31 | final class QueueScheduler: Scheduler {
   |             `- note: add '@available' attribute to enclosing class
32 |     private let queue: DispatchQueue
33 |
   :
36 |     }
37 |
38 |     func schedule(after duration: Duration, _ work: @escaping @Sendable () -> Void) -> ScheduledWork {
   |          |                        `- error: 'Duration' is only available in macOS 13.0 or newer
   |          `- note: add '@available' attribute to enclosing instance method
39 |         let item = DispatchWorkItem(block: work)
40 |         // Wall time, not uptime. A give-up deadline means what it says, and
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Support/Scheduler.swift:61:11: error: 'Duration' is only available in macOS 13.0 or newer
59 | }
60 |
61 | extension Duration {
   | |         `- error: 'Duration' is only available in macOS 13.0 or newer
   | `- note: add '@available' attribute to enclosing extension
62 |     /// The duration in seconds, for the APIs that predate `Duration`.
63 |     var seconds: Double {
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Support/Scheduler.swift:64:36: error: 'components' is only available in macOS 13.0 or newer
59 | }
60 |
61 | extension Duration {
   | `- note: add '@available' attribute to enclosing extension
62 |     /// The duration in seconds, for the APIs that predate `Duration`.
63 |     var seconds: Double {
   |         `- note: add '@available' attribute to enclosing property
64 |         let (whole, attoseconds) = components
   |                                    |- error: 'components' is only available in macOS 13.0 or newer
   |                                    `- note: add 'if #available' version check
65 |         return Double(whole) + Double(attoseconds) / 1e18
66 |     }
[30/43] Compiling AsyncBLE Scheduler.swift
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Support/LibraryQueue.swift:28:26: error: 'UnownedSerialExecutor' is only available in macOS 10.15 or newer
19 | ///
20 | /// One per ``Central``, shared with every ``Connection`` that central creates.
21 | final class LibraryQueue: @unchecked Sendable {
   |             `- note: add '@available' attribute to enclosing class
22 |     /// The queue handed to `CBCentralManager`, and the queue the executor runs jobs on.
23 |     let dispatchQueue: DispatchQueue
   :
26 |
27 |     /// The executor to return from an actor's `unownedExecutor`.
28 |     var unownedExecutor: UnownedSerialExecutor { executor.asUnownedSerialExecutor() }
   |         |                `- error: 'UnownedSerialExecutor' is only available in macOS 10.15 or newer
   |         `- note: add '@available' attribute to enclosing property
29 |
30 |     /// Creates a queue and its executor.
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Support/LibraryQueue.swift:56:39: error: 'UnownedSerialExecutor' is only available in macOS 10.15 or newer
47 |
48 | /// A `SerialExecutor` that runs actor jobs on a `DispatchQueue`.
49 | private final class LibraryExecutor: SerialExecutor {
   |                     `- note: add '@available' attribute to enclosing class
50 |     private let queue: DispatchQueue
51 |
   :
54 |     }
55 |
56 |     func asUnownedSerialExecutor() -> UnownedSerialExecutor {
   |          |                            `- error: 'UnownedSerialExecutor' is only available in macOS 10.15 or newer
   |          `- note: add '@available' attribute to enclosing instance method
57 |         UnownedSerialExecutor(ordinary: self)
58 |     }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Support/LibraryQueue.swift:60:25: error: 'UnownedJob' is only available in macOS 10.15 or newer
47 |
48 | /// A `SerialExecutor` that runs actor jobs on a `DispatchQueue`.
49 | private final class LibraryExecutor: SerialExecutor {
   |                     `- note: add '@available' attribute to enclosing class
50 |     private let queue: DispatchQueue
51 |
   :
58 |     }
59 |
60 |     func enqueue(_ job: UnownedJob) {
   |          |              `- error: 'UnownedJob' is only available in macOS 10.15 or newer
   |          `- note: add '@available' attribute to enclosing instance method
61 |         let executor = asUnownedSerialExecutor()
62 |         queue.async { job.runSynchronously(on: executor) }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Support/LibraryQueue.swift:57:9: error: 'UnownedSerialExecutor' is only available in macOS 10.15 or newer
47 |
48 | /// A `SerialExecutor` that runs actor jobs on a `DispatchQueue`.
49 | private final class LibraryExecutor: SerialExecutor {
   |                     `- note: add '@available' attribute to enclosing class
50 |     private let queue: DispatchQueue
51 |
   :
54 |     }
55 |
56 |     func asUnownedSerialExecutor() -> UnownedSerialExecutor {
   |          `- note: add '@available' attribute to enclosing instance method
57 |         UnownedSerialExecutor(ordinary: self)
   |         |- error: 'UnownedSerialExecutor' is only available in macOS 10.15 or newer
   |         `- note: add 'if #available' version check
58 |     }
59 |
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Support/Scheduler.swift:21:35: error: 'Duration' is only available in macOS 13.0 or newer
15 |
16 | /// Something that can run work later, and be told not to.
17 | protocol Scheduler: AnyObject, Sendable {
   |          `- note: add '@available' attribute to enclosing protocol
18 |     /// Schedules `work` to run on the library queue after `duration`.
19 |     ///
20 |     /// - Returns: A handle that cancels the work if it has not run yet.
21 |     func schedule(after duration: Duration, _ work: @escaping @Sendable () -> Void) -> ScheduledWork
   |          |                        `- error: 'Duration' is only available in macOS 13.0 or newer
   |          `- note: add '@available' attribute to enclosing instance method
22 | }
23 |
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Support/Scheduler.swift:38:35: error: 'Duration' is only available in macOS 13.0 or newer
29 |
30 | /// The real scheduler: `DispatchQueue.asyncAfter` on the library queue.
31 | final class QueueScheduler: Scheduler {
   |             `- note: add '@available' attribute to enclosing class
32 |     private let queue: DispatchQueue
33 |
   :
36 |     }
37 |
38 |     func schedule(after duration: Duration, _ work: @escaping @Sendable () -> Void) -> ScheduledWork {
   |          |                        `- error: 'Duration' is only available in macOS 13.0 or newer
   |          `- note: add '@available' attribute to enclosing instance method
39 |         let item = DispatchWorkItem(block: work)
40 |         // Wall time, not uptime. A give-up deadline means what it says, and
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Support/Scheduler.swift:61:11: error: 'Duration' is only available in macOS 13.0 or newer
59 | }
60 |
61 | extension Duration {
   | |         `- error: 'Duration' is only available in macOS 13.0 or newer
   | `- note: add '@available' attribute to enclosing extension
62 |     /// The duration in seconds, for the APIs that predate `Duration`.
63 |     var seconds: Double {
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Support/Scheduler.swift:64:36: error: 'components' is only available in macOS 13.0 or newer
59 | }
60 |
61 | extension Duration {
   | `- note: add '@available' attribute to enclosing extension
62 |     /// The duration in seconds, for the APIs that predate `Duration`.
63 |     var seconds: Double {
   |         `- note: add '@available' attribute to enclosing property
64 |         let (whole, attoseconds) = components
   |                                    |- error: 'components' is only available in macOS 13.0 or newer
   |                                    `- note: add 'if #available' version check
65 |         return Double(whole) + Double(attoseconds) / 1e18
66 |     }
[31/43] Compiling AsyncBLE AdapterState.swift
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Support/LibraryQueue.swift:28:26: error: 'UnownedSerialExecutor' is only available in macOS 10.15 or newer
19 | ///
20 | /// One per ``Central``, shared with every ``Connection`` that central creates.
21 | final class LibraryQueue: @unchecked Sendable {
   |             `- note: add '@available' attribute to enclosing class
22 |     /// The queue handed to `CBCentralManager`, and the queue the executor runs jobs on.
23 |     let dispatchQueue: DispatchQueue
   :
26 |
27 |     /// The executor to return from an actor's `unownedExecutor`.
28 |     var unownedExecutor: UnownedSerialExecutor { executor.asUnownedSerialExecutor() }
   |         |                `- error: 'UnownedSerialExecutor' is only available in macOS 10.15 or newer
   |         `- note: add '@available' attribute to enclosing property
29 |
30 |     /// Creates a queue and its executor.
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Support/LibraryQueue.swift:56:39: error: 'UnownedSerialExecutor' is only available in macOS 10.15 or newer
47 |
48 | /// A `SerialExecutor` that runs actor jobs on a `DispatchQueue`.
49 | private final class LibraryExecutor: SerialExecutor {
   |                     `- note: add '@available' attribute to enclosing class
50 |     private let queue: DispatchQueue
51 |
   :
54 |     }
55 |
56 |     func asUnownedSerialExecutor() -> UnownedSerialExecutor {
   |          |                            `- error: 'UnownedSerialExecutor' is only available in macOS 10.15 or newer
   |          `- note: add '@available' attribute to enclosing instance method
57 |         UnownedSerialExecutor(ordinary: self)
58 |     }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Support/LibraryQueue.swift:60:25: error: 'UnownedJob' is only available in macOS 10.15 or newer
47 |
48 | /// A `SerialExecutor` that runs actor jobs on a `DispatchQueue`.
49 | private final class LibraryExecutor: SerialExecutor {
   |                     `- note: add '@available' attribute to enclosing class
50 |     private let queue: DispatchQueue
51 |
   :
58 |     }
59 |
60 |     func enqueue(_ job: UnownedJob) {
   |          |              `- error: 'UnownedJob' is only available in macOS 10.15 or newer
   |          `- note: add '@available' attribute to enclosing instance method
61 |         let executor = asUnownedSerialExecutor()
62 |         queue.async { job.runSynchronously(on: executor) }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Support/LibraryQueue.swift:57:9: error: 'UnownedSerialExecutor' is only available in macOS 10.15 or newer
47 |
48 | /// A `SerialExecutor` that runs actor jobs on a `DispatchQueue`.
49 | private final class LibraryExecutor: SerialExecutor {
   |                     `- note: add '@available' attribute to enclosing class
50 |     private let queue: DispatchQueue
51 |
   :
54 |     }
55 |
56 |     func asUnownedSerialExecutor() -> UnownedSerialExecutor {
   |          `- note: add '@available' attribute to enclosing instance method
57 |         UnownedSerialExecutor(ordinary: self)
   |         |- error: 'UnownedSerialExecutor' is only available in macOS 10.15 or newer
   |         `- note: add 'if #available' version check
58 |     }
59 |
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Support/Scheduler.swift:21:35: error: 'Duration' is only available in macOS 13.0 or newer
15 |
16 | /// Something that can run work later, and be told not to.
17 | protocol Scheduler: AnyObject, Sendable {
   |          `- note: add '@available' attribute to enclosing protocol
18 |     /// Schedules `work` to run on the library queue after `duration`.
19 |     ///
20 |     /// - Returns: A handle that cancels the work if it has not run yet.
21 |     func schedule(after duration: Duration, _ work: @escaping @Sendable () -> Void) -> ScheduledWork
   |          |                        `- error: 'Duration' is only available in macOS 13.0 or newer
   |          `- note: add '@available' attribute to enclosing instance method
22 | }
23 |
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Support/Scheduler.swift:38:35: error: 'Duration' is only available in macOS 13.0 or newer
29 |
30 | /// The real scheduler: `DispatchQueue.asyncAfter` on the library queue.
31 | final class QueueScheduler: Scheduler {
   |             `- note: add '@available' attribute to enclosing class
32 |     private let queue: DispatchQueue
33 |
   :
36 |     }
37 |
38 |     func schedule(after duration: Duration, _ work: @escaping @Sendable () -> Void) -> ScheduledWork {
   |          |                        `- error: 'Duration' is only available in macOS 13.0 or newer
   |          `- note: add '@available' attribute to enclosing instance method
39 |         let item = DispatchWorkItem(block: work)
40 |         // Wall time, not uptime. A give-up deadline means what it says, and
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Support/Scheduler.swift:61:11: error: 'Duration' is only available in macOS 13.0 or newer
59 | }
60 |
61 | extension Duration {
   | |         `- error: 'Duration' is only available in macOS 13.0 or newer
   | `- note: add '@available' attribute to enclosing extension
62 |     /// The duration in seconds, for the APIs that predate `Duration`.
63 |     var seconds: Double {
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Support/Scheduler.swift:64:36: error: 'components' is only available in macOS 13.0 or newer
59 | }
60 |
61 | extension Duration {
   | `- note: add '@available' attribute to enclosing extension
62 |     /// The duration in seconds, for the APIs that predate `Duration`.
63 |     var seconds: Double {
   |         `- note: add '@available' attribute to enclosing property
64 |         let (whole, attoseconds) = components
   |                                    |- error: 'components' is only available in macOS 13.0 or newer
   |                                    `- note: add 'if #available' version check
65 |         return Double(whole) + Double(attoseconds) / 1e18
66 |     }
[32/43] Compiling AsyncBLE SubscriptionRegistry.swift
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Bridge/SubscriptionRegistry.swift:23:39: error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
 19 | final class SubscriptionRegistry: @unchecked Sendable {
 20 |     /// One caller's `notifications(for:)` stream.
 21 |     final class Subscription: @unchecked Sendable {
    |                 `- note: add '@available' attribute to enclosing class
 22 |         let uuid: CBUUID
 23 |         fileprivate let continuation: AsyncThrowingStream<Data, Error>.Continuation
    |                                       `- error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
 24 |
 25 |         fileprivate init(uuid: CBUUID, continuation: AsyncThrowingStream<Data, Error>.Continuation) {
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Bridge/SubscriptionRegistry.swift:25:54: error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
 19 | final class SubscriptionRegistry: @unchecked Sendable {
 20 |     /// One caller's `notifications(for:)` stream.
 21 |     final class Subscription: @unchecked Sendable {
    |                 `- note: add '@available' attribute to enclosing class
 22 |         let uuid: CBUUID
 23 |         fileprivate let continuation: AsyncThrowingStream<Data, Error>.Continuation
 24 |
 25 |         fileprivate init(uuid: CBUUID, continuation: AsyncThrowingStream<Data, Error>.Continuation) {
    |                     |                                `- error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
    |                     `- note: add '@available' attribute to enclosing initializer
 26 |             self.uuid = uuid
 27 |             self.continuation = continuation
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Bridge/SubscriptionRegistry.swift:69:26: error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
 17 |
 18 | /// The live notification streams of one connection.
 19 | final class SubscriptionRegistry: @unchecked Sendable {
    |             `- note: add '@available' attribute to enclosing class
 20 |     /// One caller's `notifications(for:)` stream.
 21 |     final class Subscription: @unchecked Sendable {
    :
 65 |     /// while the confirmation is in flight still unsubscribes cleanly. The connection removes
 66 |     /// it again if the subscribe fails.
 67 |     func subscribe(
    |          `- note: add '@available' attribute to enclosing instance method
 68 |         to uuid: CBUUID,
 69 |         bufferingPolicy: AsyncThrowingStream<Data, Error>.Continuation.BufferingPolicy
    |                          `- error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
 70 |     ) -> (subscription: Subscription, stream: AsyncThrowingStream<Data, Error>) {
 71 |         var subscription: Subscription?
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Bridge/SubscriptionRegistry.swift:70:47: error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
 17 |
 18 | /// The live notification streams of one connection.
 19 | final class SubscriptionRegistry: @unchecked Sendable {
    |             `- note: add '@available' attribute to enclosing class
 20 |     /// One caller's `notifications(for:)` stream.
 21 |     final class Subscription: @unchecked Sendable {
    :
 65 |     /// while the confirmation is in flight still unsubscribes cleanly. The connection removes
 66 |     /// it again if the subscribe fails.
 67 |     func subscribe(
    |          `- note: add '@available' attribute to enclosing instance method
 68 |         to uuid: CBUUID,
 69 |         bufferingPolicy: AsyncThrowingStream<Data, Error>.Continuation.BufferingPolicy
 70 |     ) -> (subscription: Subscription, stream: AsyncThrowingStream<Data, Error>) {
    |                                               `- error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
 71 |         var subscription: Subscription?
 72 |         let stream = AsyncThrowingStream(Data.self, bufferingPolicy: bufferingPolicy) { continuation in
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Bridge/SubscriptionRegistry.swift:90:21: error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
 17 |
 18 | /// The live notification streams of one connection.
 19 | final class SubscriptionRegistry: @unchecked Sendable {
    |             `- note: add '@available' attribute to enclosing class
 20 |     /// One caller's `notifications(for:)` stream.
 21 |     final class Subscription: @unchecked Sendable {
    :
 86 |     /// written inside another closure captures *that* closure's `self`, which Swift 6 rejects as
 87 |     /// a reference to a captured var from concurrently-executing code.
 88 |     private func terminator(
    |                  `- note: add '@available' attribute to enclosing instance method
 89 |         for subscription: Subscription
 90 |     ) -> @Sendable (AsyncThrowingStream<Data, Error>.Continuation.Termination) -> Void {
    |                     `- error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
 91 |         // The weak reference is promoted before the queue hop rather than inside it. A weak
 92 |         // capture is a `var` — it can become nil — and Swift 6 rejects reading one from
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Bridge/SubscriptionRegistry.swift:72:22: error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
 17 |
 18 | /// The live notification streams of one connection.
 19 | final class SubscriptionRegistry: @unchecked Sendable {
    |             `- note: add '@available' attribute to enclosing class
 20 |     /// One caller's `notifications(for:)` stream.
 21 |     final class Subscription: @unchecked Sendable {
    :
 65 |     /// while the confirmation is in flight still unsubscribes cleanly. The connection removes
 66 |     /// it again if the subscribe fails.
 67 |     func subscribe(
    |          `- note: add '@available' attribute to enclosing instance method
 68 |         to uuid: CBUUID,
 69 |         bufferingPolicy: AsyncThrowingStream<Data, Error>.Continuation.BufferingPolicy
 70 |     ) -> (subscription: Subscription, stream: AsyncThrowingStream<Data, Error>) {
 71 |         var subscription: Subscription?
 72 |         let stream = AsyncThrowingStream(Data.self, bufferingPolicy: bufferingPolicy) { continuation in
    |                      |- error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
    |                      `- note: add 'if #available' version check
 73 |             let new = Subscription(uuid: uuid, continuation: continuation)
 74 |             subscription = new
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Central+Engine.swift:36:51: error: 'Duration' is only available in macOS 13.0 or newer
  5 | import Foundation
  6 |
  7 | extension Central {
    | `- note: add '@available' attribute to enclosing extension
  8 |     /// Waits for the adapter to say something definitive, and throws if that is bad news.
  9 |     ///
    :
 34 |     ///   - peripheralID: Which peripheral.
 35 |     ///   - timeout: The deadline for the attempt, or `nil` to pend indefinitely.
 36 |     func establish(_ peripheralID: UUID, timeout: Duration?) async throws -> Connection {
    |          |                                        `- error: 'Duration' is only available in macOS 13.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
 37 |         try await requirePoweredOn()
 38 |         let connection = try connection(for: peripheralID)
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Central+Engine.swift:71:64: error: 'Duration' is only available in macOS 13.0 or newer
  5 | import Foundation
  6 |
  7 | extension Central {
    | `- note: add '@available' attribute to enclosing extension
  8 |     /// Waits for the adapter to say something definitive, and throws if that is bad news.
  9 |     ///
    :
 69 |
 70 |     /// Suspends until the link comes up, this caller gives up, or the connection ends.
 71 |     private func waitForLink(on core: ConnectionCore, timeout: Duration?) async throws {
    |                  |                                             `- error: 'Duration' is only available in macOS 13.0 or newer
    |                  `- note: add '@available' attribute to enclosing instance method
 72 |         let handle = ConnectAttemptHandle()
 73 |         try await withTaskCancellationHandler {
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Central+Engine.swift:24:9: error: 'makeAsyncIterator()' is only available in macOS 10.15 or newer
  5 | import Foundation
  6 |
  7 | extension Central {
    | `- note: add '@available' attribute to enclosing extension
  8 |     /// Waits for the adapter to say something definitive, and throws if that is bad news.
  9 |     ///
    :
 18 |
 19 |     /// The adapter's state once it is something other than "not yet known".
 20 |     private func definitiveAdapterState() async -> AdapterState {
    |                  `- note: add '@available' attribute to enclosing instance method
 21 |         let current = bridge.adapterStates.current
 22 |         guard current == .unavailable(reason: .unknown) else { return current }
 23 |
 24 |         for await state in bridge.adapterStates.stream() where state != .unavailable(reason: .unknown) {
    |         |- error: 'makeAsyncIterator()' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
 25 |             return state
 26 |         }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Central+Engine.swift:73:19: error: 'withTaskCancellationHandler(operation:onCancel:isolation:)' is only available in macOS 10.15 or newer
  5 | import Foundation
  6 |
  7 | extension Central {
    | `- note: add '@available' attribute to enclosing extension
  8 |     /// Waits for the adapter to say something definitive, and throws if that is bad news.
  9 |     ///
    :
 69 |
 70 |     /// Suspends until the link comes up, this caller gives up, or the connection ends.
 71 |     private func waitForLink(on core: ConnectionCore, timeout: Duration?) async throws {
    |                  `- note: add '@available' attribute to enclosing instance method
 72 |         let handle = ConnectAttemptHandle()
 73 |         try await withTaskCancellationHandler {
    |                   |- error: 'withTaskCancellationHandler(operation:onCancel:isolation:)' is only available in macOS 10.15 or newer
    |                   `- note: add 'if #available' version check
 74 |             try await withCheckedThrowingContinuation { continuation in
 75 |                 handle.begin(core: core, continuation: continuation, timeout: timeout, scheduler: scheduler)
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Central+Engine.swift:74:23: error: 'withCheckedThrowingContinuation(isolation:function:_:)' is only available in macOS 10.15 or newer
  5 | import Foundation
  6 |
  7 | extension Central {
    | `- note: add '@available' attribute to enclosing extension
  8 |     /// Waits for the adapter to say something definitive, and throws if that is bad news.
  9 |     ///
    :
 69 |
 70 |     /// Suspends until the link comes up, this caller gives up, or the connection ends.
 71 |     private func waitForLink(on core: ConnectionCore, timeout: Duration?) async throws {
    |                  `- note: add '@available' attribute to enclosing instance method
 72 |         let handle = ConnectAttemptHandle()
 73 |         try await withTaskCancellationHandler {
 74 |             try await withCheckedThrowingContinuation { continuation in
    |                       |- error: 'withCheckedThrowingContinuation(isolation:function:_:)' is only available in macOS 10.15 or newer
    |                       `- note: add 'if #available' version check
 75 |                 handle.begin(core: core, continuation: continuation, timeout: timeout, scheduler: scheduler)
 76 |             }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Central+Engine.swift:74:56: error: 'isolation()' is only available in macOS 10.15 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Central+Engine.swift:74:55: note: expanded code originates here
  5 | import Foundation
  6 |
  7 | extension Central {
    | `- note: add '@available' attribute to enclosing extension
  8 |     /// Waits for the adapter to say something definitive, and throws if that is bad news.
  9 |     ///
    :
 69 |
 70 |     /// Suspends until the link comes up, this caller gives up, or the connection ends.
 71 |     private func waitForLink(on core: ConnectionCore, timeout: Duration?) async throws {
    |                  `- note: add '@available' attribute to enclosing instance method
 72 |         let handle = ConnectAttemptHandle()
 73 |         try await withTaskCancellationHandler {
 74 |             try await withCheckedThrowingContinuation { continuation in
    +--- /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Central+Engine.swift
    |72 |
    |73 |
    |74 |                                                       #isolation
    |   |                                                        `- error: 'isolation()' is only available in macOS 10.15 or newer
    +---------------------------------------------------------------------------------------------------------
 75 |                 handle.begin(core: core, continuation: continuation, timeout: timeout, scheduler: scheduler)
 76 |             }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Central+Engine.swift:73:48: error: 'isolation()' is only available in macOS 10.15 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Central+Engine.swift:73:47: note: expanded code originates here
  5 | import Foundation
  6 |
  7 | extension Central {
    | `- note: add '@available' attribute to enclosing extension
  8 |     /// Waits for the adapter to say something definitive, and throws if that is bad news.
  9 |     ///
    :
 69 |
 70 |     /// Suspends until the link comes up, this caller gives up, or the connection ends.
 71 |     private func waitForLink(on core: ConnectionCore, timeout: Duration?) async throws {
    |                  `- note: add '@available' attribute to enclosing instance method
 72 |         let handle = ConnectAttemptHandle()
 73 |         try await withTaskCancellationHandler {
    +--- /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Central+Engine.swift
    |71 |
    |72 |
    |73 |                                               #isolation
    |   |                                                `- error: 'isolation()' is only available in macOS 10.15 or newer
    +---------------------------------------------------------------------------------------------------------
 74 |             try await withCheckedThrowingContinuation { continuation in
 75 |                 handle.begin(core: core, continuation: continuation, timeout: timeout, scheduler: scheduler)
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/ConnectAttempt.swift:15:31: error: 'CheckedContinuation' is only available in macOS 10.15 or newer
12 |
13 | /// A continuation that can be resumed from several places and will only resume once.
14 | final class ResumeOnce: @unchecked Sendable {
   |             `- note: add '@available' attribute to enclosing class
15 |     private var continuation: CheckedContinuation<Void, Error>?
   |                               `- error: 'CheckedContinuation' is only available in macOS 10.15 or newer
16 |
17 |     init(_ continuation: CheckedContinuation<Void, Error>) {
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/ConnectAttempt.swift:17:26: error: 'CheckedContinuation' is only available in macOS 10.15 or newer
12 |
13 | /// A continuation that can be resumed from several places and will only resume once.
14 | final class ResumeOnce: @unchecked Sendable {
   |             `- note: add '@available' attribute to enclosing class
15 |     private var continuation: CheckedContinuation<Void, Error>?
16 |
17 |     init(_ continuation: CheckedContinuation<Void, Error>) {
   |     |                    `- error: 'CheckedContinuation' is only available in macOS 10.15 or newer
   |     `- note: add '@available' attribute to enclosing initializer
18 |         self.continuation = continuation
19 |     }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/ConnectAttempt.swift:48:23: error: 'CheckedContinuation' is only available in macOS 10.15 or newer
28 |
29 | /// One caller waiting for a connection to come up.
30 | final class ConnectAttemptHandle: @unchecked Sendable {
   |             `- note: add '@available' attribute to enclosing class
31 |     private var once: ResumeOnce?
32 |     private var core: ConnectionCore?
   :
44 |     ///     gets its deadline from the state machine instead, so the two never both fire.
45 |     ///   - scheduler: Where the deadline is armed.
46 |     func begin(
   |          `- note: add '@available' attribute to enclosing instance method
47 |         core: ConnectionCore,
48 |         continuation: CheckedContinuation<Void, Error>,
   |                       `- error: 'CheckedContinuation' is only available in macOS 10.15 or newer
49 |         timeout: Duration?,
50 |         scheduler: Scheduler
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/ConnectAttempt.swift:49:18: error: 'Duration' is only available in macOS 13.0 or newer
28 |
29 | /// One caller waiting for a connection to come up.
30 | final class ConnectAttemptHandle: @unchecked Sendable {
   |             `- note: add '@available' attribute to enclosing class
31 |     private var once: ResumeOnce?
32 |     private var core: ConnectionCore?
   :
44 |     ///     gets its deadline from the state machine instead, so the two never both fire.
45 |     ///   - scheduler: Where the deadline is armed.
46 |     func begin(
   |          `- note: add '@available' attribute to enclosing instance method
47 |         core: ConnectionCore,
48 |         continuation: CheckedContinuation<Void, Error>,
49 |         timeout: Duration?,
   |                  `- error: 'Duration' is only available in macOS 13.0 or newer
50 |         scheduler: Scheduler
51 |     ) {
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/ConnectAttempt.swift:25:22: error: 'resume(with:)' is only available in macOS 10.15 or newer
12 |
13 | /// A continuation that can be resumed from several places and will only resume once.
14 | final class ResumeOnce: @unchecked Sendable {
   |             `- note: add '@available' attribute to enclosing class
15 |     private var continuation: CheckedContinuation<Void, Error>?
16 |
   :
20 |
21 |     /// Resumes, unless something already did.
22 |     func resume(_ result: Result<Void, Error>) {
   |          `- note: add '@available' attribute to enclosing instance method
23 |         guard let continuation else { return }
24 |         self.continuation = nil
25 |         continuation.resume(with: result)
   |                      |- error: 'resume(with:)' is only available in macOS 10.15 or newer
   |                      `- note: add 'if #available' version check
26 |     }
27 | }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/ConnectAttempt.swift:58:34: error: 'CancellationError' is only available in macOS 10.15 or newer
28 |
29 | /// One caller waiting for a connection to come up.
30 | final class ConnectAttemptHandle: @unchecked Sendable {
   |             `- note: add '@available' attribute to enclosing class
31 |     private var once: ResumeOnce?
32 |     private var core: ConnectionCore?
   :
44 |     ///     gets its deadline from the state machine instead, so the two never both fire.
45 |     ///   - scheduler: Where the deadline is armed.
46 |     func begin(
   |          `- note: add '@available' attribute to enclosing instance method
47 |         core: ConnectionCore,
48 |         continuation: CheckedContinuation<Void, Error>,
   :
56 |         guard !cancelledBeforeStart else {
57 |             // The caller's task was cancelled before this even got to run.
58 |             once.resume(.failure(CancellationError()))
   |                                  |- error: 'CancellationError' is only available in macOS 10.15 or newer
   |                                  `- note: add 'if #available' version check
59 |             return
60 |         }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/ConnectAttempt.swift:80:31: error: 'CancellationError' is only available in macOS 10.15 or newer
28 |
29 | /// One caller waiting for a connection to come up.
30 | final class ConnectAttemptHandle: @unchecked Sendable {
   |             `- note: add '@available' attribute to enclosing class
31 |     private var once: ResumeOnce?
32 |     private var core: ConnectionCore?
   :
75 |     /// The caller went away. Detach it, and let the connection decide whether the attempt has
76 |     /// anyone left to serve.
77 |     func cancel() {
   |          `- note: add '@available' attribute to enclosing instance method
78 |         cancelledBeforeStart = true
79 |         detach()
80 |         once?.resume(.failure(CancellationError()))
   |                               |- error: 'CancellationError' is only available in macOS 10.15 or newer
   |                               `- note: add 'if #available' version check
81 |     }
82 |
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Connection+Engine.swift:20:19: error: 'withCheckedThrowingContinuation(isolation:function:_:)' is only available in macOS 10.15 or newer
10 | import Foundation
11 |
12 | extension Connection {
   | `- note: add '@available' attribute to enclosing extension
13 |     /// Suspends until the engine hands back a result.
14 |     ///
15 |     /// - Parameter register: Parks a callback with the engine. Runs synchronously, on the
16 |     ///   library queue, before this function suspends.
17 |     func suspend<T: Sendable>(
   |          `- note: add '@available' attribute to enclosing instance method
18 |         _ register: (@escaping @Sendable (Result<T, Error>) -> Void) -> Void
19 |     ) async throws -> T {
20 |         try await withCheckedThrowingContinuation { continuation in
   |                   |- error: 'withCheckedThrowingContinuation(isolation:function:_:)' is only available in macOS 10.15 or newer
   |                   `- note: add 'if #available' version check
21 |             register { continuation.resume(with: $0) }
22 |         }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Connection+Engine.swift:21:37: error: 'resume(with:)' is only available in macOS 10.15 or newer
10 | import Foundation
11 |
12 | extension Connection {
   | `- note: add '@available' attribute to enclosing extension
13 |     /// Suspends until the engine hands back a result.
14 |     ///
15 |     /// - Parameter register: Parks a callback with the engine. Runs synchronously, on the
16 |     ///   library queue, before this function suspends.
17 |     func suspend<T: Sendable>(
   |          `- note: add '@available' attribute to enclosing instance method
18 |         _ register: (@escaping @Sendable (Result<T, Error>) -> Void) -> Void
19 |     ) async throws -> T {
20 |         try await withCheckedThrowingContinuation { continuation in
21 |             register { continuation.resume(with: $0) }
   |                                     |- error: 'resume(with:)' is only available in macOS 10.15 or newer
   |                                     `- note: add 'if #available' version check
22 |         }
23 |     }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Connection+Engine.swift:20:52: error: 'isolation()' is only available in macOS 10.15 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Connection+Engine.swift:20:51: note: expanded code originates here
10 | import Foundation
11 |
12 | extension Connection {
   | `- note: add '@available' attribute to enclosing extension
13 |     /// Suspends until the engine hands back a result.
14 |     ///
15 |     /// - Parameter register: Parks a callback with the engine. Runs synchronously, on the
16 |     ///   library queue, before this function suspends.
17 |     func suspend<T: Sendable>(
   |          `- note: add '@available' attribute to enclosing instance method
18 |         _ register: (@escaping @Sendable (Result<T, Error>) -> Void) -> Void
19 |     ) async throws -> T {
20 |         try await withCheckedThrowingContinuation { continuation in
   +--- /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Connection+Engine.swift
   |18 |
   |19 |
   |20 |                                                   #isolation
   |   |                                                    `- error: 'isolation()' is only available in macOS 10.15 or newer
   +------------------------------------------------------------------------------------------------------------
21 |             register { continuation.resume(with: $0) }
22 |         }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Connection+Engine.swift:31:19: error: 'withTaskCancellationHandler(operation:onCancel:isolation:)' is only available in macOS 10.15 or newer
10 | import Foundation
11 |
12 | extension Connection {
   | `- note: add '@available' attribute to enclosing extension
13 |     /// Suspends until the engine hands back a result.
14 |     ///
   :
28 |     /// move on. A cancellation that arrives once the operation is already running is ignored:
29 |     /// CoreBluetooth has no way to withdraw a read or a write that is on the wire.
30 |     func waitForTurn(_ ticket: IOQueue.Ticket) async throws {
   |          `- note: add '@available' attribute to enclosing instance method
31 |         try await withTaskCancellationHandler {
   |                   |- error: 'withTaskCancellationHandler(operation:onCancel:isolation:)' is only available in macOS 10.15 or newer
   |                   `- note: add 'if #available' version check
32 |             try await suspend { resume in
33 |                 core.attachTurn({ resume($0) }, to: ticket)
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Connection+Engine.swift:31:48: error: 'isolation()' is only available in macOS 10.15 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Connection+Engine.swift:31:47: note: expanded code originates here
10 | import Foundation
11 |
12 | extension Connection {
   | `- note: add '@available' attribute to enclosing extension
13 |     /// Suspends until the engine hands back a result.
14 |     ///
   :
28 |     /// move on. A cancellation that arrives once the operation is already running is ignored:
29 |     /// CoreBluetooth has no way to withdraw a read or a write that is on the wire.
30 |     func waitForTurn(_ ticket: IOQueue.Ticket) async throws {
   |          `- note: add '@available' attribute to enclosing instance method
31 |         try await withTaskCancellationHandler {
   +--- /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Connection+Engine.swift
   |29 |
   |30 |
   |31 |                                               #isolation
   |   |                                                `- error: 'isolation()' is only available in macOS 10.15 or newer
   +------------------------------------------------------------------------------------------------------------
32 |             try await suspend { resume in
33 |                 core.attachTurn({ resume($0) }, to: ticket)
[33/43] Compiling AsyncBLE Central+Engine.swift
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Bridge/SubscriptionRegistry.swift:23:39: error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
 19 | final class SubscriptionRegistry: @unchecked Sendable {
 20 |     /// One caller's `notifications(for:)` stream.
 21 |     final class Subscription: @unchecked Sendable {
    |                 `- note: add '@available' attribute to enclosing class
 22 |         let uuid: CBUUID
 23 |         fileprivate let continuation: AsyncThrowingStream<Data, Error>.Continuation
    |                                       `- error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
 24 |
 25 |         fileprivate init(uuid: CBUUID, continuation: AsyncThrowingStream<Data, Error>.Continuation) {
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Bridge/SubscriptionRegistry.swift:25:54: error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
 19 | final class SubscriptionRegistry: @unchecked Sendable {
 20 |     /// One caller's `notifications(for:)` stream.
 21 |     final class Subscription: @unchecked Sendable {
    |                 `- note: add '@available' attribute to enclosing class
 22 |         let uuid: CBUUID
 23 |         fileprivate let continuation: AsyncThrowingStream<Data, Error>.Continuation
 24 |
 25 |         fileprivate init(uuid: CBUUID, continuation: AsyncThrowingStream<Data, Error>.Continuation) {
    |                     |                                `- error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
    |                     `- note: add '@available' attribute to enclosing initializer
 26 |             self.uuid = uuid
 27 |             self.continuation = continuation
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Bridge/SubscriptionRegistry.swift:69:26: error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
 17 |
 18 | /// The live notification streams of one connection.
 19 | final class SubscriptionRegistry: @unchecked Sendable {
    |             `- note: add '@available' attribute to enclosing class
 20 |     /// One caller's `notifications(for:)` stream.
 21 |     final class Subscription: @unchecked Sendable {
    :
 65 |     /// while the confirmation is in flight still unsubscribes cleanly. The connection removes
 66 |     /// it again if the subscribe fails.
 67 |     func subscribe(
    |          `- note: add '@available' attribute to enclosing instance method
 68 |         to uuid: CBUUID,
 69 |         bufferingPolicy: AsyncThrowingStream<Data, Error>.Continuation.BufferingPolicy
    |                          `- error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
 70 |     ) -> (subscription: Subscription, stream: AsyncThrowingStream<Data, Error>) {
 71 |         var subscription: Subscription?
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Bridge/SubscriptionRegistry.swift:70:47: error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
 17 |
 18 | /// The live notification streams of one connection.
 19 | final class SubscriptionRegistry: @unchecked Sendable {
    |             `- note: add '@available' attribute to enclosing class
 20 |     /// One caller's `notifications(for:)` stream.
 21 |     final class Subscription: @unchecked Sendable {
    :
 65 |     /// while the confirmation is in flight still unsubscribes cleanly. The connection removes
 66 |     /// it again if the subscribe fails.
 67 |     func subscribe(
    |          `- note: add '@available' attribute to enclosing instance method
 68 |         to uuid: CBUUID,
 69 |         bufferingPolicy: AsyncThrowingStream<Data, Error>.Continuation.BufferingPolicy
 70 |     ) -> (subscription: Subscription, stream: AsyncThrowingStream<Data, Error>) {
    |                                               `- error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
 71 |         var subscription: Subscription?
 72 |         let stream = AsyncThrowingStream(Data.self, bufferingPolicy: bufferingPolicy) { continuation in
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Bridge/SubscriptionRegistry.swift:90:21: error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
 17 |
 18 | /// The live notification streams of one connection.
 19 | final class SubscriptionRegistry: @unchecked Sendable {
    |             `- note: add '@available' attribute to enclosing class
 20 |     /// One caller's `notifications(for:)` stream.
 21 |     final class Subscription: @unchecked Sendable {
    :
 86 |     /// written inside another closure captures *that* closure's `self`, which Swift 6 rejects as
 87 |     /// a reference to a captured var from concurrently-executing code.
 88 |     private func terminator(
    |                  `- note: add '@available' attribute to enclosing instance method
 89 |         for subscription: Subscription
 90 |     ) -> @Sendable (AsyncThrowingStream<Data, Error>.Continuation.Termination) -> Void {
    |                     `- error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
 91 |         // The weak reference is promoted before the queue hop rather than inside it. A weak
 92 |         // capture is a `var` — it can become nil — and Swift 6 rejects reading one from
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Bridge/SubscriptionRegistry.swift:72:22: error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
 17 |
 18 | /// The live notification streams of one connection.
 19 | final class SubscriptionRegistry: @unchecked Sendable {
    |             `- note: add '@available' attribute to enclosing class
 20 |     /// One caller's `notifications(for:)` stream.
 21 |     final class Subscription: @unchecked Sendable {
    :
 65 |     /// while the confirmation is in flight still unsubscribes cleanly. The connection removes
 66 |     /// it again if the subscribe fails.
 67 |     func subscribe(
    |          `- note: add '@available' attribute to enclosing instance method
 68 |         to uuid: CBUUID,
 69 |         bufferingPolicy: AsyncThrowingStream<Data, Error>.Continuation.BufferingPolicy
 70 |     ) -> (subscription: Subscription, stream: AsyncThrowingStream<Data, Error>) {
 71 |         var subscription: Subscription?
 72 |         let stream = AsyncThrowingStream(Data.self, bufferingPolicy: bufferingPolicy) { continuation in
    |                      |- error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
    |                      `- note: add 'if #available' version check
 73 |             let new = Subscription(uuid: uuid, continuation: continuation)
 74 |             subscription = new
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Central+Engine.swift:36:51: error: 'Duration' is only available in macOS 13.0 or newer
  5 | import Foundation
  6 |
  7 | extension Central {
    | `- note: add '@available' attribute to enclosing extension
  8 |     /// Waits for the adapter to say something definitive, and throws if that is bad news.
  9 |     ///
    :
 34 |     ///   - peripheralID: Which peripheral.
 35 |     ///   - timeout: The deadline for the attempt, or `nil` to pend indefinitely.
 36 |     func establish(_ peripheralID: UUID, timeout: Duration?) async throws -> Connection {
    |          |                                        `- error: 'Duration' is only available in macOS 13.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
 37 |         try await requirePoweredOn()
 38 |         let connection = try connection(for: peripheralID)
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Central+Engine.swift:71:64: error: 'Duration' is only available in macOS 13.0 or newer
  5 | import Foundation
  6 |
  7 | extension Central {
    | `- note: add '@available' attribute to enclosing extension
  8 |     /// Waits for the adapter to say something definitive, and throws if that is bad news.
  9 |     ///
    :
 69 |
 70 |     /// Suspends until the link comes up, this caller gives up, or the connection ends.
 71 |     private func waitForLink(on core: ConnectionCore, timeout: Duration?) async throws {
    |                  |                                             `- error: 'Duration' is only available in macOS 13.0 or newer
    |                  `- note: add '@available' attribute to enclosing instance method
 72 |         let handle = ConnectAttemptHandle()
 73 |         try await withTaskCancellationHandler {
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Central+Engine.swift:24:9: error: 'makeAsyncIterator()' is only available in macOS 10.15 or newer
  5 | import Foundation
  6 |
  7 | extension Central {
    | `- note: add '@available' attribute to enclosing extension
  8 |     /// Waits for the adapter to say something definitive, and throws if that is bad news.
  9 |     ///
    :
 18 |
 19 |     /// The adapter's state once it is something other than "not yet known".
 20 |     private func definitiveAdapterState() async -> AdapterState {
    |                  `- note: add '@available' attribute to enclosing instance method
 21 |         let current = bridge.adapterStates.current
 22 |         guard current == .unavailable(reason: .unknown) else { return current }
 23 |
 24 |         for await state in bridge.adapterStates.stream() where state != .unavailable(reason: .unknown) {
    |         |- error: 'makeAsyncIterator()' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
 25 |             return state
 26 |         }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Central+Engine.swift:73:19: error: 'withTaskCancellationHandler(operation:onCancel:isolation:)' is only available in macOS 10.15 or newer
  5 | import Foundation
  6 |
  7 | extension Central {
    | `- note: add '@available' attribute to enclosing extension
  8 |     /// Waits for the adapter to say something definitive, and throws if that is bad news.
  9 |     ///
    :
 69 |
 70 |     /// Suspends until the link comes up, this caller gives up, or the connection ends.
 71 |     private func waitForLink(on core: ConnectionCore, timeout: Duration?) async throws {
    |                  `- note: add '@available' attribute to enclosing instance method
 72 |         let handle = ConnectAttemptHandle()
 73 |         try await withTaskCancellationHandler {
    |                   |- error: 'withTaskCancellationHandler(operation:onCancel:isolation:)' is only available in macOS 10.15 or newer
    |                   `- note: add 'if #available' version check
 74 |             try await withCheckedThrowingContinuation { continuation in
 75 |                 handle.begin(core: core, continuation: continuation, timeout: timeout, scheduler: scheduler)
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Central+Engine.swift:74:23: error: 'withCheckedThrowingContinuation(isolation:function:_:)' is only available in macOS 10.15 or newer
  5 | import Foundation
  6 |
  7 | extension Central {
    | `- note: add '@available' attribute to enclosing extension
  8 |     /// Waits for the adapter to say something definitive, and throws if that is bad news.
  9 |     ///
    :
 69 |
 70 |     /// Suspends until the link comes up, this caller gives up, or the connection ends.
 71 |     private func waitForLink(on core: ConnectionCore, timeout: Duration?) async throws {
    |                  `- note: add '@available' attribute to enclosing instance method
 72 |         let handle = ConnectAttemptHandle()
 73 |         try await withTaskCancellationHandler {
 74 |             try await withCheckedThrowingContinuation { continuation in
    |                       |- error: 'withCheckedThrowingContinuation(isolation:function:_:)' is only available in macOS 10.15 or newer
    |                       `- note: add 'if #available' version check
 75 |                 handle.begin(core: core, continuation: continuation, timeout: timeout, scheduler: scheduler)
 76 |             }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Central+Engine.swift:74:56: error: 'isolation()' is only available in macOS 10.15 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Central+Engine.swift:74:55: note: expanded code originates here
  5 | import Foundation
  6 |
  7 | extension Central {
    | `- note: add '@available' attribute to enclosing extension
  8 |     /// Waits for the adapter to say something definitive, and throws if that is bad news.
  9 |     ///
    :
 69 |
 70 |     /// Suspends until the link comes up, this caller gives up, or the connection ends.
 71 |     private func waitForLink(on core: ConnectionCore, timeout: Duration?) async throws {
    |                  `- note: add '@available' attribute to enclosing instance method
 72 |         let handle = ConnectAttemptHandle()
 73 |         try await withTaskCancellationHandler {
 74 |             try await withCheckedThrowingContinuation { continuation in
    +--- /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Central+Engine.swift
    |72 |
    |73 |
    |74 |                                                       #isolation
    |   |                                                        `- error: 'isolation()' is only available in macOS 10.15 or newer
    +---------------------------------------------------------------------------------------------------------
 75 |                 handle.begin(core: core, continuation: continuation, timeout: timeout, scheduler: scheduler)
 76 |             }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Central+Engine.swift:73:48: error: 'isolation()' is only available in macOS 10.15 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Central+Engine.swift:73:47: note: expanded code originates here
  5 | import Foundation
  6 |
  7 | extension Central {
    | `- note: add '@available' attribute to enclosing extension
  8 |     /// Waits for the adapter to say something definitive, and throws if that is bad news.
  9 |     ///
    :
 69 |
 70 |     /// Suspends until the link comes up, this caller gives up, or the connection ends.
 71 |     private func waitForLink(on core: ConnectionCore, timeout: Duration?) async throws {
    |                  `- note: add '@available' attribute to enclosing instance method
 72 |         let handle = ConnectAttemptHandle()
 73 |         try await withTaskCancellationHandler {
    +--- /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Central+Engine.swift
    |71 |
    |72 |
    |73 |                                               #isolation
    |   |                                                `- error: 'isolation()' is only available in macOS 10.15 or newer
    +---------------------------------------------------------------------------------------------------------
 74 |             try await withCheckedThrowingContinuation { continuation in
 75 |                 handle.begin(core: core, continuation: continuation, timeout: timeout, scheduler: scheduler)
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/ConnectAttempt.swift:15:31: error: 'CheckedContinuation' is only available in macOS 10.15 or newer
12 |
13 | /// A continuation that can be resumed from several places and will only resume once.
14 | final class ResumeOnce: @unchecked Sendable {
   |             `- note: add '@available' attribute to enclosing class
15 |     private var continuation: CheckedContinuation<Void, Error>?
   |                               `- error: 'CheckedContinuation' is only available in macOS 10.15 or newer
16 |
17 |     init(_ continuation: CheckedContinuation<Void, Error>) {
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/ConnectAttempt.swift:17:26: error: 'CheckedContinuation' is only available in macOS 10.15 or newer
12 |
13 | /// A continuation that can be resumed from several places and will only resume once.
14 | final class ResumeOnce: @unchecked Sendable {
   |             `- note: add '@available' attribute to enclosing class
15 |     private var continuation: CheckedContinuation<Void, Error>?
16 |
17 |     init(_ continuation: CheckedContinuation<Void, Error>) {
   |     |                    `- error: 'CheckedContinuation' is only available in macOS 10.15 or newer
   |     `- note: add '@available' attribute to enclosing initializer
18 |         self.continuation = continuation
19 |     }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/ConnectAttempt.swift:48:23: error: 'CheckedContinuation' is only available in macOS 10.15 or newer
28 |
29 | /// One caller waiting for a connection to come up.
30 | final class ConnectAttemptHandle: @unchecked Sendable {
   |             `- note: add '@available' attribute to enclosing class
31 |     private var once: ResumeOnce?
32 |     private var core: ConnectionCore?
   :
44 |     ///     gets its deadline from the state machine instead, so the two never both fire.
45 |     ///   - scheduler: Where the deadline is armed.
46 |     func begin(
   |          `- note: add '@available' attribute to enclosing instance method
47 |         core: ConnectionCore,
48 |         continuation: CheckedContinuation<Void, Error>,
   |                       `- error: 'CheckedContinuation' is only available in macOS 10.15 or newer
49 |         timeout: Duration?,
50 |         scheduler: Scheduler
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/ConnectAttempt.swift:49:18: error: 'Duration' is only available in macOS 13.0 or newer
28 |
29 | /// One caller waiting for a connection to come up.
30 | final class ConnectAttemptHandle: @unchecked Sendable {
   |             `- note: add '@available' attribute to enclosing class
31 |     private var once: ResumeOnce?
32 |     private var core: ConnectionCore?
   :
44 |     ///     gets its deadline from the state machine instead, so the two never both fire.
45 |     ///   - scheduler: Where the deadline is armed.
46 |     func begin(
   |          `- note: add '@available' attribute to enclosing instance method
47 |         core: ConnectionCore,
48 |         continuation: CheckedContinuation<Void, Error>,
49 |         timeout: Duration?,
   |                  `- error: 'Duration' is only available in macOS 13.0 or newer
50 |         scheduler: Scheduler
51 |     ) {
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/ConnectAttempt.swift:25:22: error: 'resume(with:)' is only available in macOS 10.15 or newer
12 |
13 | /// A continuation that can be resumed from several places and will only resume once.
14 | final class ResumeOnce: @unchecked Sendable {
   |             `- note: add '@available' attribute to enclosing class
15 |     private var continuation: CheckedContinuation<Void, Error>?
16 |
   :
20 |
21 |     /// Resumes, unless something already did.
22 |     func resume(_ result: Result<Void, Error>) {
   |          `- note: add '@available' attribute to enclosing instance method
23 |         guard let continuation else { return }
24 |         self.continuation = nil
25 |         continuation.resume(with: result)
   |                      |- error: 'resume(with:)' is only available in macOS 10.15 or newer
   |                      `- note: add 'if #available' version check
26 |     }
27 | }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/ConnectAttempt.swift:58:34: error: 'CancellationError' is only available in macOS 10.15 or newer
28 |
29 | /// One caller waiting for a connection to come up.
30 | final class ConnectAttemptHandle: @unchecked Sendable {
   |             `- note: add '@available' attribute to enclosing class
31 |     private var once: ResumeOnce?
32 |     private var core: ConnectionCore?
   :
44 |     ///     gets its deadline from the state machine instead, so the two never both fire.
45 |     ///   - scheduler: Where the deadline is armed.
46 |     func begin(
   |          `- note: add '@available' attribute to enclosing instance method
47 |         core: ConnectionCore,
48 |         continuation: CheckedContinuation<Void, Error>,
   :
56 |         guard !cancelledBeforeStart else {
57 |             // The caller's task was cancelled before this even got to run.
58 |             once.resume(.failure(CancellationError()))
   |                                  |- error: 'CancellationError' is only available in macOS 10.15 or newer
   |                                  `- note: add 'if #available' version check
59 |             return
60 |         }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/ConnectAttempt.swift:80:31: error: 'CancellationError' is only available in macOS 10.15 or newer
28 |
29 | /// One caller waiting for a connection to come up.
30 | final class ConnectAttemptHandle: @unchecked Sendable {
   |             `- note: add '@available' attribute to enclosing class
31 |     private var once: ResumeOnce?
32 |     private var core: ConnectionCore?
   :
75 |     /// The caller went away. Detach it, and let the connection decide whether the attempt has
76 |     /// anyone left to serve.
77 |     func cancel() {
   |          `- note: add '@available' attribute to enclosing instance method
78 |         cancelledBeforeStart = true
79 |         detach()
80 |         once?.resume(.failure(CancellationError()))
   |                               |- error: 'CancellationError' is only available in macOS 10.15 or newer
   |                               `- note: add 'if #available' version check
81 |     }
82 |
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Connection+Engine.swift:20:19: error: 'withCheckedThrowingContinuation(isolation:function:_:)' is only available in macOS 10.15 or newer
10 | import Foundation
11 |
12 | extension Connection {
   | `- note: add '@available' attribute to enclosing extension
13 |     /// Suspends until the engine hands back a result.
14 |     ///
15 |     /// - Parameter register: Parks a callback with the engine. Runs synchronously, on the
16 |     ///   library queue, before this function suspends.
17 |     func suspend<T: Sendable>(
   |          `- note: add '@available' attribute to enclosing instance method
18 |         _ register: (@escaping @Sendable (Result<T, Error>) -> Void) -> Void
19 |     ) async throws -> T {
20 |         try await withCheckedThrowingContinuation { continuation in
   |                   |- error: 'withCheckedThrowingContinuation(isolation:function:_:)' is only available in macOS 10.15 or newer
   |                   `- note: add 'if #available' version check
21 |             register { continuation.resume(with: $0) }
22 |         }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Connection+Engine.swift:21:37: error: 'resume(with:)' is only available in macOS 10.15 or newer
10 | import Foundation
11 |
12 | extension Connection {
   | `- note: add '@available' attribute to enclosing extension
13 |     /// Suspends until the engine hands back a result.
14 |     ///
15 |     /// - Parameter register: Parks a callback with the engine. Runs synchronously, on the
16 |     ///   library queue, before this function suspends.
17 |     func suspend<T: Sendable>(
   |          `- note: add '@available' attribute to enclosing instance method
18 |         _ register: (@escaping @Sendable (Result<T, Error>) -> Void) -> Void
19 |     ) async throws -> T {
20 |         try await withCheckedThrowingContinuation { continuation in
21 |             register { continuation.resume(with: $0) }
   |                                     |- error: 'resume(with:)' is only available in macOS 10.15 or newer
   |                                     `- note: add 'if #available' version check
22 |         }
23 |     }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Connection+Engine.swift:20:52: error: 'isolation()' is only available in macOS 10.15 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Connection+Engine.swift:20:51: note: expanded code originates here
10 | import Foundation
11 |
12 | extension Connection {
   | `- note: add '@available' attribute to enclosing extension
13 |     /// Suspends until the engine hands back a result.
14 |     ///
15 |     /// - Parameter register: Parks a callback with the engine. Runs synchronously, on the
16 |     ///   library queue, before this function suspends.
17 |     func suspend<T: Sendable>(
   |          `- note: add '@available' attribute to enclosing instance method
18 |         _ register: (@escaping @Sendable (Result<T, Error>) -> Void) -> Void
19 |     ) async throws -> T {
20 |         try await withCheckedThrowingContinuation { continuation in
   +--- /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Connection+Engine.swift
   |18 |
   |19 |
   |20 |                                                   #isolation
   |   |                                                    `- error: 'isolation()' is only available in macOS 10.15 or newer
   +------------------------------------------------------------------------------------------------------------
21 |             register { continuation.resume(with: $0) }
22 |         }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Connection+Engine.swift:31:19: error: 'withTaskCancellationHandler(operation:onCancel:isolation:)' is only available in macOS 10.15 or newer
10 | import Foundation
11 |
12 | extension Connection {
   | `- note: add '@available' attribute to enclosing extension
13 |     /// Suspends until the engine hands back a result.
14 |     ///
   :
28 |     /// move on. A cancellation that arrives once the operation is already running is ignored:
29 |     /// CoreBluetooth has no way to withdraw a read or a write that is on the wire.
30 |     func waitForTurn(_ ticket: IOQueue.Ticket) async throws {
   |          `- note: add '@available' attribute to enclosing instance method
31 |         try await withTaskCancellationHandler {
   |                   |- error: 'withTaskCancellationHandler(operation:onCancel:isolation:)' is only available in macOS 10.15 or newer
   |                   `- note: add 'if #available' version check
32 |             try await suspend { resume in
33 |                 core.attachTurn({ resume($0) }, to: ticket)
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Connection+Engine.swift:31:48: error: 'isolation()' is only available in macOS 10.15 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Connection+Engine.swift:31:47: note: expanded code originates here
10 | import Foundation
11 |
12 | extension Connection {
   | `- note: add '@available' attribute to enclosing extension
13 |     /// Suspends until the engine hands back a result.
14 |     ///
   :
28 |     /// move on. A cancellation that arrives once the operation is already running is ignored:
29 |     /// CoreBluetooth has no way to withdraw a read or a write that is on the wire.
30 |     func waitForTurn(_ ticket: IOQueue.Ticket) async throws {
   |          `- note: add '@available' attribute to enclosing instance method
31 |         try await withTaskCancellationHandler {
   +--- /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Connection+Engine.swift
   |29 |
   |30 |
   |31 |                                               #isolation
   |   |                                                `- error: 'isolation()' is only available in macOS 10.15 or newer
   +------------------------------------------------------------------------------------------------------------
32 |             try await suspend { resume in
33 |                 core.attachTurn({ resume($0) }, to: ticket)
[34/43] Compiling AsyncBLE ConnectAttempt.swift
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Bridge/SubscriptionRegistry.swift:23:39: error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
 19 | final class SubscriptionRegistry: @unchecked Sendable {
 20 |     /// One caller's `notifications(for:)` stream.
 21 |     final class Subscription: @unchecked Sendable {
    |                 `- note: add '@available' attribute to enclosing class
 22 |         let uuid: CBUUID
 23 |         fileprivate let continuation: AsyncThrowingStream<Data, Error>.Continuation
    |                                       `- error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
 24 |
 25 |         fileprivate init(uuid: CBUUID, continuation: AsyncThrowingStream<Data, Error>.Continuation) {
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Bridge/SubscriptionRegistry.swift:25:54: error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
 19 | final class SubscriptionRegistry: @unchecked Sendable {
 20 |     /// One caller's `notifications(for:)` stream.
 21 |     final class Subscription: @unchecked Sendable {
    |                 `- note: add '@available' attribute to enclosing class
 22 |         let uuid: CBUUID
 23 |         fileprivate let continuation: AsyncThrowingStream<Data, Error>.Continuation
 24 |
 25 |         fileprivate init(uuid: CBUUID, continuation: AsyncThrowingStream<Data, Error>.Continuation) {
    |                     |                                `- error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
    |                     `- note: add '@available' attribute to enclosing initializer
 26 |             self.uuid = uuid
 27 |             self.continuation = continuation
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Bridge/SubscriptionRegistry.swift:69:26: error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
 17 |
 18 | /// The live notification streams of one connection.
 19 | final class SubscriptionRegistry: @unchecked Sendable {
    |             `- note: add '@available' attribute to enclosing class
 20 |     /// One caller's `notifications(for:)` stream.
 21 |     final class Subscription: @unchecked Sendable {
    :
 65 |     /// while the confirmation is in flight still unsubscribes cleanly. The connection removes
 66 |     /// it again if the subscribe fails.
 67 |     func subscribe(
    |          `- note: add '@available' attribute to enclosing instance method
 68 |         to uuid: CBUUID,
 69 |         bufferingPolicy: AsyncThrowingStream<Data, Error>.Continuation.BufferingPolicy
    |                          `- error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
 70 |     ) -> (subscription: Subscription, stream: AsyncThrowingStream<Data, Error>) {
 71 |         var subscription: Subscription?
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Bridge/SubscriptionRegistry.swift:70:47: error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
 17 |
 18 | /// The live notification streams of one connection.
 19 | final class SubscriptionRegistry: @unchecked Sendable {
    |             `- note: add '@available' attribute to enclosing class
 20 |     /// One caller's `notifications(for:)` stream.
 21 |     final class Subscription: @unchecked Sendable {
    :
 65 |     /// while the confirmation is in flight still unsubscribes cleanly. The connection removes
 66 |     /// it again if the subscribe fails.
 67 |     func subscribe(
    |          `- note: add '@available' attribute to enclosing instance method
 68 |         to uuid: CBUUID,
 69 |         bufferingPolicy: AsyncThrowingStream<Data, Error>.Continuation.BufferingPolicy
 70 |     ) -> (subscription: Subscription, stream: AsyncThrowingStream<Data, Error>) {
    |                                               `- error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
 71 |         var subscription: Subscription?
 72 |         let stream = AsyncThrowingStream(Data.self, bufferingPolicy: bufferingPolicy) { continuation in
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Bridge/SubscriptionRegistry.swift:90:21: error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
 17 |
 18 | /// The live notification streams of one connection.
 19 | final class SubscriptionRegistry: @unchecked Sendable {
    |             `- note: add '@available' attribute to enclosing class
 20 |     /// One caller's `notifications(for:)` stream.
 21 |     final class Subscription: @unchecked Sendable {
    :
 86 |     /// written inside another closure captures *that* closure's `self`, which Swift 6 rejects as
 87 |     /// a reference to a captured var from concurrently-executing code.
 88 |     private func terminator(
    |                  `- note: add '@available' attribute to enclosing instance method
 89 |         for subscription: Subscription
 90 |     ) -> @Sendable (AsyncThrowingStream<Data, Error>.Continuation.Termination) -> Void {
    |                     `- error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
 91 |         // The weak reference is promoted before the queue hop rather than inside it. A weak
 92 |         // capture is a `var` — it can become nil — and Swift 6 rejects reading one from
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Bridge/SubscriptionRegistry.swift:72:22: error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
 17 |
 18 | /// The live notification streams of one connection.
 19 | final class SubscriptionRegistry: @unchecked Sendable {
    |             `- note: add '@available' attribute to enclosing class
 20 |     /// One caller's `notifications(for:)` stream.
 21 |     final class Subscription: @unchecked Sendable {
    :
 65 |     /// while the confirmation is in flight still unsubscribes cleanly. The connection removes
 66 |     /// it again if the subscribe fails.
 67 |     func subscribe(
    |          `- note: add '@available' attribute to enclosing instance method
 68 |         to uuid: CBUUID,
 69 |         bufferingPolicy: AsyncThrowingStream<Data, Error>.Continuation.BufferingPolicy
 70 |     ) -> (subscription: Subscription, stream: AsyncThrowingStream<Data, Error>) {
 71 |         var subscription: Subscription?
 72 |         let stream = AsyncThrowingStream(Data.self, bufferingPolicy: bufferingPolicy) { continuation in
    |                      |- error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
    |                      `- note: add 'if #available' version check
 73 |             let new = Subscription(uuid: uuid, continuation: continuation)
 74 |             subscription = new
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Central+Engine.swift:36:51: error: 'Duration' is only available in macOS 13.0 or newer
  5 | import Foundation
  6 |
  7 | extension Central {
    | `- note: add '@available' attribute to enclosing extension
  8 |     /// Waits for the adapter to say something definitive, and throws if that is bad news.
  9 |     ///
    :
 34 |     ///   - peripheralID: Which peripheral.
 35 |     ///   - timeout: The deadline for the attempt, or `nil` to pend indefinitely.
 36 |     func establish(_ peripheralID: UUID, timeout: Duration?) async throws -> Connection {
    |          |                                        `- error: 'Duration' is only available in macOS 13.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
 37 |         try await requirePoweredOn()
 38 |         let connection = try connection(for: peripheralID)
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Central+Engine.swift:71:64: error: 'Duration' is only available in macOS 13.0 or newer
  5 | import Foundation
  6 |
  7 | extension Central {
    | `- note: add '@available' attribute to enclosing extension
  8 |     /// Waits for the adapter to say something definitive, and throws if that is bad news.
  9 |     ///
    :
 69 |
 70 |     /// Suspends until the link comes up, this caller gives up, or the connection ends.
 71 |     private func waitForLink(on core: ConnectionCore, timeout: Duration?) async throws {
    |                  |                                             `- error: 'Duration' is only available in macOS 13.0 or newer
    |                  `- note: add '@available' attribute to enclosing instance method
 72 |         let handle = ConnectAttemptHandle()
 73 |         try await withTaskCancellationHandler {
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Central+Engine.swift:24:9: error: 'makeAsyncIterator()' is only available in macOS 10.15 or newer
  5 | import Foundation
  6 |
  7 | extension Central {
    | `- note: add '@available' attribute to enclosing extension
  8 |     /// Waits for the adapter to say something definitive, and throws if that is bad news.
  9 |     ///
    :
 18 |
 19 |     /// The adapter's state once it is something other than "not yet known".
 20 |     private func definitiveAdapterState() async -> AdapterState {
    |                  `- note: add '@available' attribute to enclosing instance method
 21 |         let current = bridge.adapterStates.current
 22 |         guard current == .unavailable(reason: .unknown) else { return current }
 23 |
 24 |         for await state in bridge.adapterStates.stream() where state != .unavailable(reason: .unknown) {
    |         |- error: 'makeAsyncIterator()' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
 25 |             return state
 26 |         }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Central+Engine.swift:73:19: error: 'withTaskCancellationHandler(operation:onCancel:isolation:)' is only available in macOS 10.15 or newer
  5 | import Foundation
  6 |
  7 | extension Central {
    | `- note: add '@available' attribute to enclosing extension
  8 |     /// Waits for the adapter to say something definitive, and throws if that is bad news.
  9 |     ///
    :
 69 |
 70 |     /// Suspends until the link comes up, this caller gives up, or the connection ends.
 71 |     private func waitForLink(on core: ConnectionCore, timeout: Duration?) async throws {
    |                  `- note: add '@available' attribute to enclosing instance method
 72 |         let handle = ConnectAttemptHandle()
 73 |         try await withTaskCancellationHandler {
    |                   |- error: 'withTaskCancellationHandler(operation:onCancel:isolation:)' is only available in macOS 10.15 or newer
    |                   `- note: add 'if #available' version check
 74 |             try await withCheckedThrowingContinuation { continuation in
 75 |                 handle.begin(core: core, continuation: continuation, timeout: timeout, scheduler: scheduler)
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Central+Engine.swift:74:23: error: 'withCheckedThrowingContinuation(isolation:function:_:)' is only available in macOS 10.15 or newer
  5 | import Foundation
  6 |
  7 | extension Central {
    | `- note: add '@available' attribute to enclosing extension
  8 |     /// Waits for the adapter to say something definitive, and throws if that is bad news.
  9 |     ///
    :
 69 |
 70 |     /// Suspends until the link comes up, this caller gives up, or the connection ends.
 71 |     private func waitForLink(on core: ConnectionCore, timeout: Duration?) async throws {
    |                  `- note: add '@available' attribute to enclosing instance method
 72 |         let handle = ConnectAttemptHandle()
 73 |         try await withTaskCancellationHandler {
 74 |             try await withCheckedThrowingContinuation { continuation in
    |                       |- error: 'withCheckedThrowingContinuation(isolation:function:_:)' is only available in macOS 10.15 or newer
    |                       `- note: add 'if #available' version check
 75 |                 handle.begin(core: core, continuation: continuation, timeout: timeout, scheduler: scheduler)
 76 |             }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Central+Engine.swift:74:56: error: 'isolation()' is only available in macOS 10.15 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Central+Engine.swift:74:55: note: expanded code originates here
  5 | import Foundation
  6 |
  7 | extension Central {
    | `- note: add '@available' attribute to enclosing extension
  8 |     /// Waits for the adapter to say something definitive, and throws if that is bad news.
  9 |     ///
    :
 69 |
 70 |     /// Suspends until the link comes up, this caller gives up, or the connection ends.
 71 |     private func waitForLink(on core: ConnectionCore, timeout: Duration?) async throws {
    |                  `- note: add '@available' attribute to enclosing instance method
 72 |         let handle = ConnectAttemptHandle()
 73 |         try await withTaskCancellationHandler {
 74 |             try await withCheckedThrowingContinuation { continuation in
    +--- /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Central+Engine.swift
    |72 |
    |73 |
    |74 |                                                       #isolation
    |   |                                                        `- error: 'isolation()' is only available in macOS 10.15 or newer
    +---------------------------------------------------------------------------------------------------------
 75 |                 handle.begin(core: core, continuation: continuation, timeout: timeout, scheduler: scheduler)
 76 |             }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Central+Engine.swift:73:48: error: 'isolation()' is only available in macOS 10.15 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Central+Engine.swift:73:47: note: expanded code originates here
  5 | import Foundation
  6 |
  7 | extension Central {
    | `- note: add '@available' attribute to enclosing extension
  8 |     /// Waits for the adapter to say something definitive, and throws if that is bad news.
  9 |     ///
    :
 69 |
 70 |     /// Suspends until the link comes up, this caller gives up, or the connection ends.
 71 |     private func waitForLink(on core: ConnectionCore, timeout: Duration?) async throws {
    |                  `- note: add '@available' attribute to enclosing instance method
 72 |         let handle = ConnectAttemptHandle()
 73 |         try await withTaskCancellationHandler {
    +--- /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Central+Engine.swift
    |71 |
    |72 |
    |73 |                                               #isolation
    |   |                                                `- error: 'isolation()' is only available in macOS 10.15 or newer
    +---------------------------------------------------------------------------------------------------------
 74 |             try await withCheckedThrowingContinuation { continuation in
 75 |                 handle.begin(core: core, continuation: continuation, timeout: timeout, scheduler: scheduler)
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/ConnectAttempt.swift:15:31: error: 'CheckedContinuation' is only available in macOS 10.15 or newer
12 |
13 | /// A continuation that can be resumed from several places and will only resume once.
14 | final class ResumeOnce: @unchecked Sendable {
   |             `- note: add '@available' attribute to enclosing class
15 |     private var continuation: CheckedContinuation<Void, Error>?
   |                               `- error: 'CheckedContinuation' is only available in macOS 10.15 or newer
16 |
17 |     init(_ continuation: CheckedContinuation<Void, Error>) {
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/ConnectAttempt.swift:17:26: error: 'CheckedContinuation' is only available in macOS 10.15 or newer
12 |
13 | /// A continuation that can be resumed from several places and will only resume once.
14 | final class ResumeOnce: @unchecked Sendable {
   |             `- note: add '@available' attribute to enclosing class
15 |     private var continuation: CheckedContinuation<Void, Error>?
16 |
17 |     init(_ continuation: CheckedContinuation<Void, Error>) {
   |     |                    `- error: 'CheckedContinuation' is only available in macOS 10.15 or newer
   |     `- note: add '@available' attribute to enclosing initializer
18 |         self.continuation = continuation
19 |     }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/ConnectAttempt.swift:48:23: error: 'CheckedContinuation' is only available in macOS 10.15 or newer
28 |
29 | /// One caller waiting for a connection to come up.
30 | final class ConnectAttemptHandle: @unchecked Sendable {
   |             `- note: add '@available' attribute to enclosing class
31 |     private var once: ResumeOnce?
32 |     private var core: ConnectionCore?
   :
44 |     ///     gets its deadline from the state machine instead, so the two never both fire.
45 |     ///   - scheduler: Where the deadline is armed.
46 |     func begin(
   |          `- note: add '@available' attribute to enclosing instance method
47 |         core: ConnectionCore,
48 |         continuation: CheckedContinuation<Void, Error>,
   |                       `- error: 'CheckedContinuation' is only available in macOS 10.15 or newer
49 |         timeout: Duration?,
50 |         scheduler: Scheduler
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/ConnectAttempt.swift:49:18: error: 'Duration' is only available in macOS 13.0 or newer
28 |
29 | /// One caller waiting for a connection to come up.
30 | final class ConnectAttemptHandle: @unchecked Sendable {
   |             `- note: add '@available' attribute to enclosing class
31 |     private var once: ResumeOnce?
32 |     private var core: ConnectionCore?
   :
44 |     ///     gets its deadline from the state machine instead, so the two never both fire.
45 |     ///   - scheduler: Where the deadline is armed.
46 |     func begin(
   |          `- note: add '@available' attribute to enclosing instance method
47 |         core: ConnectionCore,
48 |         continuation: CheckedContinuation<Void, Error>,
49 |         timeout: Duration?,
   |                  `- error: 'Duration' is only available in macOS 13.0 or newer
50 |         scheduler: Scheduler
51 |     ) {
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/ConnectAttempt.swift:25:22: error: 'resume(with:)' is only available in macOS 10.15 or newer
12 |
13 | /// A continuation that can be resumed from several places and will only resume once.
14 | final class ResumeOnce: @unchecked Sendable {
   |             `- note: add '@available' attribute to enclosing class
15 |     private var continuation: CheckedContinuation<Void, Error>?
16 |
   :
20 |
21 |     /// Resumes, unless something already did.
22 |     func resume(_ result: Result<Void, Error>) {
   |          `- note: add '@available' attribute to enclosing instance method
23 |         guard let continuation else { return }
24 |         self.continuation = nil
25 |         continuation.resume(with: result)
   |                      |- error: 'resume(with:)' is only available in macOS 10.15 or newer
   |                      `- note: add 'if #available' version check
26 |     }
27 | }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/ConnectAttempt.swift:58:34: error: 'CancellationError' is only available in macOS 10.15 or newer
28 |
29 | /// One caller waiting for a connection to come up.
30 | final class ConnectAttemptHandle: @unchecked Sendable {
   |             `- note: add '@available' attribute to enclosing class
31 |     private var once: ResumeOnce?
32 |     private var core: ConnectionCore?
   :
44 |     ///     gets its deadline from the state machine instead, so the two never both fire.
45 |     ///   - scheduler: Where the deadline is armed.
46 |     func begin(
   |          `- note: add '@available' attribute to enclosing instance method
47 |         core: ConnectionCore,
48 |         continuation: CheckedContinuation<Void, Error>,
   :
56 |         guard !cancelledBeforeStart else {
57 |             // The caller's task was cancelled before this even got to run.
58 |             once.resume(.failure(CancellationError()))
   |                                  |- error: 'CancellationError' is only available in macOS 10.15 or newer
   |                                  `- note: add 'if #available' version check
59 |             return
60 |         }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/ConnectAttempt.swift:80:31: error: 'CancellationError' is only available in macOS 10.15 or newer
28 |
29 | /// One caller waiting for a connection to come up.
30 | final class ConnectAttemptHandle: @unchecked Sendable {
   |             `- note: add '@available' attribute to enclosing class
31 |     private var once: ResumeOnce?
32 |     private var core: ConnectionCore?
   :
75 |     /// The caller went away. Detach it, and let the connection decide whether the attempt has
76 |     /// anyone left to serve.
77 |     func cancel() {
   |          `- note: add '@available' attribute to enclosing instance method
78 |         cancelledBeforeStart = true
79 |         detach()
80 |         once?.resume(.failure(CancellationError()))
   |                               |- error: 'CancellationError' is only available in macOS 10.15 or newer
   |                               `- note: add 'if #available' version check
81 |     }
82 |
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Connection+Engine.swift:20:19: error: 'withCheckedThrowingContinuation(isolation:function:_:)' is only available in macOS 10.15 or newer
10 | import Foundation
11 |
12 | extension Connection {
   | `- note: add '@available' attribute to enclosing extension
13 |     /// Suspends until the engine hands back a result.
14 |     ///
15 |     /// - Parameter register: Parks a callback with the engine. Runs synchronously, on the
16 |     ///   library queue, before this function suspends.
17 |     func suspend<T: Sendable>(
   |          `- note: add '@available' attribute to enclosing instance method
18 |         _ register: (@escaping @Sendable (Result<T, Error>) -> Void) -> Void
19 |     ) async throws -> T {
20 |         try await withCheckedThrowingContinuation { continuation in
   |                   |- error: 'withCheckedThrowingContinuation(isolation:function:_:)' is only available in macOS 10.15 or newer
   |                   `- note: add 'if #available' version check
21 |             register { continuation.resume(with: $0) }
22 |         }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Connection+Engine.swift:21:37: error: 'resume(with:)' is only available in macOS 10.15 or newer
10 | import Foundation
11 |
12 | extension Connection {
   | `- note: add '@available' attribute to enclosing extension
13 |     /// Suspends until the engine hands back a result.
14 |     ///
15 |     /// - Parameter register: Parks a callback with the engine. Runs synchronously, on the
16 |     ///   library queue, before this function suspends.
17 |     func suspend<T: Sendable>(
   |          `- note: add '@available' attribute to enclosing instance method
18 |         _ register: (@escaping @Sendable (Result<T, Error>) -> Void) -> Void
19 |     ) async throws -> T {
20 |         try await withCheckedThrowingContinuation { continuation in
21 |             register { continuation.resume(with: $0) }
   |                                     |- error: 'resume(with:)' is only available in macOS 10.15 or newer
   |                                     `- note: add 'if #available' version check
22 |         }
23 |     }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Connection+Engine.swift:20:52: error: 'isolation()' is only available in macOS 10.15 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Connection+Engine.swift:20:51: note: expanded code originates here
10 | import Foundation
11 |
12 | extension Connection {
   | `- note: add '@available' attribute to enclosing extension
13 |     /// Suspends until the engine hands back a result.
14 |     ///
15 |     /// - Parameter register: Parks a callback with the engine. Runs synchronously, on the
16 |     ///   library queue, before this function suspends.
17 |     func suspend<T: Sendable>(
   |          `- note: add '@available' attribute to enclosing instance method
18 |         _ register: (@escaping @Sendable (Result<T, Error>) -> Void) -> Void
19 |     ) async throws -> T {
20 |         try await withCheckedThrowingContinuation { continuation in
   +--- /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Connection+Engine.swift
   |18 |
   |19 |
   |20 |                                                   #isolation
   |   |                                                    `- error: 'isolation()' is only available in macOS 10.15 or newer
   +------------------------------------------------------------------------------------------------------------
21 |             register { continuation.resume(with: $0) }
22 |         }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Connection+Engine.swift:31:19: error: 'withTaskCancellationHandler(operation:onCancel:isolation:)' is only available in macOS 10.15 or newer
10 | import Foundation
11 |
12 | extension Connection {
   | `- note: add '@available' attribute to enclosing extension
13 |     /// Suspends until the engine hands back a result.
14 |     ///
   :
28 |     /// move on. A cancellation that arrives once the operation is already running is ignored:
29 |     /// CoreBluetooth has no way to withdraw a read or a write that is on the wire.
30 |     func waitForTurn(_ ticket: IOQueue.Ticket) async throws {
   |          `- note: add '@available' attribute to enclosing instance method
31 |         try await withTaskCancellationHandler {
   |                   |- error: 'withTaskCancellationHandler(operation:onCancel:isolation:)' is only available in macOS 10.15 or newer
   |                   `- note: add 'if #available' version check
32 |             try await suspend { resume in
33 |                 core.attachTurn({ resume($0) }, to: ticket)
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Connection+Engine.swift:31:48: error: 'isolation()' is only available in macOS 10.15 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Connection+Engine.swift:31:47: note: expanded code originates here
10 | import Foundation
11 |
12 | extension Connection {
   | `- note: add '@available' attribute to enclosing extension
13 |     /// Suspends until the engine hands back a result.
14 |     ///
   :
28 |     /// move on. A cancellation that arrives once the operation is already running is ignored:
29 |     /// CoreBluetooth has no way to withdraw a read or a write that is on the wire.
30 |     func waitForTurn(_ ticket: IOQueue.Ticket) async throws {
   |          `- note: add '@available' attribute to enclosing instance method
31 |         try await withTaskCancellationHandler {
   +--- /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Connection+Engine.swift
   |29 |
   |30 |
   |31 |                                               #isolation
   |   |                                                `- error: 'isolation()' is only available in macOS 10.15 or newer
   +------------------------------------------------------------------------------------------------------------
32 |             try await suspend { resume in
33 |                 core.attachTurn({ resume($0) }, to: ticket)
[35/43] Compiling AsyncBLE Connection+Engine.swift
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Bridge/SubscriptionRegistry.swift:23:39: error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
 19 | final class SubscriptionRegistry: @unchecked Sendable {
 20 |     /// One caller's `notifications(for:)` stream.
 21 |     final class Subscription: @unchecked Sendable {
    |                 `- note: add '@available' attribute to enclosing class
 22 |         let uuid: CBUUID
 23 |         fileprivate let continuation: AsyncThrowingStream<Data, Error>.Continuation
    |                                       `- error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
 24 |
 25 |         fileprivate init(uuid: CBUUID, continuation: AsyncThrowingStream<Data, Error>.Continuation) {
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Bridge/SubscriptionRegistry.swift:25:54: error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
 19 | final class SubscriptionRegistry: @unchecked Sendable {
 20 |     /// One caller's `notifications(for:)` stream.
 21 |     final class Subscription: @unchecked Sendable {
    |                 `- note: add '@available' attribute to enclosing class
 22 |         let uuid: CBUUID
 23 |         fileprivate let continuation: AsyncThrowingStream<Data, Error>.Continuation
 24 |
 25 |         fileprivate init(uuid: CBUUID, continuation: AsyncThrowingStream<Data, Error>.Continuation) {
    |                     |                                `- error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
    |                     `- note: add '@available' attribute to enclosing initializer
 26 |             self.uuid = uuid
 27 |             self.continuation = continuation
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Bridge/SubscriptionRegistry.swift:69:26: error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
 17 |
 18 | /// The live notification streams of one connection.
 19 | final class SubscriptionRegistry: @unchecked Sendable {
    |             `- note: add '@available' attribute to enclosing class
 20 |     /// One caller's `notifications(for:)` stream.
 21 |     final class Subscription: @unchecked Sendable {
    :
 65 |     /// while the confirmation is in flight still unsubscribes cleanly. The connection removes
 66 |     /// it again if the subscribe fails.
 67 |     func subscribe(
    |          `- note: add '@available' attribute to enclosing instance method
 68 |         to uuid: CBUUID,
 69 |         bufferingPolicy: AsyncThrowingStream<Data, Error>.Continuation.BufferingPolicy
    |                          `- error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
 70 |     ) -> (subscription: Subscription, stream: AsyncThrowingStream<Data, Error>) {
 71 |         var subscription: Subscription?
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Bridge/SubscriptionRegistry.swift:70:47: error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
 17 |
 18 | /// The live notification streams of one connection.
 19 | final class SubscriptionRegistry: @unchecked Sendable {
    |             `- note: add '@available' attribute to enclosing class
 20 |     /// One caller's `notifications(for:)` stream.
 21 |     final class Subscription: @unchecked Sendable {
    :
 65 |     /// while the confirmation is in flight still unsubscribes cleanly. The connection removes
 66 |     /// it again if the subscribe fails.
 67 |     func subscribe(
    |          `- note: add '@available' attribute to enclosing instance method
 68 |         to uuid: CBUUID,
 69 |         bufferingPolicy: AsyncThrowingStream<Data, Error>.Continuation.BufferingPolicy
 70 |     ) -> (subscription: Subscription, stream: AsyncThrowingStream<Data, Error>) {
    |                                               `- error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
 71 |         var subscription: Subscription?
 72 |         let stream = AsyncThrowingStream(Data.self, bufferingPolicy: bufferingPolicy) { continuation in
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Bridge/SubscriptionRegistry.swift:90:21: error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
 17 |
 18 | /// The live notification streams of one connection.
 19 | final class SubscriptionRegistry: @unchecked Sendable {
    |             `- note: add '@available' attribute to enclosing class
 20 |     /// One caller's `notifications(for:)` stream.
 21 |     final class Subscription: @unchecked Sendable {
    :
 86 |     /// written inside another closure captures *that* closure's `self`, which Swift 6 rejects as
 87 |     /// a reference to a captured var from concurrently-executing code.
 88 |     private func terminator(
    |                  `- note: add '@available' attribute to enclosing instance method
 89 |         for subscription: Subscription
 90 |     ) -> @Sendable (AsyncThrowingStream<Data, Error>.Continuation.Termination) -> Void {
    |                     `- error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
 91 |         // The weak reference is promoted before the queue hop rather than inside it. A weak
 92 |         // capture is a `var` — it can become nil — and Swift 6 rejects reading one from
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Bridge/SubscriptionRegistry.swift:72:22: error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
 17 |
 18 | /// The live notification streams of one connection.
 19 | final class SubscriptionRegistry: @unchecked Sendable {
    |             `- note: add '@available' attribute to enclosing class
 20 |     /// One caller's `notifications(for:)` stream.
 21 |     final class Subscription: @unchecked Sendable {
    :
 65 |     /// while the confirmation is in flight still unsubscribes cleanly. The connection removes
 66 |     /// it again if the subscribe fails.
 67 |     func subscribe(
    |          `- note: add '@available' attribute to enclosing instance method
 68 |         to uuid: CBUUID,
 69 |         bufferingPolicy: AsyncThrowingStream<Data, Error>.Continuation.BufferingPolicy
 70 |     ) -> (subscription: Subscription, stream: AsyncThrowingStream<Data, Error>) {
 71 |         var subscription: Subscription?
 72 |         let stream = AsyncThrowingStream(Data.self, bufferingPolicy: bufferingPolicy) { continuation in
    |                      |- error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
    |                      `- note: add 'if #available' version check
 73 |             let new = Subscription(uuid: uuid, continuation: continuation)
 74 |             subscription = new
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Central+Engine.swift:36:51: error: 'Duration' is only available in macOS 13.0 or newer
  5 | import Foundation
  6 |
  7 | extension Central {
    | `- note: add '@available' attribute to enclosing extension
  8 |     /// Waits for the adapter to say something definitive, and throws if that is bad news.
  9 |     ///
    :
 34 |     ///   - peripheralID: Which peripheral.
 35 |     ///   - timeout: The deadline for the attempt, or `nil` to pend indefinitely.
 36 |     func establish(_ peripheralID: UUID, timeout: Duration?) async throws -> Connection {
    |          |                                        `- error: 'Duration' is only available in macOS 13.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
 37 |         try await requirePoweredOn()
 38 |         let connection = try connection(for: peripheralID)
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Central+Engine.swift:71:64: error: 'Duration' is only available in macOS 13.0 or newer
  5 | import Foundation
  6 |
  7 | extension Central {
    | `- note: add '@available' attribute to enclosing extension
  8 |     /// Waits for the adapter to say something definitive, and throws if that is bad news.
  9 |     ///
    :
 69 |
 70 |     /// Suspends until the link comes up, this caller gives up, or the connection ends.
 71 |     private func waitForLink(on core: ConnectionCore, timeout: Duration?) async throws {
    |                  |                                             `- error: 'Duration' is only available in macOS 13.0 or newer
    |                  `- note: add '@available' attribute to enclosing instance method
 72 |         let handle = ConnectAttemptHandle()
 73 |         try await withTaskCancellationHandler {
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Central+Engine.swift:24:9: error: 'makeAsyncIterator()' is only available in macOS 10.15 or newer
  5 | import Foundation
  6 |
  7 | extension Central {
    | `- note: add '@available' attribute to enclosing extension
  8 |     /// Waits for the adapter to say something definitive, and throws if that is bad news.
  9 |     ///
    :
 18 |
 19 |     /// The adapter's state once it is something other than "not yet known".
 20 |     private func definitiveAdapterState() async -> AdapterState {
    |                  `- note: add '@available' attribute to enclosing instance method
 21 |         let current = bridge.adapterStates.current
 22 |         guard current == .unavailable(reason: .unknown) else { return current }
 23 |
 24 |         for await state in bridge.adapterStates.stream() where state != .unavailable(reason: .unknown) {
    |         |- error: 'makeAsyncIterator()' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
 25 |             return state
 26 |         }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Central+Engine.swift:73:19: error: 'withTaskCancellationHandler(operation:onCancel:isolation:)' is only available in macOS 10.15 or newer
  5 | import Foundation
  6 |
  7 | extension Central {
    | `- note: add '@available' attribute to enclosing extension
  8 |     /// Waits for the adapter to say something definitive, and throws if that is bad news.
  9 |     ///
    :
 69 |
 70 |     /// Suspends until the link comes up, this caller gives up, or the connection ends.
 71 |     private func waitForLink(on core: ConnectionCore, timeout: Duration?) async throws {
    |                  `- note: add '@available' attribute to enclosing instance method
 72 |         let handle = ConnectAttemptHandle()
 73 |         try await withTaskCancellationHandler {
    |                   |- error: 'withTaskCancellationHandler(operation:onCancel:isolation:)' is only available in macOS 10.15 or newer
    |                   `- note: add 'if #available' version check
 74 |             try await withCheckedThrowingContinuation { continuation in
 75 |                 handle.begin(core: core, continuation: continuation, timeout: timeout, scheduler: scheduler)
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Central+Engine.swift:74:23: error: 'withCheckedThrowingContinuation(isolation:function:_:)' is only available in macOS 10.15 or newer
  5 | import Foundation
  6 |
  7 | extension Central {
    | `- note: add '@available' attribute to enclosing extension
  8 |     /// Waits for the adapter to say something definitive, and throws if that is bad news.
  9 |     ///
    :
 69 |
 70 |     /// Suspends until the link comes up, this caller gives up, or the connection ends.
 71 |     private func waitForLink(on core: ConnectionCore, timeout: Duration?) async throws {
    |                  `- note: add '@available' attribute to enclosing instance method
 72 |         let handle = ConnectAttemptHandle()
 73 |         try await withTaskCancellationHandler {
 74 |             try await withCheckedThrowingContinuation { continuation in
    |                       |- error: 'withCheckedThrowingContinuation(isolation:function:_:)' is only available in macOS 10.15 or newer
    |                       `- note: add 'if #available' version check
 75 |                 handle.begin(core: core, continuation: continuation, timeout: timeout, scheduler: scheduler)
 76 |             }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Central+Engine.swift:74:56: error: 'isolation()' is only available in macOS 10.15 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Central+Engine.swift:74:55: note: expanded code originates here
  5 | import Foundation
  6 |
  7 | extension Central {
    | `- note: add '@available' attribute to enclosing extension
  8 |     /// Waits for the adapter to say something definitive, and throws if that is bad news.
  9 |     ///
    :
 69 |
 70 |     /// Suspends until the link comes up, this caller gives up, or the connection ends.
 71 |     private func waitForLink(on core: ConnectionCore, timeout: Duration?) async throws {
    |                  `- note: add '@available' attribute to enclosing instance method
 72 |         let handle = ConnectAttemptHandle()
 73 |         try await withTaskCancellationHandler {
 74 |             try await withCheckedThrowingContinuation { continuation in
    +--- /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Central+Engine.swift
    |72 |
    |73 |
    |74 |                                                       #isolation
    |   |                                                        `- error: 'isolation()' is only available in macOS 10.15 or newer
    +---------------------------------------------------------------------------------------------------------
 75 |                 handle.begin(core: core, continuation: continuation, timeout: timeout, scheduler: scheduler)
 76 |             }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Central+Engine.swift:73:48: error: 'isolation()' is only available in macOS 10.15 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Central+Engine.swift:73:47: note: expanded code originates here
  5 | import Foundation
  6 |
  7 | extension Central {
    | `- note: add '@available' attribute to enclosing extension
  8 |     /// Waits for the adapter to say something definitive, and throws if that is bad news.
  9 |     ///
    :
 69 |
 70 |     /// Suspends until the link comes up, this caller gives up, or the connection ends.
 71 |     private func waitForLink(on core: ConnectionCore, timeout: Duration?) async throws {
    |                  `- note: add '@available' attribute to enclosing instance method
 72 |         let handle = ConnectAttemptHandle()
 73 |         try await withTaskCancellationHandler {
    +--- /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Central+Engine.swift
    |71 |
    |72 |
    |73 |                                               #isolation
    |   |                                                `- error: 'isolation()' is only available in macOS 10.15 or newer
    +---------------------------------------------------------------------------------------------------------
 74 |             try await withCheckedThrowingContinuation { continuation in
 75 |                 handle.begin(core: core, continuation: continuation, timeout: timeout, scheduler: scheduler)
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/ConnectAttempt.swift:15:31: error: 'CheckedContinuation' is only available in macOS 10.15 or newer
12 |
13 | /// A continuation that can be resumed from several places and will only resume once.
14 | final class ResumeOnce: @unchecked Sendable {
   |             `- note: add '@available' attribute to enclosing class
15 |     private var continuation: CheckedContinuation<Void, Error>?
   |                               `- error: 'CheckedContinuation' is only available in macOS 10.15 or newer
16 |
17 |     init(_ continuation: CheckedContinuation<Void, Error>) {
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/ConnectAttempt.swift:17:26: error: 'CheckedContinuation' is only available in macOS 10.15 or newer
12 |
13 | /// A continuation that can be resumed from several places and will only resume once.
14 | final class ResumeOnce: @unchecked Sendable {
   |             `- note: add '@available' attribute to enclosing class
15 |     private var continuation: CheckedContinuation<Void, Error>?
16 |
17 |     init(_ continuation: CheckedContinuation<Void, Error>) {
   |     |                    `- error: 'CheckedContinuation' is only available in macOS 10.15 or newer
   |     `- note: add '@available' attribute to enclosing initializer
18 |         self.continuation = continuation
19 |     }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/ConnectAttempt.swift:48:23: error: 'CheckedContinuation' is only available in macOS 10.15 or newer
28 |
29 | /// One caller waiting for a connection to come up.
30 | final class ConnectAttemptHandle: @unchecked Sendable {
   |             `- note: add '@available' attribute to enclosing class
31 |     private var once: ResumeOnce?
32 |     private var core: ConnectionCore?
   :
44 |     ///     gets its deadline from the state machine instead, so the two never both fire.
45 |     ///   - scheduler: Where the deadline is armed.
46 |     func begin(
   |          `- note: add '@available' attribute to enclosing instance method
47 |         core: ConnectionCore,
48 |         continuation: CheckedContinuation<Void, Error>,
   |                       `- error: 'CheckedContinuation' is only available in macOS 10.15 or newer
49 |         timeout: Duration?,
50 |         scheduler: Scheduler
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/ConnectAttempt.swift:49:18: error: 'Duration' is only available in macOS 13.0 or newer
28 |
29 | /// One caller waiting for a connection to come up.
30 | final class ConnectAttemptHandle: @unchecked Sendable {
   |             `- note: add '@available' attribute to enclosing class
31 |     private var once: ResumeOnce?
32 |     private var core: ConnectionCore?
   :
44 |     ///     gets its deadline from the state machine instead, so the two never both fire.
45 |     ///   - scheduler: Where the deadline is armed.
46 |     func begin(
   |          `- note: add '@available' attribute to enclosing instance method
47 |         core: ConnectionCore,
48 |         continuation: CheckedContinuation<Void, Error>,
49 |         timeout: Duration?,
   |                  `- error: 'Duration' is only available in macOS 13.0 or newer
50 |         scheduler: Scheduler
51 |     ) {
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/ConnectAttempt.swift:25:22: error: 'resume(with:)' is only available in macOS 10.15 or newer
12 |
13 | /// A continuation that can be resumed from several places and will only resume once.
14 | final class ResumeOnce: @unchecked Sendable {
   |             `- note: add '@available' attribute to enclosing class
15 |     private var continuation: CheckedContinuation<Void, Error>?
16 |
   :
20 |
21 |     /// Resumes, unless something already did.
22 |     func resume(_ result: Result<Void, Error>) {
   |          `- note: add '@available' attribute to enclosing instance method
23 |         guard let continuation else { return }
24 |         self.continuation = nil
25 |         continuation.resume(with: result)
   |                      |- error: 'resume(with:)' is only available in macOS 10.15 or newer
   |                      `- note: add 'if #available' version check
26 |     }
27 | }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/ConnectAttempt.swift:58:34: error: 'CancellationError' is only available in macOS 10.15 or newer
28 |
29 | /// One caller waiting for a connection to come up.
30 | final class ConnectAttemptHandle: @unchecked Sendable {
   |             `- note: add '@available' attribute to enclosing class
31 |     private var once: ResumeOnce?
32 |     private var core: ConnectionCore?
   :
44 |     ///     gets its deadline from the state machine instead, so the two never both fire.
45 |     ///   - scheduler: Where the deadline is armed.
46 |     func begin(
   |          `- note: add '@available' attribute to enclosing instance method
47 |         core: ConnectionCore,
48 |         continuation: CheckedContinuation<Void, Error>,
   :
56 |         guard !cancelledBeforeStart else {
57 |             // The caller's task was cancelled before this even got to run.
58 |             once.resume(.failure(CancellationError()))
   |                                  |- error: 'CancellationError' is only available in macOS 10.15 or newer
   |                                  `- note: add 'if #available' version check
59 |             return
60 |         }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/ConnectAttempt.swift:80:31: error: 'CancellationError' is only available in macOS 10.15 or newer
28 |
29 | /// One caller waiting for a connection to come up.
30 | final class ConnectAttemptHandle: @unchecked Sendable {
   |             `- note: add '@available' attribute to enclosing class
31 |     private var once: ResumeOnce?
32 |     private var core: ConnectionCore?
   :
75 |     /// The caller went away. Detach it, and let the connection decide whether the attempt has
76 |     /// anyone left to serve.
77 |     func cancel() {
   |          `- note: add '@available' attribute to enclosing instance method
78 |         cancelledBeforeStart = true
79 |         detach()
80 |         once?.resume(.failure(CancellationError()))
   |                               |- error: 'CancellationError' is only available in macOS 10.15 or newer
   |                               `- note: add 'if #available' version check
81 |     }
82 |
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Connection+Engine.swift:20:19: error: 'withCheckedThrowingContinuation(isolation:function:_:)' is only available in macOS 10.15 or newer
10 | import Foundation
11 |
12 | extension Connection {
   | `- note: add '@available' attribute to enclosing extension
13 |     /// Suspends until the engine hands back a result.
14 |     ///
15 |     /// - Parameter register: Parks a callback with the engine. Runs synchronously, on the
16 |     ///   library queue, before this function suspends.
17 |     func suspend<T: Sendable>(
   |          `- note: add '@available' attribute to enclosing instance method
18 |         _ register: (@escaping @Sendable (Result<T, Error>) -> Void) -> Void
19 |     ) async throws -> T {
20 |         try await withCheckedThrowingContinuation { continuation in
   |                   |- error: 'withCheckedThrowingContinuation(isolation:function:_:)' is only available in macOS 10.15 or newer
   |                   `- note: add 'if #available' version check
21 |             register { continuation.resume(with: $0) }
22 |         }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Connection+Engine.swift:21:37: error: 'resume(with:)' is only available in macOS 10.15 or newer
10 | import Foundation
11 |
12 | extension Connection {
   | `- note: add '@available' attribute to enclosing extension
13 |     /// Suspends until the engine hands back a result.
14 |     ///
15 |     /// - Parameter register: Parks a callback with the engine. Runs synchronously, on the
16 |     ///   library queue, before this function suspends.
17 |     func suspend<T: Sendable>(
   |          `- note: add '@available' attribute to enclosing instance method
18 |         _ register: (@escaping @Sendable (Result<T, Error>) -> Void) -> Void
19 |     ) async throws -> T {
20 |         try await withCheckedThrowingContinuation { continuation in
21 |             register { continuation.resume(with: $0) }
   |                                     |- error: 'resume(with:)' is only available in macOS 10.15 or newer
   |                                     `- note: add 'if #available' version check
22 |         }
23 |     }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Connection+Engine.swift:20:52: error: 'isolation()' is only available in macOS 10.15 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Connection+Engine.swift:20:51: note: expanded code originates here
10 | import Foundation
11 |
12 | extension Connection {
   | `- note: add '@available' attribute to enclosing extension
13 |     /// Suspends until the engine hands back a result.
14 |     ///
15 |     /// - Parameter register: Parks a callback with the engine. Runs synchronously, on the
16 |     ///   library queue, before this function suspends.
17 |     func suspend<T: Sendable>(
   |          `- note: add '@available' attribute to enclosing instance method
18 |         _ register: (@escaping @Sendable (Result<T, Error>) -> Void) -> Void
19 |     ) async throws -> T {
20 |         try await withCheckedThrowingContinuation { continuation in
   +--- /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Connection+Engine.swift
   |18 |
   |19 |
   |20 |                                                   #isolation
   |   |                                                    `- error: 'isolation()' is only available in macOS 10.15 or newer
   +------------------------------------------------------------------------------------------------------------
21 |             register { continuation.resume(with: $0) }
22 |         }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Connection+Engine.swift:31:19: error: 'withTaskCancellationHandler(operation:onCancel:isolation:)' is only available in macOS 10.15 or newer
10 | import Foundation
11 |
12 | extension Connection {
   | `- note: add '@available' attribute to enclosing extension
13 |     /// Suspends until the engine hands back a result.
14 |     ///
   :
28 |     /// move on. A cancellation that arrives once the operation is already running is ignored:
29 |     /// CoreBluetooth has no way to withdraw a read or a write that is on the wire.
30 |     func waitForTurn(_ ticket: IOQueue.Ticket) async throws {
   |          `- note: add '@available' attribute to enclosing instance method
31 |         try await withTaskCancellationHandler {
   |                   |- error: 'withTaskCancellationHandler(operation:onCancel:isolation:)' is only available in macOS 10.15 or newer
   |                   `- note: add 'if #available' version check
32 |             try await suspend { resume in
33 |                 core.attachTurn({ resume($0) }, to: ticket)
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Connection+Engine.swift:31:48: error: 'isolation()' is only available in macOS 10.15 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Connection+Engine.swift:31:47: note: expanded code originates here
10 | import Foundation
11 |
12 | extension Connection {
   | `- note: add '@available' attribute to enclosing extension
13 |     /// Suspends until the engine hands back a result.
14 |     ///
   :
28 |     /// move on. A cancellation that arrives once the operation is already running is ignored:
29 |     /// CoreBluetooth has no way to withdraw a read or a write that is on the wire.
30 |     func waitForTurn(_ ticket: IOQueue.Ticket) async throws {
   |          `- note: add '@available' attribute to enclosing instance method
31 |         try await withTaskCancellationHandler {
   +--- /Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Connection/Connection+Engine.swift
   |29 |
   |30 |
   |31 |                                               #isolation
   |   |                                                `- error: 'isolation()' is only available in macOS 10.15 or newer
   +------------------------------------------------------------------------------------------------------------
32 |             try await suspend { resume in
33 |                 core.attachTurn({ resume($0) }, to: ticket)
[36/43] Compiling AsyncBLE Connection+Typed.swift
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Public/Connection+Typed.swift:62:26: error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
 8 | import Foundation
 9 |
10 | extension Connection {
   | `- note: add '@available' attribute to enclosing extension
11 |     /// Reads a characteristic and decodes it.
12 |     ///
   :
58 |     /// - Returns: A stream of decoded values.
59 |     /// - Throws: Everything ``notifications(for:bufferingPolicy:)->AsyncThrowingStream<Data,Error>`` throws.
60 |     public func notifications<Value: CharacteristicDecodable>(
   |                 `- note: add '@available' attribute to enclosing instance method
61 |         for characteristic: Characteristic<Value>,
62 |         bufferingPolicy: AsyncThrowingStream<Data, Error>.Continuation.BufferingPolicy =
   |                          `- error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
63 |             .bufferingNewest(256)
64 |     ) async throws -> AsyncThrowingMapSequence<AsyncThrowingStream<Data, Error>, Value> {
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Public/Connection+Typed.swift:64:23: error: 'AsyncThrowingMapSequence' is only available in macOS 10.15 or newer
 8 | import Foundation
 9 |
10 | extension Connection {
   | `- note: add '@available' attribute to enclosing extension
11 |     /// Reads a characteristic and decodes it.
12 |     ///
   :
58 |     /// - Returns: A stream of decoded values.
59 |     /// - Throws: Everything ``notifications(for:bufferingPolicy:)->AsyncThrowingStream<Data,Error>`` throws.
60 |     public func notifications<Value: CharacteristicDecodable>(
   |                 `- note: add '@available' attribute to enclosing instance method
61 |         for characteristic: Characteristic<Value>,
62 |         bufferingPolicy: AsyncThrowingStream<Data, Error>.Continuation.BufferingPolicy =
63 |             .bufferingNewest(256)
64 |     ) async throws -> AsyncThrowingMapSequence<AsyncThrowingStream<Data, Error>, Value> {
   |                       `- error: 'AsyncThrowingMapSequence' is only available in macOS 10.15 or newer
65 |         // `map` rather than a second stream fed by a pump task: the transform is 1:1, so a
66 |         // second buffer would only mean the caller's bound was applied twice — and decoding
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Public/Connection+Typed.swift:69:14: error: 'map' is only available in macOS 10.15 or newer
 8 | import Foundation
 9 |
10 | extension Connection {
   | `- note: add '@available' attribute to enclosing extension
11 |     /// Reads a characteristic and decodes it.
12 |     ///
   :
58 |     /// - Returns: A stream of decoded values.
59 |     /// - Throws: Everything ``notifications(for:bufferingPolicy:)->AsyncThrowingStream<Data,Error>`` throws.
60 |     public func notifications<Value: CharacteristicDecodable>(
   |                 `- note: add '@available' attribute to enclosing instance method
61 |         for characteristic: Characteristic<Value>,
62 |         bufferingPolicy: AsyncThrowingStream<Data, Error>.Continuation.BufferingPolicy =
   :
67 |         // in the consumer's own context saves a hop off the library queue per packet.
68 |         try await notifications(for: characteristic.id, bufferingPolicy: bufferingPolicy)
69 |             .map { try Self.decode($0, for: characteristic) }
   |              |- error: 'map' is only available in macOS 10.15 or newer
   |              `- note: add 'if #available' version check
70 |     }
71 |
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Public/Connection.swift:75:45: error: 'UnownedSerialExecutor' is only available in macOS 10.15 or newer
 39 | /// Without it, actor reentrancy would let concurrent callers interleave at suspension points
 40 | /// and reorder packets.
 41 | public actor Connection {
    |              `- note: add '@available' attribute to enclosing actor
 42 |     /// Whether a write waits for the peripheral to acknowledge it.
 43 |     public enum WriteMode: Sendable, Equatable {
    :
 73 |     /// this actor and CoreBluetooth's delegate callbacks mutually exclusive, which in turn is
 74 |     /// what makes ``withRaw(_:)`` safe.
 75 |     nonisolated public var unownedExecutor: UnownedSerialExecutor {
    |                            |                `- error: 'UnownedSerialExecutor' is only available in macOS 10.15 or newer
    |                            `- note: add '@available' attribute to enclosing property
 76 |         library.unownedExecutor
 77 |     }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Public/Connection.swift:98:36: error: 'AsyncStream' is only available in macOS 10.15 or newer
 39 | /// Without it, actor reentrancy would let concurrent callers interleave at suspension points
 40 | /// and reorder packets.
 41 | public actor Connection {
    |              `- note: add '@available' attribute to enclosing actor
 42 |     /// Whether a write waits for the peripheral to acknowledge it.
 43 |     public enum WriteMode: Sendable, Equatable {
    :
 96 |     /// }
 97 |     /// ```
 98 |     nonisolated public var states: AsyncStream<ConnectionState> {
    |                            |       `- error: 'AsyncStream' is only available in macOS 10.15 or newer
    |                            `- note: add '@available' attribute to enclosing property
 99 |         core.states.stream()
100 |     }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Public/Connection.swift:239:26: error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
 39 | /// Without it, actor reentrancy would let concurrent callers interleave at suspension points
 40 | /// and reorder packets.
 41 | public actor Connection {
    |              `- note: add '@available' attribute to enclosing actor
 42 |     /// Whether a write waits for the peripheral to acknowledge it.
 43 |     public enum WriteMode: Sendable, Equatable {
    :
235 |     ///   ``BluetoothError/operationFailed(underlying:)`` if the peripheral refuses the
236 |     ///   subscription, or ``BluetoothError/disconnected(reason:)`` if the link is down.
237 |     public func notifications(
    |                 `- note: add '@available' attribute to enclosing instance method
238 |         for characteristic: CharacteristicID,
239 |         bufferingPolicy: AsyncThrowingStream<Data, Error>.Continuation.BufferingPolicy = .bufferingNewest(256)
    |                          `- error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
240 |     ) async throws -> AsyncThrowingStream<Data, Error> {
241 |         let ticket = core.enqueue()
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Public/Connection.swift:240:23: error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
 39 | /// Without it, actor reentrancy would let concurrent callers interleave at suspension points
 40 | /// and reorder packets.
 41 | public actor Connection {
    |              `- note: add '@available' attribute to enclosing actor
 42 |     /// Whether a write waits for the peripheral to acknowledge it.
 43 |     public enum WriteMode: Sendable, Equatable {
    :
235 |     ///   ``BluetoothError/operationFailed(underlying:)`` if the peripheral refuses the
236 |     ///   subscription, or ``BluetoothError/disconnected(reason:)`` if the link is down.
237 |     public func notifications(
    |                 `- note: add '@available' attribute to enclosing instance method
238 |         for characteristic: CharacteristicID,
239 |         bufferingPolicy: AsyncThrowingStream<Data, Error>.Continuation.BufferingPolicy = .bufferingNewest(256)
240 |     ) async throws -> AsyncThrowingStream<Data, Error> {
    |                       `- error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
241 |         let ticket = core.enqueue()
242 |         defer { core.complete(ticket) }
[37/43] Compiling AsyncBLE Connection.swift
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Public/Connection+Typed.swift:62:26: error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
 8 | import Foundation
 9 |
10 | extension Connection {
   | `- note: add '@available' attribute to enclosing extension
11 |     /// Reads a characteristic and decodes it.
12 |     ///
   :
58 |     /// - Returns: A stream of decoded values.
59 |     /// - Throws: Everything ``notifications(for:bufferingPolicy:)->AsyncThrowingStream<Data,Error>`` throws.
60 |     public func notifications<Value: CharacteristicDecodable>(
   |                 `- note: add '@available' attribute to enclosing instance method
61 |         for characteristic: Characteristic<Value>,
62 |         bufferingPolicy: AsyncThrowingStream<Data, Error>.Continuation.BufferingPolicy =
   |                          `- error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
63 |             .bufferingNewest(256)
64 |     ) async throws -> AsyncThrowingMapSequence<AsyncThrowingStream<Data, Error>, Value> {
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Public/Connection+Typed.swift:64:23: error: 'AsyncThrowingMapSequence' is only available in macOS 10.15 or newer
 8 | import Foundation
 9 |
10 | extension Connection {
   | `- note: add '@available' attribute to enclosing extension
11 |     /// Reads a characteristic and decodes it.
12 |     ///
   :
58 |     /// - Returns: A stream of decoded values.
59 |     /// - Throws: Everything ``notifications(for:bufferingPolicy:)->AsyncThrowingStream<Data,Error>`` throws.
60 |     public func notifications<Value: CharacteristicDecodable>(
   |                 `- note: add '@available' attribute to enclosing instance method
61 |         for characteristic: Characteristic<Value>,
62 |         bufferingPolicy: AsyncThrowingStream<Data, Error>.Continuation.BufferingPolicy =
63 |             .bufferingNewest(256)
64 |     ) async throws -> AsyncThrowingMapSequence<AsyncThrowingStream<Data, Error>, Value> {
   |                       `- error: 'AsyncThrowingMapSequence' is only available in macOS 10.15 or newer
65 |         // `map` rather than a second stream fed by a pump task: the transform is 1:1, so a
66 |         // second buffer would only mean the caller's bound was applied twice — and decoding
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Public/Connection+Typed.swift:69:14: error: 'map' is only available in macOS 10.15 or newer
 8 | import Foundation
 9 |
10 | extension Connection {
   | `- note: add '@available' attribute to enclosing extension
11 |     /// Reads a characteristic and decodes it.
12 |     ///
   :
58 |     /// - Returns: A stream of decoded values.
59 |     /// - Throws: Everything ``notifications(for:bufferingPolicy:)->AsyncThrowingStream<Data,Error>`` throws.
60 |     public func notifications<Value: CharacteristicDecodable>(
   |                 `- note: add '@available' attribute to enclosing instance method
61 |         for characteristic: Characteristic<Value>,
62 |         bufferingPolicy: AsyncThrowingStream<Data, Error>.Continuation.BufferingPolicy =
   :
67 |         // in the consumer's own context saves a hop off the library queue per packet.
68 |         try await notifications(for: characteristic.id, bufferingPolicy: bufferingPolicy)
69 |             .map { try Self.decode($0, for: characteristic) }
   |              |- error: 'map' is only available in macOS 10.15 or newer
   |              `- note: add 'if #available' version check
70 |     }
71 |
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Public/Connection.swift:75:45: error: 'UnownedSerialExecutor' is only available in macOS 10.15 or newer
 39 | /// Without it, actor reentrancy would let concurrent callers interleave at suspension points
 40 | /// and reorder packets.
 41 | public actor Connection {
    |              `- note: add '@available' attribute to enclosing actor
 42 |     /// Whether a write waits for the peripheral to acknowledge it.
 43 |     public enum WriteMode: Sendable, Equatable {
    :
 73 |     /// this actor and CoreBluetooth's delegate callbacks mutually exclusive, which in turn is
 74 |     /// what makes ``withRaw(_:)`` safe.
 75 |     nonisolated public var unownedExecutor: UnownedSerialExecutor {
    |                            |                `- error: 'UnownedSerialExecutor' is only available in macOS 10.15 or newer
    |                            `- note: add '@available' attribute to enclosing property
 76 |         library.unownedExecutor
 77 |     }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Public/Connection.swift:98:36: error: 'AsyncStream' is only available in macOS 10.15 or newer
 39 | /// Without it, actor reentrancy would let concurrent callers interleave at suspension points
 40 | /// and reorder packets.
 41 | public actor Connection {
    |              `- note: add '@available' attribute to enclosing actor
 42 |     /// Whether a write waits for the peripheral to acknowledge it.
 43 |     public enum WriteMode: Sendable, Equatable {
    :
 96 |     /// }
 97 |     /// ```
 98 |     nonisolated public var states: AsyncStream<ConnectionState> {
    |                            |       `- error: 'AsyncStream' is only available in macOS 10.15 or newer
    |                            `- note: add '@available' attribute to enclosing property
 99 |         core.states.stream()
100 |     }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Public/Connection.swift:239:26: error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
 39 | /// Without it, actor reentrancy would let concurrent callers interleave at suspension points
 40 | /// and reorder packets.
 41 | public actor Connection {
    |              `- note: add '@available' attribute to enclosing actor
 42 |     /// Whether a write waits for the peripheral to acknowledge it.
 43 |     public enum WriteMode: Sendable, Equatable {
    :
235 |     ///   ``BluetoothError/operationFailed(underlying:)`` if the peripheral refuses the
236 |     ///   subscription, or ``BluetoothError/disconnected(reason:)`` if the link is down.
237 |     public func notifications(
    |                 `- note: add '@available' attribute to enclosing instance method
238 |         for characteristic: CharacteristicID,
239 |         bufferingPolicy: AsyncThrowingStream<Data, Error>.Continuation.BufferingPolicy = .bufferingNewest(256)
    |                          `- error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
240 |     ) async throws -> AsyncThrowingStream<Data, Error> {
241 |         let ticket = core.enqueue()
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Public/Connection.swift:240:23: error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
 39 | /// Without it, actor reentrancy would let concurrent callers interleave at suspension points
 40 | /// and reorder packets.
 41 | public actor Connection {
    |              `- note: add '@available' attribute to enclosing actor
 42 |     /// Whether a write waits for the peripheral to acknowledge it.
 43 |     public enum WriteMode: Sendable, Equatable {
    :
235 |     ///   ``BluetoothError/operationFailed(underlying:)`` if the peripheral refuses the
236 |     ///   subscription, or ``BluetoothError/disconnected(reason:)`` if the link is down.
237 |     public func notifications(
    |                 `- note: add '@available' attribute to enclosing instance method
238 |         for characteristic: CharacteristicID,
239 |         bufferingPolicy: AsyncThrowingStream<Data, Error>.Continuation.BufferingPolicy = .bufferingNewest(256)
240 |     ) async throws -> AsyncThrowingStream<Data, Error> {
    |                       `- error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
241 |         let ticket = core.enqueue()
242 |         defer { core.complete(ticket) }
[38/43] Compiling AsyncBLE ConnectionState.swift
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Public/Connection+Typed.swift:62:26: error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
 8 | import Foundation
 9 |
10 | extension Connection {
   | `- note: add '@available' attribute to enclosing extension
11 |     /// Reads a characteristic and decodes it.
12 |     ///
   :
58 |     /// - Returns: A stream of decoded values.
59 |     /// - Throws: Everything ``notifications(for:bufferingPolicy:)->AsyncThrowingStream<Data,Error>`` throws.
60 |     public func notifications<Value: CharacteristicDecodable>(
   |                 `- note: add '@available' attribute to enclosing instance method
61 |         for characteristic: Characteristic<Value>,
62 |         bufferingPolicy: AsyncThrowingStream<Data, Error>.Continuation.BufferingPolicy =
   |                          `- error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
63 |             .bufferingNewest(256)
64 |     ) async throws -> AsyncThrowingMapSequence<AsyncThrowingStream<Data, Error>, Value> {
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Public/Connection+Typed.swift:64:23: error: 'AsyncThrowingMapSequence' is only available in macOS 10.15 or newer
 8 | import Foundation
 9 |
10 | extension Connection {
   | `- note: add '@available' attribute to enclosing extension
11 |     /// Reads a characteristic and decodes it.
12 |     ///
   :
58 |     /// - Returns: A stream of decoded values.
59 |     /// - Throws: Everything ``notifications(for:bufferingPolicy:)->AsyncThrowingStream<Data,Error>`` throws.
60 |     public func notifications<Value: CharacteristicDecodable>(
   |                 `- note: add '@available' attribute to enclosing instance method
61 |         for characteristic: Characteristic<Value>,
62 |         bufferingPolicy: AsyncThrowingStream<Data, Error>.Continuation.BufferingPolicy =
63 |             .bufferingNewest(256)
64 |     ) async throws -> AsyncThrowingMapSequence<AsyncThrowingStream<Data, Error>, Value> {
   |                       `- error: 'AsyncThrowingMapSequence' is only available in macOS 10.15 or newer
65 |         // `map` rather than a second stream fed by a pump task: the transform is 1:1, so a
66 |         // second buffer would only mean the caller's bound was applied twice — and decoding
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Public/Connection+Typed.swift:69:14: error: 'map' is only available in macOS 10.15 or newer
 8 | import Foundation
 9 |
10 | extension Connection {
   | `- note: add '@available' attribute to enclosing extension
11 |     /// Reads a characteristic and decodes it.
12 |     ///
   :
58 |     /// - Returns: A stream of decoded values.
59 |     /// - Throws: Everything ``notifications(for:bufferingPolicy:)->AsyncThrowingStream<Data,Error>`` throws.
60 |     public func notifications<Value: CharacteristicDecodable>(
   |                 `- note: add '@available' attribute to enclosing instance method
61 |         for characteristic: Characteristic<Value>,
62 |         bufferingPolicy: AsyncThrowingStream<Data, Error>.Continuation.BufferingPolicy =
   :
67 |         // in the consumer's own context saves a hop off the library queue per packet.
68 |         try await notifications(for: characteristic.id, bufferingPolicy: bufferingPolicy)
69 |             .map { try Self.decode($0, for: characteristic) }
   |              |- error: 'map' is only available in macOS 10.15 or newer
   |              `- note: add 'if #available' version check
70 |     }
71 |
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Public/Connection.swift:75:45: error: 'UnownedSerialExecutor' is only available in macOS 10.15 or newer
 39 | /// Without it, actor reentrancy would let concurrent callers interleave at suspension points
 40 | /// and reorder packets.
 41 | public actor Connection {
    |              `- note: add '@available' attribute to enclosing actor
 42 |     /// Whether a write waits for the peripheral to acknowledge it.
 43 |     public enum WriteMode: Sendable, Equatable {
    :
 73 |     /// this actor and CoreBluetooth's delegate callbacks mutually exclusive, which in turn is
 74 |     /// what makes ``withRaw(_:)`` safe.
 75 |     nonisolated public var unownedExecutor: UnownedSerialExecutor {
    |                            |                `- error: 'UnownedSerialExecutor' is only available in macOS 10.15 or newer
    |                            `- note: add '@available' attribute to enclosing property
 76 |         library.unownedExecutor
 77 |     }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Public/Connection.swift:98:36: error: 'AsyncStream' is only available in macOS 10.15 or newer
 39 | /// Without it, actor reentrancy would let concurrent callers interleave at suspension points
 40 | /// and reorder packets.
 41 | public actor Connection {
    |              `- note: add '@available' attribute to enclosing actor
 42 |     /// Whether a write waits for the peripheral to acknowledge it.
 43 |     public enum WriteMode: Sendable, Equatable {
    :
 96 |     /// }
 97 |     /// ```
 98 |     nonisolated public var states: AsyncStream<ConnectionState> {
    |                            |       `- error: 'AsyncStream' is only available in macOS 10.15 or newer
    |                            `- note: add '@available' attribute to enclosing property
 99 |         core.states.stream()
100 |     }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Public/Connection.swift:239:26: error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
 39 | /// Without it, actor reentrancy would let concurrent callers interleave at suspension points
 40 | /// and reorder packets.
 41 | public actor Connection {
    |              `- note: add '@available' attribute to enclosing actor
 42 |     /// Whether a write waits for the peripheral to acknowledge it.
 43 |     public enum WriteMode: Sendable, Equatable {
    :
235 |     ///   ``BluetoothError/operationFailed(underlying:)`` if the peripheral refuses the
236 |     ///   subscription, or ``BluetoothError/disconnected(reason:)`` if the link is down.
237 |     public func notifications(
    |                 `- note: add '@available' attribute to enclosing instance method
238 |         for characteristic: CharacteristicID,
239 |         bufferingPolicy: AsyncThrowingStream<Data, Error>.Continuation.BufferingPolicy = .bufferingNewest(256)
    |                          `- error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
240 |     ) async throws -> AsyncThrowingStream<Data, Error> {
241 |         let ticket = core.enqueue()
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Public/Connection.swift:240:23: error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
 39 | /// Without it, actor reentrancy would let concurrent callers interleave at suspension points
 40 | /// and reorder packets.
 41 | public actor Connection {
    |              `- note: add '@available' attribute to enclosing actor
 42 |     /// Whether a write waits for the peripheral to acknowledge it.
 43 |     public enum WriteMode: Sendable, Equatable {
    :
235 |     ///   ``BluetoothError/operationFailed(underlying:)`` if the peripheral refuses the
236 |     ///   subscription, or ``BluetoothError/disconnected(reason:)`` if the link is down.
237 |     public func notifications(
    |                 `- note: add '@available' attribute to enclosing instance method
238 |         for characteristic: CharacteristicID,
239 |         bufferingPolicy: AsyncThrowingStream<Data, Error>.Continuation.BufferingPolicy = .bufferingNewest(256)
240 |     ) async throws -> AsyncThrowingStream<Data, Error> {
    |                       `- error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
241 |         let ticket = core.enqueue()
242 |         defer { core.complete(ticket) }
[39/43] Compiling AsyncBLE DisconnectReason.swift
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Public/Connection+Typed.swift:62:26: error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
 8 | import Foundation
 9 |
10 | extension Connection {
   | `- note: add '@available' attribute to enclosing extension
11 |     /// Reads a characteristic and decodes it.
12 |     ///
   :
58 |     /// - Returns: A stream of decoded values.
59 |     /// - Throws: Everything ``notifications(for:bufferingPolicy:)->AsyncThrowingStream<Data,Error>`` throws.
60 |     public func notifications<Value: CharacteristicDecodable>(
   |                 `- note: add '@available' attribute to enclosing instance method
61 |         for characteristic: Characteristic<Value>,
62 |         bufferingPolicy: AsyncThrowingStream<Data, Error>.Continuation.BufferingPolicy =
   |                          `- error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
63 |             .bufferingNewest(256)
64 |     ) async throws -> AsyncThrowingMapSequence<AsyncThrowingStream<Data, Error>, Value> {
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Public/Connection+Typed.swift:64:23: error: 'AsyncThrowingMapSequence' is only available in macOS 10.15 or newer
 8 | import Foundation
 9 |
10 | extension Connection {
   | `- note: add '@available' attribute to enclosing extension
11 |     /// Reads a characteristic and decodes it.
12 |     ///
   :
58 |     /// - Returns: A stream of decoded values.
59 |     /// - Throws: Everything ``notifications(for:bufferingPolicy:)->AsyncThrowingStream<Data,Error>`` throws.
60 |     public func notifications<Value: CharacteristicDecodable>(
   |                 `- note: add '@available' attribute to enclosing instance method
61 |         for characteristic: Characteristic<Value>,
62 |         bufferingPolicy: AsyncThrowingStream<Data, Error>.Continuation.BufferingPolicy =
63 |             .bufferingNewest(256)
64 |     ) async throws -> AsyncThrowingMapSequence<AsyncThrowingStream<Data, Error>, Value> {
   |                       `- error: 'AsyncThrowingMapSequence' is only available in macOS 10.15 or newer
65 |         // `map` rather than a second stream fed by a pump task: the transform is 1:1, so a
66 |         // second buffer would only mean the caller's bound was applied twice — and decoding
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Public/Connection+Typed.swift:69:14: error: 'map' is only available in macOS 10.15 or newer
 8 | import Foundation
 9 |
10 | extension Connection {
   | `- note: add '@available' attribute to enclosing extension
11 |     /// Reads a characteristic and decodes it.
12 |     ///
   :
58 |     /// - Returns: A stream of decoded values.
59 |     /// - Throws: Everything ``notifications(for:bufferingPolicy:)->AsyncThrowingStream<Data,Error>`` throws.
60 |     public func notifications<Value: CharacteristicDecodable>(
   |                 `- note: add '@available' attribute to enclosing instance method
61 |         for characteristic: Characteristic<Value>,
62 |         bufferingPolicy: AsyncThrowingStream<Data, Error>.Continuation.BufferingPolicy =
   :
67 |         // in the consumer's own context saves a hop off the library queue per packet.
68 |         try await notifications(for: characteristic.id, bufferingPolicy: bufferingPolicy)
69 |             .map { try Self.decode($0, for: characteristic) }
   |              |- error: 'map' is only available in macOS 10.15 or newer
   |              `- note: add 'if #available' version check
70 |     }
71 |
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Public/Connection.swift:75:45: error: 'UnownedSerialExecutor' is only available in macOS 10.15 or newer
 39 | /// Without it, actor reentrancy would let concurrent callers interleave at suspension points
 40 | /// and reorder packets.
 41 | public actor Connection {
    |              `- note: add '@available' attribute to enclosing actor
 42 |     /// Whether a write waits for the peripheral to acknowledge it.
 43 |     public enum WriteMode: Sendable, Equatable {
    :
 73 |     /// this actor and CoreBluetooth's delegate callbacks mutually exclusive, which in turn is
 74 |     /// what makes ``withRaw(_:)`` safe.
 75 |     nonisolated public var unownedExecutor: UnownedSerialExecutor {
    |                            |                `- error: 'UnownedSerialExecutor' is only available in macOS 10.15 or newer
    |                            `- note: add '@available' attribute to enclosing property
 76 |         library.unownedExecutor
 77 |     }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Public/Connection.swift:98:36: error: 'AsyncStream' is only available in macOS 10.15 or newer
 39 | /// Without it, actor reentrancy would let concurrent callers interleave at suspension points
 40 | /// and reorder packets.
 41 | public actor Connection {
    |              `- note: add '@available' attribute to enclosing actor
 42 |     /// Whether a write waits for the peripheral to acknowledge it.
 43 |     public enum WriteMode: Sendable, Equatable {
    :
 96 |     /// }
 97 |     /// ```
 98 |     nonisolated public var states: AsyncStream<ConnectionState> {
    |                            |       `- error: 'AsyncStream' is only available in macOS 10.15 or newer
    |                            `- note: add '@available' attribute to enclosing property
 99 |         core.states.stream()
100 |     }
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Public/Connection.swift:239:26: error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
 39 | /// Without it, actor reentrancy would let concurrent callers interleave at suspension points
 40 | /// and reorder packets.
 41 | public actor Connection {
    |              `- note: add '@available' attribute to enclosing actor
 42 |     /// Whether a write waits for the peripheral to acknowledge it.
 43 |     public enum WriteMode: Sendable, Equatable {
    :
235 |     ///   ``BluetoothError/operationFailed(underlying:)`` if the peripheral refuses the
236 |     ///   subscription, or ``BluetoothError/disconnected(reason:)`` if the link is down.
237 |     public func notifications(
    |                 `- note: add '@available' attribute to enclosing instance method
238 |         for characteristic: CharacteristicID,
239 |         bufferingPolicy: AsyncThrowingStream<Data, Error>.Continuation.BufferingPolicy = .bufferingNewest(256)
    |                          `- error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
240 |     ) async throws -> AsyncThrowingStream<Data, Error> {
241 |         let ticket = core.enqueue()
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Public/Connection.swift:240:23: error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
 39 | /// Without it, actor reentrancy would let concurrent callers interleave at suspension points
 40 | /// and reorder packets.
 41 | public actor Connection {
    |              `- note: add '@available' attribute to enclosing actor
 42 |     /// Whether a write waits for the peripheral to acknowledge it.
 43 |     public enum WriteMode: Sendable, Equatable {
    :
235 |     ///   ``BluetoothError/operationFailed(underlying:)`` if the peripheral refuses the
236 |     ///   subscription, or ``BluetoothError/disconnected(reason:)`` if the link is down.
237 |     public func notifications(
    |                 `- note: add '@available' attribute to enclosing instance method
238 |         for characteristic: CharacteristicID,
239 |         bufferingPolicy: AsyncThrowingStream<Data, Error>.Continuation.BufferingPolicy = .bufferingNewest(256)
240 |     ) async throws -> AsyncThrowingStream<Data, Error> {
    |                       `- error: 'AsyncThrowingStream' is only available in macOS 10.15 or newer
241 |         let ticket = core.enqueue()
242 |         defer { core.complete(ticket) }
[40/43] Compiling AsyncBLE LiveCentral.swift
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Bridge/ScanSession.swift:21:31: error: 'AsyncStream' is only available in macOS 10.15 or newer
12 |
13 | /// One `Central.scan(_:)` call: its filter, its stream, and what it has already reported.
14 | final class ScanSession: @unchecked Sendable {
   |             `- note: add '@available' attribute to enclosing class
15 |     /// Identifies the session in the bridge's table, and in its own termination handler.
16 |     let id = UUID()
   :
19 |     let options: ScanOptions
20 |
21 |     private let continuation: AsyncStream<Discovery>.Continuation
   |                               `- error: 'AsyncStream' is only available in macOS 10.15 or newer
22 |     private var reported: Set<UUID> = []
23 |
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Bridge/ScanSession.swift:31:46: error: 'AsyncStream' is only available in macOS 10.15 or newer
12 |
13 | /// One `Central.scan(_:)` call: its filter, its stream, and what it has already reported.
14 | final class ScanSession: @unchecked Sendable {
   |             `- note: add '@available' attribute to enclosing class
15 |     /// Identifies the session in the bridge's table, and in its own termination handler.
16 |     let id = UUID()
   :
29 |     private let wanted: Set<ServiceID>
30 |
31 |     init(options: ScanOptions, continuation: AsyncStream<Discovery>.Continuation) {
   |     |                                        `- error: 'AsyncStream' is only available in macOS 10.15 or newer
   |     `- note: add '@available' attribute to enclosing initializer
32 |         self.options = options
33 |         self.continuation = continuation
[41/43] Compiling AsyncBLE LivePeripheral.swift
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Bridge/ScanSession.swift:21:31: error: 'AsyncStream' is only available in macOS 10.15 or newer
12 |
13 | /// One `Central.scan(_:)` call: its filter, its stream, and what it has already reported.
14 | final class ScanSession: @unchecked Sendable {
   |             `- note: add '@available' attribute to enclosing class
15 |     /// Identifies the session in the bridge's table, and in its own termination handler.
16 |     let id = UUID()
   :
19 |     let options: ScanOptions
20 |
21 |     private let continuation: AsyncStream<Discovery>.Continuation
   |                               `- error: 'AsyncStream' is only available in macOS 10.15 or newer
22 |     private var reported: Set<UUID> = []
23 |
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Bridge/ScanSession.swift:31:46: error: 'AsyncStream' is only available in macOS 10.15 or newer
12 |
13 | /// One `Central.scan(_:)` call: its filter, its stream, and what it has already reported.
14 | final class ScanSession: @unchecked Sendable {
   |             `- note: add '@available' attribute to enclosing class
15 |     /// Identifies the session in the bridge's table, and in its own termination handler.
16 |     let id = UUID()
   :
29 |     private let wanted: Set<ServiceID>
30 |
31 |     init(options: ScanOptions, continuation: AsyncStream<Discovery>.Continuation) {
   |     |                                        `- error: 'AsyncStream' is only available in macOS 10.15 or newer
   |     `- note: add '@available' attribute to enclosing initializer
32 |         self.options = options
33 |         self.continuation = continuation
[42/43] Compiling AsyncBLE PeripheralDelegateBridge.swift
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Bridge/ScanSession.swift:21:31: error: 'AsyncStream' is only available in macOS 10.15 or newer
12 |
13 | /// One `Central.scan(_:)` call: its filter, its stream, and what it has already reported.
14 | final class ScanSession: @unchecked Sendable {
   |             `- note: add '@available' attribute to enclosing class
15 |     /// Identifies the session in the bridge's table, and in its own termination handler.
16 |     let id = UUID()
   :
19 |     let options: ScanOptions
20 |
21 |     private let continuation: AsyncStream<Discovery>.Continuation
   |                               `- error: 'AsyncStream' is only available in macOS 10.15 or newer
22 |     private var reported: Set<UUID> = []
23 |
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Bridge/ScanSession.swift:31:46: error: 'AsyncStream' is only available in macOS 10.15 or newer
12 |
13 | /// One `Central.scan(_:)` call: its filter, its stream, and what it has already reported.
14 | final class ScanSession: @unchecked Sendable {
   |             `- note: add '@available' attribute to enclosing class
15 |     /// Identifies the session in the bridge's table, and in its own termination handler.
16 |     let id = UUID()
   :
29 |     private let wanted: Set<ServiceID>
30 |
31 |     init(options: ScanOptions, continuation: AsyncStream<Discovery>.Continuation) {
   |     |                                        `- error: 'AsyncStream' is only available in macOS 10.15 or newer
   |     `- note: add '@available' attribute to enclosing initializer
32 |         self.options = options
33 |         self.continuation = continuation
[43/43] Compiling AsyncBLE ScanSession.swift
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Bridge/ScanSession.swift:21:31: error: 'AsyncStream' is only available in macOS 10.15 or newer
12 |
13 | /// One `Central.scan(_:)` call: its filter, its stream, and what it has already reported.
14 | final class ScanSession: @unchecked Sendable {
   |             `- note: add '@available' attribute to enclosing class
15 |     /// Identifies the session in the bridge's table, and in its own termination handler.
16 |     let id = UUID()
   :
19 |     let options: ScanOptions
20 |
21 |     private let continuation: AsyncStream<Discovery>.Continuation
   |                               `- error: 'AsyncStream' is only available in macOS 10.15 or newer
22 |     private var reported: Set<UUID> = []
23 |
/Users/admin/builder/spi-builder-workspace/Sources/AsyncBLE/Internal/Bridge/ScanSession.swift:31:46: error: 'AsyncStream' is only available in macOS 10.15 or newer
12 |
13 | /// One `Central.scan(_:)` call: its filter, its stream, and what it has already reported.
14 | final class ScanSession: @unchecked Sendable {
   |             `- note: add '@available' attribute to enclosing class
15 |     /// Identifies the session in the bridge's table, and in its own termination handler.
16 |     let id = UUID()
   :
29 |     private let wanted: Set<ServiceID>
30 |
31 |     init(options: ScanOptions, continuation: AsyncStream<Discovery>.Continuation) {
   |     |                                        `- error: 'AsyncStream' is only available in macOS 10.15 or newer
   |     `- note: add '@available' attribute to enclosing initializer
32 |         self.options = options
33 |         self.continuation = continuation
BUILD FAILURE 6.2 macosSpm