The Swift Package Index logo.Swift Package Index

Build Information

Failed to build glacier, reference main (d2e78d), with Swift 6.3 for macOS (SPM) on 14 Apr 2026 17:28:09 UTC.

Build Command

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

Build Log

========================================
RunAll
========================================
Builder version: 4.70.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/swiftDevelopmentPackages/glacier.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/swiftDevelopmentPackages/glacier
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at d2e78d6 Drop github actions
Cloned https://github.com/swiftDevelopmentPackages/glacier.git
Revision (git rev-parse @):
d2e78d69acd38f933bce5851f7e000d500538f23
SUCCESS checkout https://github.com/swiftDevelopmentPackages/glacier.git at main
========================================
ResolveProductDependencies
========================================
Resolving dependencies ...
{
  "identity": ".resolve-product-dependencies",
  "name": "resolve-dependencies",
  "url": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "version": "unspecified",
  "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "traits": [
    "default"
  ],
  "dependencies": [
    {
      "identity": "glacier",
      "name": "glacier",
      "url": "https://github.com/swiftDevelopmentPackages/glacier.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/glacier",
      "traits": [
        "default"
      ],
      "dependencies": [
      ]
    }
  ]
}
Fetching https://github.com/swiftDevelopmentPackages/glacier.git
[1/64] Fetching glacier
Fetched https://github.com/swiftDevelopmentPackages/glacier.git from cache (0.67s)
Creating working copy for https://github.com/swiftDevelopmentPackages/glacier.git
Working copy of https://github.com/swiftDevelopmentPackages/glacier.git resolved at main (d2e78d6)
warning: '.resolve-product-dependencies': dependency 'glacier' is not used by any target
Found 0 product dependencies
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.3
Building package at path:  $PWD
https://github.com/swiftDevelopmentPackages/glacier.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-26.4.0.app xcrun swift build --arch arm64
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version--6988338F2F200930.txt
[3/9] Compiling glacier Peripheral.swift
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:9:29: error: 'AnyPublisher' is only available in macOS 10.15 or newer
  3 | import Combine
  4 |
  5 | public protocol PeripheralProtocol {
    |                 `- note: add '@available' attribute to enclosing protocol
  6 |   var cbPeripheral: CBPeripheralAbstraction { get }
  7 |   var pairingState: PeripheralPairingState { get set }
  8 |   func discoverServices()
  9 |   func validatePairing() -> AnyPublisher<PeripheralProtocol, Error>
    |        |                    `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
    |        `- note: add '@available' attribute to enclosing instance method
 10 |   func resetPairingState()
 11 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:13:41: error: 'AnyPublisher' is only available in macOS 10.15 or newer
  3 | import Combine
  4 |
  5 | public protocol PeripheralProtocol {
    |                 `- note: add '@available' attribute to enclosing protocol
  6 |   var cbPeripheral: CBPeripheralAbstraction { get }
  7 |   var pairingState: PeripheralPairingState { get set }
    :
 11 |
 12 |   func writeWithoutResponse(data: Data)
 13 |   func writeWithResponse(data: Data) -> AnyPublisher<Void, Error>
    |        |                                `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
    |        `- note: add '@available' attribute to enclosing instance method
 14 |
 15 |   func read() -> AnyPublisher<Result<Data, Error>, Never>
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:15:18: error: 'AnyPublisher' is only available in macOS 10.15 or newer
  3 | import Combine
  4 |
  5 | public protocol PeripheralProtocol {
    |                 `- note: add '@available' attribute to enclosing protocol
  6 |   var cbPeripheral: CBPeripheralAbstraction { get }
  7 |   var pairingState: PeripheralPairingState { get set }
    :
 13 |   func writeWithResponse(data: Data) -> AnyPublisher<Void, Error>
 14 |
 15 |   func read() -> AnyPublisher<Result<Data, Error>, Never>
    |        |         `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
    |        `- note: add '@available' attribute to enclosing instance method
 16 |   var readValueStream: AnyPublisher<Result<Data, Error>, Never> { get }
 17 | }
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:16:24: error: 'AnyPublisher' is only available in macOS 10.15 or newer
  3 | import Combine
  4 |
  5 | public protocol PeripheralProtocol {
    |                 `- note: add '@available' attribute to enclosing protocol
  6 |   var cbPeripheral: CBPeripheralAbstraction { get }
  7 |   var pairingState: PeripheralPairingState { get set }
    :
 14 |
 15 |   func read() -> AnyPublisher<Result<Data, Error>, Never>
 16 |   var readValueStream: AnyPublisher<Result<Data, Error>, Never> { get }
    |       |                `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
    |       `- note: add '@available' attribute to enclosing property
 17 | }
 18 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:30:42: error: 'PassthroughSubject' is only available in macOS 10.15 or newer
 22 | }
 23 |
 24 | public class Peripheral: NSObject, PeripheralProtocol {
    |              `- note: add '@available' attribute to enclosing class
 25 |
 26 |   public let cbPeripheral: CBPeripheralAbstraction
    :
 28 |   public let rssi: NSNumber
 29 |
 30 |   private var peripheralValidationFlow = PassthroughSubject<Result<PeripheralProtocol, GlacierError>, Never>()
    |                                          `- error: 'PassthroughSubject' is only available in macOS 10.15 or newer
 31 |   public var pairingState: PeripheralPairingState = .unpaired(dialogueShown: false)
 32 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:39:37: error: 'CurrentValueSubject' is only available in macOS 10.15 or newer
 22 | }
 23 |
 24 | public class Peripheral: NSObject, PeripheralProtocol {
    |              `- note: add '@available' attribute to enclosing class
 25 |
 26 |   public let cbPeripheral: CBPeripheralAbstraction
    :
 37 |   private let writeQueue = DispatchQueue(label: "peripheralWriteQueue", qos: .background)
 38 |   private let writeSemaphore = DispatchSemaphore(value: 1)
 39 |   private let writeResponseStream = CurrentValueSubject<Result<Void, Error>?, Never>(nil)
    |                                     `- error: 'CurrentValueSubject' is only available in macOS 10.15 or newer
 40 |
 41 |   private let readValueSubject = CurrentValueSubject<Result<Data, Error>?, Never>(nil)
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:41:34: error: 'CurrentValueSubject' is only available in macOS 10.15 or newer
 22 | }
 23 |
 24 | public class Peripheral: NSObject, PeripheralProtocol {
    |              `- note: add '@available' attribute to enclosing class
 25 |
 26 |   public let cbPeripheral: CBPeripheralAbstraction
    :
 39 |   private let writeResponseStream = CurrentValueSubject<Result<Void, Error>?, Never>(nil)
 40 |
 41 |   private let readValueSubject = CurrentValueSubject<Result<Data, Error>?, Never>(nil)
    |                                  `- error: 'CurrentValueSubject' is only available in macOS 10.15 or newer
 42 |
 43 |   private var subscriptions = Set<AnyCancellable>()
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:43:35: error: 'AnyCancellable' is only available in macOS 10.15 or newer
 22 | }
 23 |
 24 | public class Peripheral: NSObject, PeripheralProtocol {
    |              `- note: add '@available' attribute to enclosing class
 25 |
 26 |   public let cbPeripheral: CBPeripheralAbstraction
    :
 41 |   private let readValueSubject = CurrentValueSubject<Result<Data, Error>?, Never>(nil)
 42 |
 43 |   private var subscriptions = Set<AnyCancellable>()
    |                                   `- error: 'AnyCancellable' is only available in macOS 10.15 or newer
 44 |
 45 |   init(cbPeripheral: CBPeripheralAbstraction,
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:68:36: error: 'AnyPublisher' is only available in macOS 10.15 or newer
 22 | }
 23 |
 24 | public class Peripheral: NSObject, PeripheralProtocol {
    |              `- note: add '@available' attribute to enclosing class
 25 |
 26 |   public let cbPeripheral: CBPeripheralAbstraction
    :
 66 |   }
 67 |
 68 |   public func validatePairing() -> AnyPublisher<PeripheralProtocol, Error> {
    |               |                    `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
    |               `- note: add '@available' attribute to enclosing instance method
 69 |     return peripheralValidationFlow
 70 |       .handleEvents(receiveSubscription: { [weak self] _ in
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:200:25: error: 'AnyPublisher' is only available in macOS 10.15 or newer
 22 | }
 23 |
 24 | public class Peripheral: NSObject, PeripheralProtocol {
    |              `- note: add '@available' attribute to enclosing class
 25 |
 26 |   public let cbPeripheral: CBPeripheralAbstraction
    :
198 |   //MARK: READ/WRITE OPERATIONS
199 |
200 |   public func read() -> AnyPublisher<Result<Data, Error>, Never> {
    |               |         `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
    |               `- note: add '@available' attribute to enclosing instance method
201 |     guard let readCharacteristic = readCharacteristic else { return Empty().eraseToAnyPublisher() }
202 |     cbPeripheral.readValueForCharacteristic(readCharacteristic)
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:211:31: error: 'AnyPublisher' is only available in macOS 10.15 or newer
 22 | }
 23 |
 24 | public class Peripheral: NSObject, PeripheralProtocol {
    |              `- note: add '@available' attribute to enclosing class
 25 |
 26 |   public let cbPeripheral: CBPeripheralAbstraction
    :
209 |   }
210 |
211 |   public var readValueStream: AnyPublisher<Result<Data, Error>, Never> {
    |              |                `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
    |              `- note: add '@available' attribute to enclosing property
212 |     // some peripherals fail to notify even if they have `.notify` channel
213 |     // A timeout force-reads the characteristic and refreshes the value manually
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:252:48: error: 'AnyPublisher' is only available in macOS 10.15 or newer
 22 | }
 23 |
 24 | public class Peripheral: NSObject, PeripheralProtocol {
    |              `- note: add '@available' attribute to enclosing class
 25 |
 26 |   public let cbPeripheral: CBPeripheralAbstraction
    :
250 |   }
251 |
252 |   public func writeWithResponse(data: Data) -> AnyPublisher<Void, Error> {
    |               |                                `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
    |               `- note: add '@available' attribute to enclosing instance method
253 |     Deferred {
254 |       Future { [weak self] promise in
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:70:8: error: 'handleEvents(receiveSubscription:receiveOutput:receiveCompletion:receiveCancel:receiveRequest:)' is only available in macOS 10.15 or newer
 22 | }
 23 |
 24 | public class Peripheral: NSObject, PeripheralProtocol {
    |              `- note: add '@available' attribute to enclosing class
 25 |
 26 |   public let cbPeripheral: CBPeripheralAbstraction
    :
 66 |   }
 67 |
 68 |   public func validatePairing() -> AnyPublisher<PeripheralProtocol, Error> {
    |               `- note: add '@available' attribute to enclosing instance method
 69 |     return peripheralValidationFlow
 70 |       .handleEvents(receiveSubscription: { [weak self] _ in
    |        |- error: 'handleEvents(receiveSubscription:receiveOutput:receiveCompletion:receiveCancel:receiveRequest:)' is only available in macOS 10.15 or newer
    |        `- note: add 'if #available' version check
 71 |         self?.discoverServices()
 72 |       })
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:73:8: error: 'flatMap(maxPublishers:_:)' is only available in macOS 11.0 or newer
 22 | }
 23 |
 24 | public class Peripheral: NSObject, PeripheralProtocol {
    |              `- note: add '@available' attribute to enclosing class
 25 |
 26 |   public let cbPeripheral: CBPeripheralAbstraction
    :
 66 |   }
 67 |
 68 |   public func validatePairing() -> AnyPublisher<PeripheralProtocol, Error> {
    |               `- note: add '@available' attribute to enclosing instance method
 69 |     return peripheralValidationFlow
 70 |       .handleEvents(receiveSubscription: { [weak self] _ in
 71 |         self?.discoverServices()
 72 |       })
 73 |       .flatMap { result in
    |        |- error: 'flatMap(maxPublishers:_:)' is only available in macOS 11.0 or newer
    |        `- note: add 'if #available' version check
 74 |         Deferred {
 75 |           Future { promise in
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:74:9: error: 'Deferred' is only available in macOS 10.15 or newer
 22 | }
 23 |
 24 | public class Peripheral: NSObject, PeripheralProtocol {
    |              `- note: add '@available' attribute to enclosing class
 25 |
 26 |   public let cbPeripheral: CBPeripheralAbstraction
    :
 66 |   }
 67 |
 68 |   public func validatePairing() -> AnyPublisher<PeripheralProtocol, Error> {
    |               `- note: add '@available' attribute to enclosing instance method
 69 |     return peripheralValidationFlow
 70 |       .handleEvents(receiveSubscription: { [weak self] _ in
    :
 72 |       })
 73 |       .flatMap { result in
 74 |         Deferred {
    |         |- error: 'Deferred' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
 75 |           Future { promise in
 76 |             if case let .success(peripheral) = result {
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:75:11: error: 'Future' is only available in macOS 10.15 or newer
 22 | }
 23 |
 24 | public class Peripheral: NSObject, PeripheralProtocol {
    |              `- note: add '@available' attribute to enclosing class
 25 |
 26 |   public let cbPeripheral: CBPeripheralAbstraction
    :
 66 |   }
 67 |
 68 |   public func validatePairing() -> AnyPublisher<PeripheralProtocol, Error> {
    |               `- note: add '@available' attribute to enclosing instance method
 69 |     return peripheralValidationFlow
 70 |       .handleEvents(receiveSubscription: { [weak self] _ in
    :
 73 |       .flatMap { result in
 74 |         Deferred {
 75 |           Future { promise in
    |           |- error: 'Future' is only available in macOS 10.15 or newer
    |           `- note: add 'if #available' version check
 76 |             if case let .success(peripheral) = result {
 77 |               promise(.success(peripheral))
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:85:8: error: 'timeout(_:scheduler:options:customError:)' is only available in macOS 10.15 or newer
 22 | }
 23 |
 24 | public class Peripheral: NSObject, PeripheralProtocol {
    |              `- note: add '@available' attribute to enclosing class
 25 |
 26 |   public let cbPeripheral: CBPeripheralAbstraction
    :
 66 |   }
 67 |
 68 |   public func validatePairing() -> AnyPublisher<PeripheralProtocol, Error> {
    |               `- note: add '@available' attribute to enclosing instance method
 69 |     return peripheralValidationFlow
 70 |       .handleEvents(receiveSubscription: { [weak self] _ in
    :
 83 |       }
 84 |     // This is the non-configurable pairing system pop-up presence timeout
 85 |       .timeout(30, scheduler: DispatchQueue.global()) {
    |        |- error: 'timeout(_:scheduler:options:customError:)' is only available in macOS 10.15 or newer
    |        `- note: add 'if #available' version check
 86 |         GlacierError.peripheralInitialDiscoveryTimeout
 87 |       }
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:88:8: error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
 22 | }
 23 |
 24 | public class Peripheral: NSObject, PeripheralProtocol {
    |              `- note: add '@available' attribute to enclosing class
 25 |
 26 |   public let cbPeripheral: CBPeripheralAbstraction
    :
 66 |   }
 67 |
 68 |   public func validatePairing() -> AnyPublisher<PeripheralProtocol, Error> {
    |               `- note: add '@available' attribute to enclosing instance method
 69 |     return peripheralValidationFlow
 70 |       .handleEvents(receiveSubscription: { [weak self] _ in
    :
 86 |         GlacierError.peripheralInitialDiscoveryTimeout
 87 |       }
 88 |       .eraseToAnyPublisher()
    |        |- error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
    |        `- note: add 'if #available' version check
 89 |   }
 90 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:201:69: error: 'Empty' is only available in macOS 10.15 or newer
 22 | }
 23 |
 24 | public class Peripheral: NSObject, PeripheralProtocol {
    |              `- note: add '@available' attribute to enclosing class
 25 |
 26 |   public let cbPeripheral: CBPeripheralAbstraction
    :
198 |   //MARK: READ/WRITE OPERATIONS
199 |
200 |   public func read() -> AnyPublisher<Result<Data, Error>, Never> {
    |               `- note: add '@available' attribute to enclosing instance method
201 |     guard let readCharacteristic = readCharacteristic else { return Empty().eraseToAnyPublisher() }
    |                                                                     |- error: 'Empty' is only available in macOS 10.15 or newer
    |                                                                     `- note: add 'if #available' version check
202 |     cbPeripheral.readValueForCharacteristic(readCharacteristic)
203 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:201:77: error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
 22 | }
 23 |
 24 | public class Peripheral: NSObject, PeripheralProtocol {
    |              `- note: add '@available' attribute to enclosing class
 25 |
 26 |   public let cbPeripheral: CBPeripheralAbstraction
    :
198 |   //MARK: READ/WRITE OPERATIONS
199 |
200 |   public func read() -> AnyPublisher<Result<Data, Error>, Never> {
    |               `- note: add '@available' attribute to enclosing instance method
201 |     guard let readCharacteristic = readCharacteristic else { return Empty().eraseToAnyPublisher() }
    |                                                                             |- error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
    |                                                                             `- note: add 'if #available' version check
202 |     cbPeripheral.readValueForCharacteristic(readCharacteristic)
203 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:205:8: error: 'compactMap' is only available in macOS 10.15 or newer
 22 | }
 23 |
 24 | public class Peripheral: NSObject, PeripheralProtocol {
    |              `- note: add '@available' attribute to enclosing class
 25 |
 26 |   public let cbPeripheral: CBPeripheralAbstraction
    :
198 |   //MARK: READ/WRITE OPERATIONS
199 |
200 |   public func read() -> AnyPublisher<Result<Data, Error>, Never> {
    |               `- note: add '@available' attribute to enclosing instance method
201 |     guard let readCharacteristic = readCharacteristic else { return Empty().eraseToAnyPublisher() }
202 |     cbPeripheral.readValueForCharacteristic(readCharacteristic)
203 |
204 |     return readValueSubject
205 |       .compactMap { $0 }
    |        |- error: 'compactMap' is only available in macOS 10.15 or newer
    |        `- note: add 'if #available' version check
206 |       .first()
207 |       .receive(on: DispatchQueue.main)
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:206:8: error: 'first()' is only available in macOS 10.15 or newer
 22 | }
 23 |
 24 | public class Peripheral: NSObject, PeripheralProtocol {
    |              `- note: add '@available' attribute to enclosing class
 25 |
 26 |   public let cbPeripheral: CBPeripheralAbstraction
    :
198 |   //MARK: READ/WRITE OPERATIONS
199 |
200 |   public func read() -> AnyPublisher<Result<Data, Error>, Never> {
    |               `- note: add '@available' attribute to enclosing instance method
201 |     guard let readCharacteristic = readCharacteristic else { return Empty().eraseToAnyPublisher() }
202 |     cbPeripheral.readValueForCharacteristic(readCharacteristic)
    :
204 |     return readValueSubject
205 |       .compactMap { $0 }
206 |       .first()
    |        |- error: 'first()' is only available in macOS 10.15 or newer
    |        `- note: add 'if #available' version check
207 |       .receive(on: DispatchQueue.main)
208 |       .eraseToAnyPublisher()
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:207:8: error: 'receive(on:options:)' is only available in macOS 10.15 or newer
 22 | }
 23 |
 24 | public class Peripheral: NSObject, PeripheralProtocol {
    |              `- note: add '@available' attribute to enclosing class
 25 |
 26 |   public let cbPeripheral: CBPeripheralAbstraction
    :
198 |   //MARK: READ/WRITE OPERATIONS
199 |
200 |   public func read() -> AnyPublisher<Result<Data, Error>, Never> {
    |               `- note: add '@available' attribute to enclosing instance method
201 |     guard let readCharacteristic = readCharacteristic else { return Empty().eraseToAnyPublisher() }
202 |     cbPeripheral.readValueForCharacteristic(readCharacteristic)
    :
205 |       .compactMap { $0 }
206 |       .first()
207 |       .receive(on: DispatchQueue.main)
    |        |- error: 'receive(on:options:)' is only available in macOS 10.15 or newer
    |        `- note: add 'if #available' version check
208 |       .eraseToAnyPublisher()
209 |   }
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:208:8: error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
 22 | }
 23 |
 24 | public class Peripheral: NSObject, PeripheralProtocol {
    |              `- note: add '@available' attribute to enclosing class
 25 |
 26 |   public let cbPeripheral: CBPeripheralAbstraction
    :
198 |   //MARK: READ/WRITE OPERATIONS
199 |
200 |   public func read() -> AnyPublisher<Result<Data, Error>, Never> {
    |               `- note: add '@available' attribute to enclosing instance method
201 |     guard let readCharacteristic = readCharacteristic else { return Empty().eraseToAnyPublisher() }
202 |     cbPeripheral.readValueForCharacteristic(readCharacteristic)
    :
206 |       .first()
207 |       .receive(on: DispatchQueue.main)
208 |       .eraseToAnyPublisher()
    |        |- error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
    |        `- note: add 'if #available' version check
209 |   }
210 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:214:30: error: 'AnyPublisher' is only available in macOS 10.15 or newer
 22 | }
 23 |
 24 | public class Peripheral: NSObject, PeripheralProtocol {
    |              `- note: add '@available' attribute to enclosing class
 25 |
 26 |   public let cbPeripheral: CBPeripheralAbstraction
    :
209 |   }
210 |
211 |   public var readValueStream: AnyPublisher<Result<Data, Error>, Never> {
    |              `- note: add '@available' attribute to enclosing property
212 |     // some peripherals fail to notify even if they have `.notify` channel
213 |     // A timeout force-reads the characteristic and refreshes the value manually
214 |     func repeatableRead() -> AnyPublisher<Result<Data, Error>, Error> {
    |                              `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
215 |       readValueSubject
216 |         .setFailureType(to: Error.self)
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:216:10: error: 'setFailureType(to:)' is only available in macOS 10.15 or newer
 22 | }
 23 |
 24 | public class Peripheral: NSObject, PeripheralProtocol {
    |              `- note: add '@available' attribute to enclosing class
 25 |
 26 |   public let cbPeripheral: CBPeripheralAbstraction
    :
209 |   }
210 |
211 |   public var readValueStream: AnyPublisher<Result<Data, Error>, Never> {
    |              `- note: add '@available' attribute to enclosing property
212 |     // some peripherals fail to notify even if they have `.notify` channel
213 |     // A timeout force-reads the characteristic and refreshes the value manually
214 |     func repeatableRead() -> AnyPublisher<Result<Data, Error>, Error> {
215 |       readValueSubject
216 |         .setFailureType(to: Error.self)
    |          |- error: 'setFailureType(to:)' is only available in macOS 10.15 or newer
    |          `- note: add 'if #available' version check
217 |         .compactMap { $0 }
218 |         .timeout(peripheralCommunication.readCharacteristicPollingInterval,
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:217:10: error: 'compactMap' is only available in macOS 10.15 or newer
 22 | }
 23 |
 24 | public class Peripheral: NSObject, PeripheralProtocol {
    |              `- note: add '@available' attribute to enclosing class
 25 |
 26 |   public let cbPeripheral: CBPeripheralAbstraction
    :
209 |   }
210 |
211 |   public var readValueStream: AnyPublisher<Result<Data, Error>, Never> {
    |              `- note: add '@available' attribute to enclosing property
212 |     // some peripherals fail to notify even if they have `.notify` channel
213 |     // A timeout force-reads the characteristic and refreshes the value manually
    :
215 |       readValueSubject
216 |         .setFailureType(to: Error.self)
217 |         .compactMap { $0 }
    |          |- error: 'compactMap' is only available in macOS 10.15 or newer
    |          `- note: add 'if #available' version check
218 |         .timeout(peripheralCommunication.readCharacteristicPollingInterval,
219 |                  scheduler: DispatchQueue.main) {
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:218:10: error: 'timeout(_:scheduler:options:customError:)' is only available in macOS 10.15 or newer
 22 | }
 23 |
 24 | public class Peripheral: NSObject, PeripheralProtocol {
    |              `- note: add '@available' attribute to enclosing class
 25 |
 26 |   public let cbPeripheral: CBPeripheralAbstraction
    :
209 |   }
210 |
211 |   public var readValueStream: AnyPublisher<Result<Data, Error>, Never> {
    |              `- note: add '@available' attribute to enclosing property
212 |     // some peripherals fail to notify even if they have `.notify` channel
213 |     // A timeout force-reads the characteristic and refreshes the value manually
    :
216 |         .setFailureType(to: Error.self)
217 |         .compactMap { $0 }
218 |         .timeout(peripheralCommunication.readCharacteristicPollingInterval,
    |          |- error: 'timeout(_:scheduler:options:customError:)' is only available in macOS 10.15 or newer
    |          `- note: add 'if #available' version check
219 |                  scheduler: DispatchQueue.main) {
220 |           PeripheralError.readNotifyTimeout
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:222:19: error: 'catch' is only available in macOS 10.15 or newer
 22 | }
 23 |
 24 | public class Peripheral: NSObject, PeripheralProtocol {
    |              `- note: add '@available' attribute to enclosing class
 25 |
 26 |   public let cbPeripheral: CBPeripheralAbstraction
    :
209 |   }
210 |
211 |   public var readValueStream: AnyPublisher<Result<Data, Error>, Never> {
    |              `- note: add '@available' attribute to enclosing property
212 |     // some peripherals fail to notify even if they have `.notify` channel
213 |     // A timeout force-reads the characteristic and refreshes the value manually
    :
220 |           PeripheralError.readNotifyTimeout
221 |         }
222 |                  .catch({ [weak self] _ -> AnyPublisher<Result<Data, Error>, Error> in
    |                   |- error: 'catch' is only available in macOS 10.15 or newer
    |                   `- note: add 'if #available' version check
223 |                    guard let readCharacteristic = self?.readCharacteristic else {
224 |                      return Empty().eraseToAnyPublisher()
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:222:44: error: 'AnyPublisher' is only available in macOS 10.15 or newer
 22 | }
 23 |
 24 | public class Peripheral: NSObject, PeripheralProtocol {
    |              `- note: add '@available' attribute to enclosing class
 25 |
 26 |   public let cbPeripheral: CBPeripheralAbstraction
    :
209 |   }
210 |
211 |   public var readValueStream: AnyPublisher<Result<Data, Error>, Never> {
    |              `- note: add '@available' attribute to enclosing property
212 |     // some peripherals fail to notify even if they have `.notify` channel
213 |     // A timeout force-reads the characteristic and refreshes the value manually
    :
220 |           PeripheralError.readNotifyTimeout
221 |         }
222 |                  .catch({ [weak self] _ -> AnyPublisher<Result<Data, Error>, Error> in
    |                                            |- error: 'AnyPublisher' is only available in macOS 10.15 or newer
    |                                            `- note: add 'if #available' version check
223 |                    guard let readCharacteristic = self?.readCharacteristic else {
224 |                      return Empty().eraseToAnyPublisher()
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:224:29: error: 'Empty' is only available in macOS 10.15 or newer
 22 | }
 23 |
 24 | public class Peripheral: NSObject, PeripheralProtocol {
    |              `- note: add '@available' attribute to enclosing class
 25 |
 26 |   public let cbPeripheral: CBPeripheralAbstraction
    :
209 |   }
210 |
211 |   public var readValueStream: AnyPublisher<Result<Data, Error>, Never> {
    |              `- note: add '@available' attribute to enclosing property
212 |     // some peripherals fail to notify even if they have `.notify` channel
213 |     // A timeout force-reads the characteristic and refreshes the value manually
    :
222 |                  .catch({ [weak self] _ -> AnyPublisher<Result<Data, Error>, Error> in
223 |                    guard let readCharacteristic = self?.readCharacteristic else {
224 |                      return Empty().eraseToAnyPublisher()
    |                             |- error: 'Empty' is only available in macOS 10.15 or newer
    |                             `- note: add 'if #available' version check
225 |                    }
226 |                    // force read manually
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:224:37: error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
 22 | }
 23 |
 24 | public class Peripheral: NSObject, PeripheralProtocol {
    |              `- note: add '@available' attribute to enclosing class
 25 |
 26 |   public let cbPeripheral: CBPeripheralAbstraction
    :
209 |   }
210 |
211 |   public var readValueStream: AnyPublisher<Result<Data, Error>, Never> {
    |              `- note: add '@available' attribute to enclosing property
212 |     // some peripherals fail to notify even if they have `.notify` channel
213 |     // A timeout force-reads the characteristic and refreshes the value manually
    :
222 |                  .catch({ [weak self] _ -> AnyPublisher<Result<Data, Error>, Error> in
223 |                    guard let readCharacteristic = self?.readCharacteristic else {
224 |                      return Empty().eraseToAnyPublisher()
    |                                     |- error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
    |                                     `- note: add 'if #available' version check
225 |                    }
226 |                    // force read manually
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:231:19: error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
 22 | }
 23 |
 24 | public class Peripheral: NSObject, PeripheralProtocol {
    |              `- note: add '@available' attribute to enclosing class
 25 |
 26 |   public let cbPeripheral: CBPeripheralAbstraction
    :
209 |   }
210 |
211 |   public var readValueStream: AnyPublisher<Result<Data, Error>, Never> {
    |              `- note: add '@available' attribute to enclosing property
212 |     // some peripherals fail to notify even if they have `.notify` channel
213 |     // A timeout force-reads the characteristic and refreshes the value manually
    :
229 |                    return repeatableRead()
230 |                  })
231 |                  .eraseToAnyPublisher()
    |                   |- error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
    |                   `- note: add 'if #available' version check
232 |     }
233 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:235:8: error: 'handleEvents(receiveSubscription:receiveOutput:receiveCompletion:receiveCancel:receiveRequest:)' is only available in macOS 10.15 or newer
 22 | }
 23 |
 24 | public class Peripheral: NSObject, PeripheralProtocol {
    |              `- note: add '@available' attribute to enclosing class
 25 |
 26 |   public let cbPeripheral: CBPeripheralAbstraction
    :
209 |   }
210 |
211 |   public var readValueStream: AnyPublisher<Result<Data, Error>, Never> {
    |              `- note: add '@available' attribute to enclosing property
212 |     // some peripherals fail to notify even if they have `.notify` channel
213 |     // A timeout force-reads the characteristic and refreshes the value manually
    :
233 |
234 |     return repeatableRead()
235 |       .handleEvents(receiveSubscription: { [weak self] _ in
    |        |- error: 'handleEvents(receiveSubscription:receiveOutput:receiveCompletion:receiveCancel:receiveRequest:)' is only available in macOS 10.15 or newer
    |        `- note: add 'if #available' version check
236 |         guard let readCharacteristic = self?.readCharacteristic else { return }
237 |         self?.cbPeripheral.readValueForCharacteristic(readCharacteristic)
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:239:8: error: 'assertNoFailure(_:file:line:)' is only available in macOS 10.15 or newer
 22 | }
 23 |
 24 | public class Peripheral: NSObject, PeripheralProtocol {
    |              `- note: add '@available' attribute to enclosing class
 25 |
 26 |   public let cbPeripheral: CBPeripheralAbstraction
    :
209 |   }
210 |
211 |   public var readValueStream: AnyPublisher<Result<Data, Error>, Never> {
    |              `- note: add '@available' attribute to enclosing property
212 |     // some peripherals fail to notify even if they have `.notify` channel
213 |     // A timeout force-reads the characteristic and refreshes the value manually
    :
237 |         self?.cbPeripheral.readValueForCharacteristic(readCharacteristic)
238 |       })
239 |       .assertNoFailure()
    |        |- error: 'assertNoFailure(_:file:line:)' is only available in macOS 10.15 or newer
    |        `- note: add 'if #available' version check
240 |       .receive(on: DispatchQueue.main)
241 |       .eraseToAnyPublisher()
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:240:8: error: 'receive(on:options:)' is only available in macOS 10.15 or newer
 22 | }
 23 |
 24 | public class Peripheral: NSObject, PeripheralProtocol {
    |              `- note: add '@available' attribute to enclosing class
 25 |
 26 |   public let cbPeripheral: CBPeripheralAbstraction
    :
209 |   }
210 |
211 |   public var readValueStream: AnyPublisher<Result<Data, Error>, Never> {
    |              `- note: add '@available' attribute to enclosing property
212 |     // some peripherals fail to notify even if they have `.notify` channel
213 |     // A timeout force-reads the characteristic and refreshes the value manually
    :
238 |       })
239 |       .assertNoFailure()
240 |       .receive(on: DispatchQueue.main)
    |        |- error: 'receive(on:options:)' is only available in macOS 10.15 or newer
    |        `- note: add 'if #available' version check
241 |       .eraseToAnyPublisher()
242 |   }
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:241:8: error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
 22 | }
 23 |
 24 | public class Peripheral: NSObject, PeripheralProtocol {
    |              `- note: add '@available' attribute to enclosing class
 25 |
 26 |   public let cbPeripheral: CBPeripheralAbstraction
    :
209 |   }
210 |
211 |   public var readValueStream: AnyPublisher<Result<Data, Error>, Never> {
    |              `- note: add '@available' attribute to enclosing property
212 |     // some peripherals fail to notify even if they have `.notify` channel
213 |     // A timeout force-reads the characteristic and refreshes the value manually
    :
239 |       .assertNoFailure()
240 |       .receive(on: DispatchQueue.main)
241 |       .eraseToAnyPublisher()
    |        |- error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
    |        `- note: add 'if #available' version check
242 |   }
243 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:253:5: error: 'Deferred' is only available in macOS 10.15 or newer
 22 | }
 23 |
 24 | public class Peripheral: NSObject, PeripheralProtocol {
    |              `- note: add '@available' attribute to enclosing class
 25 |
 26 |   public let cbPeripheral: CBPeripheralAbstraction
    :
250 |   }
251 |
252 |   public func writeWithResponse(data: Data) -> AnyPublisher<Void, Error> {
    |               `- note: add '@available' attribute to enclosing instance method
253 |     Deferred {
    |     |- error: 'Deferred' is only available in macOS 10.15 or newer
    |     `- note: add 'if #available' version check
254 |       Future { [weak self] promise in
255 |         self?.writeQueue.async { [weak self] in
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:254:7: error: 'Future' is only available in macOS 10.15 or newer
 22 | }
 23 |
 24 | public class Peripheral: NSObject, PeripheralProtocol {
    |              `- note: add '@available' attribute to enclosing class
 25 |
 26 |   public let cbPeripheral: CBPeripheralAbstraction
    :
250 |   }
251 |
252 |   public func writeWithResponse(data: Data) -> AnyPublisher<Void, Error> {
    |               `- note: add '@available' attribute to enclosing instance method
253 |     Deferred {
254 |       Future { [weak self] promise in
    |       |- error: 'Future' is only available in macOS 10.15 or newer
    |       `- note: add 'if #available' version check
255 |         self?.writeQueue.async { [weak self] in
256 |           guard let self = self,
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:266:14: error: 'compactMap' is only available in macOS 10.15 or newer
 22 | }
 23 |
 24 | public class Peripheral: NSObject, PeripheralProtocol {
    |              `- note: add '@available' attribute to enclosing class
 25 |
 26 |   public let cbPeripheral: CBPeripheralAbstraction
    :
250 |   }
251 |
252 |   public func writeWithResponse(data: Data) -> AnyPublisher<Void, Error> {
    |               `- note: add '@available' attribute to enclosing instance method
253 |     Deferred {
254 |       Future { [weak self] promise in
    :
264 |
265 |           self.writeResponseStream
266 |             .compactMap { $0 }
    |              |- error: 'compactMap' is only available in macOS 10.15 or newer
    |              `- note: add 'if #available' version check
267 |             .sink(receiveCompletion: { _ in },
268 |                   receiveValue: {
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:267:14: error: 'sink(receiveCompletion:receiveValue:)' is only available in macOS 10.15 or newer
 22 | }
 23 |
 24 | public class Peripheral: NSObject, PeripheralProtocol {
    |              `- note: add '@available' attribute to enclosing class
 25 |
 26 |   public let cbPeripheral: CBPeripheralAbstraction
    :
250 |   }
251 |
252 |   public func writeWithResponse(data: Data) -> AnyPublisher<Void, Error> {
    |               `- note: add '@available' attribute to enclosing instance method
253 |     Deferred {
254 |       Future { [weak self] promise in
    :
265 |           self.writeResponseStream
266 |             .compactMap { $0 }
267 |             .sink(receiveCompletion: { _ in },
    |              |- error: 'sink(receiveCompletion:receiveValue:)' is only available in macOS 10.15 or newer
    |              `- note: add 'if #available' version check
268 |                   receiveValue: {
269 |               if case .success = $0 {
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:274:14: error: 'store(in:)' is only available in macOS 10.15 or newer
 22 | }
 23 |
 24 | public class Peripheral: NSObject, PeripheralProtocol {
    |              `- note: add '@available' attribute to enclosing class
 25 |
 26 |   public let cbPeripheral: CBPeripheralAbstraction
    :
250 |   }
251 |
252 |   public func writeWithResponse(data: Data) -> AnyPublisher<Void, Error> {
    |               `- note: add '@available' attribute to enclosing instance method
253 |     Deferred {
254 |       Future { [weak self] promise in
    :
272 |                 promise(.failure(error))
273 |               }})
274 |             .store(in: &self.subscriptions)
    |              |- error: 'store(in:)' is only available in macOS 10.15 or newer
    |              `- note: add 'if #available' version check
275 |         }
276 |       }
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:278:6: error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
 22 | }
 23 |
 24 | public class Peripheral: NSObject, PeripheralProtocol {
    |              `- note: add '@available' attribute to enclosing class
 25 |
 26 |   public let cbPeripheral: CBPeripheralAbstraction
    :
250 |   }
251 |
252 |   public func writeWithResponse(data: Data) -> AnyPublisher<Void, Error> {
    |               `- note: add '@available' attribute to enclosing instance method
253 |     Deferred {
254 |       Future { [weak self] promise in
    :
276 |       }
277 |     }
278 |     .eraseToAnyPublisher()
    |      |- error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
    |      `- note: add 'if #available' version check
279 |   }
280 |
[4/9] Compiling glacier PeripheralCommunicationProtocol.swift
/Users/admin/builder/spi-builder-workspace/Sources/glacier/PeripheralCommunicationProtocol.swift:10:56: error: 'SchedulerTimeType' is only available in macOS 10.15 or newer
 3 | import Combine
 4 |
 5 | public protocol PeripheralInitialCommunicationProtocol {
   |                 `- note: add '@available' attribute to enclosing protocol
 6 |   var servicesToDiscover: [CBUUID]? { get }
 7 |   var characteristicsToDiscover: [CBUUID]? { get }
 8 |   var readCharacteristicIdentifier: CBUUID { get }
 9 |   var writeCharacteristicIdentifier: CBUUID { get }
10 |   var readCharacteristicPollingInterval: DispatchQueue.SchedulerTimeType.Stride { get }
   |       |                                                `- error: 'SchedulerTimeType' is only available in macOS 10.15 or newer
   |       `- note: add '@available' attribute to enclosing property
11 |   var pairingRequestPayload: Data { get }
12 |   var pairingConfirmationPayload: Data { get }
[5/9] Compiling glacier GlacierError.swift
error: emit-module command failed with exit code 1 (use -v to see invocation)
[6/9] Emitting module glacier
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:9:22: error: 'AnyPublisher' is only available in macOS 10.15 or newer
  3 | import CoreBluetooth
  4 |
  5 | public protocol CentralBluetoothInteractable: AnyObject {
    |                 `- note: add '@available' attribute to enclosing protocol
  6 |     var interactorOptions: CentralBluetoothInteractorConfigurable { get }
  7 |
  8 |     var authorizationState: AuthorizationState { get }
  9 |     var serverState: AnyPublisher<ServerState, Never> { get }
    |         |            `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
    |         `- note: add '@available' attribute to enclosing property
 10 |     var isScanning: AnyPublisher<Bool, Never> { get }
 11 |     var advertisingPeripherals: AnyPublisher<[PeripheralProtocol], Never> { get }
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:10:21: error: 'AnyPublisher' is only available in macOS 10.15 or newer
  3 | import CoreBluetooth
  4 |
  5 | public protocol CentralBluetoothInteractable: AnyObject {
    |                 `- note: add '@available' attribute to enclosing protocol
  6 |     var interactorOptions: CentralBluetoothInteractorConfigurable { get }
  7 |
  8 |     var authorizationState: AuthorizationState { get }
  9 |     var serverState: AnyPublisher<ServerState, Never> { get }
 10 |     var isScanning: AnyPublisher<Bool, Never> { get }
    |         |           `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
    |         `- note: add '@available' attribute to enclosing property
 11 |     var advertisingPeripherals: AnyPublisher<[PeripheralProtocol], Never> { get }
 12 |     var readyToControlPeripherals: AnyPublisher<[PeripheralProtocol], Never> { get }
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:11:33: error: 'AnyPublisher' is only available in macOS 10.15 or newer
  3 | import CoreBluetooth
  4 |
  5 | public protocol CentralBluetoothInteractable: AnyObject {
    |                 `- note: add '@available' attribute to enclosing protocol
  6 |     var interactorOptions: CentralBluetoothInteractorConfigurable { get }
  7 |
    :
  9 |     var serverState: AnyPublisher<ServerState, Never> { get }
 10 |     var isScanning: AnyPublisher<Bool, Never> { get }
 11 |     var advertisingPeripherals: AnyPublisher<[PeripheralProtocol], Never> { get }
    |         |                       `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
    |         `- note: add '@available' attribute to enclosing property
 12 |     var readyToControlPeripherals: AnyPublisher<[PeripheralProtocol], Never> { get }
 13 |     var autoReconnectionPipeline: AnyPublisher<AutoReconnectionStatus, Never> { get }
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:12:36: error: 'AnyPublisher' is only available in macOS 10.15 or newer
  3 | import CoreBluetooth
  4 |
  5 | public protocol CentralBluetoothInteractable: AnyObject {
    |                 `- note: add '@available' attribute to enclosing protocol
  6 |     var interactorOptions: CentralBluetoothInteractorConfigurable { get }
  7 |
    :
 10 |     var isScanning: AnyPublisher<Bool, Never> { get }
 11 |     var advertisingPeripherals: AnyPublisher<[PeripheralProtocol], Never> { get }
 12 |     var readyToControlPeripherals: AnyPublisher<[PeripheralProtocol], Never> { get }
    |         |                          `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
    |         `- note: add '@available' attribute to enclosing property
 13 |     var autoReconnectionPipeline: AnyPublisher<AutoReconnectionStatus, Never> { get }
 14 |     // Besides advertising and readyToControl peripherals. There's a convenience to observe all peripherals with given states
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:13:35: error: 'AnyPublisher' is only available in macOS 10.15 or newer
  3 | import CoreBluetooth
  4 |
  5 | public protocol CentralBluetoothInteractable: AnyObject {
    |                 `- note: add '@available' attribute to enclosing protocol
  6 |     var interactorOptions: CentralBluetoothInteractorConfigurable { get }
  7 |
    :
 11 |     var advertisingPeripherals: AnyPublisher<[PeripheralProtocol], Never> { get }
 12 |     var readyToControlPeripherals: AnyPublisher<[PeripheralProtocol], Never> { get }
 13 |     var autoReconnectionPipeline: AnyPublisher<AutoReconnectionStatus, Never> { get }
    |         |                         `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
    |         `- note: add '@available' attribute to enclosing property
 14 |     // Besides advertising and readyToControl peripherals. There's a convenience to observe all peripherals with given states
 15 |     var allPeripherals: AnyPublisher<[UUID: (peripheral: PeripheralProtocol, peripheralState: PeripheralConnectionState)], Never> { get }
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:15:25: error: 'AnyPublisher' is only available in macOS 10.15 or newer
  3 | import CoreBluetooth
  4 |
  5 | public protocol CentralBluetoothInteractable: AnyObject {
    |                 `- note: add '@available' attribute to enclosing protocol
  6 |     var interactorOptions: CentralBluetoothInteractorConfigurable { get }
  7 |
    :
 13 |     var autoReconnectionPipeline: AnyPublisher<AutoReconnectionStatus, Never> { get }
 14 |     // Besides advertising and readyToControl peripherals. There's a convenience to observe all peripherals with given states
 15 |     var allPeripherals: AnyPublisher<[UUID: (peripheral: PeripheralProtocol, peripheralState: PeripheralConnectionState)], Never> { get }
    |         |               `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
    |         `- note: add '@available' attribute to enclosing property
 16 |
 17 |     // Following permission methods are convenience only, designed to show a specific system pop-up. Consuming the interactor streams without calling these will work as expected
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:29:81: error: 'AnyPublisher' is only available in macOS 10.15 or newer
  3 | import CoreBluetooth
  4 |
  5 | public protocol CentralBluetoothInteractable: AnyObject {
    |                 `- note: add '@available' attribute to enclosing protocol
  6 |     var interactorOptions: CentralBluetoothInteractorConfigurable { get }
  7 |
    :
 27 |     /// - Parameter options: Connection options
 28 |     /// - Returns: A publisher of a `<Peripheral, Error>` which completes immediately after any given output.
 29 |     func connect(_ peripheral: PeripheralProtocol, options: [String : Any]?) -> AnyPublisher<PeripheralProtocol, GlacierError>
    |          |                                                                      `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
    |          `- note: add '@available' attribute to enclosing instance method
 30 | }
 31 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:46:37: error: 'AnyCancellable' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
 44 |     }()
 45 |
 46 |     private var subscriptions = Set<AnyCancellable>()
    |                                     `- error: 'AnyCancellable' is only available in macOS 10.15 or newer
 47 |     private var autoReconnectCancellables = [UUID: AnyCancellable]()
 48 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:47:52: error: 'AnyCancellable' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
 45 |
 46 |     private var subscriptions = Set<AnyCancellable>()
 47 |     private var autoReconnectCancellables = [UUID: AnyCancellable]()
    |                                                    `- error: 'AnyCancellable' is only available in macOS 10.15 or newer
 48 |
 49 |     // MARK: Initialization
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:89:29: error: 'AnyPublisher' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
 87 |     public var authorizationState: AuthorizationState { CBManager.authorizationState }
 88 |
 89 |     public var serverState: AnyPublisher<ServerState, Never> { serverStateSubject.eraseToAnyPublisher() }
    |                |            `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
    |                `- note: add '@available' attribute to enclosing property
 90 |     private lazy var serverStateSubject: CurrentValueSubject<ServerState, Never> = { .init(cbCentralManager?.serverState ?? .unknown) }()
 91 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:90:42: error: 'CurrentValueSubject' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
 88 |
 89 |     public var serverState: AnyPublisher<ServerState, Never> { serverStateSubject.eraseToAnyPublisher() }
 90 |     private lazy var serverStateSubject: CurrentValueSubject<ServerState, Never> = { .init(cbCentralManager?.serverState ?? .unknown) }()
    |                                          `- error: 'CurrentValueSubject' is only available in macOS 10.15 or newer
 91 |
 92 |     public var isScanning: AnyPublisher<Bool, Never> {
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:92:28: error: 'AnyPublisher' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
 90 |     private lazy var serverStateSubject: CurrentValueSubject<ServerState, Never> = { .init(cbCentralManager?.serverState ?? .unknown) }()
 91 |
 92 |     public var isScanning: AnyPublisher<Bool, Never> {
    |                |           `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
    |                `- note: add '@available' attribute to enclosing property
 93 |         isScanningSubject.eraseToAnyPublisher()
 94 |     }
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:95:41: error: 'CurrentValueSubject' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
 93 |         isScanningSubject.eraseToAnyPublisher()
 94 |     }
 95 |     private lazy var isScanningSubject: CurrentValueSubject<Bool, Never> = { .init(cbCentralManager?.isScanning ?? false) }()
    |                                         `- error: 'CurrentValueSubject' is only available in macOS 10.15 or newer
 96 |
 97 |     public func triggerPermissionAlert() {
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:115:40: error: 'AnyPublisher' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
113 |     }
114 |
115 |     public var advertisingPeripherals: AnyPublisher<[PeripheralProtocol], Never> {
    |                |                       `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
    |                `- note: add '@available' attribute to enclosing property
116 |         internalPeripheralStorage
117 |             .map { $0.values
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:125:43: error: 'AnyPublisher' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
123 |             .eraseToAnyPublisher()
124 |     }
125 |     public var readyToControlPeripherals: AnyPublisher<[PeripheralProtocol], Never> {
    |                |                          `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
    |                `- note: add '@available' attribute to enclosing property
126 |         internalPeripheralStorage
127 |             .map { $0.values
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:135:32: error: 'AnyPublisher' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
133 |             .eraseToAnyPublisher()
134 |     }
135 |     public var allPeripherals: AnyPublisher<[UUID: (peripheral: PeripheralProtocol, peripheralState: PeripheralConnectionState)], Never> {
    |                |               `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
    |                `- note: add '@available' attribute to enclosing property
136 |         internalPeripheralStorage
137 |             .share()
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:139:44: error: 'CurrentValueSubject' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
137 |             .share()
138 |         .eraseToAnyPublisher() }
139 |     private var internalPeripheralStorage: CurrentValueSubject<[UUID: (peripheral: PeripheralProtocol, peripheralState: PeripheralConnectionState)], Never> = .init([:])
    |                                            `- error: 'CurrentValueSubject' is only available in macOS 10.15 or newer
140 |
141 |     public var autoReconnectionPipeline: AnyPublisher<AutoReconnectionStatus, Never> { autoReconnectionPipelineSubject.eraseToAnyPublisher() }
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:141:42: error: 'AnyPublisher' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
139 |     private var internalPeripheralStorage: CurrentValueSubject<[UUID: (peripheral: PeripheralProtocol, peripheralState: PeripheralConnectionState)], Never> = .init([:])
140 |
141 |     public var autoReconnectionPipeline: AnyPublisher<AutoReconnectionStatus, Never> { autoReconnectionPipelineSubject.eraseToAnyPublisher() }
    |                |                         `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
    |                `- note: add '@available' attribute to enclosing property
142 |     private let autoReconnectionPipelineSubject = PassthroughSubject<AutoReconnectionStatus, Never>()
143 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:142:51: error: 'PassthroughSubject' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
140 |
141 |     public var autoReconnectionPipeline: AnyPublisher<AutoReconnectionStatus, Never> { autoReconnectionPipelineSubject.eraseToAnyPublisher() }
142 |     private let autoReconnectionPipelineSubject = PassthroughSubject<AutoReconnectionStatus, Never>()
    |                                                   `- error: 'PassthroughSubject' is only available in macOS 10.15 or newer
143 |
144 |     public func scanForPeripherals() {
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:172:53: error: 'PassthroughSubject' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
170 |     }
171 |
172 |     private var peripheralPairingValidationStream = PassthroughSubject<(peripheralIdentifier: UUID, error: Error?), Never>()
    |                                                     `- error: 'PassthroughSubject' is only available in macOS 10.15 or newer
173 |     /**
174 |      As explained in the protocol declaration above, this method is emitting based on a succesful/failed connection followed by pairing validation. Any successful or failed emission will complete the returned AnyPublisher due to the underlying Future. This requires resubscription on-demand.
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:177:88: error: 'AnyPublisher' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
175 |
176 |      */
177 |     public func connect(_ peripheral: PeripheralProtocol, options: [String : Any]?) -> AnyPublisher<PeripheralProtocol, GlacierError> {
    |                 |                                                                      `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
    |                 `- note: add '@available' attribute to enclosing instance method
178 |         guard let cbCentralManager = cbCentralManager, case .unpaired = peripheral.pairingState else {
179 |             internalPeripheralStorage.value[peripheral.cbPeripheral.identifier] = (peripheral, .readyToControl)
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractorOptions.swift:8:43: error: 'SchedulerTimeType' is only available in macOS 10.15 or newer
 2 | import Foundation
 3 |
 4 | public protocol CentralBluetoothInteractorConfigurable {
   |                 `- note: add '@available' attribute to enclosing protocol
 5 |   var centralManagerInitializationOptions: [String : Any]? { get }
 6 |   var peripheralScanningOptions: [String : Any]? { get }
 7 |   var peripheralScanningRequiredServices: [CBUUID]? { get }
 8 |   var autoReconnectTimeout: DispatchQueue.SchedulerTimeType.Stride { get }
   |       |                                   `- error: 'SchedulerTimeType' is only available in macOS 10.15 or newer
   |       `- note: add '@available' attribute to enclosing property
 9 |   var initialDiscoveryTimeout: DispatchQueue.SchedulerTimeType.Stride { get }
10 | }
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractorOptions.swift:9:46: error: 'SchedulerTimeType' is only available in macOS 10.15 or newer
 2 | import Foundation
 3 |
 4 | public protocol CentralBluetoothInteractorConfigurable {
   |                 `- note: add '@available' attribute to enclosing protocol
 5 |   var centralManagerInitializationOptions: [String : Any]? { get }
 6 |   var peripheralScanningOptions: [String : Any]? { get }
 7 |   var peripheralScanningRequiredServices: [CBUUID]? { get }
 8 |   var autoReconnectTimeout: DispatchQueue.SchedulerTimeType.Stride { get }
 9 |   var initialDiscoveryTimeout: DispatchQueue.SchedulerTimeType.Stride { get }
   |       |                                      `- error: 'SchedulerTimeType' is only available in macOS 10.15 or newer
   |       `- note: add '@available' attribute to enclosing property
10 | }
11 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractorOptions.swift:16:50: error: 'SchedulerTimeType' is only available in macOS 10.15 or newer
10 | }
11 |
12 | public struct DefaultBluetoothInteractorOptions: CentralBluetoothInteractorConfigurable {
   |               `- note: add '@available' attribute to enclosing struct
13 |   public let centralManagerInitializationOptions: [String : Any]?
14 |   public let peripheralScanningOptions: [String : Any]?
15 |   public let peripheralScanningRequiredServices: [CBUUID]?
16 |   public let autoReconnectTimeout: DispatchQueue.SchedulerTimeType.Stride
   |                                                  `- error: 'SchedulerTimeType' is only available in macOS 10.15 or newer
17 |   public let initialDiscoveryTimeout: DispatchQueue.SchedulerTimeType.Stride
18 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractorOptions.swift:17:53: error: 'SchedulerTimeType' is only available in macOS 10.15 or newer
10 | }
11 |
12 | public struct DefaultBluetoothInteractorOptions: CentralBluetoothInteractorConfigurable {
   |               `- note: add '@available' attribute to enclosing struct
13 |   public let centralManagerInitializationOptions: [String : Any]?
14 |   public let peripheralScanningOptions: [String : Any]?
15 |   public let peripheralScanningRequiredServices: [CBUUID]?
16 |   public let autoReconnectTimeout: DispatchQueue.SchedulerTimeType.Stride
17 |   public let initialDiscoveryTimeout: DispatchQueue.SchedulerTimeType.Stride
   |                                                     `- error: 'SchedulerTimeType' is only available in macOS 10.15 or newer
18 |
19 |   public init(centralManagerInitializationOptions: [String : Any]? = nil,
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractorOptions.swift:22:51: error: 'SchedulerTimeType' is only available in macOS 10.15 or newer
10 | }
11 |
12 | public struct DefaultBluetoothInteractorOptions: CentralBluetoothInteractorConfigurable {
   |               `- note: add '@available' attribute to enclosing struct
13 |   public let centralManagerInitializationOptions: [String : Any]?
14 |   public let peripheralScanningOptions: [String : Any]?
   :
17 |   public let initialDiscoveryTimeout: DispatchQueue.SchedulerTimeType.Stride
18 |
19 |   public init(centralManagerInitializationOptions: [String : Any]? = nil,
   |          `- note: add '@available' attribute to enclosing initializer
20 |               peripheralScanningOptions: [String : Any]? = nil,
21 |               peripheralScanningRequiredServices: [CBUUID]? = nil,
22 |               autoReconnectTimeout: DispatchQueue.SchedulerTimeType.Stride = 30.0,
   |                                                   `- error: 'SchedulerTimeType' is only available in macOS 10.15 or newer
23 |               initialDiscoveryTimeout: DispatchQueue.SchedulerTimeType.Stride = 30.0) {
24 |     self.centralManagerInitializationOptions = centralManagerInitializationOptions
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractorOptions.swift:23:54: error: 'SchedulerTimeType' is only available in macOS 10.15 or newer
10 | }
11 |
12 | public struct DefaultBluetoothInteractorOptions: CentralBluetoothInteractorConfigurable {
   |               `- note: add '@available' attribute to enclosing struct
13 |   public let centralManagerInitializationOptions: [String : Any]?
14 |   public let peripheralScanningOptions: [String : Any]?
   :
17 |   public let initialDiscoveryTimeout: DispatchQueue.SchedulerTimeType.Stride
18 |
19 |   public init(centralManagerInitializationOptions: [String : Any]? = nil,
   |          `- note: add '@available' attribute to enclosing initializer
20 |               peripheralScanningOptions: [String : Any]? = nil,
21 |               peripheralScanningRequiredServices: [CBUUID]? = nil,
22 |               autoReconnectTimeout: DispatchQueue.SchedulerTimeType.Stride = 30.0,
23 |               initialDiscoveryTimeout: DispatchQueue.SchedulerTimeType.Stride = 30.0) {
   |                                                      `- error: 'SchedulerTimeType' is only available in macOS 10.15 or newer
24 |     self.centralManagerInitializationOptions = centralManagerInitializationOptions
25 |     self.peripheralScanningOptions = peripheralScanningOptions
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:9:29: error: 'AnyPublisher' is only available in macOS 10.15 or newer
  3 | import Combine
  4 |
  5 | public protocol PeripheralProtocol {
    |                 `- note: add '@available' attribute to enclosing protocol
  6 |   var cbPeripheral: CBPeripheralAbstraction { get }
  7 |   var pairingState: PeripheralPairingState { get set }
  8 |   func discoverServices()
  9 |   func validatePairing() -> AnyPublisher<PeripheralProtocol, Error>
    |        |                    `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
    |        `- note: add '@available' attribute to enclosing instance method
 10 |   func resetPairingState()
 11 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:13:41: error: 'AnyPublisher' is only available in macOS 10.15 or newer
  3 | import Combine
  4 |
  5 | public protocol PeripheralProtocol {
    |                 `- note: add '@available' attribute to enclosing protocol
  6 |   var cbPeripheral: CBPeripheralAbstraction { get }
  7 |   var pairingState: PeripheralPairingState { get set }
    :
 11 |
 12 |   func writeWithoutResponse(data: Data)
 13 |   func writeWithResponse(data: Data) -> AnyPublisher<Void, Error>
    |        |                                `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
    |        `- note: add '@available' attribute to enclosing instance method
 14 |
 15 |   func read() -> AnyPublisher<Result<Data, Error>, Never>
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:15:18: error: 'AnyPublisher' is only available in macOS 10.15 or newer
  3 | import Combine
  4 |
  5 | public protocol PeripheralProtocol {
    |                 `- note: add '@available' attribute to enclosing protocol
  6 |   var cbPeripheral: CBPeripheralAbstraction { get }
  7 |   var pairingState: PeripheralPairingState { get set }
    :
 13 |   func writeWithResponse(data: Data) -> AnyPublisher<Void, Error>
 14 |
 15 |   func read() -> AnyPublisher<Result<Data, Error>, Never>
    |        |         `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
    |        `- note: add '@available' attribute to enclosing instance method
 16 |   var readValueStream: AnyPublisher<Result<Data, Error>, Never> { get }
 17 | }
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:16:24: error: 'AnyPublisher' is only available in macOS 10.15 or newer
  3 | import Combine
  4 |
  5 | public protocol PeripheralProtocol {
    |                 `- note: add '@available' attribute to enclosing protocol
  6 |   var cbPeripheral: CBPeripheralAbstraction { get }
  7 |   var pairingState: PeripheralPairingState { get set }
    :
 14 |
 15 |   func read() -> AnyPublisher<Result<Data, Error>, Never>
 16 |   var readValueStream: AnyPublisher<Result<Data, Error>, Never> { get }
    |       |                `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
    |       `- note: add '@available' attribute to enclosing property
 17 | }
 18 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:30:42: error: 'PassthroughSubject' is only available in macOS 10.15 or newer
 22 | }
 23 |
 24 | public class Peripheral: NSObject, PeripheralProtocol {
    |              `- note: add '@available' attribute to enclosing class
 25 |
 26 |   public let cbPeripheral: CBPeripheralAbstraction
    :
 28 |   public let rssi: NSNumber
 29 |
 30 |   private var peripheralValidationFlow = PassthroughSubject<Result<PeripheralProtocol, GlacierError>, Never>()
    |                                          `- error: 'PassthroughSubject' is only available in macOS 10.15 or newer
 31 |   public var pairingState: PeripheralPairingState = .unpaired(dialogueShown: false)
 32 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:39:37: error: 'CurrentValueSubject' is only available in macOS 10.15 or newer
 22 | }
 23 |
 24 | public class Peripheral: NSObject, PeripheralProtocol {
    |              `- note: add '@available' attribute to enclosing class
 25 |
 26 |   public let cbPeripheral: CBPeripheralAbstraction
    :
 37 |   private let writeQueue = DispatchQueue(label: "peripheralWriteQueue", qos: .background)
 38 |   private let writeSemaphore = DispatchSemaphore(value: 1)
 39 |   private let writeResponseStream = CurrentValueSubject<Result<Void, Error>?, Never>(nil)
    |                                     `- error: 'CurrentValueSubject' is only available in macOS 10.15 or newer
 40 |
 41 |   private let readValueSubject = CurrentValueSubject<Result<Data, Error>?, Never>(nil)
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:41:34: error: 'CurrentValueSubject' is only available in macOS 10.15 or newer
 22 | }
 23 |
 24 | public class Peripheral: NSObject, PeripheralProtocol {
    |              `- note: add '@available' attribute to enclosing class
 25 |
 26 |   public let cbPeripheral: CBPeripheralAbstraction
    :
 39 |   private let writeResponseStream = CurrentValueSubject<Result<Void, Error>?, Never>(nil)
 40 |
 41 |   private let readValueSubject = CurrentValueSubject<Result<Data, Error>?, Never>(nil)
    |                                  `- error: 'CurrentValueSubject' is only available in macOS 10.15 or newer
 42 |
 43 |   private var subscriptions = Set<AnyCancellable>()
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:43:35: error: 'AnyCancellable' is only available in macOS 10.15 or newer
 22 | }
 23 |
 24 | public class Peripheral: NSObject, PeripheralProtocol {
    |              `- note: add '@available' attribute to enclosing class
 25 |
 26 |   public let cbPeripheral: CBPeripheralAbstraction
    :
 41 |   private let readValueSubject = CurrentValueSubject<Result<Data, Error>?, Never>(nil)
 42 |
 43 |   private var subscriptions = Set<AnyCancellable>()
    |                                   `- error: 'AnyCancellable' is only available in macOS 10.15 or newer
 44 |
 45 |   init(cbPeripheral: CBPeripheralAbstraction,
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:68:36: error: 'AnyPublisher' is only available in macOS 10.15 or newer
 22 | }
 23 |
 24 | public class Peripheral: NSObject, PeripheralProtocol {
    |              `- note: add '@available' attribute to enclosing class
 25 |
 26 |   public let cbPeripheral: CBPeripheralAbstraction
    :
 66 |   }
 67 |
 68 |   public func validatePairing() -> AnyPublisher<PeripheralProtocol, Error> {
    |               |                    `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
    |               `- note: add '@available' attribute to enclosing instance method
 69 |     return peripheralValidationFlow
 70 |       .handleEvents(receiveSubscription: { [weak self] _ in
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:200:25: error: 'AnyPublisher' is only available in macOS 10.15 or newer
 22 | }
 23 |
 24 | public class Peripheral: NSObject, PeripheralProtocol {
    |              `- note: add '@available' attribute to enclosing class
 25 |
 26 |   public let cbPeripheral: CBPeripheralAbstraction
    :
198 |   //MARK: READ/WRITE OPERATIONS
199 |
200 |   public func read() -> AnyPublisher<Result<Data, Error>, Never> {
    |               |         `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
    |               `- note: add '@available' attribute to enclosing instance method
201 |     guard let readCharacteristic = readCharacteristic else { return Empty().eraseToAnyPublisher() }
202 |     cbPeripheral.readValueForCharacteristic(readCharacteristic)
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:211:31: error: 'AnyPublisher' is only available in macOS 10.15 or newer
 22 | }
 23 |
 24 | public class Peripheral: NSObject, PeripheralProtocol {
    |              `- note: add '@available' attribute to enclosing class
 25 |
 26 |   public let cbPeripheral: CBPeripheralAbstraction
    :
209 |   }
210 |
211 |   public var readValueStream: AnyPublisher<Result<Data, Error>, Never> {
    |              |                `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
    |              `- note: add '@available' attribute to enclosing property
212 |     // some peripherals fail to notify even if they have `.notify` channel
213 |     // A timeout force-reads the characteristic and refreshes the value manually
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Peripheral.swift:252:48: error: 'AnyPublisher' is only available in macOS 10.15 or newer
 22 | }
 23 |
 24 | public class Peripheral: NSObject, PeripheralProtocol {
    |              `- note: add '@available' attribute to enclosing class
 25 |
 26 |   public let cbPeripheral: CBPeripheralAbstraction
    :
250 |   }
251 |
252 |   public func writeWithResponse(data: Data) -> AnyPublisher<Void, Error> {
    |               |                                `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
    |               `- note: add '@available' attribute to enclosing instance method
253 |     Deferred {
254 |       Future { [weak self] promise in
/Users/admin/builder/spi-builder-workspace/Sources/glacier/PeripheralCommunicationProtocol.swift:10:56: error: 'SchedulerTimeType' is only available in macOS 10.15 or newer
 3 | import Combine
 4 |
 5 | public protocol PeripheralInitialCommunicationProtocol {
   |                 `- note: add '@available' attribute to enclosing protocol
 6 |   var servicesToDiscover: [CBUUID]? { get }
 7 |   var characteristicsToDiscover: [CBUUID]? { get }
 8 |   var readCharacteristicIdentifier: CBUUID { get }
 9 |   var writeCharacteristicIdentifier: CBUUID { get }
10 |   var readCharacteristicPollingInterval: DispatchQueue.SchedulerTimeType.Stride { get }
   |       |                                                `- error: 'SchedulerTimeType' is only available in macOS 10.15 or newer
   |       `- note: add '@available' attribute to enclosing property
11 |   var pairingRequestPayload: Data { get }
12 |   var pairingConfirmationPayload: Data { get }
[7/9] Compiling glacier CentralBluetoothInteractorOptions.swift
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractorOptions.swift:8:43: error: 'SchedulerTimeType' is only available in macOS 10.15 or newer
 2 | import Foundation
 3 |
 4 | public protocol CentralBluetoothInteractorConfigurable {
   |                 `- note: add '@available' attribute to enclosing protocol
 5 |   var centralManagerInitializationOptions: [String : Any]? { get }
 6 |   var peripheralScanningOptions: [String : Any]? { get }
 7 |   var peripheralScanningRequiredServices: [CBUUID]? { get }
 8 |   var autoReconnectTimeout: DispatchQueue.SchedulerTimeType.Stride { get }
   |       |                                   `- error: 'SchedulerTimeType' is only available in macOS 10.15 or newer
   |       `- note: add '@available' attribute to enclosing property
 9 |   var initialDiscoveryTimeout: DispatchQueue.SchedulerTimeType.Stride { get }
10 | }
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractorOptions.swift:9:46: error: 'SchedulerTimeType' is only available in macOS 10.15 or newer
 2 | import Foundation
 3 |
 4 | public protocol CentralBluetoothInteractorConfigurable {
   |                 `- note: add '@available' attribute to enclosing protocol
 5 |   var centralManagerInitializationOptions: [String : Any]? { get }
 6 |   var peripheralScanningOptions: [String : Any]? { get }
 7 |   var peripheralScanningRequiredServices: [CBUUID]? { get }
 8 |   var autoReconnectTimeout: DispatchQueue.SchedulerTimeType.Stride { get }
 9 |   var initialDiscoveryTimeout: DispatchQueue.SchedulerTimeType.Stride { get }
   |       |                                      `- error: 'SchedulerTimeType' is only available in macOS 10.15 or newer
   |       `- note: add '@available' attribute to enclosing property
10 | }
11 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractorOptions.swift:16:50: error: 'SchedulerTimeType' is only available in macOS 10.15 or newer
10 | }
11 |
12 | public struct DefaultBluetoothInteractorOptions: CentralBluetoothInteractorConfigurable {
   |               `- note: add '@available' attribute to enclosing struct
13 |   public let centralManagerInitializationOptions: [String : Any]?
14 |   public let peripheralScanningOptions: [String : Any]?
15 |   public let peripheralScanningRequiredServices: [CBUUID]?
16 |   public let autoReconnectTimeout: DispatchQueue.SchedulerTimeType.Stride
   |                                                  `- error: 'SchedulerTimeType' is only available in macOS 10.15 or newer
17 |   public let initialDiscoveryTimeout: DispatchQueue.SchedulerTimeType.Stride
18 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractorOptions.swift:17:53: error: 'SchedulerTimeType' is only available in macOS 10.15 or newer
10 | }
11 |
12 | public struct DefaultBluetoothInteractorOptions: CentralBluetoothInteractorConfigurable {
   |               `- note: add '@available' attribute to enclosing struct
13 |   public let centralManagerInitializationOptions: [String : Any]?
14 |   public let peripheralScanningOptions: [String : Any]?
15 |   public let peripheralScanningRequiredServices: [CBUUID]?
16 |   public let autoReconnectTimeout: DispatchQueue.SchedulerTimeType.Stride
17 |   public let initialDiscoveryTimeout: DispatchQueue.SchedulerTimeType.Stride
   |                                                     `- error: 'SchedulerTimeType' is only available in macOS 10.15 or newer
18 |
19 |   public init(centralManagerInitializationOptions: [String : Any]? = nil,
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractorOptions.swift:22:51: error: 'SchedulerTimeType' is only available in macOS 10.15 or newer
10 | }
11 |
12 | public struct DefaultBluetoothInteractorOptions: CentralBluetoothInteractorConfigurable {
   |               `- note: add '@available' attribute to enclosing struct
13 |   public let centralManagerInitializationOptions: [String : Any]?
14 |   public let peripheralScanningOptions: [String : Any]?
   :
17 |   public let initialDiscoveryTimeout: DispatchQueue.SchedulerTimeType.Stride
18 |
19 |   public init(centralManagerInitializationOptions: [String : Any]? = nil,
   |          `- note: add '@available' attribute to enclosing initializer
20 |               peripheralScanningOptions: [String : Any]? = nil,
21 |               peripheralScanningRequiredServices: [CBUUID]? = nil,
22 |               autoReconnectTimeout: DispatchQueue.SchedulerTimeType.Stride = 30.0,
   |                                                   `- error: 'SchedulerTimeType' is only available in macOS 10.15 or newer
23 |               initialDiscoveryTimeout: DispatchQueue.SchedulerTimeType.Stride = 30.0) {
24 |     self.centralManagerInitializationOptions = centralManagerInitializationOptions
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractorOptions.swift:23:54: error: 'SchedulerTimeType' is only available in macOS 10.15 or newer
10 | }
11 |
12 | public struct DefaultBluetoothInteractorOptions: CentralBluetoothInteractorConfigurable {
   |               `- note: add '@available' attribute to enclosing struct
13 |   public let centralManagerInitializationOptions: [String : Any]?
14 |   public let peripheralScanningOptions: [String : Any]?
   :
17 |   public let initialDiscoveryTimeout: DispatchQueue.SchedulerTimeType.Stride
18 |
19 |   public init(centralManagerInitializationOptions: [String : Any]? = nil,
   |          `- note: add '@available' attribute to enclosing initializer
20 |               peripheralScanningOptions: [String : Any]? = nil,
21 |               peripheralScanningRequiredServices: [CBUUID]? = nil,
22 |               autoReconnectTimeout: DispatchQueue.SchedulerTimeType.Stride = 30.0,
23 |               initialDiscoveryTimeout: DispatchQueue.SchedulerTimeType.Stride = 30.0) {
   |                                                      `- error: 'SchedulerTimeType' is only available in macOS 10.15 or newer
24 |     self.centralManagerInitializationOptions = centralManagerInitializationOptions
25 |     self.peripheralScanningOptions = peripheralScanningOptions
[8/9] Compiling glacier Abstractions.swift
/Users/admin/builder/spi-builder-workspace/Sources/glacier/Abstractions.swift:108:22: error: 'authorization' is only available in macOS 10.15 or newer
104 | }
105 |
106 | extension CBManager {
    | `- note: add '@available' attribute to enclosing extension
107 |   public static var authorizationState: AuthorizationState {
    |                     `- note: add '@available' attribute to enclosing static property
108 |     switch CBManager.authorization {
    |                      |- error: 'authorization' is only available in macOS 10.15 or newer
    |                      `- note: add 'if #available' version check
109 |     case .notDetermined:
110 |       return .notDetermined
[9/9] Compiling glacier CentralBluetoothInteractor.swift
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:9:22: error: 'AnyPublisher' is only available in macOS 10.15 or newer
  3 | import CoreBluetooth
  4 |
  5 | public protocol CentralBluetoothInteractable: AnyObject {
    |                 `- note: add '@available' attribute to enclosing protocol
  6 |     var interactorOptions: CentralBluetoothInteractorConfigurable { get }
  7 |
  8 |     var authorizationState: AuthorizationState { get }
  9 |     var serverState: AnyPublisher<ServerState, Never> { get }
    |         |            `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
    |         `- note: add '@available' attribute to enclosing property
 10 |     var isScanning: AnyPublisher<Bool, Never> { get }
 11 |     var advertisingPeripherals: AnyPublisher<[PeripheralProtocol], Never> { get }
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:10:21: error: 'AnyPublisher' is only available in macOS 10.15 or newer
  3 | import CoreBluetooth
  4 |
  5 | public protocol CentralBluetoothInteractable: AnyObject {
    |                 `- note: add '@available' attribute to enclosing protocol
  6 |     var interactorOptions: CentralBluetoothInteractorConfigurable { get }
  7 |
  8 |     var authorizationState: AuthorizationState { get }
  9 |     var serverState: AnyPublisher<ServerState, Never> { get }
 10 |     var isScanning: AnyPublisher<Bool, Never> { get }
    |         |           `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
    |         `- note: add '@available' attribute to enclosing property
 11 |     var advertisingPeripherals: AnyPublisher<[PeripheralProtocol], Never> { get }
 12 |     var readyToControlPeripherals: AnyPublisher<[PeripheralProtocol], Never> { get }
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:11:33: error: 'AnyPublisher' is only available in macOS 10.15 or newer
  3 | import CoreBluetooth
  4 |
  5 | public protocol CentralBluetoothInteractable: AnyObject {
    |                 `- note: add '@available' attribute to enclosing protocol
  6 |     var interactorOptions: CentralBluetoothInteractorConfigurable { get }
  7 |
    :
  9 |     var serverState: AnyPublisher<ServerState, Never> { get }
 10 |     var isScanning: AnyPublisher<Bool, Never> { get }
 11 |     var advertisingPeripherals: AnyPublisher<[PeripheralProtocol], Never> { get }
    |         |                       `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
    |         `- note: add '@available' attribute to enclosing property
 12 |     var readyToControlPeripherals: AnyPublisher<[PeripheralProtocol], Never> { get }
 13 |     var autoReconnectionPipeline: AnyPublisher<AutoReconnectionStatus, Never> { get }
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:12:36: error: 'AnyPublisher' is only available in macOS 10.15 or newer
  3 | import CoreBluetooth
  4 |
  5 | public protocol CentralBluetoothInteractable: AnyObject {
    |                 `- note: add '@available' attribute to enclosing protocol
  6 |     var interactorOptions: CentralBluetoothInteractorConfigurable { get }
  7 |
    :
 10 |     var isScanning: AnyPublisher<Bool, Never> { get }
 11 |     var advertisingPeripherals: AnyPublisher<[PeripheralProtocol], Never> { get }
 12 |     var readyToControlPeripherals: AnyPublisher<[PeripheralProtocol], Never> { get }
    |         |                          `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
    |         `- note: add '@available' attribute to enclosing property
 13 |     var autoReconnectionPipeline: AnyPublisher<AutoReconnectionStatus, Never> { get }
 14 |     // Besides advertising and readyToControl peripherals. There's a convenience to observe all peripherals with given states
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:13:35: error: 'AnyPublisher' is only available in macOS 10.15 or newer
  3 | import CoreBluetooth
  4 |
  5 | public protocol CentralBluetoothInteractable: AnyObject {
    |                 `- note: add '@available' attribute to enclosing protocol
  6 |     var interactorOptions: CentralBluetoothInteractorConfigurable { get }
  7 |
    :
 11 |     var advertisingPeripherals: AnyPublisher<[PeripheralProtocol], Never> { get }
 12 |     var readyToControlPeripherals: AnyPublisher<[PeripheralProtocol], Never> { get }
 13 |     var autoReconnectionPipeline: AnyPublisher<AutoReconnectionStatus, Never> { get }
    |         |                         `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
    |         `- note: add '@available' attribute to enclosing property
 14 |     // Besides advertising and readyToControl peripherals. There's a convenience to observe all peripherals with given states
 15 |     var allPeripherals: AnyPublisher<[UUID: (peripheral: PeripheralProtocol, peripheralState: PeripheralConnectionState)], Never> { get }
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:15:25: error: 'AnyPublisher' is only available in macOS 10.15 or newer
  3 | import CoreBluetooth
  4 |
  5 | public protocol CentralBluetoothInteractable: AnyObject {
    |                 `- note: add '@available' attribute to enclosing protocol
  6 |     var interactorOptions: CentralBluetoothInteractorConfigurable { get }
  7 |
    :
 13 |     var autoReconnectionPipeline: AnyPublisher<AutoReconnectionStatus, Never> { get }
 14 |     // Besides advertising and readyToControl peripherals. There's a convenience to observe all peripherals with given states
 15 |     var allPeripherals: AnyPublisher<[UUID: (peripheral: PeripheralProtocol, peripheralState: PeripheralConnectionState)], Never> { get }
    |         |               `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
    |         `- note: add '@available' attribute to enclosing property
 16 |
 17 |     // Following permission methods are convenience only, designed to show a specific system pop-up. Consuming the interactor streams without calling these will work as expected
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:29:81: error: 'AnyPublisher' is only available in macOS 10.15 or newer
  3 | import CoreBluetooth
  4 |
  5 | public protocol CentralBluetoothInteractable: AnyObject {
    |                 `- note: add '@available' attribute to enclosing protocol
  6 |     var interactorOptions: CentralBluetoothInteractorConfigurable { get }
  7 |
    :
 27 |     /// - Parameter options: Connection options
 28 |     /// - Returns: A publisher of a `<Peripheral, Error>` which completes immediately after any given output.
 29 |     func connect(_ peripheral: PeripheralProtocol, options: [String : Any]?) -> AnyPublisher<PeripheralProtocol, GlacierError>
    |          |                                                                      `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
    |          `- note: add '@available' attribute to enclosing instance method
 30 | }
 31 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:46:37: error: 'AnyCancellable' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
 44 |     }()
 45 |
 46 |     private var subscriptions = Set<AnyCancellable>()
    |                                     `- error: 'AnyCancellable' is only available in macOS 10.15 or newer
 47 |     private var autoReconnectCancellables = [UUID: AnyCancellable]()
 48 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:47:52: error: 'AnyCancellable' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
 45 |
 46 |     private var subscriptions = Set<AnyCancellable>()
 47 |     private var autoReconnectCancellables = [UUID: AnyCancellable]()
    |                                                    `- error: 'AnyCancellable' is only available in macOS 10.15 or newer
 48 |
 49 |     // MARK: Initialization
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:89:29: error: 'AnyPublisher' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
 87 |     public var authorizationState: AuthorizationState { CBManager.authorizationState }
 88 |
 89 |     public var serverState: AnyPublisher<ServerState, Never> { serverStateSubject.eraseToAnyPublisher() }
    |                |            `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
    |                `- note: add '@available' attribute to enclosing property
 90 |     private lazy var serverStateSubject: CurrentValueSubject<ServerState, Never> = { .init(cbCentralManager?.serverState ?? .unknown) }()
 91 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:90:42: error: 'CurrentValueSubject' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
 88 |
 89 |     public var serverState: AnyPublisher<ServerState, Never> { serverStateSubject.eraseToAnyPublisher() }
 90 |     private lazy var serverStateSubject: CurrentValueSubject<ServerState, Never> = { .init(cbCentralManager?.serverState ?? .unknown) }()
    |                                          `- error: 'CurrentValueSubject' is only available in macOS 10.15 or newer
 91 |
 92 |     public var isScanning: AnyPublisher<Bool, Never> {
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:92:28: error: 'AnyPublisher' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
 90 |     private lazy var serverStateSubject: CurrentValueSubject<ServerState, Never> = { .init(cbCentralManager?.serverState ?? .unknown) }()
 91 |
 92 |     public var isScanning: AnyPublisher<Bool, Never> {
    |                |           `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
    |                `- note: add '@available' attribute to enclosing property
 93 |         isScanningSubject.eraseToAnyPublisher()
 94 |     }
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:95:41: error: 'CurrentValueSubject' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
 93 |         isScanningSubject.eraseToAnyPublisher()
 94 |     }
 95 |     private lazy var isScanningSubject: CurrentValueSubject<Bool, Never> = { .init(cbCentralManager?.isScanning ?? false) }()
    |                                         `- error: 'CurrentValueSubject' is only available in macOS 10.15 or newer
 96 |
 97 |     public func triggerPermissionAlert() {
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:115:40: error: 'AnyPublisher' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
113 |     }
114 |
115 |     public var advertisingPeripherals: AnyPublisher<[PeripheralProtocol], Never> {
    |                |                       `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
    |                `- note: add '@available' attribute to enclosing property
116 |         internalPeripheralStorage
117 |             .map { $0.values
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:125:43: error: 'AnyPublisher' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
123 |             .eraseToAnyPublisher()
124 |     }
125 |     public var readyToControlPeripherals: AnyPublisher<[PeripheralProtocol], Never> {
    |                |                          `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
    |                `- note: add '@available' attribute to enclosing property
126 |         internalPeripheralStorage
127 |             .map { $0.values
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:135:32: error: 'AnyPublisher' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
133 |             .eraseToAnyPublisher()
134 |     }
135 |     public var allPeripherals: AnyPublisher<[UUID: (peripheral: PeripheralProtocol, peripheralState: PeripheralConnectionState)], Never> {
    |                |               `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
    |                `- note: add '@available' attribute to enclosing property
136 |         internalPeripheralStorage
137 |             .share()
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:139:44: error: 'CurrentValueSubject' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
137 |             .share()
138 |         .eraseToAnyPublisher() }
139 |     private var internalPeripheralStorage: CurrentValueSubject<[UUID: (peripheral: PeripheralProtocol, peripheralState: PeripheralConnectionState)], Never> = .init([:])
    |                                            `- error: 'CurrentValueSubject' is only available in macOS 10.15 or newer
140 |
141 |     public var autoReconnectionPipeline: AnyPublisher<AutoReconnectionStatus, Never> { autoReconnectionPipelineSubject.eraseToAnyPublisher() }
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:141:42: error: 'AnyPublisher' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
139 |     private var internalPeripheralStorage: CurrentValueSubject<[UUID: (peripheral: PeripheralProtocol, peripheralState: PeripheralConnectionState)], Never> = .init([:])
140 |
141 |     public var autoReconnectionPipeline: AnyPublisher<AutoReconnectionStatus, Never> { autoReconnectionPipelineSubject.eraseToAnyPublisher() }
    |                |                         `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
    |                `- note: add '@available' attribute to enclosing property
142 |     private let autoReconnectionPipelineSubject = PassthroughSubject<AutoReconnectionStatus, Never>()
143 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:142:51: error: 'PassthroughSubject' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
140 |
141 |     public var autoReconnectionPipeline: AnyPublisher<AutoReconnectionStatus, Never> { autoReconnectionPipelineSubject.eraseToAnyPublisher() }
142 |     private let autoReconnectionPipelineSubject = PassthroughSubject<AutoReconnectionStatus, Never>()
    |                                                   `- error: 'PassthroughSubject' is only available in macOS 10.15 or newer
143 |
144 |     public func scanForPeripherals() {
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:172:53: error: 'PassthroughSubject' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
170 |     }
171 |
172 |     private var peripheralPairingValidationStream = PassthroughSubject<(peripheralIdentifier: UUID, error: Error?), Never>()
    |                                                     `- error: 'PassthroughSubject' is only available in macOS 10.15 or newer
173 |     /**
174 |      As explained in the protocol declaration above, this method is emitting based on a succesful/failed connection followed by pairing validation. Any successful or failed emission will complete the returned AnyPublisher due to the underlying Future. This requires resubscription on-demand.
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:177:88: error: 'AnyPublisher' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
175 |
176 |      */
177 |     public func connect(_ peripheral: PeripheralProtocol, options: [String : Any]?) -> AnyPublisher<PeripheralProtocol, GlacierError> {
    |                 |                                                                      `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
    |                 `- note: add '@available' attribute to enclosing instance method
178 |         guard let cbCentralManager = cbCentralManager, case .unpaired = peripheral.pairingState else {
179 |             internalPeripheralStorage.value[peripheral.cbPeripheral.identifier] = (peripheral, .readyToControl)
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:89:83: error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
 87 |     public var authorizationState: AuthorizationState { CBManager.authorizationState }
 88 |
 89 |     public var serverState: AnyPublisher<ServerState, Never> { serverStateSubject.eraseToAnyPublisher() }
    |                |                                                                  |- error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
    |                |                                                                  `- note: add 'if #available' version check
    |                `- note: add '@available' attribute to enclosing property
 90 |     private lazy var serverStateSubject: CurrentValueSubject<ServerState, Never> = { .init(cbCentralManager?.serverState ?? .unknown) }()
 91 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:93:27: error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
 90 |     private lazy var serverStateSubject: CurrentValueSubject<ServerState, Never> = { .init(cbCentralManager?.serverState ?? .unknown) }()
 91 |
 92 |     public var isScanning: AnyPublisher<Bool, Never> {
    |                `- note: add '@available' attribute to enclosing property
 93 |         isScanningSubject.eraseToAnyPublisher()
    |                           |- error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
    |                           `- note: add 'if #available' version check
 94 |     }
 95 |     private lazy var isScanningSubject: CurrentValueSubject<Bool, Never> = { .init(cbCentralManager?.isScanning ?? false) }()
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:117:14: error: 'map' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
113 |     }
114 |
115 |     public var advertisingPeripherals: AnyPublisher<[PeripheralProtocol], Never> {
    |                `- note: add '@available' attribute to enclosing property
116 |         internalPeripheralStorage
117 |             .map { $0.values
    |              |- error: 'map' is only available in macOS 10.15 or newer
    |              `- note: add 'if #available' version check
118 |                 .filter { $1 == .advertising }
119 |                 .map { $0.peripheral }
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:121:14: error: 'removeDuplicates(by:)' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
113 |     }
114 |
115 |     public var advertisingPeripherals: AnyPublisher<[PeripheralProtocol], Never> {
    |                `- note: add '@available' attribute to enclosing property
116 |         internalPeripheralStorage
117 |             .map { $0.values
    :
119 |                 .map { $0.peripheral }
120 |             }
121 |             .removeDuplicates(by: { $0.map { $0.cbPeripheral.identifier } == $1.map { $0.cbPeripheral.identifier } })
    |              |- error: 'removeDuplicates(by:)' is only available in macOS 10.15 or newer
    |              `- note: add 'if #available' version check
122 |             .share()
123 |             .eraseToAnyPublisher()
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:122:14: error: 'share()' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
113 |     }
114 |
115 |     public var advertisingPeripherals: AnyPublisher<[PeripheralProtocol], Never> {
    |                `- note: add '@available' attribute to enclosing property
116 |         internalPeripheralStorage
117 |             .map { $0.values
    :
120 |             }
121 |             .removeDuplicates(by: { $0.map { $0.cbPeripheral.identifier } == $1.map { $0.cbPeripheral.identifier } })
122 |             .share()
    |              |- error: 'share()' is only available in macOS 10.15 or newer
    |              `- note: add 'if #available' version check
123 |             .eraseToAnyPublisher()
124 |     }
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:123:14: error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
113 |     }
114 |
115 |     public var advertisingPeripherals: AnyPublisher<[PeripheralProtocol], Never> {
    |                `- note: add '@available' attribute to enclosing property
116 |         internalPeripheralStorage
117 |             .map { $0.values
    :
121 |             .removeDuplicates(by: { $0.map { $0.cbPeripheral.identifier } == $1.map { $0.cbPeripheral.identifier } })
122 |             .share()
123 |             .eraseToAnyPublisher()
    |              |- error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
    |              `- note: add 'if #available' version check
124 |     }
125 |     public var readyToControlPeripherals: AnyPublisher<[PeripheralProtocol], Never> {
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:127:14: error: 'map' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
123 |             .eraseToAnyPublisher()
124 |     }
125 |     public var readyToControlPeripherals: AnyPublisher<[PeripheralProtocol], Never> {
    |                `- note: add '@available' attribute to enclosing property
126 |         internalPeripheralStorage
127 |             .map { $0.values
    |              |- error: 'map' is only available in macOS 10.15 or newer
    |              `- note: add 'if #available' version check
128 |                 .filter { $1 == .readyToControl }
129 |                 .map { $0.peripheral }
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:131:14: error: 'removeDuplicates(by:)' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
123 |             .eraseToAnyPublisher()
124 |     }
125 |     public var readyToControlPeripherals: AnyPublisher<[PeripheralProtocol], Never> {
    |                `- note: add '@available' attribute to enclosing property
126 |         internalPeripheralStorage
127 |             .map { $0.values
    :
129 |                 .map { $0.peripheral }
130 |             }
131 |             .removeDuplicates(by: { $0.map { $0.cbPeripheral.identifier } == $1.map { $0.cbPeripheral.identifier } })
    |              |- error: 'removeDuplicates(by:)' is only available in macOS 10.15 or newer
    |              `- note: add 'if #available' version check
132 |             .share()
133 |             .eraseToAnyPublisher()
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:132:14: error: 'share()' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
123 |             .eraseToAnyPublisher()
124 |     }
125 |     public var readyToControlPeripherals: AnyPublisher<[PeripheralProtocol], Never> {
    |                `- note: add '@available' attribute to enclosing property
126 |         internalPeripheralStorage
127 |             .map { $0.values
    :
130 |             }
131 |             .removeDuplicates(by: { $0.map { $0.cbPeripheral.identifier } == $1.map { $0.cbPeripheral.identifier } })
132 |             .share()
    |              |- error: 'share()' is only available in macOS 10.15 or newer
    |              `- note: add 'if #available' version check
133 |             .eraseToAnyPublisher()
134 |     }
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:133:14: error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
123 |             .eraseToAnyPublisher()
124 |     }
125 |     public var readyToControlPeripherals: AnyPublisher<[PeripheralProtocol], Never> {
    |                `- note: add '@available' attribute to enclosing property
126 |         internalPeripheralStorage
127 |             .map { $0.values
    :
131 |             .removeDuplicates(by: { $0.map { $0.cbPeripheral.identifier } == $1.map { $0.cbPeripheral.identifier } })
132 |             .share()
133 |             .eraseToAnyPublisher()
    |              |- error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
    |              `- note: add 'if #available' version check
134 |     }
135 |     public var allPeripherals: AnyPublisher<[UUID: (peripheral: PeripheralProtocol, peripheralState: PeripheralConnectionState)], Never> {
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:137:14: error: 'share()' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
133 |             .eraseToAnyPublisher()
134 |     }
135 |     public var allPeripherals: AnyPublisher<[UUID: (peripheral: PeripheralProtocol, peripheralState: PeripheralConnectionState)], Never> {
    |                `- note: add '@available' attribute to enclosing property
136 |         internalPeripheralStorage
137 |             .share()
    |              |- error: 'share()' is only available in macOS 10.15 or newer
    |              `- note: add 'if #available' version check
138 |         .eraseToAnyPublisher() }
139 |     private var internalPeripheralStorage: CurrentValueSubject<[UUID: (peripheral: PeripheralProtocol, peripheralState: PeripheralConnectionState)], Never> = .init([:])
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:138:10: error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
133 |             .eraseToAnyPublisher()
134 |     }
135 |     public var allPeripherals: AnyPublisher<[UUID: (peripheral: PeripheralProtocol, peripheralState: PeripheralConnectionState)], Never> {
    |                `- note: add '@available' attribute to enclosing property
136 |         internalPeripheralStorage
137 |             .share()
138 |         .eraseToAnyPublisher() }
    |          |- error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
    |          `- note: add 'if #available' version check
139 |     private var internalPeripheralStorage: CurrentValueSubject<[UUID: (peripheral: PeripheralProtocol, peripheralState: PeripheralConnectionState)], Never> = .init([:])
140 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:141:120: error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
139 |     private var internalPeripheralStorage: CurrentValueSubject<[UUID: (peripheral: PeripheralProtocol, peripheralState: PeripheralConnectionState)], Never> = .init([:])
140 |
141 |     public var autoReconnectionPipeline: AnyPublisher<AutoReconnectionStatus, Never> { autoReconnectionPipelineSubject.eraseToAnyPublisher() }
    |                |                                                                                                       |- error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
    |                |                                                                                                       `- note: add 'if #available' version check
    |                `- note: add '@available' attribute to enclosing property
142 |     private let autoReconnectionPipelineSubject = PassthroughSubject<AutoReconnectionStatus, Never>()
143 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:180:20: error: 'Just' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
175 |
176 |      */
177 |     public func connect(_ peripheral: PeripheralProtocol, options: [String : Any]?) -> AnyPublisher<PeripheralProtocol, GlacierError> {
    |                 `- note: add '@available' attribute to enclosing instance method
178 |         guard let cbCentralManager = cbCentralManager, case .unpaired = peripheral.pairingState else {
179 |             internalPeripheralStorage.value[peripheral.cbPeripheral.identifier] = (peripheral, .readyToControl)
180 |             return Just(peripheral).setFailureType(to: GlacierError.self).eraseToAnyPublisher()
    |                    |- error: 'Just' is only available in macOS 10.15 or newer
    |                    `- note: add 'if #available' version check
181 |         }
182 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:180:37: error: 'setFailureType(to:)' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
175 |
176 |      */
177 |     public func connect(_ peripheral: PeripheralProtocol, options: [String : Any]?) -> AnyPublisher<PeripheralProtocol, GlacierError> {
    |                 `- note: add '@available' attribute to enclosing instance method
178 |         guard let cbCentralManager = cbCentralManager, case .unpaired = peripheral.pairingState else {
179 |             internalPeripheralStorage.value[peripheral.cbPeripheral.identifier] = (peripheral, .readyToControl)
180 |             return Just(peripheral).setFailureType(to: GlacierError.self).eraseToAnyPublisher()
    |                                     |- error: 'setFailureType(to:)' is only available in macOS 10.15 or newer
    |                                     `- note: add 'if #available' version check
181 |         }
182 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:180:75: error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
175 |
176 |      */
177 |     public func connect(_ peripheral: PeripheralProtocol, options: [String : Any]?) -> AnyPublisher<PeripheralProtocol, GlacierError> {
    |                 `- note: add '@available' attribute to enclosing instance method
178 |         guard let cbCentralManager = cbCentralManager, case .unpaired = peripheral.pairingState else {
179 |             internalPeripheralStorage.value[peripheral.cbPeripheral.identifier] = (peripheral, .readyToControl)
180 |             return Just(peripheral).setFailureType(to: GlacierError.self).eraseToAnyPublisher()
    |                                                                           |- error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
    |                                                                           `- note: add 'if #available' version check
181 |         }
182 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:186:14: error: 'filter' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
175 |
176 |      */
177 |     public func connect(_ peripheral: PeripheralProtocol, options: [String : Any]?) -> AnyPublisher<PeripheralProtocol, GlacierError> {
    |                 `- note: add '@available' attribute to enclosing instance method
178 |         guard let cbCentralManager = cbCentralManager, case .unpaired = peripheral.pairingState else {
179 |             internalPeripheralStorage.value[peripheral.cbPeripheral.identifier] = (peripheral, .readyToControl)
    :
184 |
185 |         return peripheralPairingValidationStream
186 |             .filter { peripheral.cbPeripheral.identifier == $0.peripheralIdentifier }
    |              |- error: 'filter' is only available in macOS 10.15 or newer
    |              `- note: add 'if #available' version check
187 |             .flatMap { [weak self] validationResult in
188 |                 Future { promise in
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:187:14: error: 'flatMap(maxPublishers:_:)' is only available in macOS 11.0 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
175 |
176 |      */
177 |     public func connect(_ peripheral: PeripheralProtocol, options: [String : Any]?) -> AnyPublisher<PeripheralProtocol, GlacierError> {
    |                 `- note: add '@available' attribute to enclosing instance method
178 |         guard let cbCentralManager = cbCentralManager, case .unpaired = peripheral.pairingState else {
179 |             internalPeripheralStorage.value[peripheral.cbPeripheral.identifier] = (peripheral, .readyToControl)
    :
185 |         return peripheralPairingValidationStream
186 |             .filter { peripheral.cbPeripheral.identifier == $0.peripheralIdentifier }
187 |             .flatMap { [weak self] validationResult in
    |              |- error: 'flatMap(maxPublishers:_:)' is only available in macOS 11.0 or newer
    |              `- note: add 'if #available' version check
188 |                 Future { promise in
189 |                     guard let self = self else {
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:188:17: error: 'Future' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
175 |
176 |      */
177 |     public func connect(_ peripheral: PeripheralProtocol, options: [String : Any]?) -> AnyPublisher<PeripheralProtocol, GlacierError> {
    |                 `- note: add '@available' attribute to enclosing instance method
178 |         guard let cbCentralManager = cbCentralManager, case .unpaired = peripheral.pairingState else {
179 |             internalPeripheralStorage.value[peripheral.cbPeripheral.identifier] = (peripheral, .readyToControl)
    :
186 |             .filter { peripheral.cbPeripheral.identifier == $0.peripheralIdentifier }
187 |             .flatMap { [weak self] validationResult in
188 |                 Future { promise in
    |                 |- error: 'Future' is only available in macOS 10.15 or newer
    |                 `- note: add 'if #available' version check
189 |                     guard let self = self else {
190 |                         promise(.failure(GlacierError.unknown(nil)))
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:208:14: error: 'timeout(_:scheduler:options:customError:)' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
175 |
176 |      */
177 |     public func connect(_ peripheral: PeripheralProtocol, options: [String : Any]?) -> AnyPublisher<PeripheralProtocol, GlacierError> {
    |                 `- note: add '@available' attribute to enclosing instance method
178 |         guard let cbCentralManager = cbCentralManager, case .unpaired = peripheral.pairingState else {
179 |             internalPeripheralStorage.value[peripheral.cbPeripheral.identifier] = (peripheral, .readyToControl)
    :
206 |                 }
207 |             }
208 |             .timeout(interactorOptions.initialDiscoveryTimeout, scheduler: DispatchQueue.global()) { [internalPeripheralStorage] in
    |              |- error: 'timeout(_:scheduler:options:customError:)' is only available in macOS 10.15 or newer
    |              `- note: add 'if #available' version check
209 |                 internalPeripheralStorage.value.removeValue(forKey: peripheral.cbPeripheral.identifier)
210 |                 return GlacierError.peripheralInitialDiscoveryTimeout
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:212:14: error: 'first()' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
175 |
176 |      */
177 |     public func connect(_ peripheral: PeripheralProtocol, options: [String : Any]?) -> AnyPublisher<PeripheralProtocol, GlacierError> {
    |                 `- note: add '@available' attribute to enclosing instance method
178 |         guard let cbCentralManager = cbCentralManager, case .unpaired = peripheral.pairingState else {
179 |             internalPeripheralStorage.value[peripheral.cbPeripheral.identifier] = (peripheral, .readyToControl)
    :
210 |                 return GlacierError.peripheralInitialDiscoveryTimeout
211 |             }
212 |             .first()
    |              |- error: 'first()' is only available in macOS 10.15 or newer
    |              `- note: add 'if #available' version check
213 |             .eraseToAnyPublisher()
214 |     }
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:213:14: error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
175 |
176 |      */
177 |     public func connect(_ peripheral: PeripheralProtocol, options: [String : Any]?) -> AnyPublisher<PeripheralProtocol, GlacierError> {
    |                 `- note: add '@available' attribute to enclosing instance method
178 |         guard let cbCentralManager = cbCentralManager, case .unpaired = peripheral.pairingState else {
179 |             internalPeripheralStorage.value[peripheral.cbPeripheral.identifier] = (peripheral, .readyToControl)
    :
211 |             }
212 |             .first()
213 |             .eraseToAnyPublisher()
    |              |- error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
    |              `- note: add 'if #available' version check
214 |     }
215 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:241:57: error: 'AnyPublisher' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
238 |      After the check, specific peripheral goes under pairing validation with ping data (this part is handled within the `Peripheral` logic). Subscribing to that validation process will ping the internal `peripheralPairingValidationStream` in this class to inform the result back to the `connect` method defined above.
239 |      */
240 |     func reactPeripheralConnection(peripheral: CBPeripheralAbstraction) {
    |          `- note: add '@available' attribute to enclosing instance method
241 |         func advertisingAndReconnectingPeripherals() -> AnyPublisher<[PeripheralProtocol], Never> {
    |                                                         `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
242 |             internalPeripheralStorage
243 |                 .map { $0.values
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:243:18: error: 'map' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
238 |      After the check, specific peripheral goes under pairing validation with ping data (this part is handled within the `Peripheral` logic). Subscribing to that validation process will ping the internal `peripheralPairingValidationStream` in this class to inform the result back to the `connect` method defined above.
239 |      */
240 |     func reactPeripheralConnection(peripheral: CBPeripheralAbstraction) {
    |          `- note: add '@available' attribute to enclosing instance method
241 |         func advertisingAndReconnectingPeripherals() -> AnyPublisher<[PeripheralProtocol], Never> {
242 |             internalPeripheralStorage
243 |                 .map { $0.values
    |                  |- error: 'map' is only available in macOS 10.15 or newer
    |                  `- note: add 'if #available' version check
244 |                         .filter { ($1 == .advertising) || ($1 == .reconnecting) }
245 |                         .map { $0.peripheral }
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:247:18: error: 'removeDuplicates(by:)' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
238 |      After the check, specific peripheral goes under pairing validation with ping data (this part is handled within the `Peripheral` logic). Subscribing to that validation process will ping the internal `peripheralPairingValidationStream` in this class to inform the result back to the `connect` method defined above.
239 |      */
240 |     func reactPeripheralConnection(peripheral: CBPeripheralAbstraction) {
    |          `- note: add '@available' attribute to enclosing instance method
241 |         func advertisingAndReconnectingPeripherals() -> AnyPublisher<[PeripheralProtocol], Never> {
242 |             internalPeripheralStorage
    :
245 |                         .map { $0.peripheral }
246 |                 }
247 |                 .removeDuplicates(by: { $0.map { $0.cbPeripheral.identifier } == $1.map { $0.cbPeripheral.identifier } })
    |                  |- error: 'removeDuplicates(by:)' is only available in macOS 10.15 or newer
    |                  `- note: add 'if #available' version check
248 |                 .eraseToAnyPublisher()
249 |         }
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:248:18: error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
238 |      After the check, specific peripheral goes under pairing validation with ping data (this part is handled within the `Peripheral` logic). Subscribing to that validation process will ping the internal `peripheralPairingValidationStream` in this class to inform the result back to the `connect` method defined above.
239 |      */
240 |     func reactPeripheralConnection(peripheral: CBPeripheralAbstraction) {
    |          `- note: add '@available' attribute to enclosing instance method
241 |         func advertisingAndReconnectingPeripherals() -> AnyPublisher<[PeripheralProtocol], Never> {
242 |             internalPeripheralStorage
    :
246 |                 }
247 |                 .removeDuplicates(by: { $0.map { $0.cbPeripheral.identifier } == $1.map { $0.cbPeripheral.identifier } })
248 |                 .eraseToAnyPublisher()
    |                  |- error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
    |                  `- note: add 'if #available' version check
249 |         }
250 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:252:14: error: 'subscribe(on:options:)' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
238 |      After the check, specific peripheral goes under pairing validation with ping data (this part is handled within the `Peripheral` logic). Subscribing to that validation process will ping the internal `peripheralPairingValidationStream` in this class to inform the result back to the `connect` method defined above.
239 |      */
240 |     func reactPeripheralConnection(peripheral: CBPeripheralAbstraction) {
    |          `- note: add '@available' attribute to enclosing instance method
241 |         func advertisingAndReconnectingPeripherals() -> AnyPublisher<[PeripheralProtocol], Never> {
242 |             internalPeripheralStorage
    :
250 |
251 |         return advertisingAndReconnectingPeripherals()
252 |             .subscribe(on: executionQueue)
    |              |- error: 'subscribe(on:options:)' is only available in macOS 10.15 or newer
    |              `- note: add 'if #available' version check
253 |             .tryMap { advertisingAndReconnectingPeripherals -> PeripheralProtocol in
254 |                 guard let matchingPeripheral = advertisingAndReconnectingPeripherals
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:253:14: error: 'tryMap' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
238 |      After the check, specific peripheral goes under pairing validation with ping data (this part is handled within the `Peripheral` logic). Subscribing to that validation process will ping the internal `peripheralPairingValidationStream` in this class to inform the result back to the `connect` method defined above.
239 |      */
240 |     func reactPeripheralConnection(peripheral: CBPeripheralAbstraction) {
    |          `- note: add '@available' attribute to enclosing instance method
241 |         func advertisingAndReconnectingPeripherals() -> AnyPublisher<[PeripheralProtocol], Never> {
242 |             internalPeripheralStorage
    :
251 |         return advertisingAndReconnectingPeripherals()
252 |             .subscribe(on: executionQueue)
253 |             .tryMap { advertisingAndReconnectingPeripherals -> PeripheralProtocol in
    |              |- error: 'tryMap' is only available in macOS 10.15 or newer
    |              `- note: add 'if #available' version check
254 |                 guard let matchingPeripheral = advertisingAndReconnectingPeripherals
255 |                         .first(where: { $0.cbPeripheral.identifier == peripheral.identifier }) else {
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:260:14: error: 'flatMap(maxPublishers:_:)' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
238 |      After the check, specific peripheral goes under pairing validation with ping data (this part is handled within the `Peripheral` logic). Subscribing to that validation process will ping the internal `peripheralPairingValidationStream` in this class to inform the result back to the `connect` method defined above.
239 |      */
240 |     func reactPeripheralConnection(peripheral: CBPeripheralAbstraction) {
    |          `- note: add '@available' attribute to enclosing instance method
241 |         func advertisingAndReconnectingPeripherals() -> AnyPublisher<[PeripheralProtocol], Never> {
242 |             internalPeripheralStorage
    :
258 |                 return matchingPeripheral
259 |             }
260 |             .flatMap {
    |              |- error: 'flatMap(maxPublishers:_:)' is only available in macOS 10.15 or newer
    |              `- note: add 'if #available' version check
261 |                 $0.validatePairing()
262 |             }
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:263:14: error: 'first()' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
238 |      After the check, specific peripheral goes under pairing validation with ping data (this part is handled within the `Peripheral` logic). Subscribing to that validation process will ping the internal `peripheralPairingValidationStream` in this class to inform the result back to the `connect` method defined above.
239 |      */
240 |     func reactPeripheralConnection(peripheral: CBPeripheralAbstraction) {
    |          `- note: add '@available' attribute to enclosing instance method
241 |         func advertisingAndReconnectingPeripherals() -> AnyPublisher<[PeripheralProtocol], Never> {
242 |             internalPeripheralStorage
    :
261 |                 $0.validatePairing()
262 |             }
263 |             .first()
    |              |- error: 'first()' is only available in macOS 10.15 or newer
    |              `- note: add 'if #available' version check
264 |             .sink(receiveCompletion: { [weak self] in
265 |                 if case let .failure(error) = $0 {
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:264:14: error: 'sink(receiveCompletion:receiveValue:)' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
238 |      After the check, specific peripheral goes under pairing validation with ping data (this part is handled within the `Peripheral` logic). Subscribing to that validation process will ping the internal `peripheralPairingValidationStream` in this class to inform the result back to the `connect` method defined above.
239 |      */
240 |     func reactPeripheralConnection(peripheral: CBPeripheralAbstraction) {
    |          `- note: add '@available' attribute to enclosing instance method
241 |         func advertisingAndReconnectingPeripherals() -> AnyPublisher<[PeripheralProtocol], Never> {
242 |             internalPeripheralStorage
    :
262 |             }
263 |             .first()
264 |             .sink(receiveCompletion: { [weak self] in
    |              |- error: 'sink(receiveCompletion:receiveValue:)' is only available in macOS 10.15 or newer
    |              `- note: add 'if #available' version check
265 |                 if case let .failure(error) = $0 {
266 |                     self?.peripheralPairingValidationStream.send((peripheralIdentifier: peripheral.identifier, error: error))
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:268:30: warning: conformance of 'AnyPublisher<Output, Failure>' to 'Publisher' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
238 |      After the check, specific peripheral goes under pairing validation with ping data (this part is handled within the `Peripheral` logic). Subscribing to that validation process will ping the internal `peripheralPairingValidationStream` in this class to inform the result back to the `connect` method defined above.
239 |      */
240 |     func reactPeripheralConnection(peripheral: CBPeripheralAbstraction) {
    |          `- note: add '@available' attribute to enclosing instance method
241 |         func advertisingAndReconnectingPeripherals() -> AnyPublisher<[PeripheralProtocol], Never> {
242 |             internalPeripheralStorage
    :
266 |                     self?.peripheralPairingValidationStream.send((peripheralIdentifier: peripheral.identifier, error: error))
267 |                 }
268 |             }, receiveValue: { [weak executionQueue, internalPeripheralStorage, peripheralPairingValidationStream] readyToControlPeripheral in
    |                              |- warning: conformance of 'AnyPublisher<Output, Failure>' to 'Publisher' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
    |                              `- note: add 'if #available' version check
269 |                 executionQueue?.async(flags: .barrier) {
270 |                     internalPeripheralStorage.value[peripheral.identifier] = (readyToControlPeripheral, .readyToControl)
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:268:30: warning: conformance of 'AnyPublisher<Output, Failure>' to 'Publisher' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
238 |      After the check, specific peripheral goes under pairing validation with ping data (this part is handled within the `Peripheral` logic). Subscribing to that validation process will ping the internal `peripheralPairingValidationStream` in this class to inform the result back to the `connect` method defined above.
239 |      */
240 |     func reactPeripheralConnection(peripheral: CBPeripheralAbstraction) {
    |          `- note: add '@available' attribute to enclosing instance method
241 |         func advertisingAndReconnectingPeripherals() -> AnyPublisher<[PeripheralProtocol], Never> {
242 |             internalPeripheralStorage
    :
266 |                     self?.peripheralPairingValidationStream.send((peripheralIdentifier: peripheral.identifier, error: error))
267 |                 }
268 |             }, receiveValue: { [weak executionQueue, internalPeripheralStorage, peripheralPairingValidationStream] readyToControlPeripheral in
    |                              |- warning: conformance of 'AnyPublisher<Output, Failure>' to 'Publisher' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
    |                              `- note: add 'if #available' version check
269 |                 executionQueue?.async(flags: .barrier) {
270 |                     internalPeripheralStorage.value[peripheral.identifier] = (readyToControlPeripheral, .readyToControl)
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:268:30: warning: conformance of 'DispatchQueue' to 'Scheduler' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
238 |      After the check, specific peripheral goes under pairing validation with ping data (this part is handled within the `Peripheral` logic). Subscribing to that validation process will ping the internal `peripheralPairingValidationStream` in this class to inform the result back to the `connect` method defined above.
239 |      */
240 |     func reactPeripheralConnection(peripheral: CBPeripheralAbstraction) {
    |          `- note: add '@available' attribute to enclosing instance method
241 |         func advertisingAndReconnectingPeripherals() -> AnyPublisher<[PeripheralProtocol], Never> {
242 |             internalPeripheralStorage
    :
266 |                     self?.peripheralPairingValidationStream.send((peripheralIdentifier: peripheral.identifier, error: error))
267 |                 }
268 |             }, receiveValue: { [weak executionQueue, internalPeripheralStorage, peripheralPairingValidationStream] readyToControlPeripheral in
    |                              |- warning: conformance of 'DispatchQueue' to 'Scheduler' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
    |                              `- note: add 'if #available' version check
269 |                 executionQueue?.async(flags: .barrier) {
270 |                     internalPeripheralStorage.value[peripheral.identifier] = (readyToControlPeripheral, .readyToControl)
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:268:30: warning: conformance of 'AnyPublisher<Output, Failure>' to 'Publisher' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
238 |      After the check, specific peripheral goes under pairing validation with ping data (this part is handled within the `Peripheral` logic). Subscribing to that validation process will ping the internal `peripheralPairingValidationStream` in this class to inform the result back to the `connect` method defined above.
239 |      */
240 |     func reactPeripheralConnection(peripheral: CBPeripheralAbstraction) {
    |          `- note: add '@available' attribute to enclosing instance method
241 |         func advertisingAndReconnectingPeripherals() -> AnyPublisher<[PeripheralProtocol], Never> {
242 |             internalPeripheralStorage
    :
266 |                     self?.peripheralPairingValidationStream.send((peripheralIdentifier: peripheral.identifier, error: error))
267 |                 }
268 |             }, receiveValue: { [weak executionQueue, internalPeripheralStorage, peripheralPairingValidationStream] readyToControlPeripheral in
    |                              |- warning: conformance of 'AnyPublisher<Output, Failure>' to 'Publisher' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
    |                              `- note: add 'if #available' version check
269 |                 executionQueue?.async(flags: .barrier) {
270 |                     internalPeripheralStorage.value[peripheral.identifier] = (readyToControlPeripheral, .readyToControl)
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:268:30: warning: conformance of 'AnyPublisher<Output, Failure>' to 'Publisher' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
238 |      After the check, specific peripheral goes under pairing validation with ping data (this part is handled within the `Peripheral` logic). Subscribing to that validation process will ping the internal `peripheralPairingValidationStream` in this class to inform the result back to the `connect` method defined above.
239 |      */
240 |     func reactPeripheralConnection(peripheral: CBPeripheralAbstraction) {
    |          `- note: add '@available' attribute to enclosing instance method
241 |         func advertisingAndReconnectingPeripherals() -> AnyPublisher<[PeripheralProtocol], Never> {
242 |             internalPeripheralStorage
    :
266 |                     self?.peripheralPairingValidationStream.send((peripheralIdentifier: peripheral.identifier, error: error))
267 |                 }
268 |             }, receiveValue: { [weak executionQueue, internalPeripheralStorage, peripheralPairingValidationStream] readyToControlPeripheral in
    |                              |- warning: conformance of 'AnyPublisher<Output, Failure>' to 'Publisher' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
    |                              `- note: add 'if #available' version check
269 |                 executionQueue?.async(flags: .barrier) {
270 |                     internalPeripheralStorage.value[peripheral.identifier] = (readyToControlPeripheral, .readyToControl)
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:268:30: warning: conformance of 'DispatchQueue' to 'Scheduler' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
238 |      After the check, specific peripheral goes under pairing validation with ping data (this part is handled within the `Peripheral` logic). Subscribing to that validation process will ping the internal `peripheralPairingValidationStream` in this class to inform the result back to the `connect` method defined above.
239 |      */
240 |     func reactPeripheralConnection(peripheral: CBPeripheralAbstraction) {
    |          `- note: add '@available' attribute to enclosing instance method
241 |         func advertisingAndReconnectingPeripherals() -> AnyPublisher<[PeripheralProtocol], Never> {
242 |             internalPeripheralStorage
    :
266 |                     self?.peripheralPairingValidationStream.send((peripheralIdentifier: peripheral.identifier, error: error))
267 |                 }
268 |             }, receiveValue: { [weak executionQueue, internalPeripheralStorage, peripheralPairingValidationStream] readyToControlPeripheral in
    |                              |- warning: conformance of 'DispatchQueue' to 'Scheduler' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
    |                              `- note: add 'if #available' version check
269 |                 executionQueue?.async(flags: .barrier) {
270 |                     internalPeripheralStorage.value[peripheral.identifier] = (readyToControlPeripheral, .readyToControl)
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:268:30: warning: conformance of 'AnyPublisher<Output, Failure>' to 'Publisher' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
238 |      After the check, specific peripheral goes under pairing validation with ping data (this part is handled within the `Peripheral` logic). Subscribing to that validation process will ping the internal `peripheralPairingValidationStream` in this class to inform the result back to the `connect` method defined above.
239 |      */
240 |     func reactPeripheralConnection(peripheral: CBPeripheralAbstraction) {
    |          `- note: add '@available' attribute to enclosing instance method
241 |         func advertisingAndReconnectingPeripherals() -> AnyPublisher<[PeripheralProtocol], Never> {
242 |             internalPeripheralStorage
    :
266 |                     self?.peripheralPairingValidationStream.send((peripheralIdentifier: peripheral.identifier, error: error))
267 |                 }
268 |             }, receiveValue: { [weak executionQueue, internalPeripheralStorage, peripheralPairingValidationStream] readyToControlPeripheral in
    |                              |- warning: conformance of 'AnyPublisher<Output, Failure>' to 'Publisher' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
    |                              `- note: add 'if #available' version check
269 |                 executionQueue?.async(flags: .barrier) {
270 |                     internalPeripheralStorage.value[peripheral.identifier] = (readyToControlPeripheral, .readyToControl)
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:268:30: warning: conformance of 'AnyPublisher<Output, Failure>' to 'Publisher' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
238 |      After the check, specific peripheral goes under pairing validation with ping data (this part is handled within the `Peripheral` logic). Subscribing to that validation process will ping the internal `peripheralPairingValidationStream` in this class to inform the result back to the `connect` method defined above.
239 |      */
240 |     func reactPeripheralConnection(peripheral: CBPeripheralAbstraction) {
    |          `- note: add '@available' attribute to enclosing instance method
241 |         func advertisingAndReconnectingPeripherals() -> AnyPublisher<[PeripheralProtocol], Never> {
242 |             internalPeripheralStorage
    :
266 |                     self?.peripheralPairingValidationStream.send((peripheralIdentifier: peripheral.identifier, error: error))
267 |                 }
268 |             }, receiveValue: { [weak executionQueue, internalPeripheralStorage, peripheralPairingValidationStream] readyToControlPeripheral in
    |                              |- warning: conformance of 'AnyPublisher<Output, Failure>' to 'Publisher' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
    |                              `- note: add 'if #available' version check
269 |                 executionQueue?.async(flags: .barrier) {
270 |                     internalPeripheralStorage.value[peripheral.identifier] = (readyToControlPeripheral, .readyToControl)
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:268:30: warning: conformance of 'DispatchQueue' to 'Scheduler' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
238 |      After the check, specific peripheral goes under pairing validation with ping data (this part is handled within the `Peripheral` logic). Subscribing to that validation process will ping the internal `peripheralPairingValidationStream` in this class to inform the result back to the `connect` method defined above.
239 |      */
240 |     func reactPeripheralConnection(peripheral: CBPeripheralAbstraction) {
    |          `- note: add '@available' attribute to enclosing instance method
241 |         func advertisingAndReconnectingPeripherals() -> AnyPublisher<[PeripheralProtocol], Never> {
242 |             internalPeripheralStorage
    :
266 |                     self?.peripheralPairingValidationStream.send((peripheralIdentifier: peripheral.identifier, error: error))
267 |                 }
268 |             }, receiveValue: { [weak executionQueue, internalPeripheralStorage, peripheralPairingValidationStream] readyToControlPeripheral in
    |                              |- warning: conformance of 'DispatchQueue' to 'Scheduler' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
    |                              `- note: add 'if #available' version check
269 |                 executionQueue?.async(flags: .barrier) {
270 |                     internalPeripheralStorage.value[peripheral.identifier] = (readyToControlPeripheral, .readyToControl)
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:268:30: warning: conformance of 'AnyPublisher<Output, Failure>' to 'Publisher' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
238 |      After the check, specific peripheral goes under pairing validation with ping data (this part is handled within the `Peripheral` logic). Subscribing to that validation process will ping the internal `peripheralPairingValidationStream` in this class to inform the result back to the `connect` method defined above.
239 |      */
240 |     func reactPeripheralConnection(peripheral: CBPeripheralAbstraction) {
    |          `- note: add '@available' attribute to enclosing instance method
241 |         func advertisingAndReconnectingPeripherals() -> AnyPublisher<[PeripheralProtocol], Never> {
242 |             internalPeripheralStorage
    :
266 |                     self?.peripheralPairingValidationStream.send((peripheralIdentifier: peripheral.identifier, error: error))
267 |                 }
268 |             }, receiveValue: { [weak executionQueue, internalPeripheralStorage, peripheralPairingValidationStream] readyToControlPeripheral in
    |                              |- warning: conformance of 'AnyPublisher<Output, Failure>' to 'Publisher' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
    |                              `- note: add 'if #available' version check
269 |                 executionQueue?.async(flags: .barrier) {
270 |                     internalPeripheralStorage.value[peripheral.identifier] = (readyToControlPeripheral, .readyToControl)
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:268:30: warning: conformance of 'DispatchQueue' to 'Scheduler' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
238 |      After the check, specific peripheral goes under pairing validation with ping data (this part is handled within the `Peripheral` logic). Subscribing to that validation process will ping the internal `peripheralPairingValidationStream` in this class to inform the result back to the `connect` method defined above.
239 |      */
240 |     func reactPeripheralConnection(peripheral: CBPeripheralAbstraction) {
    |          `- note: add '@available' attribute to enclosing instance method
241 |         func advertisingAndReconnectingPeripherals() -> AnyPublisher<[PeripheralProtocol], Never> {
242 |             internalPeripheralStorage
    :
266 |                     self?.peripheralPairingValidationStream.send((peripheralIdentifier: peripheral.identifier, error: error))
267 |                 }
268 |             }, receiveValue: { [weak executionQueue, internalPeripheralStorage, peripheralPairingValidationStream] readyToControlPeripheral in
    |                              |- warning: conformance of 'DispatchQueue' to 'Scheduler' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
    |                              `- note: add 'if #available' version check
269 |                 executionQueue?.async(flags: .barrier) {
270 |                     internalPeripheralStorage.value[peripheral.identifier] = (readyToControlPeripheral, .readyToControl)
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:268:30: warning: conformance of 'AnyPublisher<Output, Failure>' to 'Publisher' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
238 |      After the check, specific peripheral goes under pairing validation with ping data (this part is handled within the `Peripheral` logic). Subscribing to that validation process will ping the internal `peripheralPairingValidationStream` in this class to inform the result back to the `connect` method defined above.
239 |      */
240 |     func reactPeripheralConnection(peripheral: CBPeripheralAbstraction) {
    |          `- note: add '@available' attribute to enclosing instance method
241 |         func advertisingAndReconnectingPeripherals() -> AnyPublisher<[PeripheralProtocol], Never> {
242 |             internalPeripheralStorage
    :
266 |                     self?.peripheralPairingValidationStream.send((peripheralIdentifier: peripheral.identifier, error: error))
267 |                 }
268 |             }, receiveValue: { [weak executionQueue, internalPeripheralStorage, peripheralPairingValidationStream] readyToControlPeripheral in
    |                              |- warning: conformance of 'AnyPublisher<Output, Failure>' to 'Publisher' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
    |                              `- note: add 'if #available' version check
269 |                 executionQueue?.async(flags: .barrier) {
270 |                     internalPeripheralStorage.value[peripheral.identifier] = (readyToControlPeripheral, .readyToControl)
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:268:30: warning: conformance of 'DispatchQueue' to 'Scheduler' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
238 |      After the check, specific peripheral goes under pairing validation with ping data (this part is handled within the `Peripheral` logic). Subscribing to that validation process will ping the internal `peripheralPairingValidationStream` in this class to inform the result back to the `connect` method defined above.
239 |      */
240 |     func reactPeripheralConnection(peripheral: CBPeripheralAbstraction) {
    |          `- note: add '@available' attribute to enclosing instance method
241 |         func advertisingAndReconnectingPeripherals() -> AnyPublisher<[PeripheralProtocol], Never> {
242 |             internalPeripheralStorage
    :
266 |                     self?.peripheralPairingValidationStream.send((peripheralIdentifier: peripheral.identifier, error: error))
267 |                 }
268 |             }, receiveValue: { [weak executionQueue, internalPeripheralStorage, peripheralPairingValidationStream] readyToControlPeripheral in
    |                              |- warning: conformance of 'DispatchQueue' to 'Scheduler' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
    |                              `- note: add 'if #available' version check
269 |                 executionQueue?.async(flags: .barrier) {
270 |                     internalPeripheralStorage.value[peripheral.identifier] = (readyToControlPeripheral, .readyToControl)
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:274:16: error: 'store(in:)' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
238 |      After the check, specific peripheral goes under pairing validation with ping data (this part is handled within the `Peripheral` logic). Subscribing to that validation process will ping the internal `peripheralPairingValidationStream` in this class to inform the result back to the `connect` method defined above.
239 |      */
240 |     func reactPeripheralConnection(peripheral: CBPeripheralAbstraction) {
    |          `- note: add '@available' attribute to enclosing instance method
241 |         func advertisingAndReconnectingPeripherals() -> AnyPublisher<[PeripheralProtocol], Never> {
242 |             internalPeripheralStorage
    :
272 |                     peripheralPairingValidationStream.send((peripheralIdentifier: peripheral.identifier, error: nil))
273 |                 }
274 |             }).store(in: &subscriptions)
    |                |- error: 'store(in:)' is only available in macOS 10.15 or newer
    |                `- note: add 'if #available' version check
275 |     }
276 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:291:33: error: 'AnyPublisher' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
282 |     }
283 |
284 |     func reactPeripheralDisconnection(peripheral: CBPeripheralAbstraction, error: Error?) {
    |          `- note: add '@available' attribute to enclosing instance method
285 |         func attemptReconnection(to disconnectingPeripheral: PeripheralProtocol) {
286 |             executionQueue.async(flags: .barrier) { [weak self] in
    :
289 |             disconnectingPeripheral.resetPairingState()
290 |
291 |             func reconnect() -> AnyPublisher<PeripheralProtocol, GlacierError> {
    |                                 `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
292 |                 connect(disconnectingPeripheral, options: [:])
293 |                     .catch({ _ in reconnect() })
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:293:22: error: 'catch' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
282 |     }
283 |
284 |     func reactPeripheralDisconnection(peripheral: CBPeripheralAbstraction, error: Error?) {
    |          `- note: add '@available' attribute to enclosing instance method
285 |         func attemptReconnection(to disconnectingPeripheral: PeripheralProtocol) {
286 |             executionQueue.async(flags: .barrier) { [weak self] in
    :
291 |             func reconnect() -> AnyPublisher<PeripheralProtocol, GlacierError> {
292 |                 connect(disconnectingPeripheral, options: [:])
293 |                     .catch({ _ in reconnect() })
    |                      |- error: 'catch' is only available in macOS 10.15 or newer
    |                      `- note: add 'if #available' version check
294 |                     .eraseToAnyPublisher()
295 |             }
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:294:22: error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
282 |     }
283 |
284 |     func reactPeripheralDisconnection(peripheral: CBPeripheralAbstraction, error: Error?) {
    |          `- note: add '@available' attribute to enclosing instance method
285 |         func attemptReconnection(to disconnectingPeripheral: PeripheralProtocol) {
286 |             executionQueue.async(flags: .barrier) { [weak self] in
    :
292 |                 connect(disconnectingPeripheral, options: [:])
293 |                     .catch({ _ in reconnect() })
294 |                     .eraseToAnyPublisher()
    |                      |- error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
    |                      `- note: add 'if #available' version check
295 |             }
296 |
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:299:18: error: 'subscribe(on:options:)' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
282 |     }
283 |
284 |     func reactPeripheralDisconnection(peripheral: CBPeripheralAbstraction, error: Error?) {
    |          `- note: add '@available' attribute to enclosing instance method
285 |         func attemptReconnection(to disconnectingPeripheral: PeripheralProtocol) {
286 |             executionQueue.async(flags: .barrier) { [weak self] in
    :
297 |             autoReconnectCancellables[disconnectingPeripheral.cbPeripheral.identifier] =
298 |             reconnect()
299 |                 .subscribe(on: executionQueue)
    |                  |- error: 'subscribe(on:options:)' is only available in macOS 10.15 or newer
    |                  `- note: add 'if #available' version check
300 |                 .timeout(interactorOptions.autoReconnectTimeout, scheduler: DispatchQueue.global()) {
301 |                     return GlacierError.peripheralAutoReconnectTimeout
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:300:18: error: 'timeout(_:scheduler:options:customError:)' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
282 |     }
283 |
284 |     func reactPeripheralDisconnection(peripheral: CBPeripheralAbstraction, error: Error?) {
    |          `- note: add '@available' attribute to enclosing instance method
285 |         func attemptReconnection(to disconnectingPeripheral: PeripheralProtocol) {
286 |             executionQueue.async(flags: .barrier) { [weak self] in
    :
298 |             reconnect()
299 |                 .subscribe(on: executionQueue)
300 |                 .timeout(interactorOptions.autoReconnectTimeout, scheduler: DispatchQueue.global()) {
    |                  |- error: 'timeout(_:scheduler:options:customError:)' is only available in macOS 10.15 or newer
    |                  `- note: add 'if #available' version check
301 |                     return GlacierError.peripheralAutoReconnectTimeout
302 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:303:18: error: 'first()' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
282 |     }
283 |
284 |     func reactPeripheralDisconnection(peripheral: CBPeripheralAbstraction, error: Error?) {
    |          `- note: add '@available' attribute to enclosing instance method
285 |         func attemptReconnection(to disconnectingPeripheral: PeripheralProtocol) {
286 |             executionQueue.async(flags: .barrier) { [weak self] in
    :
301 |                     return GlacierError.peripheralAutoReconnectTimeout
302 |                 }
303 |                 .first()
    |                  |- error: 'first()' is only available in macOS 10.15 or newer
    |                  `- note: add 'if #available' version check
304 |                 .handleEvents(receiveSubscription: { [weak self] _ in
305 |                     self?.autoReconnectionPipelineSubject.send(.init(
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:304:18: error: 'handleEvents(receiveSubscription:receiveOutput:receiveCompletion:receiveCancel:receiveRequest:)' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
282 |     }
283 |
284 |     func reactPeripheralDisconnection(peripheral: CBPeripheralAbstraction, error: Error?) {
    |          `- note: add '@available' attribute to enclosing instance method
285 |         func attemptReconnection(to disconnectingPeripheral: PeripheralProtocol) {
286 |             executionQueue.async(flags: .barrier) { [weak self] in
    :
302 |                 }
303 |                 .first()
304 |                 .handleEvents(receiveSubscription: { [weak self] _ in
    |                  |- error: 'handleEvents(receiveSubscription:receiveOutput:receiveCompletion:receiveCancel:receiveRequest:)' is only available in macOS 10.15 or newer
    |                  `- note: add 'if #available' version check
305 |                     self?.autoReconnectionPipelineSubject.send(.init(
306 |                         identifier: disconnectingPeripheral.cbPeripheral.identifier,
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:309:18: error: 'sink(receiveCompletion:receiveValue:)' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
282 |     }
283 |
284 |     func reactPeripheralDisconnection(peripheral: CBPeripheralAbstraction, error: Error?) {
    |          `- note: add '@available' attribute to enclosing instance method
285 |         func attemptReconnection(to disconnectingPeripheral: PeripheralProtocol) {
286 |             executionQueue.async(flags: .barrier) { [weak self] in
    :
307 |                         state: .reconnecting))
308 |                 })
309 |                 .sink(receiveCompletion: { [weak self] in
    |                  |- error: 'sink(receiveCompletion:receiveValue:)' is only available in macOS 10.15 or newer
    |                  `- note: add 'if #available' version check
310 |                     if case .failure = $0 {
311 |                         // Failed to reconnect within given timeout range
/Users/admin/builder/spi-builder-workspace/Sources/glacier/CentralBluetoothInteractor.swift:338:64: error: 'encryptionTimedOut' is only available in macOS 10.15 or newer
 32 | private let BluetoothExecutionQueueLabel = "glacier.execution"
 33 |
 34 | public class CentralBluetoothInteractor: NSObject, CentralBluetoothInteractable {
    |              `- note: add '@available' attribute to enclosing class
 35 |     private let executionQueue: DispatchQueue
 36 |     private let peripheralInitialCommunication: PeripheralInitialCommunicationProtocol?
    :
282 |     }
283 |
284 |     func reactPeripheralDisconnection(peripheral: CBPeripheralAbstraction, error: Error?) {
    |          `- note: add '@available' attribute to enclosing instance method
285 |         func attemptReconnection(to disconnectingPeripheral: PeripheralProtocol) {
286 |             executionQueue.async(flags: .barrier) { [weak self] in
    :
336 |
337 |         if let error = error as? CBError,
338 |            (CBError.connectionTimeout == error.code || CBError.encryptionTimedOut == error.code),
    |                                                                |- error: 'encryptionTimedOut' is only available in macOS 10.15 or newer
    |                                                                `- note: add 'if #available' version check
339 |            let disconnectingPeripheral = internalPeripheralStorage.value[peripheral.identifier]?.peripheral,
340 |            disconnectingPeripheral.cbPeripheral.peripheralState == .disconnected ||
BUILD FAILURE 6.3 macosSpm