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 Atem, reference 2.0.0-alpha.2 (fd8d07), with Swift 6.1 for Linux on 26 Apr 2025 02:43:48 UTC.

Swift 6 data race errors: 56

Build Command

bash -c docker run --pull=always --rm -v "checkouts-4609320-2":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.1-latest swift build --triple x86_64-unknown-linux-gnu -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures 2>&1

Build Log

38 | 					handler.startLoop(in: context)
39 | 				}
/host/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1786:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1784 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1785 | /// `ChannelHandler`.
1786 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1787 |     // visible for ChannelPipeline to modify
1788 |     fileprivate var next: Optional<ChannelHandlerContext>
/host/spi-builder-workspace/Sources/Atem/Utilities/InitialSwitcherStateMessages.swift:10:5: warning: let 'inputProperties' is not concurrency-safe because non-'Sendable' type '[VideoSource.DidChangeProperties]' may have shared mutable state; this is an error in the Swift 6 language mode
  8 | import Foundation
  9 |
 10 | let inputProperties = [
    |     |- warning: let 'inputProperties' is not concurrency-safe because non-'Sendable' type '[VideoSource.DidChangeProperties]' may have shared mutable state; this is an error in the Swift 6 language mode
    |     |- note: add '@MainActor' to make let 'inputProperties' part of global actor 'MainActor'
    |     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 11 | 	VideoSource.DidChangeProperties(
 12 | 		source: .black,
/host/spi-builder-workspace/Sources/Atem/Messages/Configuration.swift:292:16: note: consider making struct 'DidChangeProperties' conform to the 'Sendable' protocol
290 | extension VideoSource {
291 | 	/// The properties (like name and port types) of a video source
292 | 	public struct DidChangeProperties: SerializableMessage {
    |                `- note: consider making struct 'DidChangeProperties' conform to the 'Sendable' protocol
293 | 		public static let title: Message.Title = Message.Title(string: "InPr")
294 | 		static let defaultText = " ".data(using: .utf8)! + [0]
[257/293] Compiling Atem RunLength.swift
[258/293] Compiling Atem accelerate.swift
[259/293] Compiling Atem MediaPool.swift
[260/293] Compiling Atem MediaTransferManager.swift
[261/293] Emitting module Atem
/host/spi-builder-workspace/Sources/Atem/Messages/Actions.swift:13:21: warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
 11 | 	/// Performs a cut on the atem
 12 | 	public struct Cut: SerializableMessage {
 13 | 		public static let title = Message.Title(string: "DCut")
    |                     |- warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'title' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 14 | 		public let debugDescription = "cut"
 15 | 		public let mixEffectBlock: UInt8
/host/spi-builder-workspace/Sources/Atem/Messages/Message.swift:21:16: note: consider making struct 'Title' conform to the 'Sendable' protocol
 19 | public enum Message {
 20 | 	/// An ASCII String of exactly 4 characters. A list of available titles can be found in [Skarhoj's protocol description](http://skaarhoj.com/fileadmin/BMDPROTOCOL.html) under the column "CMD".
 21 | 	public struct Title: CustomStringConvertible {
    |                `- note: consider making struct 'Title' conform to the 'Sendable' protocol
 22 | 		/// The position of the title in a message. (Ignoring the first four bytes of a message)
 23 | 		/// Slice `0 ..< 4`
/host/spi-builder-workspace/Sources/Atem/Messages/Actions.swift:35:21: warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
 33 | 	/// Informs a switcher that the preview bus should be changed
 34 | 	public struct ChangePreviewBus: SerializableMessage {
 35 | 		public static let title = Message.Title(string: "CPvI")
    |                     |- warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'title' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 36 |
 37 | 		public let mixEffect: UInt8
/host/spi-builder-workspace/Sources/Atem/Messages/Message.swift:21:16: note: consider making struct 'Title' conform to the 'Sendable' protocol
 19 | public enum Message {
 20 | 	/// An ASCII String of exactly 4 characters. A list of available titles can be found in [Skarhoj's protocol description](http://skaarhoj.com/fileadmin/BMDPROTOCOL.html) under the column "CMD".
 21 | 	public struct Title: CustomStringConvertible {
    |                `- note: consider making struct 'Title' conform to the 'Sendable' protocol
 22 | 		/// The position of the title in a message. (Ignoring the first four bytes of a message)
 23 | 		/// Slice `0 ..< 4`
/host/spi-builder-workspace/Sources/Atem/Messages/Actions.swift:61:21: warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
 59 | 	/// Informs a controller that the preview bus has changed
 60 | 	public struct ChangePreviewBus: SerializableMessage {
 61 | 		public static let title = Message.Title(string: "PrvI")
    |                     |- warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'title' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 62 |
 63 | 		public let mixEffect: UInt8
/host/spi-builder-workspace/Sources/Atem/Messages/Message.swift:21:16: note: consider making struct 'Title' conform to the 'Sendable' protocol
 19 | public enum Message {
 20 | 	/// An ASCII String of exactly 4 characters. A list of available titles can be found in [Skarhoj's protocol description](http://skaarhoj.com/fileadmin/BMDPROTOCOL.html) under the column "CMD".
 21 | 	public struct Title: CustomStringConvertible {
    |                `- note: consider making struct 'Title' conform to the 'Sendable' protocol
 22 | 		/// The position of the title in a message. (Ignoring the first four bytes of a message)
 23 | 		/// Slice `0 ..< 4`
/host/spi-builder-workspace/Sources/Atem/Messages/Actions.swift:88:21: warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
 86 | 	/// Informs a switcher that the program bus shoud be changed
 87 | 	public struct ChangeProgramBus: SerializableMessage {
 88 | 		public static let title = Message.Title(string: "CPgI")
    |                     |- warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'title' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 89 |
 90 | 		public let mixEffect: UInt8
/host/spi-builder-workspace/Sources/Atem/Messages/Message.swift:21:16: note: consider making struct 'Title' conform to the 'Sendable' protocol
 19 | public enum Message {
 20 | 	/// An ASCII String of exactly 4 characters. A list of available titles can be found in [Skarhoj's protocol description](http://skaarhoj.com/fileadmin/BMDPROTOCOL.html) under the column "CMD".
 21 | 	public struct Title: CustomStringConvertible {
    |                `- note: consider making struct 'Title' conform to the 'Sendable' protocol
 22 | 		/// The position of the title in a message. (Ignoring the first four bytes of a message)
 23 | 		/// Slice `0 ..< 4`
/host/spi-builder-workspace/Sources/Atem/Messages/Actions.swift:114:21: warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
112 | 	/// Informs a controller that the program bus has changed
113 | 	public struct ChangeProgramBus: SerializableMessage {
114 | 		public static let title = Message.Title(string: "PrgI")
    |                     |- warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'title' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
115 |
116 | 		public let mixEffect: UInt8
/host/spi-builder-workspace/Sources/Atem/Messages/Message.swift:21:16: note: consider making struct 'Title' conform to the 'Sendable' protocol
 19 | public enum Message {
 20 | 	/// An ASCII String of exactly 4 characters. A list of available titles can be found in [Skarhoj's protocol description](http://skaarhoj.com/fileadmin/BMDPROTOCOL.html) under the column "CMD".
 21 | 	public struct Title: CustomStringConvertible {
    |                `- note: consider making struct 'Title' conform to the 'Sendable' protocol
 22 | 		/// The position of the title in a message. (Ignoring the first four bytes of a message)
 23 | 		/// Slice `0 ..< 4`
/host/spi-builder-workspace/Sources/Atem/Messages/Actions.swift:142:21: warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
140 | 	/// Informs a switcher that a source should be assigned to the specified auxiliary output
141 | 	public struct ChangeAuxiliaryOutput: SerializableMessage {
142 | 		public static let title = Message.Title(string: "CAuS")
    |                     |- warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'title' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
143 |
144 | 		/// The source that should be assigned to the auxiliary output
/host/spi-builder-workspace/Sources/Atem/Messages/Message.swift:21:16: note: consider making struct 'Title' conform to the 'Sendable' protocol
 19 | public enum Message {
 20 | 	/// An ASCII String of exactly 4 characters. A list of available titles can be found in [Skarhoj's protocol description](http://skaarhoj.com/fileadmin/BMDPROTOCOL.html) under the column "CMD".
 21 | 	public struct Title: CustomStringConvertible {
    |                `- note: consider making struct 'Title' conform to the 'Sendable' protocol
 22 | 		/// The position of the title in a message. (Ignoring the first four bytes of a message)
 23 | 		/// Slice `0 ..< 4`
/host/spi-builder-workspace/Sources/Atem/Messages/Actions.swift:174:21: warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
172 | 	/// Informs a controller that a source has been routed to an auxiliary output
173 | 	public struct ChangeAuxiliaryOutput: SerializableMessage {
174 | 		public static let title = Message.Title(string: "AuxS")
    |                     |- warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'title' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
175 |
176 | 		/// The source that has been routed to the auxiliary output
/host/spi-builder-workspace/Sources/Atem/Messages/Message.swift:21:16: note: consider making struct 'Title' conform to the 'Sendable' protocol
 19 | public enum Message {
 20 | 	/// An ASCII String of exactly 4 characters. A list of available titles can be found in [Skarhoj's protocol description](http://skaarhoj.com/fileadmin/BMDPROTOCOL.html) under the column "CMD".
 21 | 	public struct Title: CustomStringConvertible {
    |                `- note: consider making struct 'Title' conform to the 'Sendable' protocol
 22 | 		/// The position of the title in a message. (Ignoring the first four bytes of a message)
 23 | 		/// Slice `0 ..< 4`
/host/spi-builder-workspace/Sources/Atem/Messages/Actions.swift:207:21: warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
205 | extension Message.Do {
206 | 	public struct GetTimecode: SerializableMessage {
207 | 		public static let title = Message.Title(string: "TiRq")
    |                     |- warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'title' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
208 |
209 | 		public init(with bytes: ArraySlice<UInt8>) throws {}
/host/spi-builder-workspace/Sources/Atem/Messages/Message.swift:21:16: note: consider making struct 'Title' conform to the 'Sendable' protocol
 19 | public enum Message {
 20 | 	/// An ASCII String of exactly 4 characters. A list of available titles can be found in [Skarhoj's protocol description](http://skaarhoj.com/fileadmin/BMDPROTOCOL.html) under the column "CMD".
 21 | 	public struct Title: CustomStringConvertible {
    |                `- note: consider making struct 'Title' conform to the 'Sendable' protocol
 22 | 		/// The position of the title in a message. (Ignoring the first four bytes of a message)
 23 | 		/// Slice `0 ..< 4`
/host/spi-builder-workspace/Sources/Atem/Messages/Actions.swift:220:21: warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
218 | 	public struct GetTimecode: SerializableMessage {
219 | 		public typealias Timecode = (hour: UInt8, minute: UInt8, second: UInt8, frame: UInt8)
220 | 		public static let title = Message.Title(string: "Time")
    |                     |- warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'title' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
221 | 		public let timecode: Timecode
222 |
/host/spi-builder-workspace/Sources/Atem/Messages/Message.swift:21:16: note: consider making struct 'Title' conform to the 'Sendable' protocol
 19 | public enum Message {
 20 | 	/// An ASCII String of exactly 4 characters. A list of available titles can be found in [Skarhoj's protocol description](http://skaarhoj.com/fileadmin/BMDPROTOCOL.html) under the column "CMD".
 21 | 	public struct Title: CustomStringConvertible {
    |                `- note: consider making struct 'Title' conform to the 'Sendable' protocol
 22 | 		/// The position of the title in a message. (Ignoring the first four bytes of a message)
 23 | 		/// Slice `0 ..< 4`
/host/spi-builder-workspace/Sources/Atem/Messages/Actions.swift:254:21: warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
252 | 	/// Informs the switcher that it should update its transition position
253 | 	public struct ChangeTransitionPosition: SerializableMessage {
254 | 		public static let title = Message.Title(string: "CTPs")
    |                     |- warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'title' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
255 | 		public let mixEffect: UInt8
256 | 		public let position: UInt16
/host/spi-builder-workspace/Sources/Atem/Messages/Message.swift:21:16: note: consider making struct 'Title' conform to the 'Sendable' protocol
 19 | public enum Message {
 20 | 	/// An ASCII String of exactly 4 characters. A list of available titles can be found in [Skarhoj's protocol description](http://skaarhoj.com/fileadmin/BMDPROTOCOL.html) under the column "CMD".
 21 | 	public struct Title: CustomStringConvertible {
    |                `- note: consider making struct 'Title' conform to the 'Sendable' protocol
 22 | 		/// The position of the title in a message. (Ignoring the first four bytes of a message)
 23 | 		/// Slice `0 ..< 4`
/host/spi-builder-workspace/Sources/Atem/Messages/Actions.swift:278:21: warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
276 | 	/// Informs the controller that the transition position has changed
277 | 	public struct ChangeTransitionPosition: SerializableMessage {
278 | 		public static let title = Message.Title(string: "TrPs")
    |                     |- warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'title' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
279 | 		public let mixEffect: UInt8
280 | 		public let position: UInt16
/host/spi-builder-workspace/Sources/Atem/Messages/Message.swift:21:16: note: consider making struct 'Title' conform to the 'Sendable' protocol
 19 | public enum Message {
 20 | 	/// An ASCII String of exactly 4 characters. A list of available titles can be found in [Skarhoj's protocol description](http://skaarhoj.com/fileadmin/BMDPROTOCOL.html) under the column "CMD".
 21 | 	public struct Title: CustomStringConvertible {
    |                `- note: consider making struct 'Title' conform to the 'Sendable' protocol
 22 | 		/// The position of the title in a message. (Ignoring the first four bytes of a message)
 23 | 		/// Slice `0 ..< 4`
/host/spi-builder-workspace/Sources/Atem/Messages/Actions.swift:315:21: warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
313 | 	/// Informs a controller that the some tally lights might have changed.
314 | 	public struct ChangeSourceTallies: SerializableMessage {
315 | 		public static let title = Message.Title(string: "TlSr")
    |                     |- warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'title' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
316 |
317 | 		/// The state of the tally lights for each source of the Atem switcher
/host/spi-builder-workspace/Sources/Atem/Messages/Message.swift:21:16: note: consider making struct 'Title' conform to the 'Sendable' protocol
 19 | public enum Message {
 20 | 	/// An ASCII String of exactly 4 characters. A list of available titles can be found in [Skarhoj's protocol description](http://skaarhoj.com/fileadmin/BMDPROTOCOL.html) under the column "CMD".
 21 | 	public struct Title: CustomStringConvertible {
    |                `- note: consider making struct 'Title' conform to the 'Sendable' protocol
 22 | 		/// The position of the title in a message. (Ignoring the first four bytes of a message)
 23 | 		/// Slice `0 ..< 4`
/host/spi-builder-workspace/Sources/Atem/Messages/Actions.swift:364:21: warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
362 | 	@available(OSX 10.12, iOS 10.0, *)
363 | 	public struct ChangeKeyDVE: SerializableMessage {
364 | 		public static let title = Message.Title(string: "CKDV")
    |                     |- warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'title' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
365 |
366 | 		public let changedElements: ChangeMask
/host/spi-builder-workspace/Sources/Atem/Messages/Message.swift:21:16: note: consider making struct 'Title' conform to the 'Sendable' protocol
 19 | public enum Message {
 20 | 	/// An ASCII String of exactly 4 characters. A list of available titles can be found in [Skarhoj's protocol description](http://skaarhoj.com/fileadmin/BMDPROTOCOL.html) under the column "CMD".
 21 | 	public struct Title: CustomStringConvertible {
    |                `- note: consider making struct 'Title' conform to the 'Sendable' protocol
 22 | 		/// The position of the title in a message. (Ignoring the first four bytes of a message)
 23 | 		/// Slice `0 ..< 4`
/host/spi-builder-workspace/Sources/Atem/Messages/Actions.swift:416:22: warning: static property 'rotation' is not concurrency-safe because non-'Sendable' type 'Message.Do.ChangeKeyDVE.ChangeMask' may have shared mutable state; this is an error in the Swift 6 language mode
407 | 		}
408 |
409 | 		public struct ChangeMask: OptionSet {
    |                 `- note: consider making struct 'ChangeMask' conform to the 'Sendable' protocol
410 | 			public let rawValue: UInt32
411 |
    :
414 | 			}
415 |
416 | 			public static let rotation = Self(rawValue: 1 << 4)
    |                      |- warning: static property 'rotation' is not concurrency-safe because non-'Sendable' type 'Message.Do.ChangeKeyDVE.ChangeMask' may have shared mutable state; this is an error in the Swift 6 language mode
    |                      |- note: add '@MainActor' to make static property 'rotation' part of global actor 'MainActor'
    |                      `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
417 | 		}
418 | 	}
/host/spi-builder-workspace/Sources/Atem/Messages/Actions.swift:425:21: warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
423 | public extension Message.Did {
424 | 	struct ChangeMediaPlayerFrameDescription: DeserializableMessage {
425 | 		public static let title = Message.Title(string: "MPfe")
    |                     |- warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'title' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
426 |
427 | 		public let id: MediaPool.ID
/host/spi-builder-workspace/Sources/Atem/Messages/Message.swift:21:16: note: consider making struct 'Title' conform to the 'Sendable' protocol
 19 | public enum Message {
 20 | 	/// An ASCII String of exactly 4 characters. A list of available titles can be found in [Skarhoj's protocol description](http://skaarhoj.com/fileadmin/BMDPROTOCOL.html) under the column "CMD".
 21 | 	public struct Title: CustomStringConvertible {
    |                `- note: consider making struct 'Title' conform to the 'Sendable' protocol
 22 | 		/// The position of the title in a message. (Ignoring the first four bytes of a message)
 23 | 		/// Slice `0 ..< 4`
<unknown>:0: note: a function type must be marked '@Sendable' to conform to 'Sendable'
/host/spi-builder-workspace/Sources/Atem/Messages/Actions.swift:450:15: warning: static property 'name' is not concurrency-safe because non-'Sendable' type '(Int) -> Range<Int>' may have shared mutable state; this is an error in the Swift 6 language mode
448 | 			static let frameIndex = 2..<4
449 | 			static let nameLength = 22..<24
450 | 			static let name = { length in nameLength.endIndex ..< nameLength.endIndex + length }
    |               |- warning: static property 'name' is not concurrency-safe because non-'Sendable' type '(Int) -> Range<Int>' may have shared mutable state; this is an error in the Swift 6 language mode
    |               |- note: add '@MainActor' to make static property 'name' part of global actor 'MainActor'
    |               `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
451 | 		}
452 | 	}
/host/spi-builder-workspace/Sources/Atem/Messages/Configuration.swift:14:21: warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
 12 | 	/// There are two version numbers in ATEM world: One for the ATEM Software Control application (for instance version 6.0), which is what people usually refer to, and one for the firmware which is often updated with the PC/Mac application versions (for instance 2.15). The latter version number is what "_ver" gives you and a number you can not find anywhere in the application to our knowledge.
 13 | 	public struct ProtocolVersion: SerializableMessage {
 14 | 		public static let title = Message.Title(string: "_ver")
    |                     |- warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'title' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 15 | 		static let majorPosition = 0..<2
 16 | 		static let minorPosition = 2..<4
/host/spi-builder-workspace/Sources/Atem/Messages/Message.swift:21:16: note: consider making struct 'Title' conform to the 'Sendable' protocol
 19 | public enum Message {
 20 | 	/// An ASCII String of exactly 4 characters. A list of available titles can be found in [Skarhoj's protocol description](http://skaarhoj.com/fileadmin/BMDPROTOCOL.html) under the column "CMD".
 21 | 	public struct Title: CustomStringConvertible {
    |                `- note: consider making struct 'Title' conform to the 'Sendable' protocol
 22 | 		/// The position of the title in a message. (Ignoring the first four bytes of a message)
 23 | 		/// Slice `0 ..< 4`
/host/spi-builder-workspace/Sources/Atem/Messages/Configuration.swift:36:21: warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
 34 | 	/// Information about the ATEM product
 35 | 	public struct ProductInfo: SerializableMessage {
 36 | 		public static let title = Message.Title(string: "_pin")
    |                     |- warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'title' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 37 | 		static let namePosition = 0..<40
 38 | 		static let tooLongNameCount = namePosition.count + 1
/host/spi-builder-workspace/Sources/Atem/Messages/Message.swift:21:16: note: consider making struct 'Title' conform to the 'Sendable' protocol
 19 | public enum Message {
 20 | 	/// An ASCII String of exactly 4 characters. A list of available titles can be found in [Skarhoj's protocol description](http://skaarhoj.com/fileadmin/BMDPROTOCOL.html) under the column "CMD".
 21 | 	public struct Title: CustomStringConvertible {
    |                `- note: consider making struct 'Title' conform to the 'Sendable' protocol
 22 | 		/// The position of the title in a message. (Ignoring the first four bytes of a message)
 23 | 		/// Slice `0 ..< 4`
/host/spi-builder-workspace/Sources/Atem/Messages/Configuration.swift:88:21: warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
 86 | 	///  - [Qt ATEM protocol implementation](https://github.com/petersimonsson/libqatemcontrol/blob/master/qatemconnection.cpp)
 87 | 	public struct Topology: SerializableMessage {
 88 | 		public static let title = Message.Title(string: "_top")
    |                     |- warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'title' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 89 |
 90 | 		public let mixEffectBlocks: UInt8
/host/spi-builder-workspace/Sources/Atem/Messages/Message.swift:21:16: note: consider making struct 'Title' conform to the 'Sendable' protocol
 19 | public enum Message {
 20 | 	/// An ASCII String of exactly 4 characters. A list of available titles can be found in [Skarhoj's protocol description](http://skaarhoj.com/fileadmin/BMDPROTOCOL.html) under the column "CMD".
 21 | 	public struct Title: CustomStringConvertible {
    |                `- note: consider making struct 'Title' conform to the 'Sendable' protocol
 22 | 		/// The position of the title in a message. (Ignoring the first four bytes of a message)
 23 | 		/// Slice `0 ..< 4`
/host/spi-builder-workspace/Sources/Atem/Messages/Configuration.swift:180:21: warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
178 |
179 | 	public struct MixEffect: SerializableMessage {
180 | 		public static let title = Message.Title(string: "_MeC")
    |                     |- warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'title' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
181 |
182 | 		/// The block index. Starts counting at 0 so first block is 0
/host/spi-builder-workspace/Sources/Atem/Messages/Message.swift:21:16: note: consider making struct 'Title' conform to the 'Sendable' protocol
 19 | public enum Message {
 20 | 	/// An ASCII String of exactly 4 characters. A list of available titles can be found in [Skarhoj's protocol description](http://skaarhoj.com/fileadmin/BMDPROTOCOL.html) under the column "CMD".
 21 | 	public struct Title: CustomStringConvertible {
    |                `- note: consider making struct 'Title' conform to the 'Sendable' protocol
 22 | 		/// The position of the title in a message. (Ignoring the first four bytes of a message)
 23 | 		/// Slice `0 ..< 4`
/host/spi-builder-workspace/Sources/Atem/Messages/Configuration.swift:208:21: warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
206 |
207 | 	public struct MediaPool: SerializableMessage {
208 | 		public static let title = Message.Title(string: "_mpl")
    |                     |- warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'title' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
209 |
210 | 		/// The number of stills that can be stored
/host/spi-builder-workspace/Sources/Atem/Messages/Message.swift:21:16: note: consider making struct 'Title' conform to the 'Sendable' protocol
 19 | public enum Message {
 20 | 	/// An ASCII String of exactly 4 characters. A list of available titles can be found in [Skarhoj's protocol description](http://skaarhoj.com/fileadmin/BMDPROTOCOL.html) under the column "CMD".
 21 | 	public struct Title: CustomStringConvertible {
    |                `- note: consider making struct 'Title' conform to the 'Sendable' protocol
 22 | 		/// The position of the title in a message. (Ignoring the first four bytes of a message)
 23 | 		/// Slice `0 ..< 4`
/host/spi-builder-workspace/Sources/Atem/Messages/Configuration.swift:235:21: warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
233 |
234 | 	public struct MultiView: SerializableMessage {
235 | 		public static let title = Message.Title(string: "_MvC")
    |                     |- warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'title' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
236 |
237 | 		/// The number inputs that are included in the multiview
/host/spi-builder-workspace/Sources/Atem/Messages/Message.swift:21:16: note: consider making struct 'Title' conform to the 'Sendable' protocol
 19 | public enum Message {
 20 | 	/// An ASCII String of exactly 4 characters. A list of available titles can be found in [Skarhoj's protocol description](http://skaarhoj.com/fileadmin/BMDPROTOCOL.html) under the column "CMD".
 21 | 	public struct Title: CustomStringConvertible {
    |                `- note: consider making struct 'Title' conform to the 'Sendable' protocol
 22 | 		/// The position of the title in a message. (Ignoring the first four bytes of a message)
 23 | 		/// Slice `0 ..< 4`
/host/spi-builder-workspace/Sources/Atem/Messages/Configuration.swift:268:21: warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
266 | 	/// This message should be sent at the end of the connection initiation. The connection initiation is the sequence of packets that is sent at the very beginning of a connection and they contain messages that represent the state of the device at the moment of conection.
267 | 	public struct InitiationComplete: SerializableMessage {
268 | 		public static let title = Message.Title(string: "InCm")
    |                     |- warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'title' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
269 |
270 | 		public init(with bytes: ArraySlice<UInt8>) throws {
/host/spi-builder-workspace/Sources/Atem/Messages/Message.swift:21:16: note: consider making struct 'Title' conform to the 'Sendable' protocol
 19 | public enum Message {
 20 | 	/// An ASCII String of exactly 4 characters. A list of available titles can be found in [Skarhoj's protocol description](http://skaarhoj.com/fileadmin/BMDPROTOCOL.html) under the column "CMD".
 21 | 	public struct Title: CustomStringConvertible {
    |                `- note: consider making struct 'Title' conform to the 'Sendable' protocol
 22 | 		/// The position of the title in a message. (Ignoring the first four bytes of a message)
 23 | 		/// Slice `0 ..< 4`
/host/spi-builder-workspace/Sources/Atem/Messages/Configuration.swift:293:21: warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
291 | 	/// The properties (like name and port types) of a video source
292 | 	public struct DidChangeProperties: SerializableMessage {
293 | 		public static let title: Message.Title = Message.Title(string: "InPr")
    |                     |- warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'title' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
294 | 		static let defaultText = " ".data(using: .utf8)! + [0]
295 |
/host/spi-builder-workspace/Sources/Atem/Messages/Message.swift:21:16: note: consider making struct 'Title' conform to the 'Sendable' protocol
 19 | public enum Message {
 20 | 	/// An ASCII String of exactly 4 characters. A list of available titles can be found in [Skarhoj's protocol description](http://skaarhoj.com/fileadmin/BMDPROTOCOL.html) under the column "CMD".
 21 | 	public struct Title: CustomStringConvertible {
    |                `- note: consider making struct 'Title' conform to the 'Sendable' protocol
 22 | 		/// The position of the title in a message. (Ignoring the first four bytes of a message)
 23 | 		/// Slice `0 ..< 4`
/host/spi-builder-workspace/Sources/Atem/Messages/Configuration.swift:389:21: warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
387 |
388 | 	public struct DoChangeProperties: SerializableMessage {
389 | 		public static let title = Message.Title(string: "CInL")
    |                     |- warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'title' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
390 |
391 | 		public let changeMask: ChangeMask
/host/spi-builder-workspace/Sources/Atem/Messages/Message.swift:21:16: note: consider making struct 'Title' conform to the 'Sendable' protocol
 19 | public enum Message {
 20 | 	/// An ASCII String of exactly 4 characters. A list of available titles can be found in [Skarhoj's protocol description](http://skaarhoj.com/fileadmin/BMDPROTOCOL.html) under the column "CMD".
 21 | 	public struct Title: CustomStringConvertible {
    |                `- note: consider making struct 'Title' conform to the 'Sendable' protocol
 22 | 		/// The position of the title in a message. (Ignoring the first four bytes of a message)
 23 | 		/// Slice `0 ..< 4`
/host/spi-builder-workspace/Sources/Atem/Messages/Configuration.swift:454:22: warning: static property 'longName' is not concurrency-safe because non-'Sendable' type 'VideoSource.DoChangeProperties.ChangeMask' may have shared mutable state; this is an error in the Swift 6 language mode
445 | 		}
446 |
447 | 		public struct ChangeMask: OptionSet {
    |                 `- note: consider making struct 'ChangeMask' conform to the 'Sendable' protocol
448 | 			public let rawValue: UInt8
449 |
    :
452 | 			}
453 |
454 | 			public static let longName  = Self(rawValue: 1 << 0)
    |                      |- warning: static property 'longName' is not concurrency-safe because non-'Sendable' type 'VideoSource.DoChangeProperties.ChangeMask' may have shared mutable state; this is an error in the Swift 6 language mode
    |                      |- note: add '@MainActor' to make static property 'longName' part of global actor 'MainActor'
    |                      `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
455 | 			public static let shortName = Self(rawValue: 1 << 1)
456 | 			public static let externalPortType = Self(rawValue: 1 << 2)
/host/spi-builder-workspace/Sources/Atem/Messages/Configuration.swift:455:22: warning: static property 'shortName' is not concurrency-safe because non-'Sendable' type 'VideoSource.DoChangeProperties.ChangeMask' may have shared mutable state; this is an error in the Swift 6 language mode
445 | 		}
446 |
447 | 		public struct ChangeMask: OptionSet {
    |                 `- note: consider making struct 'ChangeMask' conform to the 'Sendable' protocol
448 | 			public let rawValue: UInt8
449 |
    :
453 |
454 | 			public static let longName  = Self(rawValue: 1 << 0)
455 | 			public static let shortName = Self(rawValue: 1 << 1)
    |                      |- warning: static property 'shortName' is not concurrency-safe because non-'Sendable' type 'VideoSource.DoChangeProperties.ChangeMask' may have shared mutable state; this is an error in the Swift 6 language mode
    |                      |- note: add '@MainActor' to make static property 'shortName' part of global actor 'MainActor'
    |                      `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
456 | 			public static let externalPortType = Self(rawValue: 1 << 2)
457 | 		}
/host/spi-builder-workspace/Sources/Atem/Messages/Configuration.swift:456:22: warning: static property 'externalPortType' is not concurrency-safe because non-'Sendable' type 'VideoSource.DoChangeProperties.ChangeMask' may have shared mutable state; this is an error in the Swift 6 language mode
445 | 		}
446 |
447 | 		public struct ChangeMask: OptionSet {
    |                 `- note: consider making struct 'ChangeMask' conform to the 'Sendable' protocol
448 | 			public let rawValue: UInt8
449 |
    :
454 | 			public static let longName  = Self(rawValue: 1 << 0)
455 | 			public static let shortName = Self(rawValue: 1 << 1)
456 | 			public static let externalPortType = Self(rawValue: 1 << 2)
    |                      |- warning: static property 'externalPortType' is not concurrency-safe because non-'Sendable' type 'VideoSource.DoChangeProperties.ChangeMask' may have shared mutable state; this is an error in the Swift 6 language mode
    |                      |- note: add '@MainActor' to make static property 'externalPortType' part of global actor 'MainActor'
    |                      `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
457 | 		}
458 | 	}
/host/spi-builder-workspace/Sources/Atem/Messages/DataTransfer.swift:10:21: warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
  8 | extension Message.Do {
  9 | 	public struct RequestLock: SerializableMessage {
 10 | 		public static let title = Message.Title(string: "LOCK")
    |                     |- warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'title' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 11 | 		public let store: UInt16
 12 | 		public let state: UInt16
/host/spi-builder-workspace/Sources/Atem/Messages/Message.swift:21:16: note: consider making struct 'Title' conform to the 'Sendable' protocol
 19 | public enum Message {
 20 | 	/// An ASCII String of exactly 4 characters. A list of available titles can be found in [Skarhoj's protocol description](http://skaarhoj.com/fileadmin/BMDPROTOCOL.html) under the column "CMD".
 21 | 	public struct Title: CustomStringConvertible {
    |                `- note: consider making struct 'Title' conform to the 'Sendable' protocol
 22 | 		/// The position of the title in a message. (Ignoring the first four bytes of a message)
 23 | 		/// Slice `0 ..< 4`
/host/spi-builder-workspace/Sources/Atem/Messages/DataTransfer.swift:32:21: warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
 30 |
 31 | 	public struct RequestLockPosition: SerializableMessage {
 32 | 		public static let title = Message.Title(string: "PLCK")
    |                     |- warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'title' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 33 | 		public let store: UInt16
 34 | 		public let index: UInt16
/host/spi-builder-workspace/Sources/Atem/Messages/Message.swift:21:16: note: consider making struct 'Title' conform to the 'Sendable' protocol
 19 | public enum Message {
 20 | 	/// An ASCII String of exactly 4 characters. A list of available titles can be found in [Skarhoj's protocol description](http://skaarhoj.com/fileadmin/BMDPROTOCOL.html) under the column "CMD".
 21 | 	public struct Title: CustomStringConvertible {
    |                `- note: consider making struct 'Title' conform to the 'Sendable' protocol
 22 | 		/// The position of the title in a message. (Ignoring the first four bytes of a message)
 23 | 		/// Slice `0 ..< 4`
/host/spi-builder-workspace/Sources/Atem/Messages/DataTransfer.swift:66:21: warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
 64 | extension Message.Did {
 65 | 	public struct ChangeLock: SerializableMessage {
 66 | 		public static let title = Message.Title(string: "LKST")
    |                     |- warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'title' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 67 | 		public let store: UInt16
 68 | 		public let isLocked: Bool
/host/spi-builder-workspace/Sources/Atem/Messages/Message.swift:21:16: note: consider making struct 'Title' conform to the 'Sendable' protocol
 19 | public enum Message {
 20 | 	/// An ASCII String of exactly 4 characters. A list of available titles can be found in [Skarhoj's protocol description](http://skaarhoj.com/fileadmin/BMDPROTOCOL.html) under the column "CMD".
 21 | 	public struct Title: CustomStringConvertible {
    |                `- note: consider making struct 'Title' conform to the 'Sendable' protocol
 22 | 		/// The position of the title in a message. (Ignoring the first four bytes of a message)
 23 | 		/// Slice `0 ..< 4`
/host/spi-builder-workspace/Sources/Atem/Messages/DataTransfer.swift:88:21: warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
 86 |
 87 | 	public struct ObtainLock: SerializableMessage {
 88 | 		public static let title = Message.Title(string: "LKOB")
    |                     |- warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'title' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 89 | 		public let store: UInt16
 90 |
/host/spi-builder-workspace/Sources/Atem/Messages/Message.swift:21:16: note: consider making struct 'Title' conform to the 'Sendable' protocol
 19 | public enum Message {
 20 | 	/// An ASCII String of exactly 4 characters. A list of available titles can be found in [Skarhoj's protocol description](http://skaarhoj.com/fileadmin/BMDPROTOCOL.html) under the column "CMD".
 21 | 	public struct Title: CustomStringConvertible {
    |                `- note: consider making struct 'Title' conform to the 'Sendable' protocol
 22 | 		/// The position of the title in a message. (Ignoring the first four bytes of a message)
 23 | 		/// Slice `0 ..< 4`
/host/spi-builder-workspace/Sources/Atem/Messages/DataTransfer.swift:109:21: warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
107 | extension Message.Do {
108 | 	public struct StartDataTransfer: SerializableMessage {
109 | 		public static let title = Message.Title(string: "FTSD")
    |                     |- warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'title' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
110 |
111 | 		public let transferID: UInt16
/host/spi-builder-workspace/Sources/Atem/Messages/Message.swift:21:16: note: consider making struct 'Title' conform to the 'Sendable' protocol
 19 | public enum Message {
 20 | 	/// An ASCII String of exactly 4 characters. A list of available titles can be found in [Skarhoj's protocol description](http://skaarhoj.com/fileadmin/BMDPROTOCOL.html) under the column "CMD".
 21 | 	public struct Title: CustomStringConvertible {
    |                `- note: consider making struct 'Title' conform to the 'Sendable' protocol
 22 | 		/// The position of the title in a message. (Ignoring the first four bytes of a message)
 23 | 		/// Slice `0 ..< 4`
/host/spi-builder-workspace/Sources/Atem/Messages/DataTransfer.swift:164:21: warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
162 |
163 | 	public struct RequestDataChunks: SerializableMessage {
164 | 		public static let title = Message.Title(string: "FTCD")
    |                     |- warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'title' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
165 |
166 | 		public let transferID:   UInt16
/host/spi-builder-workspace/Sources/Atem/Messages/Message.swift:21:16: note: consider making struct 'Title' conform to the 'Sendable' protocol
 19 | public enum Message {
 20 | 	/// An ASCII String of exactly 4 characters. A list of available titles can be found in [Skarhoj's protocol description](http://skaarhoj.com/fileadmin/BMDPROTOCOL.html) under the column "CMD".
 21 | 	public struct Title: CustomStringConvertible {
    |                `- note: consider making struct 'Title' conform to the 'Sendable' protocol
 22 | 		/// The position of the title in a message. (Ignoring the first four bytes of a message)
 23 | 		/// Slice `0 ..< 4`
/host/spi-builder-workspace/Sources/Atem/Messages/DataTransfer.swift:208:21: warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
206 |
207 | 	public struct SetFileDescription: SerializableMessage {
208 | 		public static let title = Message.Title(string: "FTFD")
    |                     |- warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'title' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
209 |
210 | 		public let transferID: UInt16
/host/spi-builder-workspace/Sources/Atem/Messages/Message.swift:21:16: note: consider making struct 'Title' conform to the 'Sendable' protocol
 19 | public enum Message {
 20 | 	/// An ASCII String of exactly 4 characters. A list of available titles can be found in [Skarhoj's protocol description](http://skaarhoj.com/fileadmin/BMDPROTOCOL.html) under the column "CMD".
 21 | 	public struct Title: CustomStringConvertible {
    |                `- note: consider making struct 'Title' conform to the 'Sendable' protocol
 22 | 		/// The position of the title in a message. (Ignoring the first four bytes of a message)
 23 | 		/// Slice `0 ..< 4`
/host/spi-builder-workspace/Sources/Atem/Messages/DataTransfer.swift:271:21: warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
269 |
270 | 	public struct TransferData: SerializableMessage {
271 | 		public static let title = Message.Title(string: "FTDa")
    |                     |- warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'title' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
272 |
273 | 		public let transferID: UInt16
/host/spi-builder-workspace/Sources/Atem/Messages/Message.swift:21:16: note: consider making struct 'Title' conform to the 'Sendable' protocol
 19 | public enum Message {
 20 | 	/// An ASCII String of exactly 4 characters. A list of available titles can be found in [Skarhoj's protocol description](http://skaarhoj.com/fileadmin/BMDPROTOCOL.html) under the column "CMD".
 21 | 	public struct Title: CustomStringConvertible {
    |                `- note: consider making struct 'Title' conform to the 'Sendable' protocol
 22 | 		/// The position of the title in a message. (Ignoring the first four bytes of a message)
 23 | 		/// Slice `0 ..< 4`
/host/spi-builder-workspace/Sources/Atem/Messages/DataTransfer.swift:308:21: warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
306 | extension Message.Did {
307 | 	public struct FinishDataTransfer: SerializableMessage {
308 | 		public static let title = Message.Title(string: "FTDC")
    |                     |- warning: static property 'title' is not concurrency-safe because non-'Sendable' type 'Message.Title' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'title' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
309 |
310 | 		public let transferID: UInt16
/host/spi-builder-workspace/Sources/Atem/Messages/Message.swift:21:16: note: consider making struct 'Title' conform to the 'Sendable' protocol
 19 | public enum Message {
 20 | 	/// An ASCII String of exactly 4 characters. A list of available titles can be found in [Skarhoj's protocol description](http://skaarhoj.com/fileadmin/BMDPROTOCOL.html) under the column "CMD".
 21 | 	public struct Title: CustomStringConvertible {
    |                `- note: consider making struct 'Title' conform to the 'Sendable' protocol
 22 | 		/// The position of the title in a message. (Ignoring the first four bytes of a message)
 23 | 		/// Slice `0 ..< 4`
/host/spi-builder-workspace/Sources/Atem/TallyLight.swift:24:24: warning: static property 'off' is not concurrency-safe because non-'Sendable' type 'TallyLight' may have shared mutable state; this is an error in the Swift 6 language mode
15 | ///  - `.preview`
16 | ///  - both `.program` & `.preview`
17 | public struct TallyLight: OptionSet, CustomDebugStringConvertible {
   |               `- note: consider making struct 'TallyLight' conform to the 'Sendable' protocol
18 | 	public let rawValue: UInt8
19 |
   :
22 | 	}
23 |
24 | 	public static let     off = TallyLight([])
   |                        |- warning: static property 'off' is not concurrency-safe because non-'Sendable' type 'TallyLight' may have shared mutable state; this is an error in the Swift 6 language mode
   |                        |- note: add '@MainActor' to make static property 'off' part of global actor 'MainActor'
   |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
25 | 	public static let program = TallyLight(rawValue: 1)
26 | 	public static let preview = TallyLight(rawValue: 2)
/host/spi-builder-workspace/Sources/Atem/TallyLight.swift:25:20: warning: static property 'program' is not concurrency-safe because non-'Sendable' type 'TallyLight' may have shared mutable state; this is an error in the Swift 6 language mode
15 | ///  - `.preview`
16 | ///  - both `.program` & `.preview`
17 | public struct TallyLight: OptionSet, CustomDebugStringConvertible {
   |               `- note: consider making struct 'TallyLight' conform to the 'Sendable' protocol
18 | 	public let rawValue: UInt8
19 |
   :
23 |
24 | 	public static let     off = TallyLight([])
25 | 	public static let program = TallyLight(rawValue: 1)
   |                    |- warning: static property 'program' is not concurrency-safe because non-'Sendable' type 'TallyLight' may have shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: add '@MainActor' to make static property 'program' part of global actor 'MainActor'
   |                    `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
26 | 	public static let preview = TallyLight(rawValue: 2)
27 |
/host/spi-builder-workspace/Sources/Atem/TallyLight.swift:26:20: warning: static property 'preview' is not concurrency-safe because non-'Sendable' type 'TallyLight' may have shared mutable state; this is an error in the Swift 6 language mode
15 | ///  - `.preview`
16 | ///  - both `.program` & `.preview`
17 | public struct TallyLight: OptionSet, CustomDebugStringConvertible {
   |               `- note: consider making struct 'TallyLight' conform to the 'Sendable' protocol
18 | 	public let rawValue: UInt8
19 |
   :
24 | 	public static let     off = TallyLight([])
25 | 	public static let program = TallyLight(rawValue: 1)
26 | 	public static let preview = TallyLight(rawValue: 2)
   |                    |- warning: static property 'preview' is not concurrency-safe because non-'Sendable' type 'TallyLight' may have shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: add '@MainActor' to make static property 'preview' part of global actor 'MainActor'
   |                    `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
27 |
28 | 	public var debugDescription: String {
/host/spi-builder-workspace/Sources/Atem/Utilities/InitialSwitcherStateMessages.swift:10:5: warning: let 'inputProperties' is not concurrency-safe because non-'Sendable' type '[VideoSource.DidChangeProperties]' may have shared mutable state; this is an error in the Swift 6 language mode
  8 | import Foundation
  9 |
 10 | let inputProperties = [
    |     |- warning: let 'inputProperties' is not concurrency-safe because non-'Sendable' type '[VideoSource.DidChangeProperties]' may have shared mutable state; this is an error in the Swift 6 language mode
    |     |- note: add '@MainActor' to make let 'inputProperties' part of global actor 'MainActor'
    |     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 11 | 	VideoSource.DidChangeProperties(
 12 | 		source: .black,
/host/spi-builder-workspace/Sources/Atem/Messages/Configuration.swift:292:16: note: consider making struct 'DidChangeProperties' conform to the 'Sendable' protocol
290 | extension VideoSource {
291 | 	/// The properties (like name and port types) of a video source
292 | 	public struct DidChangeProperties: SerializableMessage {
    |                `- note: consider making struct 'DidChangeProperties' conform to the 'Sendable' protocol
293 | 		public static let title: Message.Title = Message.Title(string: "InPr")
294 | 		static let defaultText = " ".data(using: .utf8)! + [0]
/host/spi-builder-workspace/Sources/Atem/Utilities/RawRepresentable+decode.swift:14:6: warning: stored property 'value' of 'Sendable'-conforming generic struct 'UnsupportedRawValue' has non-sendable type 'R.RawValue'; this is an error in the Swift 6 language mode
12 | struct UnsupportedRawValue<R: RawRepresentable>: LocalizedError {
13 | 	/// The value that is not supported by the `RawRepresentable`
14 | 	let value: R.RawValue
   |      `- warning: stored property 'value' of 'Sendable'-conforming generic struct 'UnsupportedRawValue' has non-sendable type 'R.RawValue'; this is an error in the Swift 6 language mode
15 |
16 | 	/// A textual description of the error
/host/spi-builder-workspace/Sources/Atem/VideoSource.swift:152:21: warning: static property 'sdi' is not concurrency-safe because non-'Sendable' type 'VideoSource.ExternalInterfaces' may have shared mutable state; this is an error in the Swift 6 language mode
144 | 	}
145 |
146 | 	public struct ExternalInterfaces: OptionSet, SingleValueDescribable {
    |                `- note: consider making struct 'ExternalInterfaces' conform to the 'Sendable' protocol
147 | 		public let rawValue: UInt8
148 | 		public init(rawValue: UInt8) {
    :
150 | 		}
151 |
152 | 		public static let sdi =       ExternalInterfaces(rawValue: 1 << 0)
    |                     |- warning: static property 'sdi' is not concurrency-safe because non-'Sendable' type 'VideoSource.ExternalInterfaces' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'sdi' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
153 | 		public static let hdmi =      ExternalInterfaces(rawValue: 1 << 1)
154 | 		public static let component = ExternalInterfaces(rawValue: 1 << 2)
/host/spi-builder-workspace/Sources/Atem/VideoSource.swift:153:21: warning: static property 'hdmi' is not concurrency-safe because non-'Sendable' type 'VideoSource.ExternalInterfaces' may have shared mutable state; this is an error in the Swift 6 language mode
144 | 	}
145 |
146 | 	public struct ExternalInterfaces: OptionSet, SingleValueDescribable {
    |                `- note: consider making struct 'ExternalInterfaces' conform to the 'Sendable' protocol
147 | 		public let rawValue: UInt8
148 | 		public init(rawValue: UInt8) {
    :
151 |
152 | 		public static let sdi =       ExternalInterfaces(rawValue: 1 << 0)
153 | 		public static let hdmi =      ExternalInterfaces(rawValue: 1 << 1)
    |                     |- warning: static property 'hdmi' is not concurrency-safe because non-'Sendable' type 'VideoSource.ExternalInterfaces' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'hdmi' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
154 | 		public static let component = ExternalInterfaces(rawValue: 1 << 2)
155 | 		public static let composite = ExternalInterfaces(rawValue: 1 << 3)
/host/spi-builder-workspace/Sources/Atem/VideoSource.swift:154:21: warning: static property 'component' is not concurrency-safe because non-'Sendable' type 'VideoSource.ExternalInterfaces' may have shared mutable state; this is an error in the Swift 6 language mode
144 | 	}
145 |
146 | 	public struct ExternalInterfaces: OptionSet, SingleValueDescribable {
    |                `- note: consider making struct 'ExternalInterfaces' conform to the 'Sendable' protocol
147 | 		public let rawValue: UInt8
148 | 		public init(rawValue: UInt8) {
    :
152 | 		public static let sdi =       ExternalInterfaces(rawValue: 1 << 0)
153 | 		public static let hdmi =      ExternalInterfaces(rawValue: 1 << 1)
154 | 		public static let component = ExternalInterfaces(rawValue: 1 << 2)
    |                     |- warning: static property 'component' is not concurrency-safe because non-'Sendable' type 'VideoSource.ExternalInterfaces' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'component' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
155 | 		public static let composite = ExternalInterfaces(rawValue: 1 << 3)
156 | 		public static let sVideo =    ExternalInterfaces(rawValue: 1 << 4)
/host/spi-builder-workspace/Sources/Atem/VideoSource.swift:155:21: warning: static property 'composite' is not concurrency-safe because non-'Sendable' type 'VideoSource.ExternalInterfaces' may have shared mutable state; this is an error in the Swift 6 language mode
144 | 	}
145 |
146 | 	public struct ExternalInterfaces: OptionSet, SingleValueDescribable {
    |                `- note: consider making struct 'ExternalInterfaces' conform to the 'Sendable' protocol
147 | 		public let rawValue: UInt8
148 | 		public init(rawValue: UInt8) {
    :
153 | 		public static let hdmi =      ExternalInterfaces(rawValue: 1 << 1)
154 | 		public static let component = ExternalInterfaces(rawValue: 1 << 2)
155 | 		public static let composite = ExternalInterfaces(rawValue: 1 << 3)
    |                     |- warning: static property 'composite' is not concurrency-safe because non-'Sendable' type 'VideoSource.ExternalInterfaces' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'composite' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
156 | 		public static let sVideo =    ExternalInterfaces(rawValue: 1 << 4)
157 |
/host/spi-builder-workspace/Sources/Atem/VideoSource.swift:156:21: warning: static property 'sVideo' is not concurrency-safe because non-'Sendable' type 'VideoSource.ExternalInterfaces' may have shared mutable state; this is an error in the Swift 6 language mode
144 | 	}
145 |
146 | 	public struct ExternalInterfaces: OptionSet, SingleValueDescribable {
    |                `- note: consider making struct 'ExternalInterfaces' conform to the 'Sendable' protocol
147 | 		public let rawValue: UInt8
148 | 		public init(rawValue: UInt8) {
    :
154 | 		public static let component = ExternalInterfaces(rawValue: 1 << 2)
155 | 		public static let composite = ExternalInterfaces(rawValue: 1 << 3)
156 | 		public static let sVideo =    ExternalInterfaces(rawValue: 1 << 4)
    |                     |- warning: static property 'sVideo' is not concurrency-safe because non-'Sendable' type 'VideoSource.ExternalInterfaces' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'sVideo' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
157 |
158 | 		public static let none = ExternalInterfaces([])
/host/spi-builder-workspace/Sources/Atem/VideoSource.swift:158:21: warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'VideoSource.ExternalInterfaces' may have shared mutable state; this is an error in the Swift 6 language mode
144 | 	}
145 |
146 | 	public struct ExternalInterfaces: OptionSet, SingleValueDescribable {
    |                `- note: consider making struct 'ExternalInterfaces' conform to the 'Sendable' protocol
147 | 		public let rawValue: UInt8
148 | 		public init(rawValue: UInt8) {
    :
156 | 		public static let sVideo =    ExternalInterfaces(rawValue: 1 << 4)
157 |
158 | 		public static let none = ExternalInterfaces([])
    |                     |- warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'VideoSource.ExternalInterfaces' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'none' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
159 |
160 | 		public func describe() -> String? {
/host/spi-builder-workspace/Sources/Atem/VideoSource.swift:178:21: warning: static property 'auxiliary' is not concurrency-safe because non-'Sendable' type 'VideoSource.RoutingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
170 | 	}
171 |
172 | 	public struct RoutingOptions: OptionSet, SingleValueDescribable {
    |                `- note: consider making struct 'RoutingOptions' conform to the 'Sendable' protocol
173 | 		public let rawValue: UInt8
174 | 		public init(rawValue: UInt8) {
    :
176 | 		}
177 |
178 | 		public static let auxiliary =      RoutingOptions(rawValue: 1 << 0)
    |                     |- warning: static property 'auxiliary' is not concurrency-safe because non-'Sendable' type 'VideoSource.RoutingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'auxiliary' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
179 | 		public static let multiviewer =    RoutingOptions(rawValue: 1 << 1)
180 | 		public static let superSourceArt = RoutingOptions(rawValue: 1 << 2)
/host/spi-builder-workspace/Sources/Atem/VideoSource.swift:179:21: warning: static property 'multiviewer' is not concurrency-safe because non-'Sendable' type 'VideoSource.RoutingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
170 | 	}
171 |
172 | 	public struct RoutingOptions: OptionSet, SingleValueDescribable {
    |                `- note: consider making struct 'RoutingOptions' conform to the 'Sendable' protocol
173 | 		public let rawValue: UInt8
174 | 		public init(rawValue: UInt8) {
    :
177 |
178 | 		public static let auxiliary =      RoutingOptions(rawValue: 1 << 0)
179 | 		public static let multiviewer =    RoutingOptions(rawValue: 1 << 1)
    |                     |- warning: static property 'multiviewer' is not concurrency-safe because non-'Sendable' type 'VideoSource.RoutingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'multiviewer' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
180 | 		public static let superSourceArt = RoutingOptions(rawValue: 1 << 2)
181 | 		public static let superSourceBox = RoutingOptions(rawValue: 1 << 3)
/host/spi-builder-workspace/Sources/Atem/VideoSource.swift:180:21: warning: static property 'superSourceArt' is not concurrency-safe because non-'Sendable' type 'VideoSource.RoutingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
170 | 	}
171 |
172 | 	public struct RoutingOptions: OptionSet, SingleValueDescribable {
    |                `- note: consider making struct 'RoutingOptions' conform to the 'Sendable' protocol
173 | 		public let rawValue: UInt8
174 | 		public init(rawValue: UInt8) {
    :
178 | 		public static let auxiliary =      RoutingOptions(rawValue: 1 << 0)
179 | 		public static let multiviewer =    RoutingOptions(rawValue: 1 << 1)
180 | 		public static let superSourceArt = RoutingOptions(rawValue: 1 << 2)
    |                     |- warning: static property 'superSourceArt' is not concurrency-safe because non-'Sendable' type 'VideoSource.RoutingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'superSourceArt' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
181 | 		public static let superSourceBox = RoutingOptions(rawValue: 1 << 3)
182 | 		public static let keySource =      RoutingOptions(rawValue: 1 << 4)
/host/spi-builder-workspace/Sources/Atem/VideoSource.swift:181:21: warning: static property 'superSourceBox' is not concurrency-safe because non-'Sendable' type 'VideoSource.RoutingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
170 | 	}
171 |
172 | 	public struct RoutingOptions: OptionSet, SingleValueDescribable {
    |                `- note: consider making struct 'RoutingOptions' conform to the 'Sendable' protocol
173 | 		public let rawValue: UInt8
174 | 		public init(rawValue: UInt8) {
    :
179 | 		public static let multiviewer =    RoutingOptions(rawValue: 1 << 1)
180 | 		public static let superSourceArt = RoutingOptions(rawValue: 1 << 2)
181 | 		public static let superSourceBox = RoutingOptions(rawValue: 1 << 3)
    |                     |- warning: static property 'superSourceBox' is not concurrency-safe because non-'Sendable' type 'VideoSource.RoutingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'superSourceBox' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
182 | 		public static let keySource =      RoutingOptions(rawValue: 1 << 4)
183 |
/host/spi-builder-workspace/Sources/Atem/VideoSource.swift:182:21: warning: static property 'keySource' is not concurrency-safe because non-'Sendable' type 'VideoSource.RoutingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
170 | 	}
171 |
172 | 	public struct RoutingOptions: OptionSet, SingleValueDescribable {
    |                `- note: consider making struct 'RoutingOptions' conform to the 'Sendable' protocol
173 | 		public let rawValue: UInt8
174 | 		public init(rawValue: UInt8) {
    :
180 | 		public static let superSourceArt = RoutingOptions(rawValue: 1 << 2)
181 | 		public static let superSourceBox = RoutingOptions(rawValue: 1 << 3)
182 | 		public static let keySource =      RoutingOptions(rawValue: 1 << 4)
    |                     |- warning: static property 'keySource' is not concurrency-safe because non-'Sendable' type 'VideoSource.RoutingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'keySource' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
183 |
184 | 		public func describe() -> String? {
/host/spi-builder-workspace/Sources/Atem/VideoSource.swift:202:21: warning: static property 'me1AndFillSources' is not concurrency-safe because non-'Sendable' type 'VideoSource.MixEffects' may have shared mutable state; this is an error in the Swift 6 language mode
194 | 	}
195 |
196 | 	public struct MixEffects: OptionSet, SingleValueDescribable {
    |                `- note: consider making struct 'MixEffects' conform to the 'Sendable' protocol
197 | 		public let rawValue: UInt8
198 | 		public init(rawValue: UInt8) {
    :
200 | 		}
201 |
202 | 		public static let me1AndFillSources = MixEffects(rawValue: 1 << 0)
    |                     |- warning: static property 'me1AndFillSources' is not concurrency-safe because non-'Sendable' type 'VideoSource.MixEffects' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'me1AndFillSources' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
203 | 		public static let me2AndFillSources = MixEffects(rawValue: 1 << 1)
204 |
/host/spi-builder-workspace/Sources/Atem/VideoSource.swift:203:21: warning: static property 'me2AndFillSources' is not concurrency-safe because non-'Sendable' type 'VideoSource.MixEffects' may have shared mutable state; this is an error in the Swift 6 language mode
194 | 	}
195 |
196 | 	public struct MixEffects: OptionSet, SingleValueDescribable {
    |                `- note: consider making struct 'MixEffects' conform to the 'Sendable' protocol
197 | 		public let rawValue: UInt8
198 | 		public init(rawValue: UInt8) {
    :
201 |
202 | 		public static let me1AndFillSources = MixEffects(rawValue: 1 << 0)
203 | 		public static let me2AndFillSources = MixEffects(rawValue: 1 << 1)
    |                     |- warning: static property 'me2AndFillSources' is not concurrency-safe because non-'Sendable' type 'VideoSource.MixEffects' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'me2AndFillSources' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
204 |
205 | 		public static let none = MixEffects([])
/host/spi-builder-workspace/Sources/Atem/VideoSource.swift:205:21: warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'VideoSource.MixEffects' may have shared mutable state; this is an error in the Swift 6 language mode
194 | 	}
195 |
196 | 	public struct MixEffects: OptionSet, SingleValueDescribable {
    |                `- note: consider making struct 'MixEffects' conform to the 'Sendable' protocol
197 | 		public let rawValue: UInt8
198 | 		public init(rawValue: UInt8) {
    :
203 | 		public static let me2AndFillSources = MixEffects(rawValue: 1 << 1)
204 |
205 | 		public static let none = MixEffects([])
    |                     |- warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'VideoSource.MixEffects' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'none' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
206 |
207 | 		public func describe() -> String? {
[262/293] Compiling Atem Connection.swift
/host/spi-builder-workspace/Sources/Atem/Controller.swift:73:8: warning: capture of 'self' with non-sendable type 'ControllerHandler?' in a '@Sendable' closure
  9 | import NIO
 10 |
 11 | class ControllerHandler: HandlerWithTimer {
    |       `- note: class 'ControllerHandler' does not conform to the 'Sendable' protocol
 12 | 	var connectionState: ConnectionState?
 13 | 	var initiationID = ConnectionState.id(firstBit: false)
    :
 71 | 						let data = encode(bytes: packet.bytes, for: address, in: context)
 72 | 						context.write(data).whenFailure { [weak self] error in
 73 | 							self?.whenError(error)
    |        `- warning: capture of 'self' with non-sendable type 'ControllerHandler?' in a '@Sendable' closure
 74 | 						}
 75 | 					}
/host/spi-builder-workspace/Sources/Atem/Controller.swift:82:5: warning: capture of 'self' with non-sendable type 'ControllerHandler?' in a '@Sendable' closure
  9 | import NIO
 10 |
 11 | class ControllerHandler: HandlerWithTimer {
    |       `- note: class 'ControllerHandler' does not conform to the 'Sendable' protocol
 12 | 	var connectionState: ConnectionState?
 13 | 	var initiationID = ConnectionState.id(firstBit: false)
    :
 80 | 			let data = encode(bytes: 📦.bytes, for: address, in: context)
 81 | 			context.write(data).whenFailure { [weak self] error in
 82 | 				self?.whenError(error)
    |     `- warning: capture of 'self' with non-sendable type 'ControllerHandler?' in a '@Sendable' closure
 83 | 			}
 84 | 		} else {
/host/spi-builder-workspace/Sources/Atem/Controller.swift:88:5: warning: capture of 'self' with non-sendable type 'ControllerHandler?' in a '@Sendable' closure
  9 | import NIO
 10 |
 11 | class ControllerHandler: HandlerWithTimer {
    |       `- note: class 'ControllerHandler' does not conform to the 'Sendable' protocol
 12 | 	var connectionState: ConnectionState?
 13 | 	var initiationID = ConnectionState.id(firstBit: false)
    :
 86 | 			let data = encode(bytes: 📦.bytes, for: address, in: context)
 87 | 			context.write(data).whenFailure { [weak self] error in
 88 | 				self?.whenError(error)
    |     `- warning: capture of 'self' with non-sendable type 'ControllerHandler?' in a '@Sendable' closure
 89 | 			}
 90 | 		}
/host/spi-builder-workspace/Sources/Atem/Controller.swift:149:33: warning: type 'ControllerHandler' does not conform to the 'Sendable' protocol
  9 | import NIO
 10 |
 11 | class ControllerHandler: HandlerWithTimer {
    |       `- note: class 'ControllerHandler' does not conform to the 'Sendable' protocol
 12 | 	var connectionState: ConnectionState?
 13 | 	var initiationID = ConnectionState.id(firstBit: false)
    :
147 | 			.channelOption(ChannelOptions.socket(SocketOptionLevel(SOL_SOCKET), SO_REUSEADDR), value: 1)
148 | 			.channelInitializer {
149 | 				$0.pipeline.addHandler(self.handler)
    |                                 `- warning: type 'ControllerHandler' does not conform to the 'Sendable' protocol
150 | 			}
151 | 			.bind(to: try! SocketAddress(ipAddress: "0.0.0.0", port: 0))
/host/spi-builder-workspace/Sources/Atem/Controller.swift:161:75: warning: converting non-sendable function value to '@Sendable () throws -> ()' may introduce data races
159 | 						controller.handler.whenError(error)
160 | 					}
161 | 					controller.eventLoop.next().scheduleTask(in: .seconds(5), controller.connect)
    |                                                                           `- warning: converting non-sendable function value to '@Sendable () throws -> ()' may introduce data races
162 | 				}
163 | 			}
/host/spi-builder-workspace/Sources/Atem/Controller.swift:149:28: warning: capture of 'self' with non-sendable type 'Controller' in a '@Sendable' closure
105 |
106 | /// A software based controller that sends messages to an ATEM Switcher.
107 | public class Controller {
    |              `- note: class 'Controller' does not conform to the 'Sendable' protocol
108 |
109 | 	let eventLoop: EventLoopGroup
    :
147 | 			.channelOption(ChannelOptions.socket(SocketOptionLevel(SOL_SOCKET), SO_REUSEADDR), value: 1)
148 | 			.channelInitializer {
149 | 				$0.pipeline.addHandler(self.handler)
    |                            `- warning: capture of 'self' with non-sendable type 'Controller' in a '@Sendable' closure
150 | 			}
151 | 			.bind(to: try! SocketAddress(ipAddress: "0.0.0.0", port: 0))
/host/spi-builder-workspace/Sources/Atem/Controller.swift:156:44: warning: capture of 'self' with non-sendable type 'Controller?' in a '@Sendable' closure
105 |
106 | /// A software based controller that sends messages to an ATEM Switcher.
107 | public class Controller {
    |              `- note: class 'Controller' does not conform to the 'Sendable' protocol
108 |
109 | 	let eventLoop: EventLoopGroup
    :
154 |
155 | 		channel.whenSuccess {[weak self] channel in
156 | 			channel.closeFuture.whenComplete {[weak self] close in
    |                                            `- warning: capture of 'self' with non-sendable type 'Controller?' in a '@Sendable' closure
157 | 				if let controller = self {
158 | 					if case .failure(let error) = close {
/host/spi-builder-workspace/Sources/Atem/Controller.swift:157:25: warning: capture of 'self' with non-sendable type 'Controller?' in a '@Sendable' closure
105 |
106 | /// A software based controller that sends messages to an ATEM Switcher.
107 | public class Controller {
    |              `- note: class 'Controller' does not conform to the 'Sendable' protocol
108 |
109 | 	let eventLoop: EventLoopGroup
    :
155 | 		channel.whenSuccess {[weak self] channel in
156 | 			channel.closeFuture.whenComplete {[weak self] close in
157 | 				if let controller = self {
    |                         `- warning: capture of 'self' with non-sendable type 'Controller?' in a '@Sendable' closure
158 | 					if case .failure(let error) = close {
159 | 						controller.handler.whenError(error)
/host/spi-builder-workspace/Sources/Atem/Controller.swift:205:5: warning: capture of 'self' with non-sendable type 'Controller' in a '@Sendable' closure
105 |
106 | /// A software based controller that sends messages to an ATEM Switcher.
107 | public class Controller {
    |              `- note: class 'Controller' does not conform to the 'Sendable' protocol
108 |
109 | 	let eventLoop: EventLoopGroup
    :
203 | 		if let channel = channel {
204 | 			channel.eventLoop.execute {
205 | 				self.handler.send(message)
    |     `- warning: capture of 'self' with non-sendable type 'Controller' in a '@Sendable' closure
206 | 			}
207 | 		} else {
/host/spi-builder-workspace/Sources/Atem/Controller.swift:205:23: warning: capture of 'message' with non-sendable type 'any SerializableMessage' in a '@Sendable' closure
203 | 		if let channel = channel {
204 | 			channel.eventLoop.execute {
205 | 				self.handler.send(message)
    |                       `- warning: capture of 'message' with non-sendable type 'any SerializableMessage' in a '@Sendable' closure
206 | 			}
207 | 		} else {
/host/spi-builder-workspace/Sources/Atem/Messages/Message.swift:108:17: note: protocol 'SerializableMessage' does not conform to the 'Sendable' protocol
106 | /// A `Message` that is serializable. In other words: that can be transformed into a binary format, ready to be sent to another device.
107 | /// Serializable messages use the `Message.title` and `Serializable.dataBytes` properties to compute the serialized message.
108 | public protocol SerializableMessage: Message.Deserializable {
    |                 `- note: protocol 'SerializableMessage' does not conform to the 'Sendable' protocol
109 | 	/// The part of the serialized message starting after the 4 `Message.title` bytes.
110 | 	/// This property is used by the `Serializable.serialize()` method
[263/293] Compiling Atem Controller.swift
/host/spi-builder-workspace/Sources/Atem/Controller.swift:73:8: warning: capture of 'self' with non-sendable type 'ControllerHandler?' in a '@Sendable' closure
  9 | import NIO
 10 |
 11 | class ControllerHandler: HandlerWithTimer {
    |       `- note: class 'ControllerHandler' does not conform to the 'Sendable' protocol
 12 | 	var connectionState: ConnectionState?
 13 | 	var initiationID = ConnectionState.id(firstBit: false)
    :
 71 | 						let data = encode(bytes: packet.bytes, for: address, in: context)
 72 | 						context.write(data).whenFailure { [weak self] error in
 73 | 							self?.whenError(error)
    |        `- warning: capture of 'self' with non-sendable type 'ControllerHandler?' in a '@Sendable' closure
 74 | 						}
 75 | 					}
/host/spi-builder-workspace/Sources/Atem/Controller.swift:82:5: warning: capture of 'self' with non-sendable type 'ControllerHandler?' in a '@Sendable' closure
  9 | import NIO
 10 |
 11 | class ControllerHandler: HandlerWithTimer {
    |       `- note: class 'ControllerHandler' does not conform to the 'Sendable' protocol
 12 | 	var connectionState: ConnectionState?
 13 | 	var initiationID = ConnectionState.id(firstBit: false)
    :
 80 | 			let data = encode(bytes: 📦.bytes, for: address, in: context)
 81 | 			context.write(data).whenFailure { [weak self] error in
 82 | 				self?.whenError(error)
    |     `- warning: capture of 'self' with non-sendable type 'ControllerHandler?' in a '@Sendable' closure
 83 | 			}
 84 | 		} else {
/host/spi-builder-workspace/Sources/Atem/Controller.swift:88:5: warning: capture of 'self' with non-sendable type 'ControllerHandler?' in a '@Sendable' closure
  9 | import NIO
 10 |
 11 | class ControllerHandler: HandlerWithTimer {
    |       `- note: class 'ControllerHandler' does not conform to the 'Sendable' protocol
 12 | 	var connectionState: ConnectionState?
 13 | 	var initiationID = ConnectionState.id(firstBit: false)
    :
 86 | 			let data = encode(bytes: 📦.bytes, for: address, in: context)
 87 | 			context.write(data).whenFailure { [weak self] error in
 88 | 				self?.whenError(error)
    |     `- warning: capture of 'self' with non-sendable type 'ControllerHandler?' in a '@Sendable' closure
 89 | 			}
 90 | 		}
/host/spi-builder-workspace/Sources/Atem/Controller.swift:149:33: warning: type 'ControllerHandler' does not conform to the 'Sendable' protocol
  9 | import NIO
 10 |
 11 | class ControllerHandler: HandlerWithTimer {
    |       `- note: class 'ControllerHandler' does not conform to the 'Sendable' protocol
 12 | 	var connectionState: ConnectionState?
 13 | 	var initiationID = ConnectionState.id(firstBit: false)
    :
147 | 			.channelOption(ChannelOptions.socket(SocketOptionLevel(SOL_SOCKET), SO_REUSEADDR), value: 1)
148 | 			.channelInitializer {
149 | 				$0.pipeline.addHandler(self.handler)
    |                                 `- warning: type 'ControllerHandler' does not conform to the 'Sendable' protocol
150 | 			}
151 | 			.bind(to: try! SocketAddress(ipAddress: "0.0.0.0", port: 0))
/host/spi-builder-workspace/Sources/Atem/Controller.swift:161:75: warning: converting non-sendable function value to '@Sendable () throws -> ()' may introduce data races
159 | 						controller.handler.whenError(error)
160 | 					}
161 | 					controller.eventLoop.next().scheduleTask(in: .seconds(5), controller.connect)
    |                                                                           `- warning: converting non-sendable function value to '@Sendable () throws -> ()' may introduce data races
162 | 				}
163 | 			}
/host/spi-builder-workspace/Sources/Atem/Controller.swift:149:28: warning: capture of 'self' with non-sendable type 'Controller' in a '@Sendable' closure
105 |
106 | /// A software based controller that sends messages to an ATEM Switcher.
107 | public class Controller {
    |              `- note: class 'Controller' does not conform to the 'Sendable' protocol
108 |
109 | 	let eventLoop: EventLoopGroup
    :
147 | 			.channelOption(ChannelOptions.socket(SocketOptionLevel(SOL_SOCKET), SO_REUSEADDR), value: 1)
148 | 			.channelInitializer {
149 | 				$0.pipeline.addHandler(self.handler)
    |                            `- warning: capture of 'self' with non-sendable type 'Controller' in a '@Sendable' closure
150 | 			}
151 | 			.bind(to: try! SocketAddress(ipAddress: "0.0.0.0", port: 0))
/host/spi-builder-workspace/Sources/Atem/Controller.swift:156:44: warning: capture of 'self' with non-sendable type 'Controller?' in a '@Sendable' closure
105 |
106 | /// A software based controller that sends messages to an ATEM Switcher.
107 | public class Controller {
    |              `- note: class 'Controller' does not conform to the 'Sendable' protocol
108 |
109 | 	let eventLoop: EventLoopGroup
    :
154 |
155 | 		channel.whenSuccess {[weak self] channel in
156 | 			channel.closeFuture.whenComplete {[weak self] close in
    |                                            `- warning: capture of 'self' with non-sendable type 'Controller?' in a '@Sendable' closure
157 | 				if let controller = self {
158 | 					if case .failure(let error) = close {
/host/spi-builder-workspace/Sources/Atem/Controller.swift:157:25: warning: capture of 'self' with non-sendable type 'Controller?' in a '@Sendable' closure
105 |
106 | /// A software based controller that sends messages to an ATEM Switcher.
107 | public class Controller {
    |              `- note: class 'Controller' does not conform to the 'Sendable' protocol
108 |
109 | 	let eventLoop: EventLoopGroup
    :
155 | 		channel.whenSuccess {[weak self] channel in
156 | 			channel.closeFuture.whenComplete {[weak self] close in
157 | 				if let controller = self {
    |                         `- warning: capture of 'self' with non-sendable type 'Controller?' in a '@Sendable' closure
158 | 					if case .failure(let error) = close {
159 | 						controller.handler.whenError(error)
/host/spi-builder-workspace/Sources/Atem/Controller.swift:205:5: warning: capture of 'self' with non-sendable type 'Controller' in a '@Sendable' closure
105 |
106 | /// A software based controller that sends messages to an ATEM Switcher.
107 | public class Controller {
    |              `- note: class 'Controller' does not conform to the 'Sendable' protocol
108 |
109 | 	let eventLoop: EventLoopGroup
    :
203 | 		if let channel = channel {
204 | 			channel.eventLoop.execute {
205 | 				self.handler.send(message)
    |     `- warning: capture of 'self' with non-sendable type 'Controller' in a '@Sendable' closure
206 | 			}
207 | 		} else {
/host/spi-builder-workspace/Sources/Atem/Controller.swift:205:23: warning: capture of 'message' with non-sendable type 'any SerializableMessage' in a '@Sendable' closure
203 | 		if let channel = channel {
204 | 			channel.eventLoop.execute {
205 | 				self.handler.send(message)
    |                       `- warning: capture of 'message' with non-sendable type 'any SerializableMessage' in a '@Sendable' closure
206 | 			}
207 | 		} else {
/host/spi-builder-workspace/Sources/Atem/Messages/Message.swift:108:17: note: protocol 'SerializableMessage' does not conform to the 'Sendable' protocol
106 | /// A `Message` that is serializable. In other words: that can be transformed into a binary format, ready to be sent to another device.
107 | /// Serializable messages use the `Message.title` and `Serializable.dataBytes` properties to compute the serialized message.
108 | public protocol SerializableMessage: Message.Deserializable {
    |                 `- note: protocol 'SerializableMessage' does not conform to the 'Sendable' protocol
109 | 	/// The part of the serialized message starting after the 4 `Message.title` bytes.
110 | 	/// This property is used by the `Serializable.serialize()` method
[264/293] Compiling Atem 422 ABLARL YUV.swift
/host/spi-builder-workspace/Sources/Atem/Controller.swift:73:8: warning: capture of 'self' with non-sendable type 'ControllerHandler?' in a '@Sendable' closure
  9 | import NIO
 10 |
 11 | class ControllerHandler: HandlerWithTimer {
    |       `- note: class 'ControllerHandler' does not conform to the 'Sendable' protocol
 12 | 	var connectionState: ConnectionState?
 13 | 	var initiationID = ConnectionState.id(firstBit: false)
    :
 71 | 						let data = encode(bytes: packet.bytes, for: address, in: context)
 72 | 						context.write(data).whenFailure { [weak self] error in
 73 | 							self?.whenError(error)
    |        `- warning: capture of 'self' with non-sendable type 'ControllerHandler?' in a '@Sendable' closure
 74 | 						}
 75 | 					}
/host/spi-builder-workspace/Sources/Atem/Controller.swift:82:5: warning: capture of 'self' with non-sendable type 'ControllerHandler?' in a '@Sendable' closure
  9 | import NIO
 10 |
 11 | class ControllerHandler: HandlerWithTimer {
    |       `- note: class 'ControllerHandler' does not conform to the 'Sendable' protocol
 12 | 	var connectionState: ConnectionState?
 13 | 	var initiationID = ConnectionState.id(firstBit: false)
    :
 80 | 			let data = encode(bytes: 📦.bytes, for: address, in: context)
 81 | 			context.write(data).whenFailure { [weak self] error in
 82 | 				self?.whenError(error)
    |     `- warning: capture of 'self' with non-sendable type 'ControllerHandler?' in a '@Sendable' closure
 83 | 			}
 84 | 		} else {
/host/spi-builder-workspace/Sources/Atem/Controller.swift:88:5: warning: capture of 'self' with non-sendable type 'ControllerHandler?' in a '@Sendable' closure
  9 | import NIO
 10 |
 11 | class ControllerHandler: HandlerWithTimer {
    |       `- note: class 'ControllerHandler' does not conform to the 'Sendable' protocol
 12 | 	var connectionState: ConnectionState?
 13 | 	var initiationID = ConnectionState.id(firstBit: false)
    :
 86 | 			let data = encode(bytes: 📦.bytes, for: address, in: context)
 87 | 			context.write(data).whenFailure { [weak self] error in
 88 | 				self?.whenError(error)
    |     `- warning: capture of 'self' with non-sendable type 'ControllerHandler?' in a '@Sendable' closure
 89 | 			}
 90 | 		}
/host/spi-builder-workspace/Sources/Atem/Controller.swift:149:33: warning: type 'ControllerHandler' does not conform to the 'Sendable' protocol
  9 | import NIO
 10 |
 11 | class ControllerHandler: HandlerWithTimer {
    |       `- note: class 'ControllerHandler' does not conform to the 'Sendable' protocol
 12 | 	var connectionState: ConnectionState?
 13 | 	var initiationID = ConnectionState.id(firstBit: false)
    :
147 | 			.channelOption(ChannelOptions.socket(SocketOptionLevel(SOL_SOCKET), SO_REUSEADDR), value: 1)
148 | 			.channelInitializer {
149 | 				$0.pipeline.addHandler(self.handler)
    |                                 `- warning: type 'ControllerHandler' does not conform to the 'Sendable' protocol
150 | 			}
151 | 			.bind(to: try! SocketAddress(ipAddress: "0.0.0.0", port: 0))
/host/spi-builder-workspace/Sources/Atem/Controller.swift:161:75: warning: converting non-sendable function value to '@Sendable () throws -> ()' may introduce data races
159 | 						controller.handler.whenError(error)
160 | 					}
161 | 					controller.eventLoop.next().scheduleTask(in: .seconds(5), controller.connect)
    |                                                                           `- warning: converting non-sendable function value to '@Sendable () throws -> ()' may introduce data races
162 | 				}
163 | 			}
/host/spi-builder-workspace/Sources/Atem/Controller.swift:149:28: warning: capture of 'self' with non-sendable type 'Controller' in a '@Sendable' closure
105 |
106 | /// A software based controller that sends messages to an ATEM Switcher.
107 | public class Controller {
    |              `- note: class 'Controller' does not conform to the 'Sendable' protocol
108 |
109 | 	let eventLoop: EventLoopGroup
    :
147 | 			.channelOption(ChannelOptions.socket(SocketOptionLevel(SOL_SOCKET), SO_REUSEADDR), value: 1)
148 | 			.channelInitializer {
149 | 				$0.pipeline.addHandler(self.handler)
    |                            `- warning: capture of 'self' with non-sendable type 'Controller' in a '@Sendable' closure
150 | 			}
151 | 			.bind(to: try! SocketAddress(ipAddress: "0.0.0.0", port: 0))
/host/spi-builder-workspace/Sources/Atem/Controller.swift:156:44: warning: capture of 'self' with non-sendable type 'Controller?' in a '@Sendable' closure
105 |
106 | /// A software based controller that sends messages to an ATEM Switcher.
107 | public class Controller {
    |              `- note: class 'Controller' does not conform to the 'Sendable' protocol
108 |
109 | 	let eventLoop: EventLoopGroup
    :
154 |
155 | 		channel.whenSuccess {[weak self] channel in
156 | 			channel.closeFuture.whenComplete {[weak self] close in
    |                                            `- warning: capture of 'self' with non-sendable type 'Controller?' in a '@Sendable' closure
157 | 				if let controller = self {
158 | 					if case .failure(let error) = close {
/host/spi-builder-workspace/Sources/Atem/Controller.swift:157:25: warning: capture of 'self' with non-sendable type 'Controller?' in a '@Sendable' closure
105 |
106 | /// A software based controller that sends messages to an ATEM Switcher.
107 | public class Controller {
    |              `- note: class 'Controller' does not conform to the 'Sendable' protocol
108 |
109 | 	let eventLoop: EventLoopGroup
    :
155 | 		channel.whenSuccess {[weak self] channel in
156 | 			channel.closeFuture.whenComplete {[weak self] close in
157 | 				if let controller = self {
    |                         `- warning: capture of 'self' with non-sendable type 'Controller?' in a '@Sendable' closure
158 | 					if case .failure(let error) = close {
159 | 						controller.handler.whenError(error)
/host/spi-builder-workspace/Sources/Atem/Controller.swift:205:5: warning: capture of 'self' with non-sendable type 'Controller' in a '@Sendable' closure
105 |
106 | /// A software based controller that sends messages to an ATEM Switcher.
107 | public class Controller {
    |              `- note: class 'Controller' does not conform to the 'Sendable' protocol
108 |
109 | 	let eventLoop: EventLoopGroup
    :
203 | 		if let channel = channel {
204 | 			channel.eventLoop.execute {
205 | 				self.handler.send(message)
    |     `- warning: capture of 'self' with non-sendable type 'Controller' in a '@Sendable' closure
206 | 			}
207 | 		} else {
/host/spi-builder-workspace/Sources/Atem/Controller.swift:205:23: warning: capture of 'message' with non-sendable type 'any SerializableMessage' in a '@Sendable' closure
203 | 		if let channel = channel {
204 | 			channel.eventLoop.execute {
205 | 				self.handler.send(message)
    |                       `- warning: capture of 'message' with non-sendable type 'any SerializableMessage' in a '@Sendable' closure
206 | 			}
207 | 		} else {
/host/spi-builder-workspace/Sources/Atem/Messages/Message.swift:108:17: note: protocol 'SerializableMessage' does not conform to the 'Sendable' protocol
106 | /// A `Message` that is serializable. In other words: that can be transformed into a binary format, ready to be sent to another device.
107 | /// Serializable messages use the `Message.title` and `Serializable.dataBytes` properties to compute the serialized message.
108 | public protocol SerializableMessage: Message.Deserializable {
    |                 `- note: protocol 'SerializableMessage' does not conform to the 'Sendable' protocol
109 | 	/// The part of the serialized message starting after the 4 `Message.title` bytes.
110 | 	/// This property is used by the `Serializable.serialize()` method
[265/293] Compiling Atem Decode input labels.swift
/host/spi-builder-workspace/Sources/Atem/Controller.swift:73:8: warning: capture of 'self' with non-sendable type 'ControllerHandler?' in a '@Sendable' closure
  9 | import NIO
 10 |
 11 | class ControllerHandler: HandlerWithTimer {
    |       `- note: class 'ControllerHandler' does not conform to the 'Sendable' protocol
 12 | 	var connectionState: ConnectionState?
 13 | 	var initiationID = ConnectionState.id(firstBit: false)
    :
 71 | 						let data = encode(bytes: packet.bytes, for: address, in: context)
 72 | 						context.write(data).whenFailure { [weak self] error in
 73 | 							self?.whenError(error)
    |        `- warning: capture of 'self' with non-sendable type 'ControllerHandler?' in a '@Sendable' closure
 74 | 						}
 75 | 					}
/host/spi-builder-workspace/Sources/Atem/Controller.swift:82:5: warning: capture of 'self' with non-sendable type 'ControllerHandler?' in a '@Sendable' closure
  9 | import NIO
 10 |
 11 | class ControllerHandler: HandlerWithTimer {
    |       `- note: class 'ControllerHandler' does not conform to the 'Sendable' protocol
 12 | 	var connectionState: ConnectionState?
 13 | 	var initiationID = ConnectionState.id(firstBit: false)
    :
 80 | 			let data = encode(bytes: 📦.bytes, for: address, in: context)
 81 | 			context.write(data).whenFailure { [weak self] error in
 82 | 				self?.whenError(error)
    |     `- warning: capture of 'self' with non-sendable type 'ControllerHandler?' in a '@Sendable' closure
 83 | 			}
 84 | 		} else {
/host/spi-builder-workspace/Sources/Atem/Controller.swift:88:5: warning: capture of 'self' with non-sendable type 'ControllerHandler?' in a '@Sendable' closure
  9 | import NIO
 10 |
 11 | class ControllerHandler: HandlerWithTimer {
    |       `- note: class 'ControllerHandler' does not conform to the 'Sendable' protocol
 12 | 	var connectionState: ConnectionState?
 13 | 	var initiationID = ConnectionState.id(firstBit: false)
    :
 86 | 			let data = encode(bytes: 📦.bytes, for: address, in: context)
 87 | 			context.write(data).whenFailure { [weak self] error in
 88 | 				self?.whenError(error)
    |     `- warning: capture of 'self' with non-sendable type 'ControllerHandler?' in a '@Sendable' closure
 89 | 			}
 90 | 		}
/host/spi-builder-workspace/Sources/Atem/Controller.swift:149:33: warning: type 'ControllerHandler' does not conform to the 'Sendable' protocol
  9 | import NIO
 10 |
 11 | class ControllerHandler: HandlerWithTimer {
    |       `- note: class 'ControllerHandler' does not conform to the 'Sendable' protocol
 12 | 	var connectionState: ConnectionState?
 13 | 	var initiationID = ConnectionState.id(firstBit: false)
    :
147 | 			.channelOption(ChannelOptions.socket(SocketOptionLevel(SOL_SOCKET), SO_REUSEADDR), value: 1)
148 | 			.channelInitializer {
149 | 				$0.pipeline.addHandler(self.handler)
    |                                 `- warning: type 'ControllerHandler' does not conform to the 'Sendable' protocol
150 | 			}
151 | 			.bind(to: try! SocketAddress(ipAddress: "0.0.0.0", port: 0))
/host/spi-builder-workspace/Sources/Atem/Controller.swift:161:75: warning: converting non-sendable function value to '@Sendable () throws -> ()' may introduce data races
159 | 						controller.handler.whenError(error)
160 | 					}
161 | 					controller.eventLoop.next().scheduleTask(in: .seconds(5), controller.connect)
    |                                                                           `- warning: converting non-sendable function value to '@Sendable () throws -> ()' may introduce data races
162 | 				}
163 | 			}
/host/spi-builder-workspace/Sources/Atem/Controller.swift:149:28: warning: capture of 'self' with non-sendable type 'Controller' in a '@Sendable' closure
105 |
106 | /// A software based controller that sends messages to an ATEM Switcher.
107 | public class Controller {
    |              `- note: class 'Controller' does not conform to the 'Sendable' protocol
108 |
109 | 	let eventLoop: EventLoopGroup
    :
147 | 			.channelOption(ChannelOptions.socket(SocketOptionLevel(SOL_SOCKET), SO_REUSEADDR), value: 1)
148 | 			.channelInitializer {
149 | 				$0.pipeline.addHandler(self.handler)
    |                            `- warning: capture of 'self' with non-sendable type 'Controller' in a '@Sendable' closure
150 | 			}
151 | 			.bind(to: try! SocketAddress(ipAddress: "0.0.0.0", port: 0))
/host/spi-builder-workspace/Sources/Atem/Controller.swift:156:44: warning: capture of 'self' with non-sendable type 'Controller?' in a '@Sendable' closure
105 |
106 | /// A software based controller that sends messages to an ATEM Switcher.
107 | public class Controller {
    |              `- note: class 'Controller' does not conform to the 'Sendable' protocol
108 |
109 | 	let eventLoop: EventLoopGroup
    :
154 |
155 | 		channel.whenSuccess {[weak self] channel in
156 | 			channel.closeFuture.whenComplete {[weak self] close in
    |                                            `- warning: capture of 'self' with non-sendable type 'Controller?' in a '@Sendable' closure
157 | 				if let controller = self {
158 | 					if case .failure(let error) = close {
/host/spi-builder-workspace/Sources/Atem/Controller.swift:157:25: warning: capture of 'self' with non-sendable type 'Controller?' in a '@Sendable' closure
105 |
106 | /// A software based controller that sends messages to an ATEM Switcher.
107 | public class Controller {
    |              `- note: class 'Controller' does not conform to the 'Sendable' protocol
108 |
109 | 	let eventLoop: EventLoopGroup
    :
155 | 		channel.whenSuccess {[weak self] channel in
156 | 			channel.closeFuture.whenComplete {[weak self] close in
157 | 				if let controller = self {
    |                         `- warning: capture of 'self' with non-sendable type 'Controller?' in a '@Sendable' closure
158 | 					if case .failure(let error) = close {
159 | 						controller.handler.whenError(error)
/host/spi-builder-workspace/Sources/Atem/Controller.swift:205:5: warning: capture of 'self' with non-sendable type 'Controller' in a '@Sendable' closure
105 |
106 | /// A software based controller that sends messages to an ATEM Switcher.
107 | public class Controller {
    |              `- note: class 'Controller' does not conform to the 'Sendable' protocol
108 |
109 | 	let eventLoop: EventLoopGroup
    :
203 | 		if let channel = channel {
204 | 			channel.eventLoop.execute {
205 | 				self.handler.send(message)
    |     `- warning: capture of 'self' with non-sendable type 'Controller' in a '@Sendable' closure
206 | 			}
207 | 		} else {
/host/spi-builder-workspace/Sources/Atem/Controller.swift:205:23: warning: capture of 'message' with non-sendable type 'any SerializableMessage' in a '@Sendable' closure
203 | 		if let channel = channel {
204 | 			channel.eventLoop.execute {
205 | 				self.handler.send(message)
    |                       `- warning: capture of 'message' with non-sendable type 'any SerializableMessage' in a '@Sendable' closure
206 | 			}
207 | 		} else {
/host/spi-builder-workspace/Sources/Atem/Messages/Message.swift:108:17: note: protocol 'SerializableMessage' does not conform to the 'Sendable' protocol
106 | /// A `Message` that is serializable. In other words: that can be transformed into a binary format, ready to be sent to another device.
107 | /// Serializable messages use the `Message.title` and `Serializable.dataBytes` properties to compute the serialized message.
108 | public protocol SerializableMessage: Message.Deserializable {
    |                 `- note: protocol 'SerializableMessage' does not conform to the 'Sendable' protocol
109 | 	/// The part of the serialized message starting after the 4 `Message.title` bytes.
110 | 	/// This property is used by the `Serializable.serialize()` method
[266/293] Compiling Atem TallyLight.swift
/host/spi-builder-workspace/Sources/Atem/TallyLight.swift:24:24: warning: static property 'off' is not concurrency-safe because non-'Sendable' type 'TallyLight' may have shared mutable state; this is an error in the Swift 6 language mode
15 | ///  - `.preview`
16 | ///  - both `.program` & `.preview`
17 | public struct TallyLight: OptionSet, CustomDebugStringConvertible {
   |               `- note: consider making struct 'TallyLight' conform to the 'Sendable' protocol
18 | 	public let rawValue: UInt8
19 |
   :
22 | 	}
23 |
24 | 	public static let     off = TallyLight([])
   |                        |- warning: static property 'off' is not concurrency-safe because non-'Sendable' type 'TallyLight' may have shared mutable state; this is an error in the Swift 6 language mode
   |                        |- note: add '@MainActor' to make static property 'off' part of global actor 'MainActor'
   |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
25 | 	public static let program = TallyLight(rawValue: 1)
26 | 	public static let preview = TallyLight(rawValue: 2)
/host/spi-builder-workspace/Sources/Atem/TallyLight.swift:25:20: warning: static property 'program' is not concurrency-safe because non-'Sendable' type 'TallyLight' may have shared mutable state; this is an error in the Swift 6 language mode
15 | ///  - `.preview`
16 | ///  - both `.program` & `.preview`
17 | public struct TallyLight: OptionSet, CustomDebugStringConvertible {
   |               `- note: consider making struct 'TallyLight' conform to the 'Sendable' protocol
18 | 	public let rawValue: UInt8
19 |
   :
23 |
24 | 	public static let     off = TallyLight([])
25 | 	public static let program = TallyLight(rawValue: 1)
   |                    |- warning: static property 'program' is not concurrency-safe because non-'Sendable' type 'TallyLight' may have shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: add '@MainActor' to make static property 'program' part of global actor 'MainActor'
   |                    `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
26 | 	public static let preview = TallyLight(rawValue: 2)
27 |
/host/spi-builder-workspace/Sources/Atem/TallyLight.swift:26:20: warning: static property 'preview' is not concurrency-safe because non-'Sendable' type 'TallyLight' may have shared mutable state; this is an error in the Swift 6 language mode
15 | ///  - `.preview`
16 | ///  - both `.program` & `.preview`
17 | public struct TallyLight: OptionSet, CustomDebugStringConvertible {
   |               `- note: consider making struct 'TallyLight' conform to the 'Sendable' protocol
18 | 	public let rawValue: UInt8
19 |
   :
24 | 	public static let     off = TallyLight([])
25 | 	public static let program = TallyLight(rawValue: 1)
26 | 	public static let preview = TallyLight(rawValue: 2)
   |                    |- warning: static property 'preview' is not concurrency-safe because non-'Sendable' type 'TallyLight' may have shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: add '@MainActor' to make static property 'preview' part of global actor 'MainActor'
   |                    `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
27 |
28 | 	public var debugDescription: String {
[267/293] Compiling Atem ArrayOperations.swift
/host/spi-builder-workspace/Sources/Atem/TallyLight.swift:24:24: warning: static property 'off' is not concurrency-safe because non-'Sendable' type 'TallyLight' may have shared mutable state; this is an error in the Swift 6 language mode
15 | ///  - `.preview`
16 | ///  - both `.program` & `.preview`
17 | public struct TallyLight: OptionSet, CustomDebugStringConvertible {
   |               `- note: consider making struct 'TallyLight' conform to the 'Sendable' protocol
18 | 	public let rawValue: UInt8
19 |
   :
22 | 	}
23 |
24 | 	public static let     off = TallyLight([])
   |                        |- warning: static property 'off' is not concurrency-safe because non-'Sendable' type 'TallyLight' may have shared mutable state; this is an error in the Swift 6 language mode
   |                        |- note: add '@MainActor' to make static property 'off' part of global actor 'MainActor'
   |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
25 | 	public static let program = TallyLight(rawValue: 1)
26 | 	public static let preview = TallyLight(rawValue: 2)
/host/spi-builder-workspace/Sources/Atem/TallyLight.swift:25:20: warning: static property 'program' is not concurrency-safe because non-'Sendable' type 'TallyLight' may have shared mutable state; this is an error in the Swift 6 language mode
15 | ///  - `.preview`
16 | ///  - both `.program` & `.preview`
17 | public struct TallyLight: OptionSet, CustomDebugStringConvertible {
   |               `- note: consider making struct 'TallyLight' conform to the 'Sendable' protocol
18 | 	public let rawValue: UInt8
19 |
   :
23 |
24 | 	public static let     off = TallyLight([])
25 | 	public static let program = TallyLight(rawValue: 1)
   |                    |- warning: static property 'program' is not concurrency-safe because non-'Sendable' type 'TallyLight' may have shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: add '@MainActor' to make static property 'program' part of global actor 'MainActor'
   |                    `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
26 | 	public static let preview = TallyLight(rawValue: 2)
27 |
/host/spi-builder-workspace/Sources/Atem/TallyLight.swift:26:20: warning: static property 'preview' is not concurrency-safe because non-'Sendable' type 'TallyLight' may have shared mutable state; this is an error in the Swift 6 language mode
15 | ///  - `.preview`
16 | ///  - both `.program` & `.preview`
17 | public struct TallyLight: OptionSet, CustomDebugStringConvertible {
   |               `- note: consider making struct 'TallyLight' conform to the 'Sendable' protocol
18 | 	public let rawValue: UInt8
19 |
   :
24 | 	public static let     off = TallyLight([])
25 | 	public static let program = TallyLight(rawValue: 1)
26 | 	public static let preview = TallyLight(rawValue: 2)
   |                    |- warning: static property 'preview' is not concurrency-safe because non-'Sendable' type 'TallyLight' may have shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: add '@MainActor' to make static property 'preview' part of global actor 'MainActor'
   |                    `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
27 |
28 | 	public var debugDescription: String {
[268/293] Compiling Atem EventLoopGroup.swift
/host/spi-builder-workspace/Sources/Atem/TallyLight.swift:24:24: warning: static property 'off' is not concurrency-safe because non-'Sendable' type 'TallyLight' may have shared mutable state; this is an error in the Swift 6 language mode
15 | ///  - `.preview`
16 | ///  - both `.program` & `.preview`
17 | public struct TallyLight: OptionSet, CustomDebugStringConvertible {
   |               `- note: consider making struct 'TallyLight' conform to the 'Sendable' protocol
18 | 	public let rawValue: UInt8
19 |
   :
22 | 	}
23 |
24 | 	public static let     off = TallyLight([])
   |                        |- warning: static property 'off' is not concurrency-safe because non-'Sendable' type 'TallyLight' may have shared mutable state; this is an error in the Swift 6 language mode
   |                        |- note: add '@MainActor' to make static property 'off' part of global actor 'MainActor'
   |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
25 | 	public static let program = TallyLight(rawValue: 1)
26 | 	public static let preview = TallyLight(rawValue: 2)
/host/spi-builder-workspace/Sources/Atem/TallyLight.swift:25:20: warning: static property 'program' is not concurrency-safe because non-'Sendable' type 'TallyLight' may have shared mutable state; this is an error in the Swift 6 language mode
15 | ///  - `.preview`
16 | ///  - both `.program` & `.preview`
17 | public struct TallyLight: OptionSet, CustomDebugStringConvertible {
   |               `- note: consider making struct 'TallyLight' conform to the 'Sendable' protocol
18 | 	public let rawValue: UInt8
19 |
   :
23 |
24 | 	public static let     off = TallyLight([])
25 | 	public static let program = TallyLight(rawValue: 1)
   |                    |- warning: static property 'program' is not concurrency-safe because non-'Sendable' type 'TallyLight' may have shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: add '@MainActor' to make static property 'program' part of global actor 'MainActor'
   |                    `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
26 | 	public static let preview = TallyLight(rawValue: 2)
27 |
/host/spi-builder-workspace/Sources/Atem/TallyLight.swift:26:20: warning: static property 'preview' is not concurrency-safe because non-'Sendable' type 'TallyLight' may have shared mutable state; this is an error in the Swift 6 language mode
15 | ///  - `.preview`
16 | ///  - both `.program` & `.preview`
17 | public struct TallyLight: OptionSet, CustomDebugStringConvertible {
   |               `- note: consider making struct 'TallyLight' conform to the 'Sendable' protocol
18 | 	public let rawValue: UInt8
19 |
   :
24 | 	public static let     off = TallyLight([])
25 | 	public static let program = TallyLight(rawValue: 1)
26 | 	public static let preview = TallyLight(rawValue: 2)
   |                    |- warning: static property 'preview' is not concurrency-safe because non-'Sendable' type 'TallyLight' may have shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: add '@MainActor' to make static property 'preview' part of global actor 'MainActor'
   |                    `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
27 |
28 | 	public var debugDescription: String {
[269/293] Compiling Atem Packet.swift
/host/spi-builder-workspace/Sources/Atem/Switcher.swift:124:33: warning: type 'SwitcherHandler' does not conform to the 'Sendable' protocol
 18 | }
 19 |
 20 | class SwitcherHandler: HandlerWithTimer {
    |       `- note: class 'SwitcherHandler' does not conform to the 'Sendable' protocol
 21 | 	var counter: UInt16 = 0
 22 | 	var clients = [UInt16: Switcher.Client]()
    :
122 | 			.channelOption(ChannelOptions.socket(SocketOptionLevel(SOL_SOCKET), SO_REUSEADDR), value: 1)
123 | 			.channelInitializer { channel in
124 | 				channel.pipeline.addHandler(handler)
    |                                 `- warning: type 'SwitcherHandler' does not conform to the 'Sendable' protocol
125 | 			}
126 | 			.bind(to: try! SocketAddress(ipAddress: "0.0.0.0", port: 9910))
/host/spi-builder-workspace/Sources/Atem/Switcher.swift:124:33: warning: capture of 'handler' with non-sendable type 'SwitcherHandler' in a '@Sendable' closure
 18 | }
 19 |
 20 | class SwitcherHandler: HandlerWithTimer {
    |       `- note: class 'SwitcherHandler' does not conform to the 'Sendable' protocol
 21 | 	var counter: UInt16 = 0
 22 | 	var clients = [UInt16: Switcher.Client]()
    :
122 | 			.channelOption(ChannelOptions.socket(SocketOptionLevel(SOL_SOCKET), SO_REUSEADDR), value: 1)
123 | 			.channelInitializer { channel in
124 | 				channel.pipeline.addHandler(handler)
    |                                 `- warning: capture of 'handler' with non-sendable type 'SwitcherHandler' in a '@Sendable' closure
125 | 			}
126 | 			.bind(to: try! SocketAddress(ipAddress: "0.0.0.0", port: 9910))
/host/spi-builder-workspace/Sources/Atem/Switcher.swift:139:4: warning: capture of 'self' with non-sendable type 'Switcher' in a '@Sendable' closure
 98 |
 99 | /// A software based switcher that sends messages to ATEM Control Panels.
100 | public class Switcher {
    |              `- note: class 'Switcher' does not conform to the 'Sendable' protocol
101 | 	let eventLoop: EventLoopGroup
102 |
    :
137 | 	public func send(message: SerializableMessage) {
138 | 		channel.eventLoop.execute {
139 | 			self.handler.send(message)
    |    `- warning: capture of 'self' with non-sendable type 'Switcher' in a '@Sendable' closure
140 | 		}
141 | 	}
/host/spi-builder-workspace/Sources/Atem/Switcher.swift:139:22: warning: capture of 'message' with non-sendable type 'any SerializableMessage' in a '@Sendable' closure
137 | 	public func send(message: SerializableMessage) {
138 | 		channel.eventLoop.execute {
139 | 			self.handler.send(message)
    |                      `- warning: capture of 'message' with non-sendable type 'any SerializableMessage' in a '@Sendable' closure
140 | 		}
141 | 	}
/host/spi-builder-workspace/Sources/Atem/Messages/Message.swift:108:17: note: protocol 'SerializableMessage' does not conform to the 'Sendable' protocol
106 | /// A `Message` that is serializable. In other words: that can be transformed into a binary format, ready to be sent to another device.
107 | /// Serializable messages use the `Message.title` and `Serializable.dataBytes` properties to compute the serialized message.
108 | public protocol SerializableMessage: Message.Deserializable {
    |                 `- note: protocol 'SerializableMessage' does not conform to the 'Sendable' protocol
109 | 	/// The part of the serialized message starting after the 4 `Message.title` bytes.
110 | 	/// This property is used by the `Serializable.serialize()` method
[270/293] Compiling Atem PacketTypes.swift
/host/spi-builder-workspace/Sources/Atem/Switcher.swift:124:33: warning: type 'SwitcherHandler' does not conform to the 'Sendable' protocol
 18 | }
 19 |
 20 | class SwitcherHandler: HandlerWithTimer {
    |       `- note: class 'SwitcherHandler' does not conform to the 'Sendable' protocol
 21 | 	var counter: UInt16 = 0
 22 | 	var clients = [UInt16: Switcher.Client]()
    :
122 | 			.channelOption(ChannelOptions.socket(SocketOptionLevel(SOL_SOCKET), SO_REUSEADDR), value: 1)
123 | 			.channelInitializer { channel in
124 | 				channel.pipeline.addHandler(handler)
    |                                 `- warning: type 'SwitcherHandler' does not conform to the 'Sendable' protocol
125 | 			}
126 | 			.bind(to: try! SocketAddress(ipAddress: "0.0.0.0", port: 9910))
/host/spi-builder-workspace/Sources/Atem/Switcher.swift:124:33: warning: capture of 'handler' with non-sendable type 'SwitcherHandler' in a '@Sendable' closure
 18 | }
 19 |
 20 | class SwitcherHandler: HandlerWithTimer {
    |       `- note: class 'SwitcherHandler' does not conform to the 'Sendable' protocol
 21 | 	var counter: UInt16 = 0
 22 | 	var clients = [UInt16: Switcher.Client]()
    :
122 | 			.channelOption(ChannelOptions.socket(SocketOptionLevel(SOL_SOCKET), SO_REUSEADDR), value: 1)
123 | 			.channelInitializer { channel in
124 | 				channel.pipeline.addHandler(handler)
    |                                 `- warning: capture of 'handler' with non-sendable type 'SwitcherHandler' in a '@Sendable' closure
125 | 			}
126 | 			.bind(to: try! SocketAddress(ipAddress: "0.0.0.0", port: 9910))
/host/spi-builder-workspace/Sources/Atem/Switcher.swift:139:4: warning: capture of 'self' with non-sendable type 'Switcher' in a '@Sendable' closure
 98 |
 99 | /// A software based switcher that sends messages to ATEM Control Panels.
100 | public class Switcher {
    |              `- note: class 'Switcher' does not conform to the 'Sendable' protocol
101 | 	let eventLoop: EventLoopGroup
102 |
    :
137 | 	public func send(message: SerializableMessage) {
138 | 		channel.eventLoop.execute {
139 | 			self.handler.send(message)
    |    `- warning: capture of 'self' with non-sendable type 'Switcher' in a '@Sendable' closure
140 | 		}
141 | 	}
/host/spi-builder-workspace/Sources/Atem/Switcher.swift:139:22: warning: capture of 'message' with non-sendable type 'any SerializableMessage' in a '@Sendable' closure
137 | 	public func send(message: SerializableMessage) {
138 | 		channel.eventLoop.execute {
139 | 			self.handler.send(message)
    |                      `- warning: capture of 'message' with non-sendable type 'any SerializableMessage' in a '@Sendable' closure
140 | 		}
141 | 	}
/host/spi-builder-workspace/Sources/Atem/Messages/Message.swift:108:17: note: protocol 'SerializableMessage' does not conform to the 'Sendable' protocol
106 | /// A `Message` that is serializable. In other words: that can be transformed into a binary format, ready to be sent to another device.
107 | /// Serializable messages use the `Message.title` and `Serializable.dataBytes` properties to compute the serialized message.
108 | public protocol SerializableMessage: Message.Deserializable {
    |                 `- note: protocol 'SerializableMessage' does not conform to the 'Sendable' protocol
109 | 	/// The part of the serialized message starting after the 4 `Message.title` bytes.
110 | 	/// This property is used by the `Serializable.serialize()` method
[271/293] Compiling Atem Switcher.swift
/host/spi-builder-workspace/Sources/Atem/Switcher.swift:124:33: warning: type 'SwitcherHandler' does not conform to the 'Sendable' protocol
 18 | }
 19 |
 20 | class SwitcherHandler: HandlerWithTimer {
    |       `- note: class 'SwitcherHandler' does not conform to the 'Sendable' protocol
 21 | 	var counter: UInt16 = 0
 22 | 	var clients = [UInt16: Switcher.Client]()
    :
122 | 			.channelOption(ChannelOptions.socket(SocketOptionLevel(SOL_SOCKET), SO_REUSEADDR), value: 1)
123 | 			.channelInitializer { channel in
124 | 				channel.pipeline.addHandler(handler)
    |                                 `- warning: type 'SwitcherHandler' does not conform to the 'Sendable' protocol
125 | 			}
126 | 			.bind(to: try! SocketAddress(ipAddress: "0.0.0.0", port: 9910))
/host/spi-builder-workspace/Sources/Atem/Switcher.swift:124:33: warning: capture of 'handler' with non-sendable type 'SwitcherHandler' in a '@Sendable' closure
 18 | }
 19 |
 20 | class SwitcherHandler: HandlerWithTimer {
    |       `- note: class 'SwitcherHandler' does not conform to the 'Sendable' protocol
 21 | 	var counter: UInt16 = 0
 22 | 	var clients = [UInt16: Switcher.Client]()
    :
122 | 			.channelOption(ChannelOptions.socket(SocketOptionLevel(SOL_SOCKET), SO_REUSEADDR), value: 1)
123 | 			.channelInitializer { channel in
124 | 				channel.pipeline.addHandler(handler)
    |                                 `- warning: capture of 'handler' with non-sendable type 'SwitcherHandler' in a '@Sendable' closure
125 | 			}
126 | 			.bind(to: try! SocketAddress(ipAddress: "0.0.0.0", port: 9910))
/host/spi-builder-workspace/Sources/Atem/Switcher.swift:139:4: warning: capture of 'self' with non-sendable type 'Switcher' in a '@Sendable' closure
 98 |
 99 | /// A software based switcher that sends messages to ATEM Control Panels.
100 | public class Switcher {
    |              `- note: class 'Switcher' does not conform to the 'Sendable' protocol
101 | 	let eventLoop: EventLoopGroup
102 |
    :
137 | 	public func send(message: SerializableMessage) {
138 | 		channel.eventLoop.execute {
139 | 			self.handler.send(message)
    |    `- warning: capture of 'self' with non-sendable type 'Switcher' in a '@Sendable' closure
140 | 		}
141 | 	}
/host/spi-builder-workspace/Sources/Atem/Switcher.swift:139:22: warning: capture of 'message' with non-sendable type 'any SerializableMessage' in a '@Sendable' closure
137 | 	public func send(message: SerializableMessage) {
138 | 		channel.eventLoop.execute {
139 | 			self.handler.send(message)
    |                      `- warning: capture of 'message' with non-sendable type 'any SerializableMessage' in a '@Sendable' closure
140 | 		}
141 | 	}
/host/spi-builder-workspace/Sources/Atem/Messages/Message.swift:108:17: note: protocol 'SerializableMessage' does not conform to the 'Sendable' protocol
106 | /// A `Message` that is serializable. In other words: that can be transformed into a binary format, ready to be sent to another device.
107 | /// Serializable messages use the `Message.title` and `Serializable.dataBytes` properties to compute the serialized message.
108 | public protocol SerializableMessage: Message.Deserializable {
    |                 `- note: protocol 'SerializableMessage' does not conform to the 'Sendable' protocol
109 | 	/// The part of the serialized message starting after the 4 `Message.title` bytes.
110 | 	/// This property is used by the `Serializable.serialize()` method
[272/293] Compiling Atem OptionSet+elements.swift
/host/spi-builder-workspace/Sources/Atem/Utilities/RawRepresentable+decode.swift:14:6: warning: stored property 'value' of 'Sendable'-conforming generic struct 'UnsupportedRawValue' has non-sendable type 'R.RawValue'; this is an error in the Swift 6 language mode
12 | struct UnsupportedRawValue<R: RawRepresentable>: LocalizedError {
13 | 	/// The value that is not supported by the `RawRepresentable`
14 | 	let value: R.RawValue
   |      `- warning: stored property 'value' of 'Sendable'-conforming generic struct 'UnsupportedRawValue' has non-sendable type 'R.RawValue'; this is an error in the Swift 6 language mode
15 |
16 | 	/// A textual description of the error
/host/spi-builder-workspace/Sources/Atem/VideoSource.swift:152:21: warning: static property 'sdi' is not concurrency-safe because non-'Sendable' type 'VideoSource.ExternalInterfaces' may have shared mutable state; this is an error in the Swift 6 language mode
144 | 	}
145 |
146 | 	public struct ExternalInterfaces: OptionSet, SingleValueDescribable {
    |                `- note: consider making struct 'ExternalInterfaces' conform to the 'Sendable' protocol
147 | 		public let rawValue: UInt8
148 | 		public init(rawValue: UInt8) {
    :
150 | 		}
151 |
152 | 		public static let sdi =       ExternalInterfaces(rawValue: 1 << 0)
    |                     |- warning: static property 'sdi' is not concurrency-safe because non-'Sendable' type 'VideoSource.ExternalInterfaces' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'sdi' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
153 | 		public static let hdmi =      ExternalInterfaces(rawValue: 1 << 1)
154 | 		public static let component = ExternalInterfaces(rawValue: 1 << 2)
/host/spi-builder-workspace/Sources/Atem/VideoSource.swift:153:21: warning: static property 'hdmi' is not concurrency-safe because non-'Sendable' type 'VideoSource.ExternalInterfaces' may have shared mutable state; this is an error in the Swift 6 language mode
144 | 	}
145 |
146 | 	public struct ExternalInterfaces: OptionSet, SingleValueDescribable {
    |                `- note: consider making struct 'ExternalInterfaces' conform to the 'Sendable' protocol
147 | 		public let rawValue: UInt8
148 | 		public init(rawValue: UInt8) {
    :
151 |
152 | 		public static let sdi =       ExternalInterfaces(rawValue: 1 << 0)
153 | 		public static let hdmi =      ExternalInterfaces(rawValue: 1 << 1)
    |                     |- warning: static property 'hdmi' is not concurrency-safe because non-'Sendable' type 'VideoSource.ExternalInterfaces' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'hdmi' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
154 | 		public static let component = ExternalInterfaces(rawValue: 1 << 2)
155 | 		public static let composite = ExternalInterfaces(rawValue: 1 << 3)
/host/spi-builder-workspace/Sources/Atem/VideoSource.swift:154:21: warning: static property 'component' is not concurrency-safe because non-'Sendable' type 'VideoSource.ExternalInterfaces' may have shared mutable state; this is an error in the Swift 6 language mode
144 | 	}
145 |
146 | 	public struct ExternalInterfaces: OptionSet, SingleValueDescribable {
    |                `- note: consider making struct 'ExternalInterfaces' conform to the 'Sendable' protocol
147 | 		public let rawValue: UInt8
148 | 		public init(rawValue: UInt8) {
    :
152 | 		public static let sdi =       ExternalInterfaces(rawValue: 1 << 0)
153 | 		public static let hdmi =      ExternalInterfaces(rawValue: 1 << 1)
154 | 		public static let component = ExternalInterfaces(rawValue: 1 << 2)
    |                     |- warning: static property 'component' is not concurrency-safe because non-'Sendable' type 'VideoSource.ExternalInterfaces' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'component' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
155 | 		public static let composite = ExternalInterfaces(rawValue: 1 << 3)
156 | 		public static let sVideo =    ExternalInterfaces(rawValue: 1 << 4)
/host/spi-builder-workspace/Sources/Atem/VideoSource.swift:155:21: warning: static property 'composite' is not concurrency-safe because non-'Sendable' type 'VideoSource.ExternalInterfaces' may have shared mutable state; this is an error in the Swift 6 language mode
144 | 	}
145 |
146 | 	public struct ExternalInterfaces: OptionSet, SingleValueDescribable {
    |                `- note: consider making struct 'ExternalInterfaces' conform to the 'Sendable' protocol
147 | 		public let rawValue: UInt8
148 | 		public init(rawValue: UInt8) {
    :
153 | 		public static let hdmi =      ExternalInterfaces(rawValue: 1 << 1)
154 | 		public static let component = ExternalInterfaces(rawValue: 1 << 2)
155 | 		public static let composite = ExternalInterfaces(rawValue: 1 << 3)
    |                     |- warning: static property 'composite' is not concurrency-safe because non-'Sendable' type 'VideoSource.ExternalInterfaces' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'composite' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
156 | 		public static let sVideo =    ExternalInterfaces(rawValue: 1 << 4)
157 |
/host/spi-builder-workspace/Sources/Atem/VideoSource.swift:156:21: warning: static property 'sVideo' is not concurrency-safe because non-'Sendable' type 'VideoSource.ExternalInterfaces' may have shared mutable state; this is an error in the Swift 6 language mode
144 | 	}
145 |
146 | 	public struct ExternalInterfaces: OptionSet, SingleValueDescribable {
    |                `- note: consider making struct 'ExternalInterfaces' conform to the 'Sendable' protocol
147 | 		public let rawValue: UInt8
148 | 		public init(rawValue: UInt8) {
    :
154 | 		public static let component = ExternalInterfaces(rawValue: 1 << 2)
155 | 		public static let composite = ExternalInterfaces(rawValue: 1 << 3)
156 | 		public static let sVideo =    ExternalInterfaces(rawValue: 1 << 4)
    |                     |- warning: static property 'sVideo' is not concurrency-safe because non-'Sendable' type 'VideoSource.ExternalInterfaces' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'sVideo' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
157 |
158 | 		public static let none = ExternalInterfaces([])
/host/spi-builder-workspace/Sources/Atem/VideoSource.swift:158:21: warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'VideoSource.ExternalInterfaces' may have shared mutable state; this is an error in the Swift 6 language mode
144 | 	}
145 |
146 | 	public struct ExternalInterfaces: OptionSet, SingleValueDescribable {
    |                `- note: consider making struct 'ExternalInterfaces' conform to the 'Sendable' protocol
147 | 		public let rawValue: UInt8
148 | 		public init(rawValue: UInt8) {
    :
156 | 		public static let sVideo =    ExternalInterfaces(rawValue: 1 << 4)
157 |
158 | 		public static let none = ExternalInterfaces([])
    |                     |- warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'VideoSource.ExternalInterfaces' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'none' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
159 |
160 | 		public func describe() -> String? {
/host/spi-builder-workspace/Sources/Atem/VideoSource.swift:178:21: warning: static property 'auxiliary' is not concurrency-safe because non-'Sendable' type 'VideoSource.RoutingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
170 | 	}
171 |
172 | 	public struct RoutingOptions: OptionSet, SingleValueDescribable {
    |                `- note: consider making struct 'RoutingOptions' conform to the 'Sendable' protocol
173 | 		public let rawValue: UInt8
174 | 		public init(rawValue: UInt8) {
    :
176 | 		}
177 |
178 | 		public static let auxiliary =      RoutingOptions(rawValue: 1 << 0)
    |                     |- warning: static property 'auxiliary' is not concurrency-safe because non-'Sendable' type 'VideoSource.RoutingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'auxiliary' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
179 | 		public static let multiviewer =    RoutingOptions(rawValue: 1 << 1)
180 | 		public static let superSourceArt = RoutingOptions(rawValue: 1 << 2)
/host/spi-builder-workspace/Sources/Atem/VideoSource.swift:179:21: warning: static property 'multiviewer' is not concurrency-safe because non-'Sendable' type 'VideoSource.RoutingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
170 | 	}
171 |
172 | 	public struct RoutingOptions: OptionSet, SingleValueDescribable {
    |                `- note: consider making struct 'RoutingOptions' conform to the 'Sendable' protocol
173 | 		public let rawValue: UInt8
174 | 		public init(rawValue: UInt8) {
    :
177 |
178 | 		public static let auxiliary =      RoutingOptions(rawValue: 1 << 0)
179 | 		public static let multiviewer =    RoutingOptions(rawValue: 1 << 1)
    |                     |- warning: static property 'multiviewer' is not concurrency-safe because non-'Sendable' type 'VideoSource.RoutingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'multiviewer' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
180 | 		public static let superSourceArt = RoutingOptions(rawValue: 1 << 2)
181 | 		public static let superSourceBox = RoutingOptions(rawValue: 1 << 3)
/host/spi-builder-workspace/Sources/Atem/VideoSource.swift:180:21: warning: static property 'superSourceArt' is not concurrency-safe because non-'Sendable' type 'VideoSource.RoutingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
170 | 	}
171 |
172 | 	public struct RoutingOptions: OptionSet, SingleValueDescribable {
    |                `- note: consider making struct 'RoutingOptions' conform to the 'Sendable' protocol
173 | 		public let rawValue: UInt8
174 | 		public init(rawValue: UInt8) {
    :
178 | 		public static let auxiliary =      RoutingOptions(rawValue: 1 << 0)
179 | 		public static let multiviewer =    RoutingOptions(rawValue: 1 << 1)
180 | 		public static let superSourceArt = RoutingOptions(rawValue: 1 << 2)
    |                     |- warning: static property 'superSourceArt' is not concurrency-safe because non-'Sendable' type 'VideoSource.RoutingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'superSourceArt' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
181 | 		public static let superSourceBox = RoutingOptions(rawValue: 1 << 3)
182 | 		public static let keySource =      RoutingOptions(rawValue: 1 << 4)
/host/spi-builder-workspace/Sources/Atem/VideoSource.swift:181:21: warning: static property 'superSourceBox' is not concurrency-safe because non-'Sendable' type 'VideoSource.RoutingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
170 | 	}
171 |
172 | 	public struct RoutingOptions: OptionSet, SingleValueDescribable {
    |                `- note: consider making struct 'RoutingOptions' conform to the 'Sendable' protocol
173 | 		public let rawValue: UInt8
174 | 		public init(rawValue: UInt8) {
    :
179 | 		public static let multiviewer =    RoutingOptions(rawValue: 1 << 1)
180 | 		public static let superSourceArt = RoutingOptions(rawValue: 1 << 2)
181 | 		public static let superSourceBox = RoutingOptions(rawValue: 1 << 3)
    |                     |- warning: static property 'superSourceBox' is not concurrency-safe because non-'Sendable' type 'VideoSource.RoutingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'superSourceBox' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
182 | 		public static let keySource =      RoutingOptions(rawValue: 1 << 4)
183 |
/host/spi-builder-workspace/Sources/Atem/VideoSource.swift:182:21: warning: static property 'keySource' is not concurrency-safe because non-'Sendable' type 'VideoSource.RoutingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
170 | 	}
171 |
172 | 	public struct RoutingOptions: OptionSet, SingleValueDescribable {
    |                `- note: consider making struct 'RoutingOptions' conform to the 'Sendable' protocol
173 | 		public let rawValue: UInt8
174 | 		public init(rawValue: UInt8) {
    :
180 | 		public static let superSourceArt = RoutingOptions(rawValue: 1 << 2)
181 | 		public static let superSourceBox = RoutingOptions(rawValue: 1 << 3)
182 | 		public static let keySource =      RoutingOptions(rawValue: 1 << 4)
    |                     |- warning: static property 'keySource' is not concurrency-safe because non-'Sendable' type 'VideoSource.RoutingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'keySource' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
183 |
184 | 		public func describe() -> String? {
/host/spi-builder-workspace/Sources/Atem/VideoSource.swift:202:21: warning: static property 'me1AndFillSources' is not concurrency-safe because non-'Sendable' type 'VideoSource.MixEffects' may have shared mutable state; this is an error in the Swift 6 language mode
194 | 	}
195 |
196 | 	public struct MixEffects: OptionSet, SingleValueDescribable {
    |                `- note: consider making struct 'MixEffects' conform to the 'Sendable' protocol
197 | 		public let rawValue: UInt8
198 | 		public init(rawValue: UInt8) {
    :
200 | 		}
201 |
202 | 		public static let me1AndFillSources = MixEffects(rawValue: 1 << 0)
    |                     |- warning: static property 'me1AndFillSources' is not concurrency-safe because non-'Sendable' type 'VideoSource.MixEffects' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'me1AndFillSources' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
203 | 		public static let me2AndFillSources = MixEffects(rawValue: 1 << 1)
204 |
/host/spi-builder-workspace/Sources/Atem/VideoSource.swift:203:21: warning: static property 'me2AndFillSources' is not concurrency-safe because non-'Sendable' type 'VideoSource.MixEffects' may have shared mutable state; this is an error in the Swift 6 language mode
194 | 	}
195 |
196 | 	public struct MixEffects: OptionSet, SingleValueDescribable {
    |                `- note: consider making struct 'MixEffects' conform to the 'Sendable' protocol
197 | 		public let rawValue: UInt8
198 | 		public init(rawValue: UInt8) {
    :
201 |
202 | 		public static let me1AndFillSources = MixEffects(rawValue: 1 << 0)
203 | 		public static let me2AndFillSources = MixEffects(rawValue: 1 << 1)
    |                     |- warning: static property 'me2AndFillSources' is not concurrency-safe because non-'Sendable' type 'VideoSource.MixEffects' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'me2AndFillSources' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
204 |
205 | 		public static let none = MixEffects([])
/host/spi-builder-workspace/Sources/Atem/VideoSource.swift:205:21: warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'VideoSource.MixEffects' may have shared mutable state; this is an error in the Swift 6 language mode
194 | 	}
195 |
196 | 	public struct MixEffects: OptionSet, SingleValueDescribable {
    |                `- note: consider making struct 'MixEffects' conform to the 'Sendable' protocol
197 | 		public let rawValue: UInt8
198 | 		public init(rawValue: UInt8) {
    :
203 | 		public static let me2AndFillSources = MixEffects(rawValue: 1 << 1)
204 |
205 | 		public static let none = MixEffects([])
    |                     |- warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'VideoSource.MixEffects' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'none' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
206 |
207 | 		public func describe() -> String? {
[273/293] Compiling Atem RawRepresentable+decode.swift
/host/spi-builder-workspace/Sources/Atem/Utilities/RawRepresentable+decode.swift:14:6: warning: stored property 'value' of 'Sendable'-conforming generic struct 'UnsupportedRawValue' has non-sendable type 'R.RawValue'; this is an error in the Swift 6 language mode
12 | struct UnsupportedRawValue<R: RawRepresentable>: LocalizedError {
13 | 	/// The value that is not supported by the `RawRepresentable`
14 | 	let value: R.RawValue
   |      `- warning: stored property 'value' of 'Sendable'-conforming generic struct 'UnsupportedRawValue' has non-sendable type 'R.RawValue'; this is an error in the Swift 6 language mode
15 |
16 | 	/// A textual description of the error
/host/spi-builder-workspace/Sources/Atem/VideoSource.swift:152:21: warning: static property 'sdi' is not concurrency-safe because non-'Sendable' type 'VideoSource.ExternalInterfaces' may have shared mutable state; this is an error in the Swift 6 language mode
144 | 	}
145 |
146 | 	public struct ExternalInterfaces: OptionSet, SingleValueDescribable {
    |                `- note: consider making struct 'ExternalInterfaces' conform to the 'Sendable' protocol
147 | 		public let rawValue: UInt8
148 | 		public init(rawValue: UInt8) {
    :
150 | 		}
151 |
152 | 		public static let sdi =       ExternalInterfaces(rawValue: 1 << 0)
    |                     |- warning: static property 'sdi' is not concurrency-safe because non-'Sendable' type 'VideoSource.ExternalInterfaces' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'sdi' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
153 | 		public static let hdmi =      ExternalInterfaces(rawValue: 1 << 1)
154 | 		public static let component = ExternalInterfaces(rawValue: 1 << 2)
/host/spi-builder-workspace/Sources/Atem/VideoSource.swift:153:21: warning: static property 'hdmi' is not concurrency-safe because non-'Sendable' type 'VideoSource.ExternalInterfaces' may have shared mutable state; this is an error in the Swift 6 language mode
144 | 	}
145 |
146 | 	public struct ExternalInterfaces: OptionSet, SingleValueDescribable {
    |                `- note: consider making struct 'ExternalInterfaces' conform to the 'Sendable' protocol
147 | 		public let rawValue: UInt8
148 | 		public init(rawValue: UInt8) {
    :
151 |
152 | 		public static let sdi =       ExternalInterfaces(rawValue: 1 << 0)
153 | 		public static let hdmi =      ExternalInterfaces(rawValue: 1 << 1)
    |                     |- warning: static property 'hdmi' is not concurrency-safe because non-'Sendable' type 'VideoSource.ExternalInterfaces' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'hdmi' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
154 | 		public static let component = ExternalInterfaces(rawValue: 1 << 2)
155 | 		public static let composite = ExternalInterfaces(rawValue: 1 << 3)
/host/spi-builder-workspace/Sources/Atem/VideoSource.swift:154:21: warning: static property 'component' is not concurrency-safe because non-'Sendable' type 'VideoSource.ExternalInterfaces' may have shared mutable state; this is an error in the Swift 6 language mode
144 | 	}
145 |
146 | 	public struct ExternalInterfaces: OptionSet, SingleValueDescribable {
    |                `- note: consider making struct 'ExternalInterfaces' conform to the 'Sendable' protocol
147 | 		public let rawValue: UInt8
148 | 		public init(rawValue: UInt8) {
    :
152 | 		public static let sdi =       ExternalInterfaces(rawValue: 1 << 0)
153 | 		public static let hdmi =      ExternalInterfaces(rawValue: 1 << 1)
154 | 		public static let component = ExternalInterfaces(rawValue: 1 << 2)
    |                     |- warning: static property 'component' is not concurrency-safe because non-'Sendable' type 'VideoSource.ExternalInterfaces' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'component' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
155 | 		public static let composite = ExternalInterfaces(rawValue: 1 << 3)
156 | 		public static let sVideo =    ExternalInterfaces(rawValue: 1 << 4)
/host/spi-builder-workspace/Sources/Atem/VideoSource.swift:155:21: warning: static property 'composite' is not concurrency-safe because non-'Sendable' type 'VideoSource.ExternalInterfaces' may have shared mutable state; this is an error in the Swift 6 language mode
144 | 	}
145 |
146 | 	public struct ExternalInterfaces: OptionSet, SingleValueDescribable {
    |                `- note: consider making struct 'ExternalInterfaces' conform to the 'Sendable' protocol
147 | 		public let rawValue: UInt8
148 | 		public init(rawValue: UInt8) {
    :
153 | 		public static let hdmi =      ExternalInterfaces(rawValue: 1 << 1)
154 | 		public static let component = ExternalInterfaces(rawValue: 1 << 2)
155 | 		public static let composite = ExternalInterfaces(rawValue: 1 << 3)
    |                     |- warning: static property 'composite' is not concurrency-safe because non-'Sendable' type 'VideoSource.ExternalInterfaces' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'composite' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
156 | 		public static let sVideo =    ExternalInterfaces(rawValue: 1 << 4)
157 |
/host/spi-builder-workspace/Sources/Atem/VideoSource.swift:156:21: warning: static property 'sVideo' is not concurrency-safe because non-'Sendable' type 'VideoSource.ExternalInterfaces' may have shared mutable state; this is an error in the Swift 6 language mode
144 | 	}
145 |
146 | 	public struct ExternalInterfaces: OptionSet, SingleValueDescribable {
    |                `- note: consider making struct 'ExternalInterfaces' conform to the 'Sendable' protocol
147 | 		public let rawValue: UInt8
148 | 		public init(rawValue: UInt8) {
    :
154 | 		public static let component = ExternalInterfaces(rawValue: 1 << 2)
155 | 		public static let composite = ExternalInterfaces(rawValue: 1 << 3)
156 | 		public static let sVideo =    ExternalInterfaces(rawValue: 1 << 4)
    |                     |- warning: static property 'sVideo' is not concurrency-safe because non-'Sendable' type 'VideoSource.ExternalInterfaces' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'sVideo' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
157 |
158 | 		public static let none = ExternalInterfaces([])
/host/spi-builder-workspace/Sources/Atem/VideoSource.swift:158:21: warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'VideoSource.ExternalInterfaces' may have shared mutable state; this is an error in the Swift 6 language mode
144 | 	}
145 |
146 | 	public struct ExternalInterfaces: OptionSet, SingleValueDescribable {
    |                `- note: consider making struct 'ExternalInterfaces' conform to the 'Sendable' protocol
147 | 		public let rawValue: UInt8
148 | 		public init(rawValue: UInt8) {
    :
156 | 		public static let sVideo =    ExternalInterfaces(rawValue: 1 << 4)
157 |
158 | 		public static let none = ExternalInterfaces([])
    |                     |- warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'VideoSource.ExternalInterfaces' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'none' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
159 |
160 | 		public func describe() -> String? {
/host/spi-builder-workspace/Sources/Atem/VideoSource.swift:178:21: warning: static property 'auxiliary' is not concurrency-safe because non-'Sendable' type 'VideoSource.RoutingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
170 | 	}
171 |
172 | 	public struct RoutingOptions: OptionSet, SingleValueDescribable {
    |                `- note: consider making struct 'RoutingOptions' conform to the 'Sendable' protocol
173 | 		public let rawValue: UInt8
174 | 		public init(rawValue: UInt8) {
    :
176 | 		}
177 |
178 | 		public static let auxiliary =      RoutingOptions(rawValue: 1 << 0)
    |                     |- warning: static property 'auxiliary' is not concurrency-safe because non-'Sendable' type 'VideoSource.RoutingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'auxiliary' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
179 | 		public static let multiviewer =    RoutingOptions(rawValue: 1 << 1)
180 | 		public static let superSourceArt = RoutingOptions(rawValue: 1 << 2)
/host/spi-builder-workspace/Sources/Atem/VideoSource.swift:179:21: warning: static property 'multiviewer' is not concurrency-safe because non-'Sendable' type 'VideoSource.RoutingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
170 | 	}
171 |
172 | 	public struct RoutingOptions: OptionSet, SingleValueDescribable {
    |                `- note: consider making struct 'RoutingOptions' conform to the 'Sendable' protocol
173 | 		public let rawValue: UInt8
174 | 		public init(rawValue: UInt8) {
    :
177 |
178 | 		public static let auxiliary =      RoutingOptions(rawValue: 1 << 0)
179 | 		public static let multiviewer =    RoutingOptions(rawValue: 1 << 1)
    |                     |- warning: static property 'multiviewer' is not concurrency-safe because non-'Sendable' type 'VideoSource.RoutingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'multiviewer' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
180 | 		public static let superSourceArt = RoutingOptions(rawValue: 1 << 2)
181 | 		public static let superSourceBox = RoutingOptions(rawValue: 1 << 3)
/host/spi-builder-workspace/Sources/Atem/VideoSource.swift:180:21: warning: static property 'superSourceArt' is not concurrency-safe because non-'Sendable' type 'VideoSource.RoutingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
170 | 	}
171 |
172 | 	public struct RoutingOptions: OptionSet, SingleValueDescribable {
    |                `- note: consider making struct 'RoutingOptions' conform to the 'Sendable' protocol
173 | 		public let rawValue: UInt8
174 | 		public init(rawValue: UInt8) {
    :
178 | 		public static let auxiliary =      RoutingOptions(rawValue: 1 << 0)
179 | 		public static let multiviewer =    RoutingOptions(rawValue: 1 << 1)
180 | 		public static let superSourceArt = RoutingOptions(rawValue: 1 << 2)
    |                     |- warning: static property 'superSourceArt' is not concurrency-safe because non-'Sendable' type 'VideoSource.RoutingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'superSourceArt' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
181 | 		public static let superSourceBox = RoutingOptions(rawValue: 1 << 3)
182 | 		public static let keySource =      RoutingOptions(rawValue: 1 << 4)
/host/spi-builder-workspace/Sources/Atem/VideoSource.swift:181:21: warning: static property 'superSourceBox' is not concurrency-safe because non-'Sendable' type 'VideoSource.RoutingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
170 | 	}
171 |
172 | 	public struct RoutingOptions: OptionSet, SingleValueDescribable {
    |                `- note: consider making struct 'RoutingOptions' conform to the 'Sendable' protocol
173 | 		public let rawValue: UInt8
174 | 		public init(rawValue: UInt8) {
    :
179 | 		public static let multiviewer =    RoutingOptions(rawValue: 1 << 1)
180 | 		public static let superSourceArt = RoutingOptions(rawValue: 1 << 2)
181 | 		public static let superSourceBox = RoutingOptions(rawValue: 1 << 3)
    |                     |- warning: static property 'superSourceBox' is not concurrency-safe because non-'Sendable' type 'VideoSource.RoutingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'superSourceBox' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
182 | 		public static let keySource =      RoutingOptions(rawValue: 1 << 4)
183 |
/host/spi-builder-workspace/Sources/Atem/VideoSource.swift:182:21: warning: static property 'keySource' is not concurrency-safe because non-'Sendable' type 'VideoSource.RoutingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
170 | 	}
171 |
172 | 	public struct RoutingOptions: OptionSet, SingleValueDescribable {
    |                `- note: consider making struct 'RoutingOptions' conform to the 'Sendable' protocol
173 | 		public let rawValue: UInt8
174 | 		public init(rawValue: UInt8) {
    :
180 | 		public static let superSourceArt = RoutingOptions(rawValue: 1 << 2)
181 | 		public static let superSourceBox = RoutingOptions(rawValue: 1 << 3)
182 | 		public static let keySource =      RoutingOptions(rawValue: 1 << 4)
    |                     |- warning: static property 'keySource' is not concurrency-safe because non-'Sendable' type 'VideoSource.RoutingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'keySource' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
183 |
184 | 		public func describe() -> String? {
/host/spi-builder-workspace/Sources/Atem/VideoSource.swift:202:21: warning: static property 'me1AndFillSources' is not concurrency-safe because non-'Sendable' type 'VideoSource.MixEffects' may have shared mutable state; this is an error in the Swift 6 language mode
194 | 	}
195 |
196 | 	public struct MixEffects: OptionSet, SingleValueDescribable {
    |                `- note: consider making struct 'MixEffects' conform to the 'Sendable' protocol
197 | 		public let rawValue: UInt8
198 | 		public init(rawValue: UInt8) {
    :
200 | 		}
201 |
202 | 		public static let me1AndFillSources = MixEffects(rawValue: 1 << 0)
    |                     |- warning: static property 'me1AndFillSources' is not concurrency-safe because non-'Sendable' type 'VideoSource.MixEffects' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'me1AndFillSources' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
203 | 		public static let me2AndFillSources = MixEffects(rawValue: 1 << 1)
204 |
/host/spi-builder-workspace/Sources/Atem/VideoSource.swift:203:21: warning: static property 'me2AndFillSources' is not concurrency-safe because non-'Sendable' type 'VideoSource.MixEffects' may have shared mutable state; this is an error in the Swift 6 language mode
194 | 	}
195 |
196 | 	public struct MixEffects: OptionSet, SingleValueDescribable {
    |                `- note: consider making struct 'MixEffects' conform to the 'Sendable' protocol
197 | 		public let rawValue: UInt8
198 | 		public init(rawValue: UInt8) {
    :
201 |
202 | 		public static let me1AndFillSources = MixEffects(rawValue: 1 << 0)
203 | 		public static let me2AndFillSources = MixEffects(rawValue: 1 << 1)
    |                     |- warning: static property 'me2AndFillSources' is not concurrency-safe because non-'Sendable' type 'VideoSource.MixEffects' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'me2AndFillSources' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
204 |
205 | 		public static let none = MixEffects([])
/host/spi-builder-workspace/Sources/Atem/VideoSource.swift:205:21: warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'VideoSource.MixEffects' may have shared mutable state; this is an error in the Swift 6 language mode
194 | 	}
195 |
196 | 	public struct MixEffects: OptionSet, SingleValueDescribable {
    |                `- note: consider making struct 'MixEffects' conform to the 'Sendable' protocol
197 | 		public let rawValue: UInt8
198 | 		public init(rawValue: UInt8) {
    :
203 | 		public static let me2AndFillSources = MixEffects(rawValue: 1 << 1)
204 |
205 | 		public static let none = MixEffects([])
    |                     |- warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'VideoSource.MixEffects' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'none' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
206 |
207 | 		public func describe() -> String? {
[274/293] Compiling Atem VideoSource.swift
/host/spi-builder-workspace/Sources/Atem/Utilities/RawRepresentable+decode.swift:14:6: warning: stored property 'value' of 'Sendable'-conforming generic struct 'UnsupportedRawValue' has non-sendable type 'R.RawValue'; this is an error in the Swift 6 language mode
12 | struct UnsupportedRawValue<R: RawRepresentable>: LocalizedError {
13 | 	/// The value that is not supported by the `RawRepresentable`
14 | 	let value: R.RawValue
   |      `- warning: stored property 'value' of 'Sendable'-conforming generic struct 'UnsupportedRawValue' has non-sendable type 'R.RawValue'; this is an error in the Swift 6 language mode
15 |
16 | 	/// A textual description of the error
/host/spi-builder-workspace/Sources/Atem/VideoSource.swift:152:21: warning: static property 'sdi' is not concurrency-safe because non-'Sendable' type 'VideoSource.ExternalInterfaces' may have shared mutable state; this is an error in the Swift 6 language mode
144 | 	}
145 |
146 | 	public struct ExternalInterfaces: OptionSet, SingleValueDescribable {
    |                `- note: consider making struct 'ExternalInterfaces' conform to the 'Sendable' protocol
147 | 		public let rawValue: UInt8
148 | 		public init(rawValue: UInt8) {
    :
150 | 		}
151 |
152 | 		public static let sdi =       ExternalInterfaces(rawValue: 1 << 0)
    |                     |- warning: static property 'sdi' is not concurrency-safe because non-'Sendable' type 'VideoSource.ExternalInterfaces' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'sdi' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
153 | 		public static let hdmi =      ExternalInterfaces(rawValue: 1 << 1)
154 | 		public static let component = ExternalInterfaces(rawValue: 1 << 2)
/host/spi-builder-workspace/Sources/Atem/VideoSource.swift:153:21: warning: static property 'hdmi' is not concurrency-safe because non-'Sendable' type 'VideoSource.ExternalInterfaces' may have shared mutable state; this is an error in the Swift 6 language mode
144 | 	}
145 |
146 | 	public struct ExternalInterfaces: OptionSet, SingleValueDescribable {
    |                `- note: consider making struct 'ExternalInterfaces' conform to the 'Sendable' protocol
147 | 		public let rawValue: UInt8
148 | 		public init(rawValue: UInt8) {
    :
151 |
152 | 		public static let sdi =       ExternalInterfaces(rawValue: 1 << 0)
153 | 		public static let hdmi =      ExternalInterfaces(rawValue: 1 << 1)
    |                     |- warning: static property 'hdmi' is not concurrency-safe because non-'Sendable' type 'VideoSource.ExternalInterfaces' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'hdmi' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
154 | 		public static let component = ExternalInterfaces(rawValue: 1 << 2)
155 | 		public static let composite = ExternalInterfaces(rawValue: 1 << 3)
/host/spi-builder-workspace/Sources/Atem/VideoSource.swift:154:21: warning: static property 'component' is not concurrency-safe because non-'Sendable' type 'VideoSource.ExternalInterfaces' may have shared mutable state; this is an error in the Swift 6 language mode
144 | 	}
145 |
146 | 	public struct ExternalInterfaces: OptionSet, SingleValueDescribable {
    |                `- note: consider making struct 'ExternalInterfaces' conform to the 'Sendable' protocol
147 | 		public let rawValue: UInt8
148 | 		public init(rawValue: UInt8) {
    :
152 | 		public static let sdi =       ExternalInterfaces(rawValue: 1 << 0)
153 | 		public static let hdmi =      ExternalInterfaces(rawValue: 1 << 1)
154 | 		public static let component = ExternalInterfaces(rawValue: 1 << 2)
    |                     |- warning: static property 'component' is not concurrency-safe because non-'Sendable' type 'VideoSource.ExternalInterfaces' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'component' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
155 | 		public static let composite = ExternalInterfaces(rawValue: 1 << 3)
156 | 		public static let sVideo =    ExternalInterfaces(rawValue: 1 << 4)
/host/spi-builder-workspace/Sources/Atem/VideoSource.swift:155:21: warning: static property 'composite' is not concurrency-safe because non-'Sendable' type 'VideoSource.ExternalInterfaces' may have shared mutable state; this is an error in the Swift 6 language mode
144 | 	}
145 |
146 | 	public struct ExternalInterfaces: OptionSet, SingleValueDescribable {
    |                `- note: consider making struct 'ExternalInterfaces' conform to the 'Sendable' protocol
147 | 		public let rawValue: UInt8
148 | 		public init(rawValue: UInt8) {
    :
153 | 		public static let hdmi =      ExternalInterfaces(rawValue: 1 << 1)
154 | 		public static let component = ExternalInterfaces(rawValue: 1 << 2)
155 | 		public static let composite = ExternalInterfaces(rawValue: 1 << 3)
    |                     |- warning: static property 'composite' is not concurrency-safe because non-'Sendable' type 'VideoSource.ExternalInterfaces' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'composite' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
156 | 		public static let sVideo =    ExternalInterfaces(rawValue: 1 << 4)
157 |
/host/spi-builder-workspace/Sources/Atem/VideoSource.swift:156:21: warning: static property 'sVideo' is not concurrency-safe because non-'Sendable' type 'VideoSource.ExternalInterfaces' may have shared mutable state; this is an error in the Swift 6 language mode
144 | 	}
145 |
146 | 	public struct ExternalInterfaces: OptionSet, SingleValueDescribable {
    |                `- note: consider making struct 'ExternalInterfaces' conform to the 'Sendable' protocol
147 | 		public let rawValue: UInt8
148 | 		public init(rawValue: UInt8) {
    :
154 | 		public static let component = ExternalInterfaces(rawValue: 1 << 2)
155 | 		public static let composite = ExternalInterfaces(rawValue: 1 << 3)
156 | 		public static let sVideo =    ExternalInterfaces(rawValue: 1 << 4)
    |                     |- warning: static property 'sVideo' is not concurrency-safe because non-'Sendable' type 'VideoSource.ExternalInterfaces' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'sVideo' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
157 |
158 | 		public static let none = ExternalInterfaces([])
/host/spi-builder-workspace/Sources/Atem/VideoSource.swift:158:21: warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'VideoSource.ExternalInterfaces' may have shared mutable state; this is an error in the Swift 6 language mode
144 | 	}
145 |
146 | 	public struct ExternalInterfaces: OptionSet, SingleValueDescribable {
    |                `- note: consider making struct 'ExternalInterfaces' conform to the 'Sendable' protocol
147 | 		public let rawValue: UInt8
148 | 		public init(rawValue: UInt8) {
    :
156 | 		public static let sVideo =    ExternalInterfaces(rawValue: 1 << 4)
157 |
158 | 		public static let none = ExternalInterfaces([])
    |                     |- warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'VideoSource.ExternalInterfaces' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'none' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
159 |
160 | 		public func describe() -> String? {
/host/spi-builder-workspace/Sources/Atem/VideoSource.swift:178:21: warning: static property 'auxiliary' is not concurrency-safe because non-'Sendable' type 'VideoSource.RoutingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
170 | 	}
171 |
172 | 	public struct RoutingOptions: OptionSet, SingleValueDescribable {
    |                `- note: consider making struct 'RoutingOptions' conform to the 'Sendable' protocol
173 | 		public let rawValue: UInt8
174 | 		public init(rawValue: UInt8) {
    :
176 | 		}
177 |
178 | 		public static let auxiliary =      RoutingOptions(rawValue: 1 << 0)
    |                     |- warning: static property 'auxiliary' is not concurrency-safe because non-'Sendable' type 'VideoSource.RoutingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'auxiliary' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
179 | 		public static let multiviewer =    RoutingOptions(rawValue: 1 << 1)
180 | 		public static let superSourceArt = RoutingOptions(rawValue: 1 << 2)
/host/spi-builder-workspace/Sources/Atem/VideoSource.swift:179:21: warning: static property 'multiviewer' is not concurrency-safe because non-'Sendable' type 'VideoSource.RoutingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
170 | 	}
171 |
172 | 	public struct RoutingOptions: OptionSet, SingleValueDescribable {
    |                `- note: consider making struct 'RoutingOptions' conform to the 'Sendable' protocol
173 | 		public let rawValue: UInt8
174 | 		public init(rawValue: UInt8) {
    :
177 |
178 | 		public static let auxiliary =      RoutingOptions(rawValue: 1 << 0)
179 | 		public static let multiviewer =    RoutingOptions(rawValue: 1 << 1)
    |                     |- warning: static property 'multiviewer' is not concurrency-safe because non-'Sendable' type 'VideoSource.RoutingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'multiviewer' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
180 | 		public static let superSourceArt = RoutingOptions(rawValue: 1 << 2)
181 | 		public static let superSourceBox = RoutingOptions(rawValue: 1 << 3)
/host/spi-builder-workspace/Sources/Atem/VideoSource.swift:180:21: warning: static property 'superSourceArt' is not concurrency-safe because non-'Sendable' type 'VideoSource.RoutingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
170 | 	}
171 |
172 | 	public struct RoutingOptions: OptionSet, SingleValueDescribable {
    |                `- note: consider making struct 'RoutingOptions' conform to the 'Sendable' protocol
173 | 		public let rawValue: UInt8
174 | 		public init(rawValue: UInt8) {
    :
178 | 		public static let auxiliary =      RoutingOptions(rawValue: 1 << 0)
179 | 		public static let multiviewer =    RoutingOptions(rawValue: 1 << 1)
180 | 		public static let superSourceArt = RoutingOptions(rawValue: 1 << 2)
    |                     |- warning: static property 'superSourceArt' is not concurrency-safe because non-'Sendable' type 'VideoSource.RoutingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'superSourceArt' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
181 | 		public static let superSourceBox = RoutingOptions(rawValue: 1 << 3)
182 | 		public static let keySource =      RoutingOptions(rawValue: 1 << 4)
/host/spi-builder-workspace/Sources/Atem/VideoSource.swift:181:21: warning: static property 'superSourceBox' is not concurrency-safe because non-'Sendable' type 'VideoSource.RoutingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
170 | 	}
171 |
172 | 	public struct RoutingOptions: OptionSet, SingleValueDescribable {
    |                `- note: consider making struct 'RoutingOptions' conform to the 'Sendable' protocol
173 | 		public let rawValue: UInt8
174 | 		public init(rawValue: UInt8) {
    :
179 | 		public static let multiviewer =    RoutingOptions(rawValue: 1 << 1)
180 | 		public static let superSourceArt = RoutingOptions(rawValue: 1 << 2)
181 | 		public static let superSourceBox = RoutingOptions(rawValue: 1 << 3)
    |                     |- warning: static property 'superSourceBox' is not concurrency-safe because non-'Sendable' type 'VideoSource.RoutingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'superSourceBox' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
182 | 		public static let keySource =      RoutingOptions(rawValue: 1 << 4)
183 |
/host/spi-builder-workspace/Sources/Atem/VideoSource.swift:182:21: warning: static property 'keySource' is not concurrency-safe because non-'Sendable' type 'VideoSource.RoutingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
170 | 	}
171 |
172 | 	public struct RoutingOptions: OptionSet, SingleValueDescribable {
    |                `- note: consider making struct 'RoutingOptions' conform to the 'Sendable' protocol
173 | 		public let rawValue: UInt8
174 | 		public init(rawValue: UInt8) {
    :
180 | 		public static let superSourceArt = RoutingOptions(rawValue: 1 << 2)
181 | 		public static let superSourceBox = RoutingOptions(rawValue: 1 << 3)
182 | 		public static let keySource =      RoutingOptions(rawValue: 1 << 4)
    |                     |- warning: static property 'keySource' is not concurrency-safe because non-'Sendable' type 'VideoSource.RoutingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'keySource' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
183 |
184 | 		public func describe() -> String? {
/host/spi-builder-workspace/Sources/Atem/VideoSource.swift:202:21: warning: static property 'me1AndFillSources' is not concurrency-safe because non-'Sendable' type 'VideoSource.MixEffects' may have shared mutable state; this is an error in the Swift 6 language mode
194 | 	}
195 |
196 | 	public struct MixEffects: OptionSet, SingleValueDescribable {
    |                `- note: consider making struct 'MixEffects' conform to the 'Sendable' protocol
197 | 		public let rawValue: UInt8
198 | 		public init(rawValue: UInt8) {
    :
200 | 		}
201 |
202 | 		public static let me1AndFillSources = MixEffects(rawValue: 1 << 0)
    |                     |- warning: static property 'me1AndFillSources' is not concurrency-safe because non-'Sendable' type 'VideoSource.MixEffects' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'me1AndFillSources' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
203 | 		public static let me2AndFillSources = MixEffects(rawValue: 1 << 1)
204 |
/host/spi-builder-workspace/Sources/Atem/VideoSource.swift:203:21: warning: static property 'me2AndFillSources' is not concurrency-safe because non-'Sendable' type 'VideoSource.MixEffects' may have shared mutable state; this is an error in the Swift 6 language mode
194 | 	}
195 |
196 | 	public struct MixEffects: OptionSet, SingleValueDescribable {
    |                `- note: consider making struct 'MixEffects' conform to the 'Sendable' protocol
197 | 		public let rawValue: UInt8
198 | 		public init(rawValue: UInt8) {
    :
201 |
202 | 		public static let me1AndFillSources = MixEffects(rawValue: 1 << 0)
203 | 		public static let me2AndFillSources = MixEffects(rawValue: 1 << 1)
    |                     |- warning: static property 'me2AndFillSources' is not concurrency-safe because non-'Sendable' type 'VideoSource.MixEffects' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'me2AndFillSources' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
204 |
205 | 		public static let none = MixEffects([])
/host/spi-builder-workspace/Sources/Atem/VideoSource.swift:205:21: warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'VideoSource.MixEffects' may have shared mutable state; this is an error in the Swift 6 language mode
194 | 	}
195 |
196 | 	public struct MixEffects: OptionSet, SingleValueDescribable {
    |                `- note: consider making struct 'MixEffects' conform to the 'Sendable' protocol
197 | 		public let rawValue: UInt8
198 | 		public init(rawValue: UInt8) {
    :
203 | 		public static let me2AndFillSources = MixEffects(rawValue: 1 << 1)
204 |
205 | 		public static let none = MixEffects([])
    |                     |- warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'VideoSource.MixEffects' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: add '@MainActor' to make static property 'none' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
206 |
207 | 		public func describe() -> String? {
[275/300] Wrapping AST for Atem for debugging
[277/303] Compiling SourceLabeler connect.swift
[278/313] Compiling SourceLabeler main.swift
[279/313] Compiling SourceLabeler generate grid.swift
[280/313] Compiling SourceLabeler Label.swift
[281/313] Compiling TitleGenerator Renderer.swift
[282/313] Compiling VersionDump main.swift
[283/313] Emitting module VersionDump
[284/314] Compiling TitleGenerator main.swift
[285/314] Compiling TitleGenerator Title.swift
[286/314] Emitting module TitleGenerator
[288/315] Emitting module PreviewSwitcher
[289/315] Compiling PreviewSwitcher main.swift
[290/316] Wrapping AST for VersionDump for debugging
[291/316] Write Objects.LinkFileList
[294/316] Emitting module SourceLabeler
[295/316] Compiling SourceLabeler Analyze grid.swift
[296/317] Emitting module Simulator
[297/317] Compiling Simulator main.swift
[298/318] Wrapping AST for TitleGenerator for debugging
[299/318] Write Objects.LinkFileList
[301/318] Wrapping AST for PreviewSwitcher for debugging
[302/318] Write Objects.LinkFileList
[303/318] Wrapping AST for SourceLabeler for debugging
[304/318] Write Objects.LinkFileList
[305/318] Wrapping AST for Simulator for debugging
[306/318] Write Objects.LinkFileList
[307/318] Linking VersionDump
[308/318] Linking TitleGenerator
[309/318] Linking PreviewSwitcher
[310/318] Linking SourceLabeler
[311/318] Linking Simulator
[313/318] Emitting module MessageDecoder
[314/318] Compiling MessageDecoder IntOperators.swift
[315/318] Compiling MessageDecoder main.swift
[316/319] Wrapping AST for MessageDecoder for debugging
[317/319] Write Objects.LinkFileList
[318/319] Linking MessageDecoder
Build complete! (53.61s)
Build complete.
{
  "dependencies" : [
    {
      "identity" : "swift-nio",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "2.32.3",
            "upper_bound" : "3.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-nio.git"
    }
  ],
  "manifest_display_name" : "Atem",
  "name" : "Atem",
  "path" : "/host/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "Atem",
      "targets" : [
        "Atem"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "AtemAppleDiscovery",
      "targets" : [
        "AtemAppleDiscovery"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "VersionDump",
      "targets" : [
        "VersionDump"
      ],
      "type" : {
        "executable" : null
      }
    },
    {
      "name" : "Simulator",
      "targets" : [
        "Simulator"
      ],
      "type" : {
        "executable" : null
      }
    },
    {
      "name" : "TitleGenerator",
      "targets" : [
        "TitleGenerator"
      ],
      "type" : {
        "executable" : null
      }
    },
    {
      "name" : "PreviewSwitcher",
      "targets" : [
        "PreviewSwitcher"
      ],
      "type" : {
        "executable" : null
      }
    },
    {
      "name" : "SourceLabeler",
      "targets" : [
        "SourceLabeler"
      ],
      "type" : {
        "executable" : null
      }
    },
    {
      "name" : "MessageDecoder",
      "targets" : [
        "MessageDecoder"
      ],
      "type" : {
        "executable" : null
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "VersionDump",
      "module_type" : "SwiftTarget",
      "name" : "VersionDump",
      "path" : "Sources/VersionDump",
      "product_memberships" : [
        "VersionDump"
      ],
      "sources" : [
        "main.swift"
      ],
      "target_dependencies" : [
        "Atem"
      ],
      "type" : "executable"
    },
    {
      "c99name" : "TitleGenerator",
      "module_type" : "SwiftTarget",
      "name" : "TitleGenerator",
      "path" : "Sources/TitleGenerator",
      "product_memberships" : [
        "TitleGenerator"
      ],
      "sources" : [
        "Renderer.swift",
        "Title.swift",
        "main.swift"
      ],
      "target_dependencies" : [
        "Atem"
      ],
      "type" : "executable"
    },
    {
      "c99name" : "SourceLabeler",
      "module_type" : "SwiftTarget",
      "name" : "SourceLabeler",
      "path" : "Sources/SourceLabeler",
      "product_memberships" : [
        "SourceLabeler"
      ],
      "sources" : [
        "Analyze grid.swift",
        "Label.swift",
        "connect.swift",
        "generate grid.swift",
        "main.swift"
      ],
      "target_dependencies" : [
        "Atem"
      ],
      "type" : "executable"
    },
    {
      "c99name" : "Simulator",
      "module_type" : "SwiftTarget",
      "name" : "Simulator",
      "path" : "Sources/Simulator",
      "product_memberships" : [
        "Simulator"
      ],
      "sources" : [
        "main.swift"
      ],
      "target_dependencies" : [
        "Atem"
      ],
      "type" : "executable"
    },
    {
      "c99name" : "PreviewSwitcher",
      "module_type" : "SwiftTarget",
      "name" : "PreviewSwitcher",
      "path" : "Sources/PreviewSwitcher",
      "product_memberships" : [
        "PreviewSwitcher"
      ],
      "sources" : [
        "main.swift"
      ],
      "target_dependencies" : [
        "Atem"
      ],
      "type" : "executable"
    },
    {
      "c99name" : "MessageDecoder",
      "module_type" : "SwiftTarget",
      "name" : "MessageDecoder",
      "path" : "Sources/MessageDecoder",
      "product_memberships" : [
        "MessageDecoder"
      ],
      "sources" : [
        "IntOperators.swift",
        "main.swift"
      ],
      "target_dependencies" : [
        "Atem"
      ],
      "type" : "executable"
    },
    {
      "c99name" : "AtemTests",
      "module_type" : "SwiftTarget",
      "name" : "AtemTests",
      "path" : "Tests/AtemTests",
      "sources" : [
        "Atem_Tests.swift",
        "ColorConversionTests.swift",
        "DataTransferMessagesTests.swift",
        "EnvelopeWrapper.swift",
        "MessageTests.swift"
      ],
      "target_dependencies" : [
        "Atem"
      ],
      "type" : "test"
    },
    {
      "c99name" : "AtemAppleDiscovery",
      "module_type" : "SwiftTarget",
      "name" : "AtemAppleDiscovery",
      "path" : "Sources/AtemAppleDiscovery",
      "product_dependencies" : [
        "NIO"
      ],
      "product_memberships" : [
        "AtemAppleDiscovery"
      ],
      "sources" : [
        "NetService.swift",
        "Network-framework.swift"
      ],
      "type" : "library"
    },
    {
      "c99name" : "Atem",
      "module_type" : "SwiftTarget",
      "name" : "Atem",
      "path" : "Sources/Atem",
      "product_dependencies" : [
        "NIO"
      ],
      "product_memberships" : [
        "Atem",
        "VersionDump",
        "Simulator",
        "TitleGenerator",
        "PreviewSwitcher",
        "SourceLabeler",
        "MessageDecoder"
      ],
      "sources" : [
        "Connection.swift",
        "Controller.swift",
        "MediaConverter/422 ABLARL YUV.swift",
        "MediaConverter/Decode input labels.swift",
        "MediaConverter/RunLength.swift",
        "MediaConverter/accelerate.swift",
        "MediaPool.swift",
        "MediaTransferManager.swift",
        "MessageHandler.swift",
        "Messages/Actions.swift",
        "Messages/Configuration.swift",
        "Messages/DataTransfer.swift",
        "Messages/Message.swift",
        "Model.swift",
        "Packet.swift",
        "PacketTypes.swift",
        "Switcher.swift",
        "TallyLight.swift",
        "Utilities/ArrayOperations.swift",
        "Utilities/EventLoopGroup.swift",
        "Utilities/HandlerWithTimer.swift",
        "Utilities/InitialSwitcherStateMessages.swift",
        "Utilities/IntOperators.swift",
        "Utilities/OptionSet+elements.swift",
        "Utilities/RawRepresentable+decode.swift",
        "VideoSource.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.5"
}
basic-6.1-latest: Pulling from finestructure/spi-images
Digest: sha256:3bdcac04179f4ed3e5b8e9dbd6e74bbf5ebc0f4fde48bbaad7d1e5c757e65bcb
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.1-latest
Done.