This is a staging environment. For live and up-to-date package information, visit swiftpackageindex.com.

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 OTPKit with Swift 6.0 for macOS (SPM).

Swift 6 data race errors: 11

Build Command

env DEVELOPER_DIR=/Applications/Xcode-15.3.0.app xcrun --toolchain org.swift.600202405261a swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete

Build Log

  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
 578 |                 if let systemNumbers = Self.queue.sync (execute: { self?.producers.flatMap { $0.systemNumbers } }) {
 579 |
 580 |                     self?.delegateQueue.async { self?.consumerDelegate?.discoveredSystemNumbers(Array(Set(systemNumbers))) }
     |                                                 `- warning: capture of 'self' with non-sendable type 'OTPConsumer?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 581 |
 582 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:580:49: warning: reference to captured var 'self' in concurrently-executing code; this is an error in the Swift 6 language mode
 578 |                 if let systemNumbers = Self.queue.sync (execute: { self?.producers.flatMap { $0.systemNumbers } }) {
 579 |
 580 |                     self?.delegateQueue.async { self?.consumerDelegate?.discoveredSystemNumbers(Array(Set(systemNumbers))) }
     |                                                 `- warning: reference to captured var 'self' in concurrently-executing code; this is an error in the Swift 6 language mode
 581 |
 582 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:977:35: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
 975 |
 976 |             // a newly addressed point has appeared or disappeared
 977 |             delegateQueue.async { self.consumerDelegate?.replaceAllPoints(allPoints) }
     |                                   `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 978 |
 979 |         } else {
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:977:75: warning: capture of 'allPoints' with non-sendable type '[OTPPoint]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 975 |
 976 |             // a newly addressed point has appeared or disappeared
 977 |             delegateQueue.async { self.consumerDelegate?.replaceAllPoints(allPoints) }
     |                                                                           `- warning: capture of 'allPoints' with non-sendable type '[OTPPoint]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 978 |
 979 |         } else {
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Types/Point.swift:157:15: note: consider making struct 'OTPPoint' conform to the 'Sendable' protocol
155 | */
156 |
157 | public struct OTPPoint: Comparable, Hashable {
    |               `- note: consider making struct 'OTPPoint' conform to the 'Sendable' protocol
158 |
159 |     /// The `OTPAddress` identifying the point.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:985:39: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
 983 |             // at least 1 point has changes
 984 |             if !pointsWithChanges.isEmpty {
 985 |                 delegateQueue.async { self.consumerDelegate?.changes(forPoints: pointsWithChanges) }
     |                                       `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 986 |             }
 987 |
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:985:81: warning: capture of 'pointsWithChanges' with non-sendable type '[OTPPoint]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 983 |             // at least 1 point has changes
 984 |             if !pointsWithChanges.isEmpty {
 985 |                 delegateQueue.async { self.consumerDelegate?.changes(forPoints: pointsWithChanges) }
     |                                                                                 `- warning: capture of 'pointsWithChanges' with non-sendable type '[OTPPoint]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 986 |             }
 987 |
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Types/Point.swift:157:15: note: consider making struct 'OTPPoint' conform to the 'Sendable' protocol
155 | */
156 |
157 | public struct OTPPoint: Comparable, Hashable {
    |               `- note: consider making struct 'OTPPoint' conform to the 'Sendable' protocol
158 |
159 |     /// The `OTPAddress` identifying the point.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1008:35: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1006 |
1007 |         for producer in lostProducers {
1008 |             delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: producer.name, cid: producer.cid, ipMode: producer.ipMode, ipAddresses: producer.ipAddresses, sequenceErrors: producer.sequenceErrors, state: .offline)) }
     |                                   `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1009 |         }
1010 |
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1008:104: warning: capture of 'producer' with non-sendable type 'ConsumerProducer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1006 |
1007 |         for producer in lostProducers {
1008 |             delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: producer.name, cid: producer.cid, ipMode: producer.ipMode, ipAddresses: producer.ipAddresses, sequenceErrors: producer.sequenceErrors, state: .offline)) }
     |                                                                                                        `- warning: capture of 'producer' with non-sendable type 'ConsumerProducer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1009 |         }
1010 |
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/ConsumerProducer.swift:36:8: note: consider making struct 'ConsumerProducer' conform to the 'Sendable' protocol
 34 | */
 35 |
 36 | struct ConsumerProducer: Equatable {
    |        `- note: consider making struct 'ConsumerProducer' conform to the 'Sendable' protocol
 37 |
 38 |     /// A globally unique identifier (UUID) representing the producer, compliant with RFC 4122.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1039:39: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1037 |
1038 |                 // notify the debug delegate
1039 |                 delegateQueue.async { self.debugDelegate?.debugLog("Attempting multicast leave for \(systemNumber)") }
     |                                       `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1040 |
1041 |                 // the existing contains this number, but the new does not
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1058:39: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1056 |
1057 |                 // notify the debug delegate
1058 |                 delegateQueue.async { self.debugDelegate?.debugLog("Attempting multicast join for System \(systemNumber)") }
     |                                       `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1059 |
1060 |                 // the new contains this number, but the existing does not
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1183:31: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1181 |
1182 |         // notify the debug delegate
1183 |         delegateQueue.async { self.debugDelegate?.debugLog("Sending module advertisement message(s) multicast") }
     |                               `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1184 |
1185 |         // increment the folio number
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1315:60: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1313 |
1314 |                                 // notify the delegate of the producer status
1315 |                                 self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: otpLayer.componentName, cid: producer.cid, ipMode: existingComponentIPMode, ipAddresses: newIpAddresses, sequenceErrors: producer.sequenceErrors, state: notifiedState)) }
     |                                                            `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1316 |
1317 |                                 // update both name and ip when this happens
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1315:158: warning: capture of 'producer' with non-sendable type 'ConsumerProducer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1313 |
1314 |                                 // notify the delegate of the producer status
1315 |                                 self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: otpLayer.componentName, cid: producer.cid, ipMode: existingComponentIPMode, ipAddresses: newIpAddresses, sequenceErrors: producer.sequenceErrors, state: notifiedState)) }
     |                                                                                                                                                              `- warning: capture of 'producer' with non-sendable type 'ConsumerProducer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1316 |
1317 |                                 // update both name and ip when this happens
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/ConsumerProducer.swift:36:8: note: consider making struct 'ConsumerProducer' conform to the 'Sendable' protocol
 34 | */
 35 |
 36 | struct ConsumerProducer: Equatable {
    |        `- note: consider making struct 'ConsumerProducer' conform to the 'Sendable' protocol
 37 |
 38 |     /// A globally unique identifier (UUID) representing the producer, compliant with RFC 4122.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1315:180: warning: capture of 'existingComponentIPMode' with non-sendable type 'OTPIPMode' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1313 |
1314 |                                 // notify the delegate of the producer status
1315 |                                 self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: otpLayer.componentName, cid: producer.cid, ipMode: existingComponentIPMode, ipAddresses: newIpAddresses, sequenceErrors: producer.sequenceErrors, state: notifiedState)) }
     |                                                                                                                                                                                    `- warning: capture of 'existingComponentIPMode' with non-sendable type 'OTPIPMode' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1316 |
1317 |                                 // update both name and ip when this happens
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Network/NetworkDefinitions.swift:60:13: note: consider making enum 'OTPIPMode' conform to the 'Sendable' protocol
 58 |
 59 | */
 60 | public enum OTPIPMode: String, CaseIterable {
    |             `- note: consider making enum 'OTPIPMode' conform to the 'Sendable' protocol
 61 |
 62 |     /// The `Component` should only use IPv4.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1315:282: warning: capture of 'notifiedState' with non-sendable type 'OTPComponentState' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1313 |
1314 |                                 // notify the delegate of the producer status
1315 |                                 self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: otpLayer.componentName, cid: producer.cid, ipMode: existingComponentIPMode, ipAddresses: newIpAddresses, sequenceErrors: producer.sequenceErrors, state: notifiedState)) }
     |                                                                                                                                                                                                                                                                                          `- warning: capture of 'notifiedState' with non-sendable type 'OTPComponentState' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1316 |
1317 |                                 // update both name and ip when this happens
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/ComponentStatus.swift:35:13: note: consider making enum 'OTPComponentState' conform to the 'Sendable' protocol
 33 |
 34 | */
 35 | public enum OTPComponentState: String {
    |             `- note: consider making enum 'OTPComponentState' conform to the 'Sendable' protocol
 36 |
 37 |     /// This component is offline.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1332:56: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1330 |
1331 |                             // notify the delegate of the producer status
1332 |                             self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: otpLayer.componentName, cid: otpLayer.cid, ipMode: newComponentIPMode, ipAddresses: [hostname], sequenceErrors: producer.sequenceErrors, state: .advertising)) }
     |                                                        `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1333 |
1334 |                         }
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1332:176: warning: capture of 'newComponentIPMode' with non-sendable type 'OTPIPMode' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1330 |
1331 |                             // notify the delegate of the producer status
1332 |                             self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: otpLayer.componentName, cid: otpLayer.cid, ipMode: newComponentIPMode, ipAddresses: [hostname], sequenceErrors: producer.sequenceErrors, state: .advertising)) }
     |                                                                                                                                                                                `- warning: capture of 'newComponentIPMode' with non-sendable type 'OTPIPMode' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1333 |
1334 |                         }
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Network/NetworkDefinitions.swift:60:13: note: consider making enum 'OTPIPMode' conform to the 'Sendable' protocol
 58 |
 59 | */
 60 | public enum OTPIPMode: String, CaseIterable {
    |             `- note: consider making enum 'OTPIPMode' conform to the 'Sendable' protocol
 61 |
 62 |     /// The `Component` should only use IPv4.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1332:237: warning: capture of 'producer' with non-sendable type 'ConsumerProducer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1330 |
1331 |                             // notify the delegate of the producer status
1332 |                             self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: otpLayer.componentName, cid: otpLayer.cid, ipMode: newComponentIPMode, ipAddresses: [hostname], sequenceErrors: producer.sequenceErrors, state: .advertising)) }
     |                                                                                                                                                                                                                                             `- warning: capture of 'producer' with non-sendable type 'ConsumerProducer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1333 |
1334 |                         }
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/ConsumerProducer.swift:36:8: note: consider making struct 'ConsumerProducer' conform to the 'Sendable' protocol
 34 | */
 35 |
 36 | struct ConsumerProducer: Equatable {
    |        `- note: consider making struct 'ConsumerProducer' conform to the 'Sendable' protocol
 37 |
 38 |     /// A globally unique identifier (UUID) representing the producer, compliant with RFC 4122.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1337:47: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1335 |
1336 |                         // notify the debug delegate
1337 |                         delegateQueue.async { self.debugDelegate?.debugLog("Received name advertisement message from \(otpLayer.componentName) \(otpLayer.cid)") }
     |                                               `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1338 |
1339 |                     case .system:
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1384:60: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1382 |
1383 |                                 // notify the delegate of the producer information
1384 |                                 self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: otpLayer.componentName, cid: producer.cid, ipMode: existingComponentIPMode, ipAddresses: newIpAddresses, sequenceErrors: producer.sequenceErrors, state: notifiedState)) }
     |                                                            `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1385 |
1386 |                                 // update both name and ip when this happens
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1384:158: warning: capture of 'producer' with non-sendable type 'ConsumerProducer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1382 |
1383 |                                 // notify the delegate of the producer information
1384 |                                 self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: otpLayer.componentName, cid: producer.cid, ipMode: existingComponentIPMode, ipAddresses: newIpAddresses, sequenceErrors: producer.sequenceErrors, state: notifiedState)) }
     |                                                                                                                                                              `- warning: capture of 'producer' with non-sendable type 'ConsumerProducer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1385 |
1386 |                                 // update both name and ip when this happens
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/ConsumerProducer.swift:36:8: note: consider making struct 'ConsumerProducer' conform to the 'Sendable' protocol
 34 | */
 35 |
 36 | struct ConsumerProducer: Equatable {
    |        `- note: consider making struct 'ConsumerProducer' conform to the 'Sendable' protocol
 37 |
 38 |     /// A globally unique identifier (UUID) representing the producer, compliant with RFC 4122.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1384:180: warning: capture of 'existingComponentIPMode' with non-sendable type 'OTPIPMode' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1382 |
1383 |                                 // notify the delegate of the producer information
1384 |                                 self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: otpLayer.componentName, cid: producer.cid, ipMode: existingComponentIPMode, ipAddresses: newIpAddresses, sequenceErrors: producer.sequenceErrors, state: notifiedState)) }
     |                                                                                                                                                                                    `- warning: capture of 'existingComponentIPMode' with non-sendable type 'OTPIPMode' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1385 |
1386 |                                 // update both name and ip when this happens
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Network/NetworkDefinitions.swift:60:13: note: consider making enum 'OTPIPMode' conform to the 'Sendable' protocol
 58 |
 59 | */
 60 | public enum OTPIPMode: String, CaseIterable {
    |             `- note: consider making enum 'OTPIPMode' conform to the 'Sendable' protocol
 61 |
 62 |     /// The `Component` should only use IPv4.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1384:282: warning: capture of 'notifiedState' with non-sendable type 'OTPComponentState' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1382 |
1383 |                                 // notify the delegate of the producer information
1384 |                                 self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: otpLayer.componentName, cid: producer.cid, ipMode: existingComponentIPMode, ipAddresses: newIpAddresses, sequenceErrors: producer.sequenceErrors, state: notifiedState)) }
     |                                                                                                                                                                                                                                                                                          `- warning: capture of 'notifiedState' with non-sendable type 'OTPComponentState' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1385 |
1386 |                                 // update both name and ip when this happens
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/ComponentStatus.swift:35:13: note: consider making enum 'OTPComponentState' conform to the 'Sendable' protocol
 33 |
 34 | */
 35 | public enum OTPComponentState: String {
    |             `- note: consider making enum 'OTPComponentState' conform to the 'Sendable' protocol
 36 |
 37 |     /// This component is offline.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1400:56: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1398 |
1399 |                             // notify the delegate of the producer information
1400 |                             self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: otpLayer.componentName, cid: otpLayer.cid, ipMode: newComponentIPMode, ipAddresses: [hostname], sequenceErrors: producer.sequenceErrors, state: .advertising)) }
     |                                                        `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1401 |
1402 |                             // request names from producers
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1400:176: warning: capture of 'newComponentIPMode' with non-sendable type 'OTPIPMode' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1398 |
1399 |                             // notify the delegate of the producer information
1400 |                             self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: otpLayer.componentName, cid: otpLayer.cid, ipMode: newComponentIPMode, ipAddresses: [hostname], sequenceErrors: producer.sequenceErrors, state: .advertising)) }
     |                                                                                                                                                                                `- warning: capture of 'newComponentIPMode' with non-sendable type 'OTPIPMode' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1401 |
1402 |                             // request names from producers
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Network/NetworkDefinitions.swift:60:13: note: consider making enum 'OTPIPMode' conform to the 'Sendable' protocol
 58 |
 59 | */
 60 | public enum OTPIPMode: String, CaseIterable {
    |             `- note: consider making enum 'OTPIPMode' conform to the 'Sendable' protocol
 61 |
 62 |     /// The `Component` should only use IPv4.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1400:237: warning: capture of 'producer' with non-sendable type 'ConsumerProducer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1398 |
1399 |                             // notify the delegate of the producer information
1400 |                             self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: otpLayer.componentName, cid: otpLayer.cid, ipMode: newComponentIPMode, ipAddresses: [hostname], sequenceErrors: producer.sequenceErrors, state: .advertising)) }
     |                                                                                                                                                                                                                                             `- warning: capture of 'producer' with non-sendable type 'ConsumerProducer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1401 |
1402 |                             // request names from producers
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/ConsumerProducer.swift:36:8: note: consider making struct 'ConsumerProducer' conform to the 'Sendable' protocol
 34 | */
 35 |
 36 | struct ConsumerProducer: Equatable {
    |        `- note: consider making struct 'ConsumerProducer' conform to the 'Sendable' protocol
 37 |
 38 |     /// A globally unique identifier (UUID) representing the producer, compliant with RFC 4122.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1403:62: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1401 |
1402 |                             // request names from producers
1403 |                             Self.socketDelegateQueue.async { self.sendNameAdvertisementMessages() }
     |                                                              `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1404 |
1405 |                         }
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1408:58: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1406 |
1407 |                         // joins newly discovered systems which are observed
1408 |                         Self.socketDelegateQueue.async { self.refreshSystemSubscription() }
     |                                                          `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1409 |
1410 |                         // notify the debug delegate
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1411:47: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1409 |
1410 |                         // notify the debug delegate
1411 |                         delegateQueue.async { self.debugDelegate?.debugLog("Received system advertisement message from \(otpLayer.componentName) \(otpLayer.cid)") }
     |                                               `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1412 |
1413 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1448:56: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1446 |
1447 |                             // notify the delegate this producer is online
1448 |                             self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: otpLayer.componentName, cid: producer.cid, ipMode: existingComponentIPMode, ipAddresses: newIpAddresses, sequenceErrors: producer.sequenceErrors, state: .online)) }
     |                                                        `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1449 |
1450 |                             // update both name and ip when this happens
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1448:154: warning: capture of 'producer' with non-sendable type 'ConsumerProducer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1446 |
1447 |                             // notify the delegate this producer is online
1448 |                             self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: otpLayer.componentName, cid: producer.cid, ipMode: existingComponentIPMode, ipAddresses: newIpAddresses, sequenceErrors: producer.sequenceErrors, state: .online)) }
     |                                                                                                                                                          `- warning: capture of 'producer' with non-sendable type 'ConsumerProducer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1449 |
1450 |                             // update both name and ip when this happens
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/ConsumerProducer.swift:36:8: note: consider making struct 'ConsumerProducer' conform to the 'Sendable' protocol
 34 | */
 35 |
 36 | struct ConsumerProducer: Equatable {
    |        `- note: consider making struct 'ConsumerProducer' conform to the 'Sendable' protocol
 37 |
 38 |     /// A globally unique identifier (UUID) representing the producer, compliant with RFC 4122.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1448:176: warning: capture of 'existingComponentIPMode' with non-sendable type 'OTPIPMode' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1446 |
1447 |                             // notify the delegate this producer is online
1448 |                             self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: otpLayer.componentName, cid: producer.cid, ipMode: existingComponentIPMode, ipAddresses: newIpAddresses, sequenceErrors: producer.sequenceErrors, state: .online)) }
     |                                                                                                                                                                                `- warning: capture of 'existingComponentIPMode' with non-sendable type 'OTPIPMode' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1449 |
1450 |                             // update both name and ip when this happens
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Network/NetworkDefinitions.swift:60:13: note: consider making enum 'OTPIPMode' conform to the 'Sendable' protocol
 58 |
 59 | */
 60 | public enum OTPIPMode: String, CaseIterable {
    |             `- note: consider making enum 'OTPIPMode' conform to the 'Sendable' protocol
 61 |
 62 |     /// The `Component` should only use IPv4.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1467:52: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1465 |
1466 |                         // notify the delegate this producer is online
1467 |                         self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: producer.name, cid: otpLayer.cid, ipMode: newComponentIPMode, ipAddresses: [hostname], sequenceErrors: producer.sequenceErrors, state: .online)) }
     |                                                    `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1468 |
1469 |                         // request names from producers
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1467:121: warning: capture of 'producer' with non-sendable type 'ConsumerProducer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1465 |
1466 |                         // notify the delegate this producer is online
1467 |                         self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: producer.name, cid: otpLayer.cid, ipMode: newComponentIPMode, ipAddresses: [hostname], sequenceErrors: producer.sequenceErrors, state: .online)) }
     |                                                                                                                         `- warning: capture of 'producer' with non-sendable type 'ConsumerProducer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1468 |
1469 |                         // request names from producers
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/ConsumerProducer.swift:36:8: note: consider making struct 'ConsumerProducer' conform to the 'Sendable' protocol
 34 | */
 35 |
 36 | struct ConsumerProducer: Equatable {
    |        `- note: consider making struct 'ConsumerProducer' conform to the 'Sendable' protocol
 37 |
 38 |     /// A globally unique identifier (UUID) representing the producer, compliant with RFC 4122.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1467:163: warning: capture of 'newComponentIPMode' with non-sendable type 'OTPIPMode' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1465 |
1466 |                         // notify the delegate this producer is online
1467 |                         self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: producer.name, cid: otpLayer.cid, ipMode: newComponentIPMode, ipAddresses: [hostname], sequenceErrors: producer.sequenceErrors, state: .online)) }
     |                                                                                                                                                                   `- warning: capture of 'newComponentIPMode' with non-sendable type 'OTPIPMode' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1468 |
1469 |                         // request names from producers
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Network/NetworkDefinitions.swift:60:13: note: consider making enum 'OTPIPMode' conform to the 'Sendable' protocol
 58 |
 59 | */
 60 | public enum OTPIPMode: String, CaseIterable {
    |             `- note: consider making enum 'OTPIPMode' conform to the 'Sendable' protocol
 61 |
 62 |     /// The `Component` should only use IPv4.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1470:58: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1468 |
1469 |                         // request names from producers
1470 |                         Self.socketDelegateQueue.async { self.sendNameAdvertisementMessages() }
     |                                                          `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1471 |
1472 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1496:52: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1494 |
1495 |                         // notify the delegate
1496 |                         self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(producerStatus) }
     |                                                    `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1497 |
1498 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1496:97: warning: capture of 'producerStatus' with non-sendable type 'OTPProducerStatus' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1494 |
1495 |                         // notify the delegate
1496 |                         self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(producerStatus) }
     |                                                                                                 `- warning: capture of 'producerStatus' with non-sendable type 'OTPProducerStatus' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1497 |
1498 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/ComponentStatus.swift:88:15: note: consider making struct 'OTPProducerStatus' conform to the 'Sendable' protocol
 86 | */
 87 |
 88 | public struct OTPProducerStatus: OTPComponentStatus {
    |               `- note: consider making struct 'OTPProducerStatus' conform to the 'Sendable' protocol
 89 |
 90 |     /// A globally unique identifier (UUID) representing the producer, compliant with RFC 4122.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1503:43: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1501 |
1502 |                     // there was an error in the otp layer
1503 |                     delegateQueue.async { self.protocolErrorDelegate?.layerError(error.logDescription) }
     |                                           `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1504 |
1505 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1510:39: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1508 |
1509 |                 // there was an error in the advertisement layer
1510 |                 delegateQueue.async { self.protocolErrorDelegate?.layerError(error.logDescription) }
     |                                       `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1511 |
1512 |             } catch let error as ModuleAdvertisementLayerValidationError {
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1515:39: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1513 |
1514 |                 // there was an error in the module advertisement layer
1515 |                 delegateQueue.async { self.protocolErrorDelegate?.layerError(error.logDescription) }
     |                                       `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1516 |
1517 |             } catch let error as SystemAdvertisementLayerValidationError {
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1520:39: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1518 |
1519 |                 // there was an error in the system advertisement layer
1520 |                 delegateQueue.async { self.protocolErrorDelegate?.layerError(error.logDescription) }
     |                                       `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1521 |
1522 |             } catch let error as NameAdvertisementLayerValidationError {
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1525:39: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1523 |
1524 |                 // there was an error in the name advertisement layer
1525 |                 delegateQueue.async { self.protocolErrorDelegate?.layerError(error.logDescription) }
     |                                       `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1526 |
1527 |             } catch let error as TransformLayerValidationError {
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1530:39: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1528 |
1529 |                 // there was an error in the transform layer
1530 |                 delegateQueue.async { self.protocolErrorDelegate?.layerError(error.logDescription) }
     |                                       `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1531 |
1532 |             } catch let error {
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1535:39: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1533 |
1534 |                 // there was an unknown error
1535 |                 delegateQueue.async { self.protocolErrorDelegate?.unknownError(error.localizedDescription) }
     |                                       `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1536 |
1537 |             }
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1566:40: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1564 |
1565 |             // notify the delegate of the producer status
1566 |             self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: producer.name, cid: producer.cid, ipMode: newIpMode, ipAddresses: newIpAddresses, sequenceErrors: producer.sequenceErrors, state: producer.notifiedState)) }
     |                                        `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1567 |
1568 |             self.producers[index].ipAddresses = newIpAddresses
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1566:109: warning: capture of 'producer' with non-sendable type 'ConsumerProducer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1564 |
1565 |             // notify the delegate of the producer status
1566 |             self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: producer.name, cid: producer.cid, ipMode: newIpMode, ipAddresses: newIpAddresses, sequenceErrors: producer.sequenceErrors, state: producer.notifiedState)) }
     |                                                                                                             `- warning: capture of 'producer' with non-sendable type 'ConsumerProducer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1567 |
1568 |             self.producers[index].ipAddresses = newIpAddresses
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/ConsumerProducer.swift:36:8: note: consider making struct 'ConsumerProducer' conform to the 'Sendable' protocol
 34 | */
 35 |
 36 | struct ConsumerProducer: Equatable {
    |        `- note: consider making struct 'ConsumerProducer' conform to the 'Sendable' protocol
 37 |
 38 |     /// A globally unique identifier (UUID) representing the producer, compliant with RFC 4122.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1566:151: warning: capture of 'newIpMode' with non-sendable type 'OTPIPMode' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1564 |
1565 |             // notify the delegate of the producer status
1566 |             self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: producer.name, cid: producer.cid, ipMode: newIpMode, ipAddresses: newIpAddresses, sequenceErrors: producer.sequenceErrors, state: producer.notifiedState)) }
     |                                                                                                                                                       `- warning: capture of 'newIpMode' with non-sendable type 'OTPIPMode' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1567 |
1568 |             self.producers[index].ipAddresses = newIpAddresses
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Network/NetworkDefinitions.swift:60:13: note: consider making enum 'OTPIPMode' conform to the 'Sendable' protocol
 58 |
 59 | */
 60 | public enum OTPIPMode: String, CaseIterable {
    |             `- note: consider making enum 'OTPIPMode' conform to the 'Sendable' protocol
 61 |
 62 |     /// The `Component` should only use IPv4.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1613:39: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1611 |             if self._isConnected != false {
1612 |                 self._isConnected = false
1613 |                 delegateQueue.async { self.consumerDelegate?.disconnected(self, with: error) }
     |                                       `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1614 |             }
1615 |         }
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1626:31: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1624 |     */
1625 |     func debugSocketLog(_ logMessage: String) {
1626 |         delegateQueue.async { self.debugDelegate?.debugSocketLog(logMessage) }
     |                               `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1627 |     }
1628 |
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/ComponentSocket.swift:291:26: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
289 |
290 |         DispatchQueue.main.async {
291 |             socketType = self.socketType.rawValue.capitalized
    |                          |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                          `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
292 |             semaphore.signal()
293 |         }
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/ComponentSocket.swift:291:13: warning: sending 'socketType' risks causing data races; this is an error in the Swift 6 language mode
289 |
290 |         DispatchQueue.main.async {
291 |             socketType = self.socketType.rawValue.capitalized
    |             |- warning: sending 'socketType' risks causing data races; this is an error in the Swift 6 language mode
    |             `- note: 'socketType' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
292 |             semaphore.signal()
293 |         }
294 |         semaphore.wait()
295 |         return socketType
    |         `- note: access can happen concurrently
296 |     }
297 |
[34/38] Compiling OTPKit ComponentStatus.swift
<unknown>:0: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Component.swift:342:35: warning: capture of 'self' with non-sendable type 'Self' in a `@Sendable` closure; this is an error in the Swift 6 language mode
340 |
341 |             // notify the debug delegate
342 |             delegateQueue.async { self.debugDelegate?.debugLog("Sending system advertisement message to \(destination.host):\(destination.port) \(messageData.count)") }
    |                                   `- warning: capture of 'self' with non-sendable type 'Self' in a `@Sendable` closure; this is an error in the Swift 6 language mode
343 |
344 |         } else {
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Component.swift:342:147: warning: reference to captured var 'messageData' in concurrently-executing code; this is an error in the Swift 6 language mode
340 |
341 |             // notify the debug delegate
342 |             delegateQueue.async { self.debugDelegate?.debugLog("Sending system advertisement message to \(destination.host):\(destination.port) \(messageData.count)") }
    |                                                                                                                                                   `- warning: reference to captured var 'messageData' in concurrently-executing code; this is an error in the Swift 6 language mode
343 |
344 |         } else {
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Network/NetworkDefinitions.swift:112:16: warning: static property 'advertisementMessageHostname' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
110 |
111 |     /// The multicast address used by OTP for advertisement messages.
112 |     static var advertisementMessageHostname: Hostname = "239.159.2.1"
    |                |- warning: static property 'advertisementMessageHostname' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'advertisementMessageHostname' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: annotate 'advertisementMessageHostname' 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
113 |
114 |     /**
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Network/NetworkDefinitions.swift:142:16: warning: static property 'advertisementMessageHostname' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
140 |
141 |     /// The multicast address used by OTP for advertisement messages.
142 |     static var advertisementMessageHostname: Hostname = "ff18::9f:00:02:01"
    |                |- warning: static property 'advertisementMessageHostname' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'advertisementMessageHostname' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: annotate 'advertisementMessageHostname' 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
143 |
144 |     /**
<unknown>:0: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Component.swift:354:35: warning: capture of 'self' with non-sendable type 'Self' in a `@Sendable` closure; this is an error in the Swift 6 language mode
352 |
353 |             // notify the debug delegate
354 |             delegateQueue.async { self.debugDelegate?.debugLog("Sending system advertisement message to multicast") }
    |                                   `- warning: capture of 'self' with non-sendable type 'Self' in a `@Sendable` closure; this is an error in the Swift 6 language mode
355 |
356 |         }
<unknown>:0: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Component.swift:406:35: warning: capture of 'self' with non-sendable type 'Self' in a `@Sendable` closure; this is an error in the Swift 6 language mode
404 |
405 |             // notify the debug delegate
406 |             delegateQueue.async { self.debugDelegate?.debugLog("Sending name advertisement message(s) to \(destination.host):\(destination.port)") }
    |                                   `- warning: capture of 'self' with non-sendable type 'Self' in a `@Sendable` closure; this is an error in the Swift 6 language mode
407 |
408 |         } else {
<unknown>:0: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Component.swift:411:35: warning: capture of 'self' with non-sendable type 'Self' in a `@Sendable` closure; this is an error in the Swift 6 language mode
409 |
410 |             // notify the debug delegate
411 |             delegateQueue.async { self.debugDelegate?.debugLog("Sending name advertisement message(s) to multicast") }
    |                                   `- warning: capture of 'self' with non-sendable type 'Self' in a `@Sendable` closure; this is an error in the Swift 6 language mode
412 |
413 |         }
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/ComponentSocket.swift:291:26: warning: capture of 'self' with non-sendable type 'ComponentSocket' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 73 | */
 74 |
 75 | class ComponentSocket: NSObject, GCDAsyncUdpSocketDelegate {
    |       `- note: class 'ComponentSocket' does not conform to the 'Sendable' protocol
 76 |
 77 |     /// A globally unique identifier (UUID) representing a `Component`, compliant with RFC 4122.
    :
289 |
290 |         DispatchQueue.main.async {
291 |             socketType = self.socketType.rawValue.capitalized
    |                          `- warning: capture of 'self' with non-sendable type 'ComponentSocket' in a `@Sendable` closure; this is an error in the Swift 6 language mode
292 |             semaphore.signal()
293 |         }
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/ComponentSocket.swift:291:13: warning: mutation of captured var 'socketType' in concurrently-executing code; this is an error in the Swift 6 language mode
289 |
290 |         DispatchQueue.main.async {
291 |             socketType = self.socketType.rawValue.capitalized
    |             `- warning: mutation of captured var 'socketType' in concurrently-executing code; this is an error in the Swift 6 language mode
292 |             semaphore.signal()
293 |         }
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:427:16: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
 425 |         // if the timer is currently active then another folio now
 426 |         timerQueue.async {
 427 |             if self.moduleAdvertisementTimer != nil {
     |                `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 428 |                 self.sendModuleAdvertisementMessages()
 429 |             }
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:460:16: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
 458 |         // if the timer is currently active then another folio now
 459 |         timerQueue.async {
 460 |             if self.moduleAdvertisementTimer != nil {
     |                `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 461 |                 self.sendModuleAdvertisementMessages()
 462 |             }
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:580:49: warning: capture of 'self' with non-sendable type 'OTPConsumer?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
 578 |                 if let systemNumbers = Self.queue.sync (execute: { self?.producers.flatMap { $0.systemNumbers } }) {
 579 |
 580 |                     self?.delegateQueue.async { self?.consumerDelegate?.discoveredSystemNumbers(Array(Set(systemNumbers))) }
     |                                                 `- warning: capture of 'self' with non-sendable type 'OTPConsumer?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 581 |
 582 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:580:49: warning: reference to captured var 'self' in concurrently-executing code; this is an error in the Swift 6 language mode
 578 |                 if let systemNumbers = Self.queue.sync (execute: { self?.producers.flatMap { $0.systemNumbers } }) {
 579 |
 580 |                     self?.delegateQueue.async { self?.consumerDelegate?.discoveredSystemNumbers(Array(Set(systemNumbers))) }
     |                                                 `- warning: reference to captured var 'self' in concurrently-executing code; this is an error in the Swift 6 language mode
 581 |
 582 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:977:35: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
 975 |
 976 |             // a newly addressed point has appeared or disappeared
 977 |             delegateQueue.async { self.consumerDelegate?.replaceAllPoints(allPoints) }
     |                                   `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 978 |
 979 |         } else {
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:977:75: warning: capture of 'allPoints' with non-sendable type '[OTPPoint]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 975 |
 976 |             // a newly addressed point has appeared or disappeared
 977 |             delegateQueue.async { self.consumerDelegate?.replaceAllPoints(allPoints) }
     |                                                                           `- warning: capture of 'allPoints' with non-sendable type '[OTPPoint]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 978 |
 979 |         } else {
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Types/Point.swift:157:15: note: consider making struct 'OTPPoint' conform to the 'Sendable' protocol
155 | */
156 |
157 | public struct OTPPoint: Comparable, Hashable {
    |               `- note: consider making struct 'OTPPoint' conform to the 'Sendable' protocol
158 |
159 |     /// The `OTPAddress` identifying the point.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:985:39: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
 983 |             // at least 1 point has changes
 984 |             if !pointsWithChanges.isEmpty {
 985 |                 delegateQueue.async { self.consumerDelegate?.changes(forPoints: pointsWithChanges) }
     |                                       `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 986 |             }
 987 |
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:985:81: warning: capture of 'pointsWithChanges' with non-sendable type '[OTPPoint]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 983 |             // at least 1 point has changes
 984 |             if !pointsWithChanges.isEmpty {
 985 |                 delegateQueue.async { self.consumerDelegate?.changes(forPoints: pointsWithChanges) }
     |                                                                                 `- warning: capture of 'pointsWithChanges' with non-sendable type '[OTPPoint]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 986 |             }
 987 |
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Types/Point.swift:157:15: note: consider making struct 'OTPPoint' conform to the 'Sendable' protocol
155 | */
156 |
157 | public struct OTPPoint: Comparable, Hashable {
    |               `- note: consider making struct 'OTPPoint' conform to the 'Sendable' protocol
158 |
159 |     /// The `OTPAddress` identifying the point.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1008:35: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1006 |
1007 |         for producer in lostProducers {
1008 |             delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: producer.name, cid: producer.cid, ipMode: producer.ipMode, ipAddresses: producer.ipAddresses, sequenceErrors: producer.sequenceErrors, state: .offline)) }
     |                                   `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1009 |         }
1010 |
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1008:104: warning: capture of 'producer' with non-sendable type 'ConsumerProducer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1006 |
1007 |         for producer in lostProducers {
1008 |             delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: producer.name, cid: producer.cid, ipMode: producer.ipMode, ipAddresses: producer.ipAddresses, sequenceErrors: producer.sequenceErrors, state: .offline)) }
     |                                                                                                        `- warning: capture of 'producer' with non-sendable type 'ConsumerProducer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1009 |         }
1010 |
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/ConsumerProducer.swift:36:8: note: consider making struct 'ConsumerProducer' conform to the 'Sendable' protocol
 34 | */
 35 |
 36 | struct ConsumerProducer: Equatable {
    |        `- note: consider making struct 'ConsumerProducer' conform to the 'Sendable' protocol
 37 |
 38 |     /// A globally unique identifier (UUID) representing the producer, compliant with RFC 4122.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1039:39: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1037 |
1038 |                 // notify the debug delegate
1039 |                 delegateQueue.async { self.debugDelegate?.debugLog("Attempting multicast leave for \(systemNumber)") }
     |                                       `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1040 |
1041 |                 // the existing contains this number, but the new does not
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1058:39: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1056 |
1057 |                 // notify the debug delegate
1058 |                 delegateQueue.async { self.debugDelegate?.debugLog("Attempting multicast join for System \(systemNumber)") }
     |                                       `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1059 |
1060 |                 // the new contains this number, but the existing does not
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1183:31: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1181 |
1182 |         // notify the debug delegate
1183 |         delegateQueue.async { self.debugDelegate?.debugLog("Sending module advertisement message(s) multicast") }
     |                               `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1184 |
1185 |         // increment the folio number
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1315:60: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1313 |
1314 |                                 // notify the delegate of the producer status
1315 |                                 self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: otpLayer.componentName, cid: producer.cid, ipMode: existingComponentIPMode, ipAddresses: newIpAddresses, sequenceErrors: producer.sequenceErrors, state: notifiedState)) }
     |                                                            `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1316 |
1317 |                                 // update both name and ip when this happens
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1315:158: warning: capture of 'producer' with non-sendable type 'ConsumerProducer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1313 |
1314 |                                 // notify the delegate of the producer status
1315 |                                 self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: otpLayer.componentName, cid: producer.cid, ipMode: existingComponentIPMode, ipAddresses: newIpAddresses, sequenceErrors: producer.sequenceErrors, state: notifiedState)) }
     |                                                                                                                                                              `- warning: capture of 'producer' with non-sendable type 'ConsumerProducer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1316 |
1317 |                                 // update both name and ip when this happens
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/ConsumerProducer.swift:36:8: note: consider making struct 'ConsumerProducer' conform to the 'Sendable' protocol
 34 | */
 35 |
 36 | struct ConsumerProducer: Equatable {
    |        `- note: consider making struct 'ConsumerProducer' conform to the 'Sendable' protocol
 37 |
 38 |     /// A globally unique identifier (UUID) representing the producer, compliant with RFC 4122.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1315:180: warning: capture of 'existingComponentIPMode' with non-sendable type 'OTPIPMode' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1313 |
1314 |                                 // notify the delegate of the producer status
1315 |                                 self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: otpLayer.componentName, cid: producer.cid, ipMode: existingComponentIPMode, ipAddresses: newIpAddresses, sequenceErrors: producer.sequenceErrors, state: notifiedState)) }
     |                                                                                                                                                                                    `- warning: capture of 'existingComponentIPMode' with non-sendable type 'OTPIPMode' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1316 |
1317 |                                 // update both name and ip when this happens
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Network/NetworkDefinitions.swift:60:13: note: consider making enum 'OTPIPMode' conform to the 'Sendable' protocol
 58 |
 59 | */
 60 | public enum OTPIPMode: String, CaseIterable {
    |             `- note: consider making enum 'OTPIPMode' conform to the 'Sendable' protocol
 61 |
 62 |     /// The `Component` should only use IPv4.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1315:282: warning: capture of 'notifiedState' with non-sendable type 'OTPComponentState' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1313 |
1314 |                                 // notify the delegate of the producer status
1315 |                                 self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: otpLayer.componentName, cid: producer.cid, ipMode: existingComponentIPMode, ipAddresses: newIpAddresses, sequenceErrors: producer.sequenceErrors, state: notifiedState)) }
     |                                                                                                                                                                                                                                                                                          `- warning: capture of 'notifiedState' with non-sendable type 'OTPComponentState' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1316 |
1317 |                                 // update both name and ip when this happens
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/ComponentStatus.swift:35:13: note: consider making enum 'OTPComponentState' conform to the 'Sendable' protocol
 33 |
 34 | */
 35 | public enum OTPComponentState: String {
    |             `- note: consider making enum 'OTPComponentState' conform to the 'Sendable' protocol
 36 |
 37 |     /// This component is offline.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1332:56: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1330 |
1331 |                             // notify the delegate of the producer status
1332 |                             self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: otpLayer.componentName, cid: otpLayer.cid, ipMode: newComponentIPMode, ipAddresses: [hostname], sequenceErrors: producer.sequenceErrors, state: .advertising)) }
     |                                                        `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1333 |
1334 |                         }
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1332:176: warning: capture of 'newComponentIPMode' with non-sendable type 'OTPIPMode' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1330 |
1331 |                             // notify the delegate of the producer status
1332 |                             self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: otpLayer.componentName, cid: otpLayer.cid, ipMode: newComponentIPMode, ipAddresses: [hostname], sequenceErrors: producer.sequenceErrors, state: .advertising)) }
     |                                                                                                                                                                                `- warning: capture of 'newComponentIPMode' with non-sendable type 'OTPIPMode' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1333 |
1334 |                         }
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Network/NetworkDefinitions.swift:60:13: note: consider making enum 'OTPIPMode' conform to the 'Sendable' protocol
 58 |
 59 | */
 60 | public enum OTPIPMode: String, CaseIterable {
    |             `- note: consider making enum 'OTPIPMode' conform to the 'Sendable' protocol
 61 |
 62 |     /// The `Component` should only use IPv4.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1332:237: warning: capture of 'producer' with non-sendable type 'ConsumerProducer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1330 |
1331 |                             // notify the delegate of the producer status
1332 |                             self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: otpLayer.componentName, cid: otpLayer.cid, ipMode: newComponentIPMode, ipAddresses: [hostname], sequenceErrors: producer.sequenceErrors, state: .advertising)) }
     |                                                                                                                                                                                                                                             `- warning: capture of 'producer' with non-sendable type 'ConsumerProducer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1333 |
1334 |                         }
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/ConsumerProducer.swift:36:8: note: consider making struct 'ConsumerProducer' conform to the 'Sendable' protocol
 34 | */
 35 |
 36 | struct ConsumerProducer: Equatable {
    |        `- note: consider making struct 'ConsumerProducer' conform to the 'Sendable' protocol
 37 |
 38 |     /// A globally unique identifier (UUID) representing the producer, compliant with RFC 4122.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1337:47: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1335 |
1336 |                         // notify the debug delegate
1337 |                         delegateQueue.async { self.debugDelegate?.debugLog("Received name advertisement message from \(otpLayer.componentName) \(otpLayer.cid)") }
     |                                               `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1338 |
1339 |                     case .system:
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1384:60: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1382 |
1383 |                                 // notify the delegate of the producer information
1384 |                                 self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: otpLayer.componentName, cid: producer.cid, ipMode: existingComponentIPMode, ipAddresses: newIpAddresses, sequenceErrors: producer.sequenceErrors, state: notifiedState)) }
     |                                                            `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1385 |
1386 |                                 // update both name and ip when this happens
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1384:158: warning: capture of 'producer' with non-sendable type 'ConsumerProducer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1382 |
1383 |                                 // notify the delegate of the producer information
1384 |                                 self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: otpLayer.componentName, cid: producer.cid, ipMode: existingComponentIPMode, ipAddresses: newIpAddresses, sequenceErrors: producer.sequenceErrors, state: notifiedState)) }
     |                                                                                                                                                              `- warning: capture of 'producer' with non-sendable type 'ConsumerProducer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1385 |
1386 |                                 // update both name and ip when this happens
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/ConsumerProducer.swift:36:8: note: consider making struct 'ConsumerProducer' conform to the 'Sendable' protocol
 34 | */
 35 |
 36 | struct ConsumerProducer: Equatable {
    |        `- note: consider making struct 'ConsumerProducer' conform to the 'Sendable' protocol
 37 |
 38 |     /// A globally unique identifier (UUID) representing the producer, compliant with RFC 4122.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1384:180: warning: capture of 'existingComponentIPMode' with non-sendable type 'OTPIPMode' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1382 |
1383 |                                 // notify the delegate of the producer information
1384 |                                 self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: otpLayer.componentName, cid: producer.cid, ipMode: existingComponentIPMode, ipAddresses: newIpAddresses, sequenceErrors: producer.sequenceErrors, state: notifiedState)) }
     |                                                                                                                                                                                    `- warning: capture of 'existingComponentIPMode' with non-sendable type 'OTPIPMode' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1385 |
1386 |                                 // update both name and ip when this happens
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Network/NetworkDefinitions.swift:60:13: note: consider making enum 'OTPIPMode' conform to the 'Sendable' protocol
 58 |
 59 | */
 60 | public enum OTPIPMode: String, CaseIterable {
    |             `- note: consider making enum 'OTPIPMode' conform to the 'Sendable' protocol
 61 |
 62 |     /// The `Component` should only use IPv4.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1384:282: warning: capture of 'notifiedState' with non-sendable type 'OTPComponentState' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1382 |
1383 |                                 // notify the delegate of the producer information
1384 |                                 self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: otpLayer.componentName, cid: producer.cid, ipMode: existingComponentIPMode, ipAddresses: newIpAddresses, sequenceErrors: producer.sequenceErrors, state: notifiedState)) }
     |                                                                                                                                                                                                                                                                                          `- warning: capture of 'notifiedState' with non-sendable type 'OTPComponentState' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1385 |
1386 |                                 // update both name and ip when this happens
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/ComponentStatus.swift:35:13: note: consider making enum 'OTPComponentState' conform to the 'Sendable' protocol
 33 |
 34 | */
 35 | public enum OTPComponentState: String {
    |             `- note: consider making enum 'OTPComponentState' conform to the 'Sendable' protocol
 36 |
 37 |     /// This component is offline.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1400:56: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1398 |
1399 |                             // notify the delegate of the producer information
1400 |                             self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: otpLayer.componentName, cid: otpLayer.cid, ipMode: newComponentIPMode, ipAddresses: [hostname], sequenceErrors: producer.sequenceErrors, state: .advertising)) }
     |                                                        `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1401 |
1402 |                             // request names from producers
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1400:176: warning: capture of 'newComponentIPMode' with non-sendable type 'OTPIPMode' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1398 |
1399 |                             // notify the delegate of the producer information
1400 |                             self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: otpLayer.componentName, cid: otpLayer.cid, ipMode: newComponentIPMode, ipAddresses: [hostname], sequenceErrors: producer.sequenceErrors, state: .advertising)) }
     |                                                                                                                                                                                `- warning: capture of 'newComponentIPMode' with non-sendable type 'OTPIPMode' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1401 |
1402 |                             // request names from producers
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Network/NetworkDefinitions.swift:60:13: note: consider making enum 'OTPIPMode' conform to the 'Sendable' protocol
 58 |
 59 | */
 60 | public enum OTPIPMode: String, CaseIterable {
    |             `- note: consider making enum 'OTPIPMode' conform to the 'Sendable' protocol
 61 |
 62 |     /// The `Component` should only use IPv4.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1400:237: warning: capture of 'producer' with non-sendable type 'ConsumerProducer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1398 |
1399 |                             // notify the delegate of the producer information
1400 |                             self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: otpLayer.componentName, cid: otpLayer.cid, ipMode: newComponentIPMode, ipAddresses: [hostname], sequenceErrors: producer.sequenceErrors, state: .advertising)) }
     |                                                                                                                                                                                                                                             `- warning: capture of 'producer' with non-sendable type 'ConsumerProducer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1401 |
1402 |                             // request names from producers
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/ConsumerProducer.swift:36:8: note: consider making struct 'ConsumerProducer' conform to the 'Sendable' protocol
 34 | */
 35 |
 36 | struct ConsumerProducer: Equatable {
    |        `- note: consider making struct 'ConsumerProducer' conform to the 'Sendable' protocol
 37 |
 38 |     /// A globally unique identifier (UUID) representing the producer, compliant with RFC 4122.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1403:62: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1401 |
1402 |                             // request names from producers
1403 |                             Self.socketDelegateQueue.async { self.sendNameAdvertisementMessages() }
     |                                                              `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1404 |
1405 |                         }
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1408:58: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1406 |
1407 |                         // joins newly discovered systems which are observed
1408 |                         Self.socketDelegateQueue.async { self.refreshSystemSubscription() }
     |                                                          `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1409 |
1410 |                         // notify the debug delegate
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1411:47: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1409 |
1410 |                         // notify the debug delegate
1411 |                         delegateQueue.async { self.debugDelegate?.debugLog("Received system advertisement message from \(otpLayer.componentName) \(otpLayer.cid)") }
     |                                               `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1412 |
1413 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1448:56: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1446 |
1447 |                             // notify the delegate this producer is online
1448 |                             self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: otpLayer.componentName, cid: producer.cid, ipMode: existingComponentIPMode, ipAddresses: newIpAddresses, sequenceErrors: producer.sequenceErrors, state: .online)) }
     |                                                        `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1449 |
1450 |                             // update both name and ip when this happens
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1448:154: warning: capture of 'producer' with non-sendable type 'ConsumerProducer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1446 |
1447 |                             // notify the delegate this producer is online
1448 |                             self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: otpLayer.componentName, cid: producer.cid, ipMode: existingComponentIPMode, ipAddresses: newIpAddresses, sequenceErrors: producer.sequenceErrors, state: .online)) }
     |                                                                                                                                                          `- warning: capture of 'producer' with non-sendable type 'ConsumerProducer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1449 |
1450 |                             // update both name and ip when this happens
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/ConsumerProducer.swift:36:8: note: consider making struct 'ConsumerProducer' conform to the 'Sendable' protocol
 34 | */
 35 |
 36 | struct ConsumerProducer: Equatable {
    |        `- note: consider making struct 'ConsumerProducer' conform to the 'Sendable' protocol
 37 |
 38 |     /// A globally unique identifier (UUID) representing the producer, compliant with RFC 4122.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1448:176: warning: capture of 'existingComponentIPMode' with non-sendable type 'OTPIPMode' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1446 |
1447 |                             // notify the delegate this producer is online
1448 |                             self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: otpLayer.componentName, cid: producer.cid, ipMode: existingComponentIPMode, ipAddresses: newIpAddresses, sequenceErrors: producer.sequenceErrors, state: .online)) }
     |                                                                                                                                                                                `- warning: capture of 'existingComponentIPMode' with non-sendable type 'OTPIPMode' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1449 |
1450 |                             // update both name and ip when this happens
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Network/NetworkDefinitions.swift:60:13: note: consider making enum 'OTPIPMode' conform to the 'Sendable' protocol
 58 |
 59 | */
 60 | public enum OTPIPMode: String, CaseIterable {
    |             `- note: consider making enum 'OTPIPMode' conform to the 'Sendable' protocol
 61 |
 62 |     /// The `Component` should only use IPv4.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1467:52: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1465 |
1466 |                         // notify the delegate this producer is online
1467 |                         self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: producer.name, cid: otpLayer.cid, ipMode: newComponentIPMode, ipAddresses: [hostname], sequenceErrors: producer.sequenceErrors, state: .online)) }
     |                                                    `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1468 |
1469 |                         // request names from producers
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1467:121: warning: capture of 'producer' with non-sendable type 'ConsumerProducer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1465 |
1466 |                         // notify the delegate this producer is online
1467 |                         self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: producer.name, cid: otpLayer.cid, ipMode: newComponentIPMode, ipAddresses: [hostname], sequenceErrors: producer.sequenceErrors, state: .online)) }
     |                                                                                                                         `- warning: capture of 'producer' with non-sendable type 'ConsumerProducer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1468 |
1469 |                         // request names from producers
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/ConsumerProducer.swift:36:8: note: consider making struct 'ConsumerProducer' conform to the 'Sendable' protocol
 34 | */
 35 |
 36 | struct ConsumerProducer: Equatable {
    |        `- note: consider making struct 'ConsumerProducer' conform to the 'Sendable' protocol
 37 |
 38 |     /// A globally unique identifier (UUID) representing the producer, compliant with RFC 4122.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1467:163: warning: capture of 'newComponentIPMode' with non-sendable type 'OTPIPMode' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1465 |
1466 |                         // notify the delegate this producer is online
1467 |                         self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: producer.name, cid: otpLayer.cid, ipMode: newComponentIPMode, ipAddresses: [hostname], sequenceErrors: producer.sequenceErrors, state: .online)) }
     |                                                                                                                                                                   `- warning: capture of 'newComponentIPMode' with non-sendable type 'OTPIPMode' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1468 |
1469 |                         // request names from producers
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Network/NetworkDefinitions.swift:60:13: note: consider making enum 'OTPIPMode' conform to the 'Sendable' protocol
 58 |
 59 | */
 60 | public enum OTPIPMode: String, CaseIterable {
    |             `- note: consider making enum 'OTPIPMode' conform to the 'Sendable' protocol
 61 |
 62 |     /// The `Component` should only use IPv4.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1470:58: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1468 |
1469 |                         // request names from producers
1470 |                         Self.socketDelegateQueue.async { self.sendNameAdvertisementMessages() }
     |                                                          `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1471 |
1472 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1496:52: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1494 |
1495 |                         // notify the delegate
1496 |                         self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(producerStatus) }
     |                                                    `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1497 |
1498 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1496:97: warning: capture of 'producerStatus' with non-sendable type 'OTPProducerStatus' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1494 |
1495 |                         // notify the delegate
1496 |                         self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(producerStatus) }
     |                                                                                                 `- warning: capture of 'producerStatus' with non-sendable type 'OTPProducerStatus' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1497 |
1498 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/ComponentStatus.swift:88:15: note: consider making struct 'OTPProducerStatus' conform to the 'Sendable' protocol
 86 | */
 87 |
 88 | public struct OTPProducerStatus: OTPComponentStatus {
    |               `- note: consider making struct 'OTPProducerStatus' conform to the 'Sendable' protocol
 89 |
 90 |     /// A globally unique identifier (UUID) representing the producer, compliant with RFC 4122.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1503:43: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1501 |
1502 |                     // there was an error in the otp layer
1503 |                     delegateQueue.async { self.protocolErrorDelegate?.layerError(error.logDescription) }
     |                                           `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1504 |
1505 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1510:39: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1508 |
1509 |                 // there was an error in the advertisement layer
1510 |                 delegateQueue.async { self.protocolErrorDelegate?.layerError(error.logDescription) }
     |                                       `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1511 |
1512 |             } catch let error as ModuleAdvertisementLayerValidationError {
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1515:39: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1513 |
1514 |                 // there was an error in the module advertisement layer
1515 |                 delegateQueue.async { self.protocolErrorDelegate?.layerError(error.logDescription) }
     |                                       `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1516 |
1517 |             } catch let error as SystemAdvertisementLayerValidationError {
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1520:39: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1518 |
1519 |                 // there was an error in the system advertisement layer
1520 |                 delegateQueue.async { self.protocolErrorDelegate?.layerError(error.logDescription) }
     |                                       `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1521 |
1522 |             } catch let error as NameAdvertisementLayerValidationError {
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1525:39: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1523 |
1524 |                 // there was an error in the name advertisement layer
1525 |                 delegateQueue.async { self.protocolErrorDelegate?.layerError(error.logDescription) }
     |                                       `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1526 |
1527 |             } catch let error as TransformLayerValidationError {
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1530:39: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1528 |
1529 |                 // there was an error in the transform layer
1530 |                 delegateQueue.async { self.protocolErrorDelegate?.layerError(error.logDescription) }
     |                                       `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1531 |
1532 |             } catch let error {
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1535:39: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1533 |
1534 |                 // there was an unknown error
1535 |                 delegateQueue.async { self.protocolErrorDelegate?.unknownError(error.localizedDescription) }
     |                                       `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1536 |
1537 |             }
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1566:40: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1564 |
1565 |             // notify the delegate of the producer status
1566 |             self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: producer.name, cid: producer.cid, ipMode: newIpMode, ipAddresses: newIpAddresses, sequenceErrors: producer.sequenceErrors, state: producer.notifiedState)) }
     |                                        `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1567 |
1568 |             self.producers[index].ipAddresses = newIpAddresses
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1566:109: warning: capture of 'producer' with non-sendable type 'ConsumerProducer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1564 |
1565 |             // notify the delegate of the producer status
1566 |             self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: producer.name, cid: producer.cid, ipMode: newIpMode, ipAddresses: newIpAddresses, sequenceErrors: producer.sequenceErrors, state: producer.notifiedState)) }
     |                                                                                                             `- warning: capture of 'producer' with non-sendable type 'ConsumerProducer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1567 |
1568 |             self.producers[index].ipAddresses = newIpAddresses
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/ConsumerProducer.swift:36:8: note: consider making struct 'ConsumerProducer' conform to the 'Sendable' protocol
 34 | */
 35 |
 36 | struct ConsumerProducer: Equatable {
    |        `- note: consider making struct 'ConsumerProducer' conform to the 'Sendable' protocol
 37 |
 38 |     /// A globally unique identifier (UUID) representing the producer, compliant with RFC 4122.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1566:151: warning: capture of 'newIpMode' with non-sendable type 'OTPIPMode' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1564 |
1565 |             // notify the delegate of the producer status
1566 |             self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: producer.name, cid: producer.cid, ipMode: newIpMode, ipAddresses: newIpAddresses, sequenceErrors: producer.sequenceErrors, state: producer.notifiedState)) }
     |                                                                                                                                                       `- warning: capture of 'newIpMode' with non-sendable type 'OTPIPMode' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1567 |
1568 |             self.producers[index].ipAddresses = newIpAddresses
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Network/NetworkDefinitions.swift:60:13: note: consider making enum 'OTPIPMode' conform to the 'Sendable' protocol
 58 |
 59 | */
 60 | public enum OTPIPMode: String, CaseIterable {
    |             `- note: consider making enum 'OTPIPMode' conform to the 'Sendable' protocol
 61 |
 62 |     /// The `Component` should only use IPv4.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1613:39: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1611 |             if self._isConnected != false {
1612 |                 self._isConnected = false
1613 |                 delegateQueue.async { self.consumerDelegate?.disconnected(self, with: error) }
     |                                       `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1614 |             }
1615 |         }
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1626:31: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1624 |     */
1625 |     func debugSocketLog(_ logMessage: String) {
1626 |         delegateQueue.async { self.debugDelegate?.debugSocketLog(logMessage) }
     |                               `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1627 |     }
1628 |
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/ComponentSocket.swift:291:26: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
289 |
290 |         DispatchQueue.main.async {
291 |             socketType = self.socketType.rawValue.capitalized
    |                          |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                          `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
292 |             semaphore.signal()
293 |         }
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/ComponentSocket.swift:291:13: warning: sending 'socketType' risks causing data races; this is an error in the Swift 6 language mode
289 |
290 |         DispatchQueue.main.async {
291 |             socketType = self.socketType.rawValue.capitalized
    |             |- warning: sending 'socketType' risks causing data races; this is an error in the Swift 6 language mode
    |             `- note: 'socketType' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
292 |             semaphore.signal()
293 |         }
294 |         semaphore.wait()
295 |         return socketType
    |         `- note: access can happen concurrently
296 |     }
297 |
[35/38] Compiling OTPKit Consumer.swift
<unknown>:0: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Component.swift:342:35: warning: capture of 'self' with non-sendable type 'Self' in a `@Sendable` closure; this is an error in the Swift 6 language mode
340 |
341 |             // notify the debug delegate
342 |             delegateQueue.async { self.debugDelegate?.debugLog("Sending system advertisement message to \(destination.host):\(destination.port) \(messageData.count)") }
    |                                   `- warning: capture of 'self' with non-sendable type 'Self' in a `@Sendable` closure; this is an error in the Swift 6 language mode
343 |
344 |         } else {
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Component.swift:342:147: warning: reference to captured var 'messageData' in concurrently-executing code; this is an error in the Swift 6 language mode
340 |
341 |             // notify the debug delegate
342 |             delegateQueue.async { self.debugDelegate?.debugLog("Sending system advertisement message to \(destination.host):\(destination.port) \(messageData.count)") }
    |                                                                                                                                                   `- warning: reference to captured var 'messageData' in concurrently-executing code; this is an error in the Swift 6 language mode
343 |
344 |         } else {
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Network/NetworkDefinitions.swift:112:16: warning: static property 'advertisementMessageHostname' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
110 |
111 |     /// The multicast address used by OTP for advertisement messages.
112 |     static var advertisementMessageHostname: Hostname = "239.159.2.1"
    |                |- warning: static property 'advertisementMessageHostname' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'advertisementMessageHostname' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: annotate 'advertisementMessageHostname' 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
113 |
114 |     /**
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Network/NetworkDefinitions.swift:142:16: warning: static property 'advertisementMessageHostname' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
140 |
141 |     /// The multicast address used by OTP for advertisement messages.
142 |     static var advertisementMessageHostname: Hostname = "ff18::9f:00:02:01"
    |                |- warning: static property 'advertisementMessageHostname' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'advertisementMessageHostname' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: annotate 'advertisementMessageHostname' 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
143 |
144 |     /**
<unknown>:0: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Component.swift:354:35: warning: capture of 'self' with non-sendable type 'Self' in a `@Sendable` closure; this is an error in the Swift 6 language mode
352 |
353 |             // notify the debug delegate
354 |             delegateQueue.async { self.debugDelegate?.debugLog("Sending system advertisement message to multicast") }
    |                                   `- warning: capture of 'self' with non-sendable type 'Self' in a `@Sendable` closure; this is an error in the Swift 6 language mode
355 |
356 |         }
<unknown>:0: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Component.swift:406:35: warning: capture of 'self' with non-sendable type 'Self' in a `@Sendable` closure; this is an error in the Swift 6 language mode
404 |
405 |             // notify the debug delegate
406 |             delegateQueue.async { self.debugDelegate?.debugLog("Sending name advertisement message(s) to \(destination.host):\(destination.port)") }
    |                                   `- warning: capture of 'self' with non-sendable type 'Self' in a `@Sendable` closure; this is an error in the Swift 6 language mode
407 |
408 |         } else {
<unknown>:0: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Component.swift:411:35: warning: capture of 'self' with non-sendable type 'Self' in a `@Sendable` closure; this is an error in the Swift 6 language mode
409 |
410 |             // notify the debug delegate
411 |             delegateQueue.async { self.debugDelegate?.debugLog("Sending name advertisement message(s) to multicast") }
    |                                   `- warning: capture of 'self' with non-sendable type 'Self' in a `@Sendable` closure; this is an error in the Swift 6 language mode
412 |
413 |         }
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/ComponentSocket.swift:291:26: warning: capture of 'self' with non-sendable type 'ComponentSocket' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 73 | */
 74 |
 75 | class ComponentSocket: NSObject, GCDAsyncUdpSocketDelegate {
    |       `- note: class 'ComponentSocket' does not conform to the 'Sendable' protocol
 76 |
 77 |     /// A globally unique identifier (UUID) representing a `Component`, compliant with RFC 4122.
    :
289 |
290 |         DispatchQueue.main.async {
291 |             socketType = self.socketType.rawValue.capitalized
    |                          `- warning: capture of 'self' with non-sendable type 'ComponentSocket' in a `@Sendable` closure; this is an error in the Swift 6 language mode
292 |             semaphore.signal()
293 |         }
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/ComponentSocket.swift:291:13: warning: mutation of captured var 'socketType' in concurrently-executing code; this is an error in the Swift 6 language mode
289 |
290 |         DispatchQueue.main.async {
291 |             socketType = self.socketType.rawValue.capitalized
    |             `- warning: mutation of captured var 'socketType' in concurrently-executing code; this is an error in the Swift 6 language mode
292 |             semaphore.signal()
293 |         }
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:427:16: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
 425 |         // if the timer is currently active then another folio now
 426 |         timerQueue.async {
 427 |             if self.moduleAdvertisementTimer != nil {
     |                `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 428 |                 self.sendModuleAdvertisementMessages()
 429 |             }
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:460:16: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
 458 |         // if the timer is currently active then another folio now
 459 |         timerQueue.async {
 460 |             if self.moduleAdvertisementTimer != nil {
     |                `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 461 |                 self.sendModuleAdvertisementMessages()
 462 |             }
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:580:49: warning: capture of 'self' with non-sendable type 'OTPConsumer?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
 578 |                 if let systemNumbers = Self.queue.sync (execute: { self?.producers.flatMap { $0.systemNumbers } }) {
 579 |
 580 |                     self?.delegateQueue.async { self?.consumerDelegate?.discoveredSystemNumbers(Array(Set(systemNumbers))) }
     |                                                 `- warning: capture of 'self' with non-sendable type 'OTPConsumer?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 581 |
 582 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:580:49: warning: reference to captured var 'self' in concurrently-executing code; this is an error in the Swift 6 language mode
 578 |                 if let systemNumbers = Self.queue.sync (execute: { self?.producers.flatMap { $0.systemNumbers } }) {
 579 |
 580 |                     self?.delegateQueue.async { self?.consumerDelegate?.discoveredSystemNumbers(Array(Set(systemNumbers))) }
     |                                                 `- warning: reference to captured var 'self' in concurrently-executing code; this is an error in the Swift 6 language mode
 581 |
 582 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:977:35: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
 975 |
 976 |             // a newly addressed point has appeared or disappeared
 977 |             delegateQueue.async { self.consumerDelegate?.replaceAllPoints(allPoints) }
     |                                   `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 978 |
 979 |         } else {
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:977:75: warning: capture of 'allPoints' with non-sendable type '[OTPPoint]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 975 |
 976 |             // a newly addressed point has appeared or disappeared
 977 |             delegateQueue.async { self.consumerDelegate?.replaceAllPoints(allPoints) }
     |                                                                           `- warning: capture of 'allPoints' with non-sendable type '[OTPPoint]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 978 |
 979 |         } else {
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Types/Point.swift:157:15: note: consider making struct 'OTPPoint' conform to the 'Sendable' protocol
155 | */
156 |
157 | public struct OTPPoint: Comparable, Hashable {
    |               `- note: consider making struct 'OTPPoint' conform to the 'Sendable' protocol
158 |
159 |     /// The `OTPAddress` identifying the point.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:985:39: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
 983 |             // at least 1 point has changes
 984 |             if !pointsWithChanges.isEmpty {
 985 |                 delegateQueue.async { self.consumerDelegate?.changes(forPoints: pointsWithChanges) }
     |                                       `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 986 |             }
 987 |
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:985:81: warning: capture of 'pointsWithChanges' with non-sendable type '[OTPPoint]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 983 |             // at least 1 point has changes
 984 |             if !pointsWithChanges.isEmpty {
 985 |                 delegateQueue.async { self.consumerDelegate?.changes(forPoints: pointsWithChanges) }
     |                                                                                 `- warning: capture of 'pointsWithChanges' with non-sendable type '[OTPPoint]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 986 |             }
 987 |
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Types/Point.swift:157:15: note: consider making struct 'OTPPoint' conform to the 'Sendable' protocol
155 | */
156 |
157 | public struct OTPPoint: Comparable, Hashable {
    |               `- note: consider making struct 'OTPPoint' conform to the 'Sendable' protocol
158 |
159 |     /// The `OTPAddress` identifying the point.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1008:35: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1006 |
1007 |         for producer in lostProducers {
1008 |             delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: producer.name, cid: producer.cid, ipMode: producer.ipMode, ipAddresses: producer.ipAddresses, sequenceErrors: producer.sequenceErrors, state: .offline)) }
     |                                   `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1009 |         }
1010 |
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1008:104: warning: capture of 'producer' with non-sendable type 'ConsumerProducer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1006 |
1007 |         for producer in lostProducers {
1008 |             delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: producer.name, cid: producer.cid, ipMode: producer.ipMode, ipAddresses: producer.ipAddresses, sequenceErrors: producer.sequenceErrors, state: .offline)) }
     |                                                                                                        `- warning: capture of 'producer' with non-sendable type 'ConsumerProducer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1009 |         }
1010 |
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/ConsumerProducer.swift:36:8: note: consider making struct 'ConsumerProducer' conform to the 'Sendable' protocol
 34 | */
 35 |
 36 | struct ConsumerProducer: Equatable {
    |        `- note: consider making struct 'ConsumerProducer' conform to the 'Sendable' protocol
 37 |
 38 |     /// A globally unique identifier (UUID) representing the producer, compliant with RFC 4122.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1039:39: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1037 |
1038 |                 // notify the debug delegate
1039 |                 delegateQueue.async { self.debugDelegate?.debugLog("Attempting multicast leave for \(systemNumber)") }
     |                                       `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1040 |
1041 |                 // the existing contains this number, but the new does not
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1058:39: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1056 |
1057 |                 // notify the debug delegate
1058 |                 delegateQueue.async { self.debugDelegate?.debugLog("Attempting multicast join for System \(systemNumber)") }
     |                                       `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1059 |
1060 |                 // the new contains this number, but the existing does not
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1183:31: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1181 |
1182 |         // notify the debug delegate
1183 |         delegateQueue.async { self.debugDelegate?.debugLog("Sending module advertisement message(s) multicast") }
     |                               `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1184 |
1185 |         // increment the folio number
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1315:60: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1313 |
1314 |                                 // notify the delegate of the producer status
1315 |                                 self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: otpLayer.componentName, cid: producer.cid, ipMode: existingComponentIPMode, ipAddresses: newIpAddresses, sequenceErrors: producer.sequenceErrors, state: notifiedState)) }
     |                                                            `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1316 |
1317 |                                 // update both name and ip when this happens
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1315:158: warning: capture of 'producer' with non-sendable type 'ConsumerProducer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1313 |
1314 |                                 // notify the delegate of the producer status
1315 |                                 self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: otpLayer.componentName, cid: producer.cid, ipMode: existingComponentIPMode, ipAddresses: newIpAddresses, sequenceErrors: producer.sequenceErrors, state: notifiedState)) }
     |                                                                                                                                                              `- warning: capture of 'producer' with non-sendable type 'ConsumerProducer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1316 |
1317 |                                 // update both name and ip when this happens
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/ConsumerProducer.swift:36:8: note: consider making struct 'ConsumerProducer' conform to the 'Sendable' protocol
 34 | */
 35 |
 36 | struct ConsumerProducer: Equatable {
    |        `- note: consider making struct 'ConsumerProducer' conform to the 'Sendable' protocol
 37 |
 38 |     /// A globally unique identifier (UUID) representing the producer, compliant with RFC 4122.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1315:180: warning: capture of 'existingComponentIPMode' with non-sendable type 'OTPIPMode' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1313 |
1314 |                                 // notify the delegate of the producer status
1315 |                                 self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: otpLayer.componentName, cid: producer.cid, ipMode: existingComponentIPMode, ipAddresses: newIpAddresses, sequenceErrors: producer.sequenceErrors, state: notifiedState)) }
     |                                                                                                                                                                                    `- warning: capture of 'existingComponentIPMode' with non-sendable type 'OTPIPMode' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1316 |
1317 |                                 // update both name and ip when this happens
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Network/NetworkDefinitions.swift:60:13: note: consider making enum 'OTPIPMode' conform to the 'Sendable' protocol
 58 |
 59 | */
 60 | public enum OTPIPMode: String, CaseIterable {
    |             `- note: consider making enum 'OTPIPMode' conform to the 'Sendable' protocol
 61 |
 62 |     /// The `Component` should only use IPv4.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1315:282: warning: capture of 'notifiedState' with non-sendable type 'OTPComponentState' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1313 |
1314 |                                 // notify the delegate of the producer status
1315 |                                 self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: otpLayer.componentName, cid: producer.cid, ipMode: existingComponentIPMode, ipAddresses: newIpAddresses, sequenceErrors: producer.sequenceErrors, state: notifiedState)) }
     |                                                                                                                                                                                                                                                                                          `- warning: capture of 'notifiedState' with non-sendable type 'OTPComponentState' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1316 |
1317 |                                 // update both name and ip when this happens
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/ComponentStatus.swift:35:13: note: consider making enum 'OTPComponentState' conform to the 'Sendable' protocol
 33 |
 34 | */
 35 | public enum OTPComponentState: String {
    |             `- note: consider making enum 'OTPComponentState' conform to the 'Sendable' protocol
 36 |
 37 |     /// This component is offline.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1332:56: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1330 |
1331 |                             // notify the delegate of the producer status
1332 |                             self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: otpLayer.componentName, cid: otpLayer.cid, ipMode: newComponentIPMode, ipAddresses: [hostname], sequenceErrors: producer.sequenceErrors, state: .advertising)) }
     |                                                        `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1333 |
1334 |                         }
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1332:176: warning: capture of 'newComponentIPMode' with non-sendable type 'OTPIPMode' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1330 |
1331 |                             // notify the delegate of the producer status
1332 |                             self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: otpLayer.componentName, cid: otpLayer.cid, ipMode: newComponentIPMode, ipAddresses: [hostname], sequenceErrors: producer.sequenceErrors, state: .advertising)) }
     |                                                                                                                                                                                `- warning: capture of 'newComponentIPMode' with non-sendable type 'OTPIPMode' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1333 |
1334 |                         }
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Network/NetworkDefinitions.swift:60:13: note: consider making enum 'OTPIPMode' conform to the 'Sendable' protocol
 58 |
 59 | */
 60 | public enum OTPIPMode: String, CaseIterable {
    |             `- note: consider making enum 'OTPIPMode' conform to the 'Sendable' protocol
 61 |
 62 |     /// The `Component` should only use IPv4.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1332:237: warning: capture of 'producer' with non-sendable type 'ConsumerProducer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1330 |
1331 |                             // notify the delegate of the producer status
1332 |                             self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: otpLayer.componentName, cid: otpLayer.cid, ipMode: newComponentIPMode, ipAddresses: [hostname], sequenceErrors: producer.sequenceErrors, state: .advertising)) }
     |                                                                                                                                                                                                                                             `- warning: capture of 'producer' with non-sendable type 'ConsumerProducer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1333 |
1334 |                         }
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/ConsumerProducer.swift:36:8: note: consider making struct 'ConsumerProducer' conform to the 'Sendable' protocol
 34 | */
 35 |
 36 | struct ConsumerProducer: Equatable {
    |        `- note: consider making struct 'ConsumerProducer' conform to the 'Sendable' protocol
 37 |
 38 |     /// A globally unique identifier (UUID) representing the producer, compliant with RFC 4122.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1337:47: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1335 |
1336 |                         // notify the debug delegate
1337 |                         delegateQueue.async { self.debugDelegate?.debugLog("Received name advertisement message from \(otpLayer.componentName) \(otpLayer.cid)") }
     |                                               `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1338 |
1339 |                     case .system:
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1384:60: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1382 |
1383 |                                 // notify the delegate of the producer information
1384 |                                 self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: otpLayer.componentName, cid: producer.cid, ipMode: existingComponentIPMode, ipAddresses: newIpAddresses, sequenceErrors: producer.sequenceErrors, state: notifiedState)) }
     |                                                            `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1385 |
1386 |                                 // update both name and ip when this happens
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1384:158: warning: capture of 'producer' with non-sendable type 'ConsumerProducer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1382 |
1383 |                                 // notify the delegate of the producer information
1384 |                                 self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: otpLayer.componentName, cid: producer.cid, ipMode: existingComponentIPMode, ipAddresses: newIpAddresses, sequenceErrors: producer.sequenceErrors, state: notifiedState)) }
     |                                                                                                                                                              `- warning: capture of 'producer' with non-sendable type 'ConsumerProducer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1385 |
1386 |                                 // update both name and ip when this happens
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/ConsumerProducer.swift:36:8: note: consider making struct 'ConsumerProducer' conform to the 'Sendable' protocol
 34 | */
 35 |
 36 | struct ConsumerProducer: Equatable {
    |        `- note: consider making struct 'ConsumerProducer' conform to the 'Sendable' protocol
 37 |
 38 |     /// A globally unique identifier (UUID) representing the producer, compliant with RFC 4122.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1384:180: warning: capture of 'existingComponentIPMode' with non-sendable type 'OTPIPMode' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1382 |
1383 |                                 // notify the delegate of the producer information
1384 |                                 self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: otpLayer.componentName, cid: producer.cid, ipMode: existingComponentIPMode, ipAddresses: newIpAddresses, sequenceErrors: producer.sequenceErrors, state: notifiedState)) }
     |                                                                                                                                                                                    `- warning: capture of 'existingComponentIPMode' with non-sendable type 'OTPIPMode' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1385 |
1386 |                                 // update both name and ip when this happens
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Network/NetworkDefinitions.swift:60:13: note: consider making enum 'OTPIPMode' conform to the 'Sendable' protocol
 58 |
 59 | */
 60 | public enum OTPIPMode: String, CaseIterable {
    |             `- note: consider making enum 'OTPIPMode' conform to the 'Sendable' protocol
 61 |
 62 |     /// The `Component` should only use IPv4.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1384:282: warning: capture of 'notifiedState' with non-sendable type 'OTPComponentState' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1382 |
1383 |                                 // notify the delegate of the producer information
1384 |                                 self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: otpLayer.componentName, cid: producer.cid, ipMode: existingComponentIPMode, ipAddresses: newIpAddresses, sequenceErrors: producer.sequenceErrors, state: notifiedState)) }
     |                                                                                                                                                                                                                                                                                          `- warning: capture of 'notifiedState' with non-sendable type 'OTPComponentState' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1385 |
1386 |                                 // update both name and ip when this happens
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/ComponentStatus.swift:35:13: note: consider making enum 'OTPComponentState' conform to the 'Sendable' protocol
 33 |
 34 | */
 35 | public enum OTPComponentState: String {
    |             `- note: consider making enum 'OTPComponentState' conform to the 'Sendable' protocol
 36 |
 37 |     /// This component is offline.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1400:56: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1398 |
1399 |                             // notify the delegate of the producer information
1400 |                             self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: otpLayer.componentName, cid: otpLayer.cid, ipMode: newComponentIPMode, ipAddresses: [hostname], sequenceErrors: producer.sequenceErrors, state: .advertising)) }
     |                                                        `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1401 |
1402 |                             // request names from producers
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1400:176: warning: capture of 'newComponentIPMode' with non-sendable type 'OTPIPMode' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1398 |
1399 |                             // notify the delegate of the producer information
1400 |                             self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: otpLayer.componentName, cid: otpLayer.cid, ipMode: newComponentIPMode, ipAddresses: [hostname], sequenceErrors: producer.sequenceErrors, state: .advertising)) }
     |                                                                                                                                                                                `- warning: capture of 'newComponentIPMode' with non-sendable type 'OTPIPMode' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1401 |
1402 |                             // request names from producers
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Network/NetworkDefinitions.swift:60:13: note: consider making enum 'OTPIPMode' conform to the 'Sendable' protocol
 58 |
 59 | */
 60 | public enum OTPIPMode: String, CaseIterable {
    |             `- note: consider making enum 'OTPIPMode' conform to the 'Sendable' protocol
 61 |
 62 |     /// The `Component` should only use IPv4.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1400:237: warning: capture of 'producer' with non-sendable type 'ConsumerProducer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1398 |
1399 |                             // notify the delegate of the producer information
1400 |                             self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: otpLayer.componentName, cid: otpLayer.cid, ipMode: newComponentIPMode, ipAddresses: [hostname], sequenceErrors: producer.sequenceErrors, state: .advertising)) }
     |                                                                                                                                                                                                                                             `- warning: capture of 'producer' with non-sendable type 'ConsumerProducer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1401 |
1402 |                             // request names from producers
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/ConsumerProducer.swift:36:8: note: consider making struct 'ConsumerProducer' conform to the 'Sendable' protocol
 34 | */
 35 |
 36 | struct ConsumerProducer: Equatable {
    |        `- note: consider making struct 'ConsumerProducer' conform to the 'Sendable' protocol
 37 |
 38 |     /// A globally unique identifier (UUID) representing the producer, compliant with RFC 4122.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1403:62: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1401 |
1402 |                             // request names from producers
1403 |                             Self.socketDelegateQueue.async { self.sendNameAdvertisementMessages() }
     |                                                              `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1404 |
1405 |                         }
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1408:58: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1406 |
1407 |                         // joins newly discovered systems which are observed
1408 |                         Self.socketDelegateQueue.async { self.refreshSystemSubscription() }
     |                                                          `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1409 |
1410 |                         // notify the debug delegate
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1411:47: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1409 |
1410 |                         // notify the debug delegate
1411 |                         delegateQueue.async { self.debugDelegate?.debugLog("Received system advertisement message from \(otpLayer.componentName) \(otpLayer.cid)") }
     |                                               `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1412 |
1413 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1448:56: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1446 |
1447 |                             // notify the delegate this producer is online
1448 |                             self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: otpLayer.componentName, cid: producer.cid, ipMode: existingComponentIPMode, ipAddresses: newIpAddresses, sequenceErrors: producer.sequenceErrors, state: .online)) }
     |                                                        `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1449 |
1450 |                             // update both name and ip when this happens
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1448:154: warning: capture of 'producer' with non-sendable type 'ConsumerProducer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1446 |
1447 |                             // notify the delegate this producer is online
1448 |                             self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: otpLayer.componentName, cid: producer.cid, ipMode: existingComponentIPMode, ipAddresses: newIpAddresses, sequenceErrors: producer.sequenceErrors, state: .online)) }
     |                                                                                                                                                          `- warning: capture of 'producer' with non-sendable type 'ConsumerProducer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1449 |
1450 |                             // update both name and ip when this happens
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/ConsumerProducer.swift:36:8: note: consider making struct 'ConsumerProducer' conform to the 'Sendable' protocol
 34 | */
 35 |
 36 | struct ConsumerProducer: Equatable {
    |        `- note: consider making struct 'ConsumerProducer' conform to the 'Sendable' protocol
 37 |
 38 |     /// A globally unique identifier (UUID) representing the producer, compliant with RFC 4122.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1448:176: warning: capture of 'existingComponentIPMode' with non-sendable type 'OTPIPMode' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1446 |
1447 |                             // notify the delegate this producer is online
1448 |                             self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: otpLayer.componentName, cid: producer.cid, ipMode: existingComponentIPMode, ipAddresses: newIpAddresses, sequenceErrors: producer.sequenceErrors, state: .online)) }
     |                                                                                                                                                                                `- warning: capture of 'existingComponentIPMode' with non-sendable type 'OTPIPMode' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1449 |
1450 |                             // update both name and ip when this happens
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Network/NetworkDefinitions.swift:60:13: note: consider making enum 'OTPIPMode' conform to the 'Sendable' protocol
 58 |
 59 | */
 60 | public enum OTPIPMode: String, CaseIterable {
    |             `- note: consider making enum 'OTPIPMode' conform to the 'Sendable' protocol
 61 |
 62 |     /// The `Component` should only use IPv4.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1467:52: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1465 |
1466 |                         // notify the delegate this producer is online
1467 |                         self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: producer.name, cid: otpLayer.cid, ipMode: newComponentIPMode, ipAddresses: [hostname], sequenceErrors: producer.sequenceErrors, state: .online)) }
     |                                                    `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1468 |
1469 |                         // request names from producers
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1467:121: warning: capture of 'producer' with non-sendable type 'ConsumerProducer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1465 |
1466 |                         // notify the delegate this producer is online
1467 |                         self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: producer.name, cid: otpLayer.cid, ipMode: newComponentIPMode, ipAddresses: [hostname], sequenceErrors: producer.sequenceErrors, state: .online)) }
     |                                                                                                                         `- warning: capture of 'producer' with non-sendable type 'ConsumerProducer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1468 |
1469 |                         // request names from producers
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/ConsumerProducer.swift:36:8: note: consider making struct 'ConsumerProducer' conform to the 'Sendable' protocol
 34 | */
 35 |
 36 | struct ConsumerProducer: Equatable {
    |        `- note: consider making struct 'ConsumerProducer' conform to the 'Sendable' protocol
 37 |
 38 |     /// A globally unique identifier (UUID) representing the producer, compliant with RFC 4122.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1467:163: warning: capture of 'newComponentIPMode' with non-sendable type 'OTPIPMode' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1465 |
1466 |                         // notify the delegate this producer is online
1467 |                         self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: producer.name, cid: otpLayer.cid, ipMode: newComponentIPMode, ipAddresses: [hostname], sequenceErrors: producer.sequenceErrors, state: .online)) }
     |                                                                                                                                                                   `- warning: capture of 'newComponentIPMode' with non-sendable type 'OTPIPMode' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1468 |
1469 |                         // request names from producers
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Network/NetworkDefinitions.swift:60:13: note: consider making enum 'OTPIPMode' conform to the 'Sendable' protocol
 58 |
 59 | */
 60 | public enum OTPIPMode: String, CaseIterable {
    |             `- note: consider making enum 'OTPIPMode' conform to the 'Sendable' protocol
 61 |
 62 |     /// The `Component` should only use IPv4.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1470:58: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1468 |
1469 |                         // request names from producers
1470 |                         Self.socketDelegateQueue.async { self.sendNameAdvertisementMessages() }
     |                                                          `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1471 |
1472 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1496:52: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1494 |
1495 |                         // notify the delegate
1496 |                         self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(producerStatus) }
     |                                                    `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1497 |
1498 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1496:97: warning: capture of 'producerStatus' with non-sendable type 'OTPProducerStatus' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1494 |
1495 |                         // notify the delegate
1496 |                         self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(producerStatus) }
     |                                                                                                 `- warning: capture of 'producerStatus' with non-sendable type 'OTPProducerStatus' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1497 |
1498 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/ComponentStatus.swift:88:15: note: consider making struct 'OTPProducerStatus' conform to the 'Sendable' protocol
 86 | */
 87 |
 88 | public struct OTPProducerStatus: OTPComponentStatus {
    |               `- note: consider making struct 'OTPProducerStatus' conform to the 'Sendable' protocol
 89 |
 90 |     /// A globally unique identifier (UUID) representing the producer, compliant with RFC 4122.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1503:43: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1501 |
1502 |                     // there was an error in the otp layer
1503 |                     delegateQueue.async { self.protocolErrorDelegate?.layerError(error.logDescription) }
     |                                           `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1504 |
1505 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1510:39: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1508 |
1509 |                 // there was an error in the advertisement layer
1510 |                 delegateQueue.async { self.protocolErrorDelegate?.layerError(error.logDescription) }
     |                                       `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1511 |
1512 |             } catch let error as ModuleAdvertisementLayerValidationError {
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1515:39: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1513 |
1514 |                 // there was an error in the module advertisement layer
1515 |                 delegateQueue.async { self.protocolErrorDelegate?.layerError(error.logDescription) }
     |                                       `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1516 |
1517 |             } catch let error as SystemAdvertisementLayerValidationError {
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1520:39: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1518 |
1519 |                 // there was an error in the system advertisement layer
1520 |                 delegateQueue.async { self.protocolErrorDelegate?.layerError(error.logDescription) }
     |                                       `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1521 |
1522 |             } catch let error as NameAdvertisementLayerValidationError {
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1525:39: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1523 |
1524 |                 // there was an error in the name advertisement layer
1525 |                 delegateQueue.async { self.protocolErrorDelegate?.layerError(error.logDescription) }
     |                                       `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1526 |
1527 |             } catch let error as TransformLayerValidationError {
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1530:39: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1528 |
1529 |                 // there was an error in the transform layer
1530 |                 delegateQueue.async { self.protocolErrorDelegate?.layerError(error.logDescription) }
     |                                       `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1531 |
1532 |             } catch let error {
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1535:39: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1533 |
1534 |                 // there was an unknown error
1535 |                 delegateQueue.async { self.protocolErrorDelegate?.unknownError(error.localizedDescription) }
     |                                       `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1536 |
1537 |             }
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1566:40: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1564 |
1565 |             // notify the delegate of the producer status
1566 |             self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: producer.name, cid: producer.cid, ipMode: newIpMode, ipAddresses: newIpAddresses, sequenceErrors: producer.sequenceErrors, state: producer.notifiedState)) }
     |                                        `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1567 |
1568 |             self.producers[index].ipAddresses = newIpAddresses
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1566:109: warning: capture of 'producer' with non-sendable type 'ConsumerProducer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1564 |
1565 |             // notify the delegate of the producer status
1566 |             self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: producer.name, cid: producer.cid, ipMode: newIpMode, ipAddresses: newIpAddresses, sequenceErrors: producer.sequenceErrors, state: producer.notifiedState)) }
     |                                                                                                             `- warning: capture of 'producer' with non-sendable type 'ConsumerProducer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1567 |
1568 |             self.producers[index].ipAddresses = newIpAddresses
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/ConsumerProducer.swift:36:8: note: consider making struct 'ConsumerProducer' conform to the 'Sendable' protocol
 34 | */
 35 |
 36 | struct ConsumerProducer: Equatable {
    |        `- note: consider making struct 'ConsumerProducer' conform to the 'Sendable' protocol
 37 |
 38 |     /// A globally unique identifier (UUID) representing the producer, compliant with RFC 4122.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1566:151: warning: capture of 'newIpMode' with non-sendable type 'OTPIPMode' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1564 |
1565 |             // notify the delegate of the producer status
1566 |             self.delegateQueue.async { self.consumerDelegate?.producerStatusChanged(OTPProducerStatus(name: producer.name, cid: producer.cid, ipMode: newIpMode, ipAddresses: newIpAddresses, sequenceErrors: producer.sequenceErrors, state: producer.notifiedState)) }
     |                                                                                                                                                       `- warning: capture of 'newIpMode' with non-sendable type 'OTPIPMode' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1567 |
1568 |             self.producers[index].ipAddresses = newIpAddresses
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Network/NetworkDefinitions.swift:60:13: note: consider making enum 'OTPIPMode' conform to the 'Sendable' protocol
 58 |
 59 | */
 60 | public enum OTPIPMode: String, CaseIterable {
    |             `- note: consider making enum 'OTPIPMode' conform to the 'Sendable' protocol
 61 |
 62 |     /// The `Component` should only use IPv4.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1613:39: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1611 |             if self._isConnected != false {
1612 |                 self._isConnected = false
1613 |                 delegateQueue.async { self.consumerDelegate?.disconnected(self, with: error) }
     |                                       `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1614 |             }
1615 |         }
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/Consumer.swift:1626:31: warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  61 | */
  62 |
  63 | final public class OTPConsumer: Component {
     |                    `- note: class 'OTPConsumer' does not conform to the 'Sendable' protocol
  64 |
  65 |     /// The interval between checking for data loss.
     :
1624 |     */
1625 |     func debugSocketLog(_ logMessage: String) {
1626 |         delegateQueue.async { self.debugDelegate?.debugSocketLog(logMessage) }
     |                               `- warning: capture of 'self' with non-sendable type 'OTPConsumer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1627 |     }
1628 |
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/ComponentSocket.swift:291:26: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
289 |
290 |         DispatchQueue.main.async {
291 |             socketType = self.socketType.rawValue.capitalized
    |                          |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                          `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
292 |             semaphore.signal()
293 |         }
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Components/ComponentSocket.swift:291:13: warning: sending 'socketType' risks causing data races; this is an error in the Swift 6 language mode
289 |
290 |         DispatchQueue.main.async {
291 |             socketType = self.socketType.rawValue.capitalized
    |             |- warning: sending 'socketType' risks causing data races; this is an error in the Swift 6 language mode
    |             `- note: 'socketType' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
292 |             semaphore.signal()
293 |         }
294 |         semaphore.wait()
295 |         return socketType
    |         `- note: access can happen concurrently
296 |     }
297 |
[36/38] Compiling OTPKit ModuleScale.swift
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Types/Modules/ModuleScale.swift:48:23: warning: static property 'identifier' is not concurrency-safe because non-'Sendable' type 'OTPModuleIdentifier' may have shared mutable state; this is an error in the Swift 6 language mode
 46 |
 47 |     /// Uniquely identifies the module using an `OTPModuleIdentifier`.
 48 |     public static let identifier: OTPModuleIdentifier = OTPModuleIdentifier(manufacturerID: ModuleLayer.ManufacturerID.esta.rawValue, moduleNumber: ModuleLayer.StandardModuleNumber.scale.rawValue)
    |                       |- warning: static property 'identifier' is not concurrency-safe because non-'Sendable' type 'OTPModuleIdentifier' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'identifier' 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
 49 |
 50 |     /// The size of the module's data in bytes.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Types/ModuleIdentifier.swift:34:15: note: consider making struct 'OTPModuleIdentifier' conform to the 'Sendable' protocol
 32 | */
 33 |
 34 | public struct OTPModuleIdentifier: Comparable, Hashable {
    |               `- note: consider making struct 'OTPModuleIdentifier' conform to the 'Sendable' protocol
 35 |
 36 |     /**
[37/38] Compiling OTPKit Point.swift
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Types/Modules/ModuleScale.swift:48:23: warning: static property 'identifier' is not concurrency-safe because non-'Sendable' type 'OTPModuleIdentifier' may have shared mutable state; this is an error in the Swift 6 language mode
 46 |
 47 |     /// Uniquely identifies the module using an `OTPModuleIdentifier`.
 48 |     public static let identifier: OTPModuleIdentifier = OTPModuleIdentifier(manufacturerID: ModuleLayer.ManufacturerID.esta.rawValue, moduleNumber: ModuleLayer.StandardModuleNumber.scale.rawValue)
    |                       |- warning: static property 'identifier' is not concurrency-safe because non-'Sendable' type 'OTPModuleIdentifier' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'identifier' 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
 49 |
 50 |     /// The size of the module's data in bytes.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Types/ModuleIdentifier.swift:34:15: note: consider making struct 'OTPModuleIdentifier' conform to the 'Sendable' protocol
 32 | */
 33 |
 34 | public struct OTPModuleIdentifier: Comparable, Hashable {
    |               `- note: consider making struct 'OTPModuleIdentifier' conform to the 'Sendable' protocol
 35 |
 36 |     /**
[38/38] Compiling OTPKit CwlDispatch.swift
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Types/Modules/ModuleScale.swift:48:23: warning: static property 'identifier' is not concurrency-safe because non-'Sendable' type 'OTPModuleIdentifier' may have shared mutable state; this is an error in the Swift 6 language mode
 46 |
 47 |     /// Uniquely identifies the module using an `OTPModuleIdentifier`.
 48 |     public static let identifier: OTPModuleIdentifier = OTPModuleIdentifier(manufacturerID: ModuleLayer.ManufacturerID.esta.rawValue, moduleNumber: ModuleLayer.StandardModuleNumber.scale.rawValue)
    |                       |- warning: static property 'identifier' is not concurrency-safe because non-'Sendable' type 'OTPModuleIdentifier' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'identifier' 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
 49 |
 50 |     /// The size of the module's data in bytes.
/Users/admin/builder/spi-builder-workspace/Sources/OTPKit/Types/ModuleIdentifier.swift:34:15: note: consider making struct 'OTPModuleIdentifier' conform to the 'Sendable' protocol
 32 | */
 33 |
 34 | public struct OTPModuleIdentifier: Comparable, Hashable {
    |               `- note: consider making struct 'OTPModuleIdentifier' conform to the 'Sendable' protocol
 35 |
 36 |     /**
Build complete! (27.39s)
Fetching https://github.com/robbiehanson/CocoaAsyncSocket
[1/6417] Fetching cocoaasyncsocket
Fetched https://github.com/robbiehanson/CocoaAsyncSocket from cache (1.39s)
Computing version for https://github.com/robbiehanson/CocoaAsyncSocket
Computed https://github.com/robbiehanson/CocoaAsyncSocket at 7.6.5 (0.67s)
Creating working copy for https://github.com/robbiehanson/CocoaAsyncSocket
Working copy of https://github.com/robbiehanson/CocoaAsyncSocket resolved at 7.6.5
Build complete.
{
  "dependencies" : [
    {
      "identity" : "cocoaasyncsocket",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "7.6.5",
            "upper_bound" : "8.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/robbiehanson/CocoaAsyncSocket"
    }
  ],
  "manifest_display_name" : "OTPKit",
  "name" : "OTPKit",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "12.0"
    },
    {
      "name" : "macos",
      "version" : "10.14"
    }
  ],
  "products" : [
    {
      "name" : "OTPKit",
      "targets" : [
        "OTPKit"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "OTPKitTests",
      "module_type" : "SwiftTarget",
      "name" : "OTPKitTests",
      "path" : "Tests/OTPKitTests",
      "sources" : [
        "AddressPointDescriptionTests.swift",
        "AddressTests.swift",
        "AdvertisementLayerTests.swift",
        "ConsumerTests.swift",
        "Data+ExtensionTests.swift",
        "ModuleAdvertisementLayerTests.swift",
        "ModuleIdentifierTests.swift",
        "ModuleLayerTests.swift",
        "ModuleTests.swift",
        "NameAdvertisementLayerTests.swift",
        "OTPLayerTests.swift",
        "PointLayerTests.swift",
        "PointTests.swift",
        "ProducerTests.swift",
        "SystemAdvertisementLayerTests.swift",
        "TransformLayerTests.swift",
        "XCTestManifests.swift"
      ],
      "target_dependencies" : [
        "OTPKit"
      ],
      "type" : "test"
    },
    {
      "c99name" : "OTPKit",
      "module_type" : "SwiftTarget",
      "name" : "OTPKit",
      "path" : "Sources/OTPKit",
      "product_dependencies" : [
        "CocoaAsyncSocket"
      ],
      "product_memberships" : [
        "OTPKit"
      ],
      "sources" : [
        "Components/Component.swift",
        "Components/ComponentSocket.swift",
        "Components/ComponentStatus.swift",
        "Components/Consumer.swift",
        "Components/ConsumerProducer.swift",
        "Components/Producer.swift",
        "Components/ProducerConsumer.swift",
        "Layers/AdvertismentLayer.swift",
        "Layers/ModuleAdvertisementLayer.swift",
        "Layers/ModuleLayer.swift",
        "Layers/NameAdvertisementLayer.swift",
        "Layers/OTPLayer.swift",
        "Layers/PointLayer.swift",
        "Layers/SystemAdvertismentLayer.swift",
        "Layers/TransformLayer.swift",
        "Network/NetworkDefinitions.swift",
        "Types/Address.swift",
        "Types/AddressPointDescription.swift",
        "Types/Data+Extension.swift",
        "Types/Date+Extension.swift",
        "Types/Folio.swift",
        "Types/GeneralDefinitions.swift",
        "Types/Math.swift",
        "Types/Module.swift",
        "Types/ModuleIdentifier.swift",
        "Types/Modules/ModulePosition.swift",
        "Types/Modules/ModulePositionVelAccel.swift",
        "Types/Modules/ModuleReferenceFrame.swift",
        "Types/Modules/ModuleRotation.swift",
        "Types/Modules/ModuleRotationVelAccel.swift",
        "Types/Modules/ModuleScale.swift",
        "Types/Point.swift",
        "Vendor/CwlDispatch.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.2"
}
Done.
This is a staging environment. For live and up-to-date package information, visit swiftpackageindex.com.