The Swift Package Index logo.Swift Package Index

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

Build Information

Successful build of CoreBluetoothMock, reference 0.18.0 (500b23), with Swift 6.0 for macOS (SPM) on 4 Nov 2024 08:38:59 UTC.

Swift 6 data race errors: 10

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.1.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete

Build Log

========================================
RunAll
========================================
Builder version: 4.56.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/NordicSemiconductor/IOS-CoreBluetooth-Mock.git
Reference: 0.18.0
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/NordicSemiconductor/IOS-CoreBluetooth-Mock
 * tag               0.18.0     -> FETCH_HEAD
HEAD is now at 500b238 Merge pull request #108 from NordicSemiconductor/launchscreen
Cloned https://github.com/NordicSemiconductor/IOS-CoreBluetooth-Mock.git
Revision (git rev-parse @):
500b23852e7d46b63ef8e2a826c2b6f3f6ed50ef
SUCCESS checkout https://github.com/NordicSemiconductor/IOS-CoreBluetooth-Mock.git at 0.18.0
Fetching https://github.com/apple/swift-docc-symbolkit
Fetching https://github.com/apple/swift-docc-plugin
[1/2038] Fetching swift-docc-plugin
[226/5191] Fetching swift-docc-plugin, swift-docc-symbolkit
Fetched https://github.com/apple/swift-docc-plugin from cache (1.34s)
Fetched https://github.com/apple/swift-docc-symbolkit from cache (1.34s)
Computing version for https://github.com/apple/swift-docc-plugin
Computed https://github.com/apple/swift-docc-plugin at 1.1.0 (0.69s)
Computing version for https://github.com/apple/swift-docc-symbolkit
Computed https://github.com/apple/swift-docc-symbolkit at 1.0.0 (0.70s)
Creating working copy for https://github.com/apple/swift-docc-plugin
Working copy of https://github.com/apple/swift-docc-plugin resolved at 1.1.0
Creating working copy for https://github.com/apple/swift-docc-symbolkit
Working copy of https://github.com/apple/swift-docc-symbolkit resolved at 1.0.0
========================================
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",
  "dependencies": [
    {
      "identity": "ios-corebluetooth-mock",
      "name": "CoreBluetoothMock",
      "url": "https://github.com/NordicSemiconductor/IOS-CoreBluetooth-Mock.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/IOS-CoreBluetooth-Mock",
      "dependencies": [
      ]
    }
  ]
}
Fetching https://github.com/NordicSemiconductor/IOS-CoreBluetooth-Mock.git
[1/5079] Fetching ios-corebluetooth-mock
Fetched https://github.com/NordicSemiconductor/IOS-CoreBluetooth-Mock.git from cache (1.36s)
Creating working copy for https://github.com/NordicSemiconductor/IOS-CoreBluetooth-Mock.git
Working copy of https://github.com/NordicSemiconductor/IOS-CoreBluetooth-Mock.git resolved at 0.18.0 (500b238)
warning: '.resolve-product-dependencies': dependency 'ios-corebluetooth-mock' is not used by any target
Found 0 product dependencies
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.0
Building package at path:  $PWD
https://github.com/NordicSemiconductor/IOS-CoreBluetooth-Mock.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.1.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete
[1/1] Compiling plugin Swift-DocC
[2/2] Compiling plugin Swift-DocC Preview
Building for debugging...
[2/4] Write sources
[3/4] Write swift-version--7754E27361AE5C74.txt
[5/19] Compiling CoreBluetoothMock CBMPeripheralSpec.swift
[6/20] Compiling CoreBluetoothMock CBMPeripheralSpecDelegate.swift
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMPeripheralSpecDelegate.swift:283:20: warning: 'peripheral(_:didReceiveIncludedServiceDiscoveryRequest:for:)' is deprecated: Use similar method with CBMServiceMock parameter type.
281 |                     for service: CBMServiceMock)
282 |         -> Result<Void, Error> {
283 |             return peripheral(p, didReceiveIncludedServiceDiscoveryRequest: serviceUUIDs, for: service as CBMService)
    |                    `- warning: 'peripheral(_:didReceiveIncludedServiceDiscoveryRequest:for:)' is deprecated: Use similar method with CBMServiceMock parameter type.
284 |     }
285 |
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMPeripheralSpecDelegate.swift:297:20: warning: 'peripheral(_:didReceiveCharacteristicsDiscoveryRequest:for:)' is deprecated: Use similar method with CBMServiceMock parameter type.
295 |                     for service: CBMServiceMock)
296 |         -> Result<Void, Error> {
297 |             return peripheral(p, didReceiveCharacteristicsDiscoveryRequest: characteristicUUIDs, for: service as CBMService)
    |                    `- warning: 'peripheral(_:didReceiveCharacteristicsDiscoveryRequest:for:)' is deprecated: Use similar method with CBMServiceMock parameter type.
298 |     }
299 |
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMPeripheralSpecDelegate.swift:309:20: warning: 'peripheral(_:didReceiveDescriptorsDiscoveryRequestFor:)' is deprecated: Use similar method with CBMCharacteristicMock parameter type.
307 |                     didReceiveDescriptorsDiscoveryRequestFor characteristic: CBMCharacteristicMock)
308 |         -> Result<Void, Error> {
309 |             return peripheral(p, didReceiveDescriptorsDiscoveryRequestFor: characteristic as CBMCharacteristic)
    |                    `- warning: 'peripheral(_:didReceiveDescriptorsDiscoveryRequestFor:)' is deprecated: Use similar method with CBMCharacteristicMock parameter type.
310 |     }
311 |
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMPeripheralSpecDelegate.swift:321:20: warning: 'peripheral(_:didReceiveReadRequestFor:)' is deprecated: Use similar method with CBMCharacteristicMock parameter type.
319 |                     didReceiveReadRequestFor characteristic: CBMCharacteristicMock)
320 |         -> Result<Data, Error> {
321 |             return peripheral(p, didReceiveReadRequestFor: characteristic as CBMCharacteristic)
    |                    `- warning: 'peripheral(_:didReceiveReadRequestFor:)' is deprecated: Use similar method with CBMCharacteristicMock parameter type.
322 |     }
323 |
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMPeripheralSpecDelegate.swift:333:20: warning: 'peripheral(_:didReceiveReadRequestFor:)' is deprecated: Use similar method with CBMDescriptorMock parameter type.
331 |                     didReceiveReadRequestFor descriptor: CBMDescriptorMock)
332 |         -> Result<Data, Error> {
333 |             return peripheral(p, didReceiveReadRequestFor: descriptor as CBMDescriptor)
    |                    `- warning: 'peripheral(_:didReceiveReadRequestFor:)' is deprecated: Use similar method with CBMDescriptorMock parameter type.
334 |     }
335 |
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMPeripheralSpecDelegate.swift:347:20: warning: 'peripheral(_:didReceiveWriteRequestFor:data:)' is deprecated: Use similar method with CBMCharacteristicMock parameter type.
345 |                     data: Data)
346 |         -> Result<Void, Error> {
347 |             return peripheral(p, didReceiveWriteRequestFor: characteristic as CBMCharacteristic, data: data)
    |                    `- warning: 'peripheral(_:didReceiveWriteRequestFor:data:)' is deprecated: Use similar method with CBMCharacteristicMock parameter type.
348 |     }
349 |
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMPeripheralSpecDelegate.swift:359:9: warning: 'peripheral(_:didReceiveWriteCommandFor:data:)' is deprecated: Use similar method with CBMCharacteristicMock parameter type.
357 |                     didReceiveWriteCommandFor characteristic: CBMCharacteristicMock,
358 |                     data: Data) {
359 |         peripheral(p, didReceiveWriteCommandFor: characteristic as CBMCharacteristic, data: data)
    |         `- warning: 'peripheral(_:didReceiveWriteCommandFor:data:)' is deprecated: Use similar method with CBMCharacteristicMock parameter type.
360 |     }
361 |
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMPeripheralSpecDelegate.swift:373:20: warning: 'peripheral(_:didReceiveWriteRequestFor:data:)' is deprecated: Use similar method with CBMDescriptorMock parameter type.
371 |                     data: Data)
372 |         -> Result<Void, Error> {
373 |             return peripheral(p, didReceiveWriteRequestFor: descriptor as CBMDescriptor, data: data)
    |                    `- warning: 'peripheral(_:didReceiveWriteRequestFor:data:)' is deprecated: Use similar method with CBMDescriptorMock parameter type.
374 |     }
375 |
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMPeripheralSpecDelegate.swift:396:20: warning: 'peripheral(_:didReceiveSetNotifyRequest:for:)' is deprecated: Use similar method with CBMCharacteristicMock parameter type.
394 |                     for characteristic: CBMCharacteristicMock)
395 |         -> Result<Void, Error> {
396 |             return peripheral(p, didReceiveSetNotifyRequest: enabled, for: characteristic as CBMCharacteristic)
    |                    `- warning: 'peripheral(_:didReceiveSetNotifyRequest:for:)' is deprecated: Use similar method with CBMCharacteristicMock parameter type.
397 |     }
398 |
[7/20] Compiling CoreBluetoothMock CBMPeripheralDelegateProxy.swift
[8/20] Compiling CoreBluetoothMock CBMPeripheralPreview.swift
[9/20] Compiling CoreBluetoothMock CBMPeripheralDelegate.swift
[10/20] Compiling CoreBluetoothMock CBMCentralManagerNative.swift
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerNative.swift:270:46: warning: capture of 'self' with non-sendable type 'CBMCentralManagerNative' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 35 | ///
 36 | /// This manager can only interact with physical Bluetooth LE devices.
 37 | public class CBMCentralManagerNative: CBMCentralManager {
    |              `- note: class 'CBMCentralManagerNative' does not conform to the 'Sendable' protocol
 38 |     var observation: NSKeyValueObservation?
 39 |     @objc dynamic private var manager: CBCentralManager!
    :
268 |     private func addManagerObserver() {
269 |         observation = observe(\.manager?.isScanning, options: [.old, .new]) { _, change in
270 |             change.newValue?.flatMap { [weak self] new in
    |                                              `- warning: capture of 'self' with non-sendable type 'CBMCentralManagerNative' in a `@Sendable` closure; this is an error in the Swift 6 language mode
271 |                 self?.isScanning = new
272 |             }
[11/20] Compiling CoreBluetoothMock CBMManagerTypes.swift
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerNative.swift:270:46: warning: capture of 'self' with non-sendable type 'CBMCentralManagerNative' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 35 | ///
 36 | /// This manager can only interact with physical Bluetooth LE devices.
 37 | public class CBMCentralManagerNative: CBMCentralManager {
    |              `- note: class 'CBMCentralManagerNative' does not conform to the 'Sendable' protocol
 38 |     var observation: NSKeyValueObservation?
 39 |     @objc dynamic private var manager: CBCentralManager!
    :
268 |     private func addManagerObserver() {
269 |         observation = observe(\.manager?.isScanning, options: [.old, .new]) { _, change in
270 |             change.newValue?.flatMap { [weak self] new in
    |                                              `- warning: capture of 'self' with non-sendable type 'CBMCentralManagerNative' in a `@Sendable` closure; this is an error in the Swift 6 language mode
271 |                 self?.isScanning = new
272 |             }
[12/20] Emitting module CoreBluetoothMock
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:454:17: warning: let 'uninitializedPeripheral' is not concurrency-safe because non-'Sendable' type 'CBMPeripheralUninitialized' may have shared mutable state; this is an error in the Swift 6 language mode
452 | // MARK: - Mocking uninitialized objects
453 |
454 | fileprivate let uninitializedPeripheral   = CBMPeripheralUninitialized()
    |                 |- warning: let 'uninitializedPeripheral' is not concurrency-safe because non-'Sendable' type 'CBMPeripheralUninitialized' may have shared mutable state; this is an error in the Swift 6 language mode
    |                 |- note: annotate 'uninitializedPeripheral' with '@MainActor' if property should only be accessed from the main actor
    |                 `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
455 | fileprivate let uninitializedService        = CBMServiceUninitialized()
456 | fileprivate let uninitializedCharacteristic = CBMCharacteristicUninitialized()
457 |
458 | fileprivate class CBMPeripheralUninitialized: CBMPeripheral, CustomDebugStringConvertible {
    |                   `- note: class 'CBMPeripheralUninitialized' does not conform to the 'Sendable' protocol
459 |     let debugDescription: String = "<uninitialized>"
460 |
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:455:17: warning: let 'uninitializedService' is not concurrency-safe because non-'Sendable' type 'CBMServiceUninitialized' may have shared mutable state; this is an error in the Swift 6 language mode
453 |
454 | fileprivate let uninitializedPeripheral   = CBMPeripheralUninitialized()
455 | fileprivate let uninitializedService        = CBMServiceUninitialized()
    |                 |- warning: let 'uninitializedService' is not concurrency-safe because non-'Sendable' type 'CBMServiceUninitialized' may have shared mutable state; this is an error in the Swift 6 language mode
    |                 |- note: annotate 'uninitializedService' with '@MainActor' if property should only be accessed from the main actor
    |                 `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
456 | fileprivate let uninitializedCharacteristic = CBMCharacteristicUninitialized()
457 |
    :
527 | }
528 |
529 | fileprivate class CBMServiceUninitialized: CBMService {
    |                   `- note: class 'CBMServiceUninitialized' does not conform to the 'Sendable' protocol
530 |     override var debugDescription: String { return "<uninitialized>" }
531 |     override var uuid: CBMUUID { uninitialized() }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:456:17: warning: let 'uninitializedCharacteristic' is not concurrency-safe because non-'Sendable' type 'CBMCharacteristicUninitialized' may have shared mutable state; this is an error in the Swift 6 language mode
454 | fileprivate let uninitializedPeripheral   = CBMPeripheralUninitialized()
455 | fileprivate let uninitializedService        = CBMServiceUninitialized()
456 | fileprivate let uninitializedCharacteristic = CBMCharacteristicUninitialized()
    |                 |- warning: let 'uninitializedCharacteristic' is not concurrency-safe because non-'Sendable' type 'CBMCharacteristicUninitialized' may have shared mutable state; this is an error in the Swift 6 language mode
    |                 |- note: annotate 'uninitializedCharacteristic' with '@MainActor' if property should only be accessed from the main actor
    |                 `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
457 |
458 | fileprivate class CBMPeripheralUninitialized: CBMPeripheral, CustomDebugStringConvertible {
    :
545 | }
546 |
547 | fileprivate class CBMCharacteristicUninitialized: CBMCharacteristic {
    |                   `- note: class 'CBMCharacteristicUninitialized' does not conform to the 'Sendable' protocol
548 |     override var debugDescription: String { return "<uninitialized>" }
549 |     override var uuid: CBMUUID { uninitialized() }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:45:24: warning: static property 'managers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
  43 |
  44 |     /// A list of all mock managers instantiated by user.
  45 |     private static var managers: [WeakRef<CBMCentralManagerMock>] = []
     |                        |- warning: static property 'managers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                        |- note: convert 'managers' to a 'let' constant to make 'Sendable' shared state immutable
     |                        |- note: annotate 'managers' with '@MainActor' if property should only be accessed from the main actor
     |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
  46 |     /// A list of peripherals known to the system.
  47 |     private static var peripherals: [CBMPeripheralSpec] = [] {
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:47:24: warning: static property 'peripherals' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
  45 |     private static var managers: [WeakRef<CBMCentralManagerMock>] = []
  46 |     /// A list of peripherals known to the system.
  47 |     private static var peripherals: [CBMPeripheralSpec] = [] {
     |                        |- warning: static property 'peripherals' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                        |- note: convert 'peripherals' to a 'let' constant to make 'Sendable' shared state immutable
     |                        |- note: annotate 'peripherals' with '@MainActor' if property should only be accessed from the main actor
     |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
  48 |         didSet {
  49 |             stopAdvertising()
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:56:24: warning: static property 'previewPeripherals' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
  54 |     ///
  55 |     /// Registered items can be accessed using any ``CBMCentralManagerMock``.
  56 |     private static var previewPeripherals: Set<CBMPeripheralPreview> = Set()
     |                        |- warning: static property 'previewPeripherals' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                        |- note: convert 'previewPeripherals' to a 'let' constant to make 'Sendable' shared state immutable
     |                        |- note: annotate 'previewPeripherals' with '@MainActor' if property should only be accessed from the main actor
     |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
  57 |     /// A map of all current advertisements of all simulated peripherals.
  58 |     private static var advertisementTimers: [CBMAdvertisementConfig : Timer] = [:]
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:58:24: warning: static property 'advertisementTimers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
  56 |     private static var previewPeripherals: Set<CBMPeripheralPreview> = Set()
  57 |     /// A map of all current advertisements of all simulated peripherals.
  58 |     private static var advertisementTimers: [CBMAdvertisementConfig : Timer] = [:]
     |                        |- warning: static property 'advertisementTimers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                        |- note: convert 'advertisementTimers' to a 'let' constant to make 'Sendable' shared state immutable
     |                        |- note: annotate 'advertisementTimers' with '@MainActor' if property should only be accessed from the main actor
     |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
  59 |     /// A mutex queue for managing managers.
  60 |     private static let mutex: DispatchQueue = DispatchQueue(label: "Mutex")
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:64:38: warning: static property 'bluetoothAuthorization' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
  62 |     ///
  63 |     /// As `CBManagerAuthorization` was added in iOS 13, the raw value is kept.
  64 |     internal private(set) static var bluetoothAuthorization: Int? {
     |                                      |- warning: static property 'bluetoothAuthorization' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                                      |- note: convert 'bluetoothAuthorization' to a 'let' constant to make 'Sendable' shared state immutable
     |                                      |- note: annotate 'bluetoothAuthorization' with '@MainActor' if property should only be accessed from the main actor
     |                                      `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
  65 |         didSet {
  66 |             notifyManagers()
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:70:41: warning: static property 'managerState' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
  68 |     }
  69 |     /// The global state of the Bluetooth adapter on the device.
  70 |     fileprivate private(set) static var managerState: CBMManagerState = .poweredOff {
     |                                         |- warning: static property 'managerState' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                                         |- note: convert 'managerState' to a 'let' constant to make 'Sendable' shared state immutable
     |                                         |- note: annotate 'managerState' with '@MainActor' if property should only be accessed from the main actor
     |                                         `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
  71 |         didSet {
  72 |             notifyManagers()
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:395:23: warning: static property 'simulateStateRestoration' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 393 |     /// - SeeAlso: ``CBMCentralManagerRestoredStateScanServicesKey``
 394 |     /// - SeeAlso: ``CBMCentralManagerRestoredStateScanOptionsKey``
 395 |     public static var simulateStateRestoration: ((_ identifierKey: String) -> [String : Any]?)?
     |                       |- warning: static property 'simulateStateRestoration' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                       |- note: convert 'simulateStateRestoration' to a 'let' constant to make 'Sendable' shared state immutable
     |                       |- note: annotate 'simulateStateRestoration' with '@MainActor' if property should only be accessed from the main actor
     |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 396 |
 397 |     #if !os(macOS)
[13/20] Compiling CoreBluetoothMock CBMAttributes.swift
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:454:17: warning: let 'uninitializedPeripheral' is not concurrency-safe because non-'Sendable' type 'CBMPeripheralUninitialized' may have shared mutable state; this is an error in the Swift 6 language mode
452 | // MARK: - Mocking uninitialized objects
453 |
454 | fileprivate let uninitializedPeripheral   = CBMPeripheralUninitialized()
    |                 |- warning: let 'uninitializedPeripheral' is not concurrency-safe because non-'Sendable' type 'CBMPeripheralUninitialized' may have shared mutable state; this is an error in the Swift 6 language mode
    |                 |- note: annotate 'uninitializedPeripheral' with '@MainActor' if property should only be accessed from the main actor
    |                 `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
455 | fileprivate let uninitializedService        = CBMServiceUninitialized()
456 | fileprivate let uninitializedCharacteristic = CBMCharacteristicUninitialized()
457 |
458 | fileprivate class CBMPeripheralUninitialized: CBMPeripheral, CustomDebugStringConvertible {
    |                   `- note: class 'CBMPeripheralUninitialized' does not conform to the 'Sendable' protocol
459 |     let debugDescription: String = "<uninitialized>"
460 |
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:455:17: warning: let 'uninitializedService' is not concurrency-safe because non-'Sendable' type 'CBMServiceUninitialized' may have shared mutable state; this is an error in the Swift 6 language mode
453 |
454 | fileprivate let uninitializedPeripheral   = CBMPeripheralUninitialized()
455 | fileprivate let uninitializedService        = CBMServiceUninitialized()
    |                 |- warning: let 'uninitializedService' is not concurrency-safe because non-'Sendable' type 'CBMServiceUninitialized' may have shared mutable state; this is an error in the Swift 6 language mode
    |                 |- note: annotate 'uninitializedService' with '@MainActor' if property should only be accessed from the main actor
    |                 `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
456 | fileprivate let uninitializedCharacteristic = CBMCharacteristicUninitialized()
457 |
    :
527 | }
528 |
529 | fileprivate class CBMServiceUninitialized: CBMService {
    |                   `- note: class 'CBMServiceUninitialized' does not conform to the 'Sendable' protocol
530 |     override var debugDescription: String { return "<uninitialized>" }
531 |     override var uuid: CBMUUID { uninitialized() }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:456:17: warning: let 'uninitializedCharacteristic' is not concurrency-safe because non-'Sendable' type 'CBMCharacteristicUninitialized' may have shared mutable state; this is an error in the Swift 6 language mode
454 | fileprivate let uninitializedPeripheral   = CBMPeripheralUninitialized()
455 | fileprivate let uninitializedService        = CBMServiceUninitialized()
456 | fileprivate let uninitializedCharacteristic = CBMCharacteristicUninitialized()
    |                 |- warning: let 'uninitializedCharacteristic' is not concurrency-safe because non-'Sendable' type 'CBMCharacteristicUninitialized' may have shared mutable state; this is an error in the Swift 6 language mode
    |                 |- note: annotate 'uninitializedCharacteristic' with '@MainActor' if property should only be accessed from the main actor
    |                 `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
457 |
458 | fileprivate class CBMPeripheralUninitialized: CBMPeripheral, CustomDebugStringConvertible {
    :
545 | }
546 |
547 | fileprivate class CBMCharacteristicUninitialized: CBMCharacteristic {
    |                   `- note: class 'CBMCharacteristicUninitialized' does not conform to the 'Sendable' protocol
548 |     override var debugDescription: String { return "<uninitialized>" }
549 |     override var uuid: CBMUUID { uninitialized() }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:64:38: warning: static property 'bluetoothAuthorization' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
  62 |     ///
  63 |     /// As `CBManagerAuthorization` was added in iOS 13, the raw value is kept.
  64 |     internal private(set) static var bluetoothAuthorization: Int? {
     |                                      |- warning: static property 'bluetoothAuthorization' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                                      |- note: convert 'bluetoothAuthorization' to a 'let' constant to make 'Sendable' shared state immutable
     |                                      |- note: annotate 'bluetoothAuthorization' with '@MainActor' if property should only be accessed from the main actor
     |                                      `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
  65 |         didSet {
  66 |             notifyManagers()
[14/20] Compiling CoreBluetoothMock CBMCentralManager.swift
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:454:17: warning: let 'uninitializedPeripheral' is not concurrency-safe because non-'Sendable' type 'CBMPeripheralUninitialized' may have shared mutable state; this is an error in the Swift 6 language mode
452 | // MARK: - Mocking uninitialized objects
453 |
454 | fileprivate let uninitializedPeripheral   = CBMPeripheralUninitialized()
    |                 |- warning: let 'uninitializedPeripheral' is not concurrency-safe because non-'Sendable' type 'CBMPeripheralUninitialized' may have shared mutable state; this is an error in the Swift 6 language mode
    |                 |- note: annotate 'uninitializedPeripheral' with '@MainActor' if property should only be accessed from the main actor
    |                 `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
455 | fileprivate let uninitializedService        = CBMServiceUninitialized()
456 | fileprivate let uninitializedCharacteristic = CBMCharacteristicUninitialized()
457 |
458 | fileprivate class CBMPeripheralUninitialized: CBMPeripheral, CustomDebugStringConvertible {
    |                   `- note: class 'CBMPeripheralUninitialized' does not conform to the 'Sendable' protocol
459 |     let debugDescription: String = "<uninitialized>"
460 |
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:455:17: warning: let 'uninitializedService' is not concurrency-safe because non-'Sendable' type 'CBMServiceUninitialized' may have shared mutable state; this is an error in the Swift 6 language mode
453 |
454 | fileprivate let uninitializedPeripheral   = CBMPeripheralUninitialized()
455 | fileprivate let uninitializedService        = CBMServiceUninitialized()
    |                 |- warning: let 'uninitializedService' is not concurrency-safe because non-'Sendable' type 'CBMServiceUninitialized' may have shared mutable state; this is an error in the Swift 6 language mode
    |                 |- note: annotate 'uninitializedService' with '@MainActor' if property should only be accessed from the main actor
    |                 `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
456 | fileprivate let uninitializedCharacteristic = CBMCharacteristicUninitialized()
457 |
    :
527 | }
528 |
529 | fileprivate class CBMServiceUninitialized: CBMService {
    |                   `- note: class 'CBMServiceUninitialized' does not conform to the 'Sendable' protocol
530 |     override var debugDescription: String { return "<uninitialized>" }
531 |     override var uuid: CBMUUID { uninitialized() }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:456:17: warning: let 'uninitializedCharacteristic' is not concurrency-safe because non-'Sendable' type 'CBMCharacteristicUninitialized' may have shared mutable state; this is an error in the Swift 6 language mode
454 | fileprivate let uninitializedPeripheral   = CBMPeripheralUninitialized()
455 | fileprivate let uninitializedService        = CBMServiceUninitialized()
456 | fileprivate let uninitializedCharacteristic = CBMCharacteristicUninitialized()
    |                 |- warning: let 'uninitializedCharacteristic' is not concurrency-safe because non-'Sendable' type 'CBMCharacteristicUninitialized' may have shared mutable state; this is an error in the Swift 6 language mode
    |                 |- note: annotate 'uninitializedCharacteristic' with '@MainActor' if property should only be accessed from the main actor
    |                 `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
457 |
458 | fileprivate class CBMPeripheralUninitialized: CBMPeripheral, CustomDebugStringConvertible {
    :
545 | }
546 |
547 | fileprivate class CBMCharacteristicUninitialized: CBMCharacteristic {
    |                   `- note: class 'CBMCharacteristicUninitialized' does not conform to the 'Sendable' protocol
548 |     override var debugDescription: String { return "<uninitialized>" }
549 |     override var uuid: CBMUUID { uninitialized() }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:64:38: warning: static property 'bluetoothAuthorization' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
  62 |     ///
  63 |     /// As `CBManagerAuthorization` was added in iOS 13, the raw value is kept.
  64 |     internal private(set) static var bluetoothAuthorization: Int? {
     |                                      |- warning: static property 'bluetoothAuthorization' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                                      |- note: convert 'bluetoothAuthorization' to a 'let' constant to make 'Sendable' shared state immutable
     |                                      |- note: annotate 'bluetoothAuthorization' with '@MainActor' if property should only be accessed from the main actor
     |                                      `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
  65 |         didSet {
  66 |             notifyManagers()
[15/20] Compiling CoreBluetoothMock CBMCentralManagerDelegate.swift
[16/20] Compiling CoreBluetoothMock CBMCentralManagerDelegateProxy.swift
[17/20] Compiling CoreBluetoothMock CBMPeer.swift
[18/20] Compiling CoreBluetoothMock CBMPeripheral.swift
[19/20] Compiling CoreBluetoothMock CBMCentralManagerFactory.swift
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:45:24: warning: static property 'managers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
  43 |
  44 |     /// A list of all mock managers instantiated by user.
  45 |     private static var managers: [WeakRef<CBMCentralManagerMock>] = []
     |                        |- warning: static property 'managers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                        |- note: convert 'managers' to a 'let' constant to make 'Sendable' shared state immutable
     |                        |- note: annotate 'managers' with '@MainActor' if property should only be accessed from the main actor
     |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
  46 |     /// A list of peripherals known to the system.
  47 |     private static var peripherals: [CBMPeripheralSpec] = [] {
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:47:24: warning: static property 'peripherals' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
  45 |     private static var managers: [WeakRef<CBMCentralManagerMock>] = []
  46 |     /// A list of peripherals known to the system.
  47 |     private static var peripherals: [CBMPeripheralSpec] = [] {
     |                        |- warning: static property 'peripherals' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                        |- note: convert 'peripherals' to a 'let' constant to make 'Sendable' shared state immutable
     |                        |- note: annotate 'peripherals' with '@MainActor' if property should only be accessed from the main actor
     |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
  48 |         didSet {
  49 |             stopAdvertising()
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:56:24: warning: static property 'previewPeripherals' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
  54 |     ///
  55 |     /// Registered items can be accessed using any ``CBMCentralManagerMock``.
  56 |     private static var previewPeripherals: Set<CBMPeripheralPreview> = Set()
     |                        |- warning: static property 'previewPeripherals' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                        |- note: convert 'previewPeripherals' to a 'let' constant to make 'Sendable' shared state immutable
     |                        |- note: annotate 'previewPeripherals' with '@MainActor' if property should only be accessed from the main actor
     |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
  57 |     /// A map of all current advertisements of all simulated peripherals.
  58 |     private static var advertisementTimers: [CBMAdvertisementConfig : Timer] = [:]
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:58:24: warning: static property 'advertisementTimers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
  56 |     private static var previewPeripherals: Set<CBMPeripheralPreview> = Set()
  57 |     /// A map of all current advertisements of all simulated peripherals.
  58 |     private static var advertisementTimers: [CBMAdvertisementConfig : Timer] = [:]
     |                        |- warning: static property 'advertisementTimers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                        |- note: convert 'advertisementTimers' to a 'let' constant to make 'Sendable' shared state immutable
     |                        |- note: annotate 'advertisementTimers' with '@MainActor' if property should only be accessed from the main actor
     |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
  59 |     /// A mutex queue for managing managers.
  60 |     private static let mutex: DispatchQueue = DispatchQueue(label: "Mutex")
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:64:38: warning: static property 'bluetoothAuthorization' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
  62 |     ///
  63 |     /// As `CBManagerAuthorization` was added in iOS 13, the raw value is kept.
  64 |     internal private(set) static var bluetoothAuthorization: Int? {
     |                                      |- warning: static property 'bluetoothAuthorization' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                                      |- note: convert 'bluetoothAuthorization' to a 'let' constant to make 'Sendable' shared state immutable
     |                                      |- note: annotate 'bluetoothAuthorization' with '@MainActor' if property should only be accessed from the main actor
     |                                      `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
  65 |         didSet {
  66 |             notifyManagers()
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:70:41: warning: static property 'managerState' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
  68 |     }
  69 |     /// The global state of the Bluetooth adapter on the device.
  70 |     fileprivate private(set) static var managerState: CBMManagerState = .poweredOff {
     |                                         |- warning: static property 'managerState' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                                         |- note: convert 'managerState' to a 'let' constant to make 'Sendable' shared state immutable
     |                                         |- note: annotate 'managerState' with '@MainActor' if property should only be accessed from the main actor
     |                                         `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
  71 |         didSet {
  72 |             notifyManagers()
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:395:23: warning: static property 'simulateStateRestoration' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 393 |     /// - SeeAlso: ``CBMCentralManagerRestoredStateScanServicesKey``
 394 |     /// - SeeAlso: ``CBMCentralManagerRestoredStateScanOptionsKey``
 395 |     public static var simulateStateRestoration: ((_ identifierKey: String) -> [String : Any]?)?
     |                       |- warning: static property 'simulateStateRestoration' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                       |- note: convert 'simulateStateRestoration' to a 'let' constant to make 'Sendable' shared state immutable
     |                       |- note: annotate 'simulateStateRestoration' with '@MainActor' if property should only be accessed from the main actor
     |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 396 |
 397 |     #if !os(macOS)
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:92:17: warning: capture of 'manager' with non-sendable type 'CBMCentralManagerMock' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  35 | /// This implementation will interact only with mock peripherals created using
  36 | /// ``CBMPeripheralSpec/simulatePeripheral(identifier:proximity:)``.
  37 | open class CBMCentralManagerMock: CBMCentralManager {
     |            `- note: class 'CBMCentralManagerMock' does not conform to the 'Sendable' protocol
  38 |     /// Mock RSSI deviation.
  39 |     ///
     :
  90 |             // ...and notify delegate.
  91 |             manager.queue.async {
  92 |                 manager.delegate?.centralManagerDidUpdateState(manager)
     |                 `- warning: capture of 'manager' with non-sendable type 'CBMCentralManagerMock' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  93 |             }
  94 |         }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:137:16: warning: capture of 'config' with non-sendable type 'CBMAdvertisementConfig' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 135 |             // If the first advertising is to be delayed, create a
 136 |             // temporary timer that will call the initial data.
 137 |             if config.delay > 0 {
     |                `- warning: capture of 'config' with non-sendable type 'CBMAdvertisementConfig' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 138 |                 advertisementTimers[config] = Timer.scheduledTimer(
 139 |                     timeInterval: config.delay,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMPeripheralSpec.swift:63:15: note: consider making struct 'CBMAdvertisementConfig' conform to the 'Sendable' protocol
 61 | /// and can be changed during simulation using
 62 | /// ``CBMPeripheralSpec/simulateAdvertisementChange(_:)``.
 63 | public struct CBMAdvertisementConfig {
    |               `- note: consider making struct 'CBMAdvertisementConfig' conform to the 'Sendable' protocol
 64 |     /// ID used for hash.
 65 |     internal let id: UUID = UUID()
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:142:32: warning: capture of 'mock' with non-sendable type 'CBMPeripheralSpec' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 140 |                     target: self,
 141 |                     selector: #selector(self.schedule(timer:)),
 142 |                     userInfo: (mock, config),
     |                                `- warning: capture of 'mock' with non-sendable type 'CBMPeripheralSpec' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 143 |                     repeats: false)
 144 |             } else {
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMPeripheralSpec.swift:110:14: note: class 'CBMPeripheralSpec' does not conform to the 'Sendable' protocol
108 | /// Use ``CBMPeripheralSpec/simulatePeripheral(identifier:proximity:)`` to
109 | /// create a new instance builder.
110 | public class CBMPeripheralSpec {
    |              `- note: class 'CBMPeripheralSpec' does not conform to the 'Sendable' protocol
111 |     /// The peripheral identifier.
112 |     public internal(set) var identifier: UUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:340:27: warning: capture of 'self' with non-sendable type 'CBMCentralManagerMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  35 | /// This implementation will interact only with mock peripherals created using
  36 | /// ``CBMPeripheralSpec/simulatePeripheral(identifier:proximity:)``.
  37 | open class CBMCentralManagerMock: CBMCentralManager {
     |            `- note: class 'CBMCentralManagerMock' does not conform to the 'Sendable' protocol
  38 |     /// Mock RSSI deviation.
  39 |     ///
     :
 338 |         }
 339 |         queue.async { [weak self] in
 340 |             if let self = self {
     |                           `- warning: capture of 'self' with non-sendable type 'CBMCentralManagerMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 341 |                 CBMCentralManagerMock.mutex.sync {
 342 |                     CBMCentralManagerMock.managers.append(WeakRef(self))
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:959:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 874 | ///
 875 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
 876 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
     |                  `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
 877 |     /// The parent central manager.
 878 |     private let manager: CBMCentralManagerMock
     :
 957 |         if isAlreadyConnected {
 958 |             queue.async { [weak self] in
 959 |                 if let self = self, self.state == .connecting {
     |                               `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 960 |                     self.state = .connected
 961 |                     self._canSendWriteWithoutResponse = true
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:964:21: warning: capture of 'completion' with non-sendable type '(Result<Void, any Error>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 962 |                     self.mock.wasConnected = true
 963 |                     self.mock.virtualConnections += 1
 964 |                     completion(.success(()))
     |                     |- warning: capture of 'completion' with non-sendable type '(Result<Void, any Error>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
     |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 965 |                 }
 966 |             }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:972:27: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 874 | ///
 875 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
 876 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
     |                  `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
 877 |     /// The parent central manager.
 878 |     private let manager: CBMCentralManagerMock
     :
 970 |         let result = delegate.peripheralDidReceiveConnectionRequest(mock)
 971 |         queue.asyncAfter(deadline: .now() + interval) { [weak self] in
 972 |             if let self = self, self.state == .connecting {
     |                           `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 973 |                 if case .success = result {
 974 |                     self.state = .connected
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:981:17: warning: capture of 'completion' with non-sendable type '(Result<Void, any Error>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 979 |                     self.state = .disconnected
 980 |                 }
 981 |                 completion(result)
     |                 |- warning: capture of 'completion' with non-sendable type '(Result<Void, any Error>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
     |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 982 |             }
 983 |         }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:991:17: warning: capture of 'completion' with non-sendable type '() -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 989 |             state = .disconnected
 990 |             queue.async {
 991 |                 completion()
     |                 |- warning: capture of 'completion' with non-sendable type '() -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
     |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 992 |             }
 993 |             return
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1006:27: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 874 | ///
 875 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
 876 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
     |                  `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
 877 |     /// The parent central manager.
 878 |     private let manager: CBMCentralManagerMock
     :
1004 |             // `tearDownSimulation()` could have been called before this is called.
1005 |             // See https://github.com/NordicSemiconductor/IOS-CoreBluetooth-Mock/issues/25
1006 |             if let self = self, self.state == .disconnecting,
     |                           `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1007 |                CBMCentralManagerMock.managerState == .poweredOn {
1008 |                 self.state = .disconnected
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1014:17: warning: capture of 'completion' with non-sendable type '() -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1012 |                 self.mock.connectionDelegate?.peripheral(self.mock,
1013 |                                                          didDisconnect: nil)
1014 |                 completion()
     |                 |- warning: capture of 'completion' with non-sendable type '() -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
     |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1015 |             }
1016 |         }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1033:27: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 874 | ///
 875 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
 876 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
     |                  `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
 877 |     /// The parent central manager.
 878 |     private let manager: CBMCentralManagerMock
     :
1031 |         }
1032 |         queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1033 |             if let self = self, CBMCentralManagerMock.managerState == .poweredOn {
     |                           `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1034 |                 self.state = .disconnected
1035 |                 self.services = nil
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1043:17: warning: capture of 'completion' with non-sendable type '((any Error)?) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1041 |                 self.mock.connectionDelegate?.peripheral(self.mock,
1042 |                                                          didDisconnect: error)
1043 |                 completion(error)
     |                 |- warning: capture of 'completion' with non-sendable type '((any Error)?) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
     |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1044 |             }
1045 |         }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1056:27: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 874 | ///
 875 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
 876 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
     |                  `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
 877 |     /// The parent central manager.
 878 |     private let manager: CBMCentralManagerMock
     :
1054 |         }
1055 |         queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1056 |             if let self = self, self.state == .connected {
     |                           `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1057 |                 self.delegate?.peripheralDidUpdateName(self)
1058 |             }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1078:27: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 874 | ///
 875 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
 876 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
     |                  `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
 877 |     /// The parent central manager.
 878 |     private let manager: CBMCentralManagerMock
     :
1076 |         let invalidatedServices = oldServices.filter({ !services!.contains($0) })
1077 |         queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1078 |             if let self = self, self.state == .connected {
     |                           `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1079 |                 self.delegate?.peripheral(self, didModifyServices: invalidatedServices)
1080 |             }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1079:68: warning: capture of 'invalidatedServices' with non-sendable type '[CBMService]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1077 |         queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1078 |             if let self = self, self.state == .connected {
1079 |                 self.delegate?.peripheral(self, didModifyServices: invalidatedServices)
     |                                                                    `- warning: capture of 'invalidatedServices' with non-sendable type '[CBMService]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1080 |             }
1081 |         }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:53:12: note: class 'CBMService' does not conform to the 'Sendable' protocol
 51 | /// `CBMService` objects represent services of a remote peripheral. Services are either primary or secondary and
 52 | /// may contain multiple characteristics or included services (references to other services).
 53 | open class CBMService: CBMAttribute {
    |            `- note: class 'CBMService' does not conform to the 'Sendable' protocol
 54 |     internal let identifier: UUID
 55 |     private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1101:27: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 874 | ///
 875 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
 876 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
     |                  `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
 877 |     /// The parent central manager.
 878 |     private let manager: CBMCentralManagerMock
     :
1099 |         let value = originalCharacteristic.value
1100 |         queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1101 |             if let self = self, self.state == .connected {
     |                           `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1102 |                 characteristic.value = value
1103 |                 self.delegate?.peripheral(self,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1102:17: warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1100 |         queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1101 |             if let self = self, self.state == .connected {
1102 |                 characteristic.value = value
     |                 `- warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1103 |                 self.delegate?.peripheral(self,
1104 |                                           didUpdateValueFor: characteristic,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:193:12: note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
191 | /// of descriptors describing that value. The properties of a characteristic determine how you can use a characteristic’s value,
192 | /// and how you access the descriptors.
193 | open class CBMCharacteristic: CBMAttribute {
    |            `- note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
194 |     internal let identifier: UUID
195 |     private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1148:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 874 | ///
 875 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
 876 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
     |                  `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
 877 |     /// The parent central manager.
 878 |     private let manager: CBMCentralManagerMock
     :
1146 |             let delay = interval * Double(newServicesCount)
1147 |             queue.asyncAfter(deadline: .now() + delay) { [weak self] in
1148 |                 if let self = self, self.state == .connected {
     |                               `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1149 |                     self.delegate?.peripheral(self, didDiscoverServices: nil)
1150 |                 }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1154:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 874 | ///
 875 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
 876 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
     |                  `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
 877 |     /// The parent central manager.
 878 |     private let manager: CBMCentralManagerMock
     :
1152 |         case .failure(let error):
1153 |             queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1154 |                 if let self = self, self.state == .connected {
     |                               `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1155 |                     self.delegate?.peripheral(self, didDiscoverServices: error)
1156 |                 }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1196:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 874 | ///
 875 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
 876 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
     |                  `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
 877 |     /// The parent central manager.
 878 |     private let manager: CBMCentralManagerMock
     :
1194 |             let delay = interval * Double(newServicesCount)
1195 |             queue.asyncAfter(deadline: .now() + delay) { [weak self] in
1196 |                 if let self = self, self.state == .connected {
     |                               `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1197 |                     self.delegate?.peripheral(self,
1198 |                                               didDiscoverIncludedServicesFor: service,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1198:79: warning: capture of 'service' with non-sendable type 'CBMService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1196 |                 if let self = self, self.state == .connected {
1197 |                     self.delegate?.peripheral(self,
1198 |                                               didDiscoverIncludedServicesFor: service,
     |                                                                               `- warning: capture of 'service' with non-sendable type 'CBMService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1199 |                                               error: nil)
1200 |                 }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:53:12: note: class 'CBMService' does not conform to the 'Sendable' protocol
 51 | /// `CBMService` objects represent services of a remote peripheral. Services are either primary or secondary and
 52 | /// may contain multiple characteristics or included services (references to other services).
 53 | open class CBMService: CBMAttribute {
    |            `- note: class 'CBMService' does not conform to the 'Sendable' protocol
 54 |     internal let identifier: UUID
 55 |     private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1204:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 874 | ///
 875 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
 876 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
     |                  `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
 877 |     /// The parent central manager.
 878 |     private let manager: CBMCentralManagerMock
     :
1202 |         case .failure(let error):
1203 |             queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1204 |                 if let self = self, self.state == .connected {
     |                               `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1205 |                     self.delegate?.peripheral(self,
1206 |                                               didDiscoverIncludedServicesFor: service,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1206:79: warning: capture of 'service' with non-sendable type 'CBMService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1204 |                 if let self = self, self.state == .connected {
1205 |                     self.delegate?.peripheral(self,
1206 |                                               didDiscoverIncludedServicesFor: service,
     |                                                                               `- warning: capture of 'service' with non-sendable type 'CBMService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1207 |                                               error: error)
1208 |                 }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:53:12: note: class 'CBMService' does not conform to the 'Sendable' protocol
 51 | /// `CBMService` objects represent services of a remote peripheral. Services are either primary or secondary and
 52 | /// may contain multiple characteristics or included services (references to other services).
 53 | open class CBMService: CBMAttribute {
    |            `- note: class 'CBMService' does not conform to the 'Sendable' protocol
 54 |     internal let identifier: UUID
 55 |     private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1249:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 874 | ///
 875 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
 876 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
     |                  `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
 877 |     /// The parent central manager.
 878 |     private let manager: CBMCentralManagerMock
     :
1247 |             let delay = interval * Double(newCharacteristicsCount)
1248 |             queue.asyncAfter(deadline: .now() + delay) { [weak self] in
1249 |                 if let self = self, self.state == .connected {
     |                               `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1250 |                     self.delegate?.peripheral(self,
1251 |                                               didDiscoverCharacteristicsFor: service,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1251:78: warning: capture of 'service' with non-sendable type 'CBMService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1249 |                 if let self = self, self.state == .connected {
1250 |                     self.delegate?.peripheral(self,
1251 |                                               didDiscoverCharacteristicsFor: service,
     |                                                                              `- warning: capture of 'service' with non-sendable type 'CBMService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1252 |                                               error: nil)
1253 |                 }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:53:12: note: class 'CBMService' does not conform to the 'Sendable' protocol
 51 | /// `CBMService` objects represent services of a remote peripheral. Services are either primary or secondary and
 52 | /// may contain multiple characteristics or included services (references to other services).
 53 | open class CBMService: CBMAttribute {
    |            `- note: class 'CBMService' does not conform to the 'Sendable' protocol
 54 |     internal let identifier: UUID
 55 |     private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1257:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 874 | ///
 875 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
 876 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
     |                  `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
 877 |     /// The parent central manager.
 878 |     private let manager: CBMCentralManagerMock
     :
1255 |         case .failure(let error):
1256 |             queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1257 |                 if let self = self, self.state == .connected {
     |                               `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1258 |                     self.delegate?.peripheral(self,
1259 |                                               didDiscoverCharacteristicsFor: service,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1259:78: warning: capture of 'service' with non-sendable type 'CBMService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1257 |                 if let self = self, self.state == .connected {
1258 |                     self.delegate?.peripheral(self,
1259 |                                               didDiscoverCharacteristicsFor: service,
     |                                                                              `- warning: capture of 'service' with non-sendable type 'CBMService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1260 |                                               error: error)
1261 |                 }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:53:12: note: class 'CBMService' does not conform to the 'Sendable' protocol
 51 | /// `CBMService` objects represent services of a remote peripheral. Services are either primary or secondary and
 52 | /// may contain multiple characteristics or included services (references to other services).
 53 | open class CBMService: CBMAttribute {
    |            `- note: class 'CBMService' does not conform to the 'Sendable' protocol
 54 |     internal let identifier: UUID
 55 |     private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1298:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 874 | ///
 875 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
 876 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
     |                  `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
 877 |     /// The parent central manager.
 878 |     private let manager: CBMCentralManagerMock
     :
1296 |             let delay = interval * Double(newDescriptorsCount)
1297 |             queue.asyncAfter(deadline: .now() + delay) { [weak self] in
1298 |                 if let self = self, self.state == .connected {
     |                               `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1299 |                     self.delegate?.peripheral(self,
1300 |                                               didDiscoverDescriptorsFor: characteristic,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1300:74: warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1298 |                 if let self = self, self.state == .connected {
1299 |                     self.delegate?.peripheral(self,
1300 |                                               didDiscoverDescriptorsFor: characteristic,
     |                                                                          `- warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1301 |                                               error: nil)
1302 |                 }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:193:12: note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
191 | /// of descriptors describing that value. The properties of a characteristic determine how you can use a characteristic’s value,
192 | /// and how you access the descriptors.
193 | open class CBMCharacteristic: CBMAttribute {
    |            `- note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
194 |     internal let identifier: UUID
195 |     private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1306:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 874 | ///
 875 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
 876 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
     |                  `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
 877 |     /// The parent central manager.
 878 |     private let manager: CBMCentralManagerMock
     :
1304 |         case .failure(let error):
1305 |             queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1306 |                 if let self = self, self.state == .connected {
     |                               `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1307 |                     self.delegate?.peripheral(self,
1308 |                                               didDiscoverDescriptorsFor: characteristic,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1308:74: warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1306 |                 if let self = self, self.state == .connected {
1307 |                     self.delegate?.peripheral(self,
1308 |                                               didDiscoverDescriptorsFor: characteristic,
     |                                                                          `- warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1309 |                                               error: error)
1310 |                 }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:193:12: note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
191 | /// of descriptors describing that value. The properties of a characteristic determine how you can use a characteristic’s value,
192 | /// and how you access the descriptors.
193 | open class CBMCharacteristic: CBMAttribute {
    |            `- note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
194 |     internal let identifier: UUID
195 |     private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1333:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 874 | ///
 875 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
 876 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
     |                  `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
 877 |     /// The parent central manager.
 878 |     private let manager: CBMCentralManagerMock
     :
1331 |         case .success(let data):
1332 |             queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1333 |                 if let self = self, self.state == .connected {
     |                               `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1334 |                     characteristic.value = data
1335 |                     self.delegate?.peripheral(self,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1334:21: warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1332 |             queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1333 |                 if let self = self, self.state == .connected {
1334 |                     characteristic.value = data
     |                     `- warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1335 |                     self.delegate?.peripheral(self,
1336 |                                               didUpdateValueFor: characteristic,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:193:12: note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
191 | /// of descriptors describing that value. The properties of a characteristic determine how you can use a characteristic’s value,
192 | /// and how you access the descriptors.
193 | open class CBMCharacteristic: CBMAttribute {
    |            `- note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
194 |     internal let identifier: UUID
195 |     private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1342:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 874 | ///
 875 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
 876 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
     |                  `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
 877 |     /// The parent central manager.
 878 |     private let manager: CBMCentralManagerMock
     :
1340 |         case .failure(let error):
1341 |             queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1342 |                 if let self = self, self.state == .connected {
     |                               `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1343 |                     self.delegate?.peripheral(self,
1344 |                                               didUpdateValueFor: characteristic,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1344:66: warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1342 |                 if let self = self, self.state == .connected {
1343 |                     self.delegate?.peripheral(self,
1344 |                                               didUpdateValueFor: characteristic,
     |                                                                  `- warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1345 |                                               error: error)
1346 |                 }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:193:12: note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
191 | /// of descriptors describing that value. The properties of a characteristic determine how you can use a characteristic’s value,
192 | /// and how you access the descriptors.
193 | open class CBMCharacteristic: CBMAttribute {
    |            `- note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
194 |     internal let identifier: UUID
195 |     private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1367:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 874 | ///
 875 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
 876 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
     |                  `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
 877 |     /// The parent central manager.
 878 |     private let manager: CBMCentralManagerMock
     :
1365 |         case .success(let data):
1366 |             queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1367 |                 if let self = self, self.state == .connected {
     |                               `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1368 |                     descriptor.value = data
1369 |                     self.delegate?.peripheral(self,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1368:21: warning: capture of 'descriptor' with non-sendable type 'CBMDescriptor' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1366 |             queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1367 |                 if let self = self, self.state == .connected {
1368 |                     descriptor.value = data
     |                     `- warning: capture of 'descriptor' with non-sendable type 'CBMDescriptor' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1369 |                     self.delegate?.peripheral(self,
1370 |                                               didUpdateValueFor: descriptor,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:323:12: note: class 'CBMDescriptor' does not conform to the 'Sendable' protocol
321 | /// ``CBMUUID`` details six predefined descriptors and their corresponding value types. `CBMDescriptor` lists the
322 | /// predefined descriptors and the ``CBMUUID`` constants that represent them.
323 | open class CBMDescriptor: CBMAttribute {
    |            `- note: class 'CBMDescriptor' does not conform to the 'Sendable' protocol
324 |     internal let identifier: UUID
325 |     private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1376:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 874 | ///
 875 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
 876 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
     |                  `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
 877 |     /// The parent central manager.
 878 |     private let manager: CBMCentralManagerMock
     :
1374 |         case .failure(let error):
1375 |             queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1376 |                 if let self = self, self.state == .connected {
     |                               `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1377 |                     self.delegate?.peripheral(self,
1378 |                                               didUpdateValueFor: descriptor,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1378:66: warning: capture of 'descriptor' with non-sendable type 'CBMDescriptor' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1376 |                 if let self = self, self.state == .connected {
1377 |                     self.delegate?.peripheral(self,
1378 |                                               didUpdateValueFor: descriptor,
     |                                                                  `- warning: capture of 'descriptor' with non-sendable type 'CBMDescriptor' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1379 |                                               error: error)
1380 |                 }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:323:12: note: class 'CBMDescriptor' does not conform to the 'Sendable' protocol
321 | /// ``CBMUUID`` details six predefined descriptors and their corresponding value types. `CBMDescriptor` lists the
322 | /// predefined descriptors and the ``CBMUUID`` constants that represent them.
323 | open class CBMDescriptor: CBMAttribute {
    |            `- note: class 'CBMDescriptor' does not conform to the 'Sendable' protocol
324 |     internal let identifier: UUID
325 |     private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1411:35: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 874 | ///
 875 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
 876 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
     |                  `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
 877 |     /// The parent central manager.
 878 |     private let manager: CBMCentralManagerMock
     :
1409 |                 let delay = interval * Double(packetsCount)
1410 |                 queue.asyncAfter(deadline: .now() + delay) { [weak self] in
1411 |                     if let self = self, self.state == .connected {
     |                                   `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1412 |                         self.delegate?.peripheral(self,
1413 |                                                   didWriteValueFor: characteristic,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1413:69: warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1411 |                     if let self = self, self.state == .connected {
1412 |                         self.delegate?.peripheral(self,
1413 |                                                   didWriteValueFor: characteristic,
     |                                                                     `- warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1414 |                                                   error: nil)
1415 |                     }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:193:12: note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
191 | /// of descriptors describing that value. The properties of a characteristic determine how you can use a characteristic’s value,
192 | /// and how you access the descriptors.
193 | open class CBMCharacteristic: CBMAttribute {
    |            `- note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
194 |     internal let identifier: UUID
195 |     private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1419:35: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 874 | ///
 875 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
 876 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
     |                  `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
 877 |     /// The parent central manager.
 878 |     private let manager: CBMCentralManagerMock
     :
1417 |             case .failure(let error):
1418 |                 queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1419 |                     if let self = self, self.state == .connected {
     |                                   `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1420 |                         self.delegate?.peripheral(self,
1421 |                                                   didWriteValueFor: characteristic,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1421:69: warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1419 |                     if let self = self, self.state == .connected {
1420 |                         self.delegate?.peripheral(self,
1421 |                                                   didWriteValueFor: characteristic,
     |                                                                     `- warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1422 |                                                   error: error)
1423 |                     }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:193:12: note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
191 | /// of descriptors describing that value. The properties of a characteristic determine how you can use a characteristic’s value,
192 | /// and how you access the descriptors.
193 | open class CBMCharacteristic: CBMAttribute {
    |            `- note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
194 |     internal let identifier: UUID
195 |     private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1441:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 874 | ///
 875 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
 876 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
     |                  `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
 877 |     /// The parent central manager.
 878 |     private let manager: CBMCentralManagerMock
     :
1439 |
1440 |             queue.async { [weak self] in
1441 |                 if let self = self, self.state == .connected {
     |                               `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1442 |                     // Increase buffer.
1443 |                     self.mutex.sync {
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1473:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 874 | ///
 875 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
 876 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
     |                  `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
 877 |     /// The parent central manager.
 878 |     private let manager: CBMCentralManagerMock
     :
1471 |         case .success:
1472 |             queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1473 |                 if let self = self, self.state == .connected {
     |                               `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1474 |                     self.delegate?.peripheral(self,
1475 |                                               didWriteValueFor: descriptor,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1475:65: warning: capture of 'descriptor' with non-sendable type 'CBMDescriptor' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1473 |                 if let self = self, self.state == .connected {
1474 |                     self.delegate?.peripheral(self,
1475 |                                               didWriteValueFor: descriptor,
     |                                                                 `- warning: capture of 'descriptor' with non-sendable type 'CBMDescriptor' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1476 |                                               error: nil)
1477 |                 }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:323:12: note: class 'CBMDescriptor' does not conform to the 'Sendable' protocol
321 | /// ``CBMUUID`` details six predefined descriptors and their corresponding value types. `CBMDescriptor` lists the
322 | /// predefined descriptors and the ``CBMUUID`` constants that represent them.
323 | open class CBMDescriptor: CBMAttribute {
    |            `- note: class 'CBMDescriptor' does not conform to the 'Sendable' protocol
324 |     internal let identifier: UUID
325 |     private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1481:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 874 | ///
 875 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
 876 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
     |                  `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
 877 |     /// The parent central manager.
 878 |     private let manager: CBMCentralManagerMock
     :
1479 |         case .failure(let error):
1480 |             queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1481 |                 if let self = self, self.state == .connected {
     |                               `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1482 |                     self.delegate?.peripheral(self,
1483 |                                               didWriteValueFor: descriptor,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1483:65: warning: capture of 'descriptor' with non-sendable type 'CBMDescriptor' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1481 |                 if let self = self, self.state == .connected {
1482 |                     self.delegate?.peripheral(self,
1483 |                                               didWriteValueFor: descriptor,
     |                                                                 `- warning: capture of 'descriptor' with non-sendable type 'CBMDescriptor' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1484 |                                               error: error)
1485 |                 }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:323:12: note: class 'CBMDescriptor' does not conform to the 'Sendable' protocol
321 | /// ``CBMUUID`` details six predefined descriptors and their corresponding value types. `CBMDescriptor` lists the
322 | /// predefined descriptors and the ``CBMUUID`` constants that represent them.
323 | open class CBMDescriptor: CBMAttribute {
    |            `- note: class 'CBMDescriptor' does not conform to the 'Sendable' protocol
324 |     internal let identifier: UUID
325 |     private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1524:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 874 | ///
 875 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
 876 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
     |                  `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
 877 |     /// The parent central manager.
 878 |     private let manager: CBMCentralManagerMock
     :
1522 |         case .success:
1523 |             queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1524 |                 if let self = self, self.state == .connected {
     |                               `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1525 |                     characteristic.isNotifying = enabled
1526 |                     self.delegate?.peripheral(self,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1525:21: warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1523 |             queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1524 |                 if let self = self, self.state == .connected {
1525 |                     characteristic.isNotifying = enabled
     |                     `- warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1526 |                     self.delegate?.peripheral(self,
1527 |                                               didUpdateNotificationStateFor: characteristic,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:193:12: note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
191 | /// of descriptors describing that value. The properties of a characteristic determine how you can use a characteristic’s value,
192 | /// and how you access the descriptors.
193 | open class CBMCharacteristic: CBMAttribute {
    |            `- note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
194 |     internal let identifier: UUID
195 |     private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1529:21: warning: capture of 'mockCharacteristic' with non-sendable type 'CBMCharacteristicMock' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1527 |                                               didUpdateNotificationStateFor: characteristic,
1528 |                                               error: nil)
1529 |                     mockCharacteristic.isNotifying = enabled
     |                     `- warning: capture of 'mockCharacteristic' with non-sendable type 'CBMCharacteristicMock' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1530 |                     self.mock.connectionDelegate?.peripheral(self.mock,
1531 |                                     didUpdateNotificationStateFor: mockCharacteristic,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:284:12: note: class 'CBMCharacteristicMock' does not conform to the 'Sendable' protocol
282 |
283 | /// Mock implementation of ``CBMCharacteristic``.
284 | open class CBMCharacteristicMock: CBMCharacteristic {
    |            `- note: class 'CBMCharacteristicMock' does not conform to the 'Sendable' protocol
285 |
286 |     open override var descriptors: [CBMDescriptor]? {
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1537:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 874 | ///
 875 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
 876 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
     |                  `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
 877 |     /// The parent central manager.
 878 |     private let manager: CBMCentralManagerMock
     :
1535 |         case .failure(let error):
1536 |             queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1537 |                 if let self = self, self.state == .connected {
     |                               `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1538 |                     self.delegate?.peripheral(self,
1539 |                                               didUpdateNotificationStateFor: characteristic,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1539:78: warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1537 |                 if let self = self, self.state == .connected {
1538 |                     self.delegate?.peripheral(self,
1539 |                                               didUpdateNotificationStateFor: characteristic,
     |                                                                              `- warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1540 |                                               error: error)
1541 |                     self.mock.connectionDelegate?.peripheral(self.mock,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:193:12: note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
191 | /// of descriptors describing that value. The properties of a characteristic determine how you can use a characteristic’s value,
192 | /// and how you access the descriptors.
193 | open class CBMCharacteristic: CBMAttribute {
    |            `- note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
194 |     internal let identifier: UUID
195 |     private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1542:68: warning: capture of 'mockCharacteristic' with non-sendable type 'CBMCharacteristicMock' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1540 |                                               error: error)
1541 |                     self.mock.connectionDelegate?.peripheral(self.mock,
1542 |                                     didUpdateNotificationStateFor: mockCharacteristic,
     |                                                                    `- warning: capture of 'mockCharacteristic' with non-sendable type 'CBMCharacteristicMock' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1543 |                                     error: error)
1544 |                 }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:284:12: note: class 'CBMCharacteristicMock' does not conform to the 'Sendable' protocol
282 |
283 | /// Mock implementation of ``CBMCharacteristic``.
284 | open class CBMCharacteristicMock: CBMCharacteristic {
    |            `- note: class 'CBMCharacteristicMock' does not conform to the 'Sendable' protocol
285 |
286 |     open override var descriptors: [CBMDescriptor]? {
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1555:27: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 874 | ///
 875 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
 876 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
     |                  `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
 877 |     /// The parent central manager.
 878 |     private let manager: CBMCentralManagerMock
     :
1553 |         guard manager.ensurePoweredOn() else { return }
1554 |         queue.async { [weak self] in
1555 |             if let self = self, self.state == .connected {
     |                           `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1556 |                 let rssi = self.mock.proximity.RSSI
1557 |                 let delta = CBMCentralManagerMock.rssiDeviation
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:137:16: warning: sending 'config' risks causing data races; this is an error in the Swift 6 language mode
 135 |             // If the first advertising is to be delayed, create a
 136 |             // temporary timer that will call the initial data.
 137 |             if config.delay > 0 {
     |                |- warning: sending 'config' risks causing data races; this is an error in the Swift 6 language mode
     |                `- note: task-isolated 'config' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 138 |                 advertisementTimers[config] = Timer.scheduledTimer(
 139 |                     timeInterval: config.delay,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:142:32: warning: sending 'mock' risks causing data races; this is an error in the Swift 6 language mode
 140 |                     target: self,
 141 |                     selector: #selector(self.schedule(timer:)),
 142 |                     userInfo: (mock, config),
     |                                |- warning: sending 'mock' risks causing data races; this is an error in the Swift 6 language mode
     |                                `- note: task-isolated 'mock' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 143 |                     repeats: false)
 144 |             } else {
[20/20] Compiling CoreBluetoothMock CBMCentralManagerMock.swift
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:45:24: warning: static property 'managers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
  43 |
  44 |     /// A list of all mock managers instantiated by user.
  45 |     private static var managers: [WeakRef<CBMCentralManagerMock>] = []
     |                        |- warning: static property 'managers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                        |- note: convert 'managers' to a 'let' constant to make 'Sendable' shared state immutable
     |                        |- note: annotate 'managers' with '@MainActor' if property should only be accessed from the main actor
     |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
  46 |     /// A list of peripherals known to the system.
  47 |     private static var peripherals: [CBMPeripheralSpec] = [] {
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:47:24: warning: static property 'peripherals' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
  45 |     private static var managers: [WeakRef<CBMCentralManagerMock>] = []
  46 |     /// A list of peripherals known to the system.
  47 |     private static var peripherals: [CBMPeripheralSpec] = [] {
     |                        |- warning: static property 'peripherals' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                        |- note: convert 'peripherals' to a 'let' constant to make 'Sendable' shared state immutable
     |                        |- note: annotate 'peripherals' with '@MainActor' if property should only be accessed from the main actor
     |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
  48 |         didSet {
  49 |             stopAdvertising()
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:56:24: warning: static property 'previewPeripherals' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
  54 |     ///
  55 |     /// Registered items can be accessed using any ``CBMCentralManagerMock``.
  56 |     private static var previewPeripherals: Set<CBMPeripheralPreview> = Set()
     |                        |- warning: static property 'previewPeripherals' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                        |- note: convert 'previewPeripherals' to a 'let' constant to make 'Sendable' shared state immutable
     |                        |- note: annotate 'previewPeripherals' with '@MainActor' if property should only be accessed from the main actor
     |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
  57 |     /// A map of all current advertisements of all simulated peripherals.
  58 |     private static var advertisementTimers: [CBMAdvertisementConfig : Timer] = [:]
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:58:24: warning: static property 'advertisementTimers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
  56 |     private static var previewPeripherals: Set<CBMPeripheralPreview> = Set()
  57 |     /// A map of all current advertisements of all simulated peripherals.
  58 |     private static var advertisementTimers: [CBMAdvertisementConfig : Timer] = [:]
     |                        |- warning: static property 'advertisementTimers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                        |- note: convert 'advertisementTimers' to a 'let' constant to make 'Sendable' shared state immutable
     |                        |- note: annotate 'advertisementTimers' with '@MainActor' if property should only be accessed from the main actor
     |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
  59 |     /// A mutex queue for managing managers.
  60 |     private static let mutex: DispatchQueue = DispatchQueue(label: "Mutex")
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:64:38: warning: static property 'bluetoothAuthorization' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
  62 |     ///
  63 |     /// As `CBManagerAuthorization` was added in iOS 13, the raw value is kept.
  64 |     internal private(set) static var bluetoothAuthorization: Int? {
     |                                      |- warning: static property 'bluetoothAuthorization' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                                      |- note: convert 'bluetoothAuthorization' to a 'let' constant to make 'Sendable' shared state immutable
     |                                      |- note: annotate 'bluetoothAuthorization' with '@MainActor' if property should only be accessed from the main actor
     |                                      `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
  65 |         didSet {
  66 |             notifyManagers()
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:70:41: warning: static property 'managerState' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
  68 |     }
  69 |     /// The global state of the Bluetooth adapter on the device.
  70 |     fileprivate private(set) static var managerState: CBMManagerState = .poweredOff {
     |                                         |- warning: static property 'managerState' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                                         |- note: convert 'managerState' to a 'let' constant to make 'Sendable' shared state immutable
     |                                         |- note: annotate 'managerState' with '@MainActor' if property should only be accessed from the main actor
     |                                         `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
  71 |         didSet {
  72 |             notifyManagers()
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:395:23: warning: static property 'simulateStateRestoration' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 393 |     /// - SeeAlso: ``CBMCentralManagerRestoredStateScanServicesKey``
 394 |     /// - SeeAlso: ``CBMCentralManagerRestoredStateScanOptionsKey``
 395 |     public static var simulateStateRestoration: ((_ identifierKey: String) -> [String : Any]?)?
     |                       |- warning: static property 'simulateStateRestoration' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                       |- note: convert 'simulateStateRestoration' to a 'let' constant to make 'Sendable' shared state immutable
     |                       |- note: annotate 'simulateStateRestoration' with '@MainActor' if property should only be accessed from the main actor
     |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 396 |
 397 |     #if !os(macOS)
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:92:17: warning: capture of 'manager' with non-sendable type 'CBMCentralManagerMock' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  35 | /// This implementation will interact only with mock peripherals created using
  36 | /// ``CBMPeripheralSpec/simulatePeripheral(identifier:proximity:)``.
  37 | open class CBMCentralManagerMock: CBMCentralManager {
     |            `- note: class 'CBMCentralManagerMock' does not conform to the 'Sendable' protocol
  38 |     /// Mock RSSI deviation.
  39 |     ///
     :
  90 |             // ...and notify delegate.
  91 |             manager.queue.async {
  92 |                 manager.delegate?.centralManagerDidUpdateState(manager)
     |                 `- warning: capture of 'manager' with non-sendable type 'CBMCentralManagerMock' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  93 |             }
  94 |         }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:137:16: warning: capture of 'config' with non-sendable type 'CBMAdvertisementConfig' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 135 |             // If the first advertising is to be delayed, create a
 136 |             // temporary timer that will call the initial data.
 137 |             if config.delay > 0 {
     |                `- warning: capture of 'config' with non-sendable type 'CBMAdvertisementConfig' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 138 |                 advertisementTimers[config] = Timer.scheduledTimer(
 139 |                     timeInterval: config.delay,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMPeripheralSpec.swift:63:15: note: consider making struct 'CBMAdvertisementConfig' conform to the 'Sendable' protocol
 61 | /// and can be changed during simulation using
 62 | /// ``CBMPeripheralSpec/simulateAdvertisementChange(_:)``.
 63 | public struct CBMAdvertisementConfig {
    |               `- note: consider making struct 'CBMAdvertisementConfig' conform to the 'Sendable' protocol
 64 |     /// ID used for hash.
 65 |     internal let id: UUID = UUID()
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:142:32: warning: capture of 'mock' with non-sendable type 'CBMPeripheralSpec' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 140 |                     target: self,
 141 |                     selector: #selector(self.schedule(timer:)),
 142 |                     userInfo: (mock, config),
     |                                `- warning: capture of 'mock' with non-sendable type 'CBMPeripheralSpec' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 143 |                     repeats: false)
 144 |             } else {
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMPeripheralSpec.swift:110:14: note: class 'CBMPeripheralSpec' does not conform to the 'Sendable' protocol
108 | /// Use ``CBMPeripheralSpec/simulatePeripheral(identifier:proximity:)`` to
109 | /// create a new instance builder.
110 | public class CBMPeripheralSpec {
    |              `- note: class 'CBMPeripheralSpec' does not conform to the 'Sendable' protocol
111 |     /// The peripheral identifier.
112 |     public internal(set) var identifier: UUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:340:27: warning: capture of 'self' with non-sendable type 'CBMCentralManagerMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  35 | /// This implementation will interact only with mock peripherals created using
  36 | /// ``CBMPeripheralSpec/simulatePeripheral(identifier:proximity:)``.
  37 | open class CBMCentralManagerMock: CBMCentralManager {
     |            `- note: class 'CBMCentralManagerMock' does not conform to the 'Sendable' protocol
  38 |     /// Mock RSSI deviation.
  39 |     ///
     :
 338 |         }
 339 |         queue.async { [weak self] in
 340 |             if let self = self {
     |                           `- warning: capture of 'self' with non-sendable type 'CBMCentralManagerMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 341 |                 CBMCentralManagerMock.mutex.sync {
 342 |                     CBMCentralManagerMock.managers.append(WeakRef(self))
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:959:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 874 | ///
 875 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
 876 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
     |                  `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
 877 |     /// The parent central manager.
 878 |     private let manager: CBMCentralManagerMock
     :
 957 |         if isAlreadyConnected {
 958 |             queue.async { [weak self] in
 959 |                 if let self = self, self.state == .connecting {
     |                               `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 960 |                     self.state = .connected
 961 |                     self._canSendWriteWithoutResponse = true
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:964:21: warning: capture of 'completion' with non-sendable type '(Result<Void, any Error>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 962 |                     self.mock.wasConnected = true
 963 |                     self.mock.virtualConnections += 1
 964 |                     completion(.success(()))
     |                     |- warning: capture of 'completion' with non-sendable type '(Result<Void, any Error>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
     |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 965 |                 }
 966 |             }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:972:27: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 874 | ///
 875 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
 876 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
     |                  `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
 877 |     /// The parent central manager.
 878 |     private let manager: CBMCentralManagerMock
     :
 970 |         let result = delegate.peripheralDidReceiveConnectionRequest(mock)
 971 |         queue.asyncAfter(deadline: .now() + interval) { [weak self] in
 972 |             if let self = self, self.state == .connecting {
     |                           `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 973 |                 if case .success = result {
 974 |                     self.state = .connected
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:981:17: warning: capture of 'completion' with non-sendable type '(Result<Void, any Error>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 979 |                     self.state = .disconnected
 980 |                 }
 981 |                 completion(result)
     |                 |- warning: capture of 'completion' with non-sendable type '(Result<Void, any Error>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
     |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 982 |             }
 983 |         }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:991:17: warning: capture of 'completion' with non-sendable type '() -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 989 |             state = .disconnected
 990 |             queue.async {
 991 |                 completion()
     |                 |- warning: capture of 'completion' with non-sendable type '() -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
     |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 992 |             }
 993 |             return
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1006:27: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 874 | ///
 875 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
 876 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
     |                  `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
 877 |     /// The parent central manager.
 878 |     private let manager: CBMCentralManagerMock
     :
1004 |             // `tearDownSimulation()` could have been called before this is called.
1005 |             // See https://github.com/NordicSemiconductor/IOS-CoreBluetooth-Mock/issues/25
1006 |             if let self = self, self.state == .disconnecting,
     |                           `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1007 |                CBMCentralManagerMock.managerState == .poweredOn {
1008 |                 self.state = .disconnected
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1014:17: warning: capture of 'completion' with non-sendable type '() -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1012 |                 self.mock.connectionDelegate?.peripheral(self.mock,
1013 |                                                          didDisconnect: nil)
1014 |                 completion()
     |                 |- warning: capture of 'completion' with non-sendable type '() -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
     |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1015 |             }
1016 |         }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1033:27: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 874 | ///
 875 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
 876 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
     |                  `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
 877 |     /// The parent central manager.
 878 |     private let manager: CBMCentralManagerMock
     :
1031 |         }
1032 |         queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1033 |             if let self = self, CBMCentralManagerMock.managerState == .poweredOn {
     |                           `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1034 |                 self.state = .disconnected
1035 |                 self.services = nil
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1043:17: warning: capture of 'completion' with non-sendable type '((any Error)?) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1041 |                 self.mock.connectionDelegate?.peripheral(self.mock,
1042 |                                                          didDisconnect: error)
1043 |                 completion(error)
     |                 |- warning: capture of 'completion' with non-sendable type '((any Error)?) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
     |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1044 |             }
1045 |         }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1056:27: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 874 | ///
 875 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
 876 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
     |                  `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
 877 |     /// The parent central manager.
 878 |     private let manager: CBMCentralManagerMock
     :
1054 |         }
1055 |         queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1056 |             if let self = self, self.state == .connected {
     |                           `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1057 |                 self.delegate?.peripheralDidUpdateName(self)
1058 |             }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1078:27: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 874 | ///
 875 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
 876 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
     |                  `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
 877 |     /// The parent central manager.
 878 |     private let manager: CBMCentralManagerMock
     :
1076 |         let invalidatedServices = oldServices.filter({ !services!.contains($0) })
1077 |         queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1078 |             if let self = self, self.state == .connected {
     |                           `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1079 |                 self.delegate?.peripheral(self, didModifyServices: invalidatedServices)
1080 |             }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1079:68: warning: capture of 'invalidatedServices' with non-sendable type '[CBMService]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1077 |         queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1078 |             if let self = self, self.state == .connected {
1079 |                 self.delegate?.peripheral(self, didModifyServices: invalidatedServices)
     |                                                                    `- warning: capture of 'invalidatedServices' with non-sendable type '[CBMService]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1080 |             }
1081 |         }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:53:12: note: class 'CBMService' does not conform to the 'Sendable' protocol
 51 | /// `CBMService` objects represent services of a remote peripheral. Services are either primary or secondary and
 52 | /// may contain multiple characteristics or included services (references to other services).
 53 | open class CBMService: CBMAttribute {
    |            `- note: class 'CBMService' does not conform to the 'Sendable' protocol
 54 |     internal let identifier: UUID
 55 |     private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1101:27: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 874 | ///
 875 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
 876 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
     |                  `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
 877 |     /// The parent central manager.
 878 |     private let manager: CBMCentralManagerMock
     :
1099 |         let value = originalCharacteristic.value
1100 |         queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1101 |             if let self = self, self.state == .connected {
     |                           `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1102 |                 characteristic.value = value
1103 |                 self.delegate?.peripheral(self,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1102:17: warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1100 |         queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1101 |             if let self = self, self.state == .connected {
1102 |                 characteristic.value = value
     |                 `- warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1103 |                 self.delegate?.peripheral(self,
1104 |                                           didUpdateValueFor: characteristic,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:193:12: note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
191 | /// of descriptors describing that value. The properties of a characteristic determine how you can use a characteristic’s value,
192 | /// and how you access the descriptors.
193 | open class CBMCharacteristic: CBMAttribute {
    |            `- note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
194 |     internal let identifier: UUID
195 |     private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1148:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 874 | ///
 875 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
 876 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
     |                  `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
 877 |     /// The parent central manager.
 878 |     private let manager: CBMCentralManagerMock
     :
1146 |             let delay = interval * Double(newServicesCount)
1147 |             queue.asyncAfter(deadline: .now() + delay) { [weak self] in
1148 |                 if let self = self, self.state == .connected {
     |                               `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1149 |                     self.delegate?.peripheral(self, didDiscoverServices: nil)
1150 |                 }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1154:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 874 | ///
 875 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
 876 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
     |                  `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
 877 |     /// The parent central manager.
 878 |     private let manager: CBMCentralManagerMock
     :
1152 |         case .failure(let error):
1153 |             queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1154 |                 if let self = self, self.state == .connected {
     |                               `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1155 |                     self.delegate?.peripheral(self, didDiscoverServices: error)
1156 |                 }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1196:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 874 | ///
 875 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
 876 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
     |                  `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
 877 |     /// The parent central manager.
 878 |     private let manager: CBMCentralManagerMock
     :
1194 |             let delay = interval * Double(newServicesCount)
1195 |             queue.asyncAfter(deadline: .now() + delay) { [weak self] in
1196 |                 if let self = self, self.state == .connected {
     |                               `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1197 |                     self.delegate?.peripheral(self,
1198 |                                               didDiscoverIncludedServicesFor: service,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1198:79: warning: capture of 'service' with non-sendable type 'CBMService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1196 |                 if let self = self, self.state == .connected {
1197 |                     self.delegate?.peripheral(self,
1198 |                                               didDiscoverIncludedServicesFor: service,
     |                                                                               `- warning: capture of 'service' with non-sendable type 'CBMService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1199 |                                               error: nil)
1200 |                 }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:53:12: note: class 'CBMService' does not conform to the 'Sendable' protocol
 51 | /// `CBMService` objects represent services of a remote peripheral. Services are either primary or secondary and
 52 | /// may contain multiple characteristics or included services (references to other services).
 53 | open class CBMService: CBMAttribute {
    |            `- note: class 'CBMService' does not conform to the 'Sendable' protocol
 54 |     internal let identifier: UUID
 55 |     private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1204:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 874 | ///
 875 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
 876 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
     |                  `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
 877 |     /// The parent central manager.
 878 |     private let manager: CBMCentralManagerMock
     :
1202 |         case .failure(let error):
1203 |             queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1204 |                 if let self = self, self.state == .connected {
     |                               `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1205 |                     self.delegate?.peripheral(self,
1206 |                                               didDiscoverIncludedServicesFor: service,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1206:79: warning: capture of 'service' with non-sendable type 'CBMService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1204 |                 if let self = self, self.state == .connected {
1205 |                     self.delegate?.peripheral(self,
1206 |                                               didDiscoverIncludedServicesFor: service,
     |                                                                               `- warning: capture of 'service' with non-sendable type 'CBMService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1207 |                                               error: error)
1208 |                 }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:53:12: note: class 'CBMService' does not conform to the 'Sendable' protocol
 51 | /// `CBMService` objects represent services of a remote peripheral. Services are either primary or secondary and
 52 | /// may contain multiple characteristics or included services (references to other services).
 53 | open class CBMService: CBMAttribute {
    |            `- note: class 'CBMService' does not conform to the 'Sendable' protocol
 54 |     internal let identifier: UUID
 55 |     private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1249:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 874 | ///
 875 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
 876 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
     |                  `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
 877 |     /// The parent central manager.
 878 |     private let manager: CBMCentralManagerMock
     :
1247 |             let delay = interval * Double(newCharacteristicsCount)
1248 |             queue.asyncAfter(deadline: .now() + delay) { [weak self] in
1249 |                 if let self = self, self.state == .connected {
     |                               `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1250 |                     self.delegate?.peripheral(self,
1251 |                                               didDiscoverCharacteristicsFor: service,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1251:78: warning: capture of 'service' with non-sendable type 'CBMService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1249 |                 if let self = self, self.state == .connected {
1250 |                     self.delegate?.peripheral(self,
1251 |                                               didDiscoverCharacteristicsFor: service,
     |                                                                              `- warning: capture of 'service' with non-sendable type 'CBMService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1252 |                                               error: nil)
1253 |                 }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:53:12: note: class 'CBMService' does not conform to the 'Sendable' protocol
 51 | /// `CBMService` objects represent services of a remote peripheral. Services are either primary or secondary and
 52 | /// may contain multiple characteristics or included services (references to other services).
 53 | open class CBMService: CBMAttribute {
    |            `- note: class 'CBMService' does not conform to the 'Sendable' protocol
 54 |     internal let identifier: UUID
 55 |     private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1257:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 874 | ///
 875 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
 876 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
     |                  `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
 877 |     /// The parent central manager.
 878 |     private let manager: CBMCentralManagerMock
     :
1255 |         case .failure(let error):
1256 |             queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1257 |                 if let self = self, self.state == .connected {
     |                               `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1258 |                     self.delegate?.peripheral(self,
1259 |                                               didDiscoverCharacteristicsFor: service,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1259:78: warning: capture of 'service' with non-sendable type 'CBMService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1257 |                 if let self = self, self.state == .connected {
1258 |                     self.delegate?.peripheral(self,
1259 |                                               didDiscoverCharacteristicsFor: service,
     |                                                                              `- warning: capture of 'service' with non-sendable type 'CBMService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1260 |                                               error: error)
1261 |                 }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:53:12: note: class 'CBMService' does not conform to the 'Sendable' protocol
 51 | /// `CBMService` objects represent services of a remote peripheral. Services are either primary or secondary and
 52 | /// may contain multiple characteristics or included services (references to other services).
 53 | open class CBMService: CBMAttribute {
    |            `- note: class 'CBMService' does not conform to the 'Sendable' protocol
 54 |     internal let identifier: UUID
 55 |     private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1298:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 874 | ///
 875 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
 876 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
     |                  `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
 877 |     /// The parent central manager.
 878 |     private let manager: CBMCentralManagerMock
     :
1296 |             let delay = interval * Double(newDescriptorsCount)
1297 |             queue.asyncAfter(deadline: .now() + delay) { [weak self] in
1298 |                 if let self = self, self.state == .connected {
     |                               `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1299 |                     self.delegate?.peripheral(self,
1300 |                                               didDiscoverDescriptorsFor: characteristic,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1300:74: warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1298 |                 if let self = self, self.state == .connected {
1299 |                     self.delegate?.peripheral(self,
1300 |                                               didDiscoverDescriptorsFor: characteristic,
     |                                                                          `- warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1301 |                                               error: nil)
1302 |                 }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:193:12: note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
191 | /// of descriptors describing that value. The properties of a characteristic determine how you can use a characteristic’s value,
192 | /// and how you access the descriptors.
193 | open class CBMCharacteristic: CBMAttribute {
    |            `- note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
194 |     internal let identifier: UUID
195 |     private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1306:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 874 | ///
 875 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
 876 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
     |                  `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
 877 |     /// The parent central manager.
 878 |     private let manager: CBMCentralManagerMock
     :
1304 |         case .failure(let error):
1305 |             queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1306 |                 if let self = self, self.state == .connected {
     |                               `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1307 |                     self.delegate?.peripheral(self,
1308 |                                               didDiscoverDescriptorsFor: characteristic,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1308:74: warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1306 |                 if let self = self, self.state == .connected {
1307 |                     self.delegate?.peripheral(self,
1308 |                                               didDiscoverDescriptorsFor: characteristic,
     |                                                                          `- warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1309 |                                               error: error)
1310 |                 }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:193:12: note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
191 | /// of descriptors describing that value. The properties of a characteristic determine how you can use a characteristic’s value,
192 | /// and how you access the descriptors.
193 | open class CBMCharacteristic: CBMAttribute {
    |            `- note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
194 |     internal let identifier: UUID
195 |     private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1333:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 874 | ///
 875 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
 876 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
     |                  `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
 877 |     /// The parent central manager.
 878 |     private let manager: CBMCentralManagerMock
     :
1331 |         case .success(let data):
1332 |             queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1333 |                 if let self = self, self.state == .connected {
     |                               `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1334 |                     characteristic.value = data
1335 |                     self.delegate?.peripheral(self,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1334:21: warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1332 |             queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1333 |                 if let self = self, self.state == .connected {
1334 |                     characteristic.value = data
     |                     `- warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1335 |                     self.delegate?.peripheral(self,
1336 |                                               didUpdateValueFor: characteristic,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:193:12: note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
191 | /// of descriptors describing that value. The properties of a characteristic determine how you can use a characteristic’s value,
192 | /// and how you access the descriptors.
193 | open class CBMCharacteristic: CBMAttribute {
    |            `- note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
194 |     internal let identifier: UUID
195 |     private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1342:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 874 | ///
 875 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
 876 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
     |                  `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
 877 |     /// The parent central manager.
 878 |     private let manager: CBMCentralManagerMock
     :
1340 |         case .failure(let error):
1341 |             queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1342 |                 if let self = self, self.state == .connected {
     |                               `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1343 |                     self.delegate?.peripheral(self,
1344 |                                               didUpdateValueFor: characteristic,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1344:66: warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1342 |                 if let self = self, self.state == .connected {
1343 |                     self.delegate?.peripheral(self,
1344 |                                               didUpdateValueFor: characteristic,
     |                                                                  `- warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1345 |                                               error: error)
1346 |                 }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:193:12: note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
191 | /// of descriptors describing that value. The properties of a characteristic determine how you can use a characteristic’s value,
192 | /// and how you access the descriptors.
193 | open class CBMCharacteristic: CBMAttribute {
    |            `- note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
194 |     internal let identifier: UUID
195 |     private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1367:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 874 | ///
 875 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
 876 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
     |                  `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
 877 |     /// The parent central manager.
 878 |     private let manager: CBMCentralManagerMock
     :
1365 |         case .success(let data):
1366 |             queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1367 |                 if let self = self, self.state == .connected {
     |                               `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1368 |                     descriptor.value = data
1369 |                     self.delegate?.peripheral(self,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1368:21: warning: capture of 'descriptor' with non-sendable type 'CBMDescriptor' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1366 |             queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1367 |                 if let self = self, self.state == .connected {
1368 |                     descriptor.value = data
     |                     `- warning: capture of 'descriptor' with non-sendable type 'CBMDescriptor' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1369 |                     self.delegate?.peripheral(self,
1370 |                                               didUpdateValueFor: descriptor,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:323:12: note: class 'CBMDescriptor' does not conform to the 'Sendable' protocol
321 | /// ``CBMUUID`` details six predefined descriptors and their corresponding value types. `CBMDescriptor` lists the
322 | /// predefined descriptors and the ``CBMUUID`` constants that represent them.
323 | open class CBMDescriptor: CBMAttribute {
    |            `- note: class 'CBMDescriptor' does not conform to the 'Sendable' protocol
324 |     internal let identifier: UUID
325 |     private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1376:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 874 | ///
 875 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
 876 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
     |                  `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
 877 |     /// The parent central manager.
 878 |     private let manager: CBMCentralManagerMock
     :
1374 |         case .failure(let error):
1375 |             queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1376 |                 if let self = self, self.state == .connected {
     |                               `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1377 |                     self.delegate?.peripheral(self,
1378 |                                               didUpdateValueFor: descriptor,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1378:66: warning: capture of 'descriptor' with non-sendable type 'CBMDescriptor' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1376 |                 if let self = self, self.state == .connected {
1377 |                     self.delegate?.peripheral(self,
1378 |                                               didUpdateValueFor: descriptor,
     |                                                                  `- warning: capture of 'descriptor' with non-sendable type 'CBMDescriptor' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1379 |                                               error: error)
1380 |                 }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:323:12: note: class 'CBMDescriptor' does not conform to the 'Sendable' protocol
321 | /// ``CBMUUID`` details six predefined descriptors and their corresponding value types. `CBMDescriptor` lists the
322 | /// predefined descriptors and the ``CBMUUID`` constants that represent them.
323 | open class CBMDescriptor: CBMAttribute {
    |            `- note: class 'CBMDescriptor' does not conform to the 'Sendable' protocol
324 |     internal let identifier: UUID
325 |     private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1411:35: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 874 | ///
 875 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
 876 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
     |                  `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
 877 |     /// The parent central manager.
 878 |     private let manager: CBMCentralManagerMock
     :
1409 |                 let delay = interval * Double(packetsCount)
1410 |                 queue.asyncAfter(deadline: .now() + delay) { [weak self] in
1411 |                     if let self = self, self.state == .connected {
     |                                   `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1412 |                         self.delegate?.peripheral(self,
1413 |                                                   didWriteValueFor: characteristic,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1413:69: warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1411 |                     if let self = self, self.state == .connected {
1412 |                         self.delegate?.peripheral(self,
1413 |                                                   didWriteValueFor: characteristic,
     |                                                                     `- warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1414 |                                                   error: nil)
1415 |                     }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:193:12: note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
191 | /// of descriptors describing that value. The properties of a characteristic determine how you can use a characteristic’s value,
192 | /// and how you access the descriptors.
193 | open class CBMCharacteristic: CBMAttribute {
    |            `- note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
194 |     internal let identifier: UUID
195 |     private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1419:35: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 874 | ///
 875 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
 876 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
     |                  `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
 877 |     /// The parent central manager.
 878 |     private let manager: CBMCentralManagerMock
     :
1417 |             case .failure(let error):
1418 |                 queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1419 |                     if let self = self, self.state == .connected {
     |                                   `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1420 |                         self.delegate?.peripheral(self,
1421 |                                                   didWriteValueFor: characteristic,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1421:69: warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1419 |                     if let self = self, self.state == .connected {
1420 |                         self.delegate?.peripheral(self,
1421 |                                                   didWriteValueFor: characteristic,
     |                                                                     `- warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1422 |                                                   error: error)
1423 |                     }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:193:12: note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
191 | /// of descriptors describing that value. The properties of a characteristic determine how you can use a characteristic’s value,
192 | /// and how you access the descriptors.
193 | open class CBMCharacteristic: CBMAttribute {
    |            `- note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
194 |     internal let identifier: UUID
195 |     private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1441:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 874 | ///
 875 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
 876 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
     |                  `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
 877 |     /// The parent central manager.
 878 |     private let manager: CBMCentralManagerMock
     :
1439 |
1440 |             queue.async { [weak self] in
1441 |                 if let self = self, self.state == .connected {
     |                               `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1442 |                     // Increase buffer.
1443 |                     self.mutex.sync {
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1473:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 874 | ///
 875 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
 876 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
     |                  `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
 877 |     /// The parent central manager.
 878 |     private let manager: CBMCentralManagerMock
     :
1471 |         case .success:
1472 |             queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1473 |                 if let self = self, self.state == .connected {
     |                               `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1474 |                     self.delegate?.peripheral(self,
1475 |                                               didWriteValueFor: descriptor,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1475:65: warning: capture of 'descriptor' with non-sendable type 'CBMDescriptor' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1473 |                 if let self = self, self.state == .connected {
1474 |                     self.delegate?.peripheral(self,
1475 |                                               didWriteValueFor: descriptor,
     |                                                                 `- warning: capture of 'descriptor' with non-sendable type 'CBMDescriptor' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1476 |                                               error: nil)
1477 |                 }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:323:12: note: class 'CBMDescriptor' does not conform to the 'Sendable' protocol
321 | /// ``CBMUUID`` details six predefined descriptors and their corresponding value types. `CBMDescriptor` lists the
322 | /// predefined descriptors and the ``CBMUUID`` constants that represent them.
323 | open class CBMDescriptor: CBMAttribute {
    |            `- note: class 'CBMDescriptor' does not conform to the 'Sendable' protocol
324 |     internal let identifier: UUID
325 |     private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1481:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 874 | ///
 875 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
 876 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
     |                  `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
 877 |     /// The parent central manager.
 878 |     private let manager: CBMCentralManagerMock
     :
1479 |         case .failure(let error):
1480 |             queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1481 |                 if let self = self, self.state == .connected {
     |                               `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1482 |                     self.delegate?.peripheral(self,
1483 |                                               didWriteValueFor: descriptor,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1483:65: warning: capture of 'descriptor' with non-sendable type 'CBMDescriptor' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1481 |                 if let self = self, self.state == .connected {
1482 |                     self.delegate?.peripheral(self,
1483 |                                               didWriteValueFor: descriptor,
     |                                                                 `- warning: capture of 'descriptor' with non-sendable type 'CBMDescriptor' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1484 |                                               error: error)
1485 |                 }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:323:12: note: class 'CBMDescriptor' does not conform to the 'Sendable' protocol
321 | /// ``CBMUUID`` details six predefined descriptors and their corresponding value types. `CBMDescriptor` lists the
322 | /// predefined descriptors and the ``CBMUUID`` constants that represent them.
323 | open class CBMDescriptor: CBMAttribute {
    |            `- note: class 'CBMDescriptor' does not conform to the 'Sendable' protocol
324 |     internal let identifier: UUID
325 |     private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1524:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 874 | ///
 875 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
 876 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
     |                  `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
 877 |     /// The parent central manager.
 878 |     private let manager: CBMCentralManagerMock
     :
1522 |         case .success:
1523 |             queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1524 |                 if let self = self, self.state == .connected {
     |                               `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1525 |                     characteristic.isNotifying = enabled
1526 |                     self.delegate?.peripheral(self,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1525:21: warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1523 |             queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1524 |                 if let self = self, self.state == .connected {
1525 |                     characteristic.isNotifying = enabled
     |                     `- warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1526 |                     self.delegate?.peripheral(self,
1527 |                                               didUpdateNotificationStateFor: characteristic,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:193:12: note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
191 | /// of descriptors describing that value. The properties of a characteristic determine how you can use a characteristic’s value,
192 | /// and how you access the descriptors.
193 | open class CBMCharacteristic: CBMAttribute {
    |            `- note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
194 |     internal let identifier: UUID
195 |     private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1529:21: warning: capture of 'mockCharacteristic' with non-sendable type 'CBMCharacteristicMock' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1527 |                                               didUpdateNotificationStateFor: characteristic,
1528 |                                               error: nil)
1529 |                     mockCharacteristic.isNotifying = enabled
     |                     `- warning: capture of 'mockCharacteristic' with non-sendable type 'CBMCharacteristicMock' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1530 |                     self.mock.connectionDelegate?.peripheral(self.mock,
1531 |                                     didUpdateNotificationStateFor: mockCharacteristic,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:284:12: note: class 'CBMCharacteristicMock' does not conform to the 'Sendable' protocol
282 |
283 | /// Mock implementation of ``CBMCharacteristic``.
284 | open class CBMCharacteristicMock: CBMCharacteristic {
    |            `- note: class 'CBMCharacteristicMock' does not conform to the 'Sendable' protocol
285 |
286 |     open override var descriptors: [CBMDescriptor]? {
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1537:31: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 874 | ///
 875 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
 876 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
     |                  `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
 877 |     /// The parent central manager.
 878 |     private let manager: CBMCentralManagerMock
     :
1535 |         case .failure(let error):
1536 |             queue.asyncAfter(deadline: .now() + interval) { [weak self] in
1537 |                 if let self = self, self.state == .connected {
     |                               `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1538 |                     self.delegate?.peripheral(self,
1539 |                                               didUpdateNotificationStateFor: characteristic,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1539:78: warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1537 |                 if let self = self, self.state == .connected {
1538 |                     self.delegate?.peripheral(self,
1539 |                                               didUpdateNotificationStateFor: characteristic,
     |                                                                              `- warning: capture of 'characteristic' with non-sendable type 'CBMCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1540 |                                               error: error)
1541 |                     self.mock.connectionDelegate?.peripheral(self.mock,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:193:12: note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
191 | /// of descriptors describing that value. The properties of a characteristic determine how you can use a characteristic’s value,
192 | /// and how you access the descriptors.
193 | open class CBMCharacteristic: CBMAttribute {
    |            `- note: class 'CBMCharacteristic' does not conform to the 'Sendable' protocol
194 |     internal let identifier: UUID
195 |     private let _uuid: CBMUUID
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1542:68: warning: capture of 'mockCharacteristic' with non-sendable type 'CBMCharacteristicMock' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1540 |                                               error: error)
1541 |                     self.mock.connectionDelegate?.peripheral(self.mock,
1542 |                                     didUpdateNotificationStateFor: mockCharacteristic,
     |                                                                    `- warning: capture of 'mockCharacteristic' with non-sendable type 'CBMCharacteristicMock' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1543 |                                     error: error)
1544 |                 }
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMAttributes.swift:284:12: note: class 'CBMCharacteristicMock' does not conform to the 'Sendable' protocol
282 |
283 | /// Mock implementation of ``CBMCharacteristic``.
284 | open class CBMCharacteristicMock: CBMCharacteristic {
    |            `- note: class 'CBMCharacteristicMock' does not conform to the 'Sendable' protocol
285 |
286 |     open override var descriptors: [CBMDescriptor]? {
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:1555:27: warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 874 | ///
 875 | /// Unless required, this class should not be accessed directly, but rather by the common protocol ``CBMPeripheral``.
 876 | @objc open class CBMPeripheralMock: CBMPeer, CBMPeripheral {
     |                  `- note: class 'CBMPeripheralMock' does not conform to the 'Sendable' protocol
 877 |     /// The parent central manager.
 878 |     private let manager: CBMCentralManagerMock
     :
1553 |         guard manager.ensurePoweredOn() else { return }
1554 |         queue.async { [weak self] in
1555 |             if let self = self, self.state == .connected {
     |                           `- warning: capture of 'self' with non-sendable type 'CBMPeripheralMock?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1556 |                 let rssi = self.mock.proximity.RSSI
1557 |                 let delta = CBMCentralManagerMock.rssiDeviation
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:137:16: warning: sending 'config' risks causing data races; this is an error in the Swift 6 language mode
 135 |             // If the first advertising is to be delayed, create a
 136 |             // temporary timer that will call the initial data.
 137 |             if config.delay > 0 {
     |                |- warning: sending 'config' risks causing data races; this is an error in the Swift 6 language mode
     |                `- note: task-isolated 'config' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 138 |                 advertisementTimers[config] = Timer.scheduledTimer(
 139 |                     timeInterval: config.delay,
/Users/admin/builder/spi-builder-workspace/CoreBluetoothMock/CBMCentralManagerMock.swift:142:32: warning: sending 'mock' risks causing data races; this is an error in the Swift 6 language mode
 140 |                     target: self,
 141 |                     selector: #selector(self.schedule(timer:)),
 142 |                     userInfo: (mock, config),
     |                                |- warning: sending 'mock' risks causing data races; this is an error in the Swift 6 language mode
     |                                `- note: task-isolated 'mock' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 143 |                     repeats: false)
 144 |             } else {
Build complete! (22.34s)
Build complete.
{
  "dependencies" : [
    {
      "identity" : "swift-docc-plugin",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.0.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-docc-plugin"
    }
  ],
  "manifest_display_name" : "CoreBluetoothMock",
  "name" : "CoreBluetoothMock",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "10.13"
    },
    {
      "name" : "ios",
      "version" : "11.0"
    },
    {
      "name" : "watchos",
      "version" : "4.0"
    },
    {
      "name" : "tvos",
      "version" : "11.0"
    }
  ],
  "products" : [
    {
      "name" : "CoreBluetoothMock",
      "targets" : [
        "CoreBluetoothMock"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "swift_languages_versions" : [
    "5"
  ],
  "targets" : [
    {
      "c99name" : "CoreBluetoothMock",
      "module_type" : "SwiftTarget",
      "name" : "CoreBluetoothMock",
      "path" : "CoreBluetoothMock",
      "product_memberships" : [
        "CoreBluetoothMock"
      ],
      "sources" : [
        "CBMAttributes.swift",
        "CBMCentralManager.swift",
        "CBMCentralManagerDelegate.swift",
        "CBMCentralManagerDelegateProxy.swift",
        "CBMCentralManagerFactory.swift",
        "CBMCentralManagerMock.swift",
        "CBMCentralManagerNative.swift",
        "CBMManagerTypes.swift",
        "CBMPeer.swift",
        "CBMPeripheral.swift",
        "CBMPeripheralDelegate.swift",
        "CBMPeripheralDelegateProxy.swift",
        "CBMPeripheralPreview.swift",
        "CBMPeripheralSpec.swift",
        "CBMPeripheralSpecDelegate.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.6"
}
Done.