The Swift Package Index logo.Swift Package Index

Has it really been five years since Swift Package Index launched? Read our anniversary blog post!

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.