The Swift Package Index logo.Swift Package Index

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

Build Information

Successful build of StreamDeck, reference 0.5.1 (f6d1a5), with Swift 6.1 for macOS (SPM) on 29 Apr 2025 16:33:14 UTC.

Swift 6 data race errors: 344

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -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

Build Log

45 | 	///   - event: The `KeyEvent` which is passed to handler.
46 | 	func beginTimer<A: Action>(for action: A, event: ActionEvent<KeyEvent<A.Settings>>) {
   |                  `- note: consider making generic parameter 'A' conform to the 'Sendable' protocol
47 |
48 | 		log.log("Beginning long press timer for \(action.context, privacy: .public)")
   :
50 | 		// Begin the long-press timer
51 | 		let timer = Timer(timeInterval: action.longPressDuration, repeats: false) { _ in
52 | 			log.log("Long key press timer has fired for \(action.context, privacy: .public)")
   |                                                  `- warning: capture of 'action' with non-sendable type 'A' in a '@Sendable' closure
53 | 			self.lastState[action.context] = true
54 | 			action.longKeyPress(device: event.device, payload: event.payload)
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/LongPress.swift:53:4: warning: capture of 'self' with non-sendable type 'TimerKeeper' in a '@Sendable' closure
12 |
13 | /// A class that stores long press timers for actions.
14 | class TimerKeeper {
   |       `- note: class 'TimerKeeper' does not conform to the 'Sendable' protocol
15 |
16 | 	/// The shared `TimerKeeper` instance.
   :
51 | 		let timer = Timer(timeInterval: action.longPressDuration, repeats: false) { _ in
52 | 			log.log("Long key press timer has fired for \(action.context, privacy: .public)")
53 | 			self.lastState[action.context] = true
   |    `- warning: capture of 'self' with non-sendable type 'TimerKeeper' in a '@Sendable' closure
54 | 			action.longKeyPress(device: event.device, payload: event.payload)
55 | 		}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/LongPress.swift:54:32: warning: capture of 'event' with non-sendable type 'ActionEvent<KeyEvent<A.Settings>>' in a '@Sendable' closure
52 | 			log.log("Long key press timer has fired for \(action.context, privacy: .public)")
53 | 			self.lastState[action.context] = true
54 | 			action.longKeyPress(device: event.device, payload: event.payload)
   |                                `- warning: capture of 'event' with non-sendable type 'ActionEvent<KeyEvent<A.Settings>>' in a '@Sendable' closure
55 | 		}
56 |
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/Events/Events.swift:86:15: note: consider making generic struct 'ActionEvent' conform to the 'Sendable' protocol
 84 |
 85 | /// Events sent by the server in response to actions.
 86 | public struct ActionEvent<Payload: Decodable>: Decodable {
    |               `- note: consider making generic struct 'ActionEvent' conform to the 'Sendable' protocol
 87 |
 88 | 	/// The action's unique identifier. If your plugin supports multiple actions, you should use this value to see which action was triggered.
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/LongPress.swift:52:50: warning: implicit capture of 'action' requires that 'A' conforms to 'Sendable'; this is an error in the Swift 6 language mode
44 | 	///   - action: The `Action`.
45 | 	///   - event: The `KeyEvent` which is passed to handler.
46 | 	func beginTimer<A: Action>(for action: A, event: ActionEvent<KeyEvent<A.Settings>>) {
   |                  `- note: consider making generic parameter 'A' conform to the 'Sendable' protocol
47 |
48 | 		log.log("Beginning long press timer for \(action.context, privacy: .public)")
   :
50 | 		// Begin the long-press timer
51 | 		let timer = Timer(timeInterval: action.longPressDuration, repeats: false) { _ in
52 | 			log.log("Long key press timer has fired for \(action.context, privacy: .public)")
   |                                                  `- warning: implicit capture of 'action' requires that 'A' conforms to 'Sendable'; this is an error in the Swift 6 language mode
53 | 			self.lastState[action.context] = true
54 | 			action.longKeyPress(device: event.device, payload: event.payload)
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/LongPress.swift:70:51: warning: capture of 'action' with non-sendable type 'A' in a '@Sendable' closure
62 | 	///   - action: The `Action`.
63 | 	///   - event: The `KeyEvent` which is passed to handler.
64 | 	func beginTimer<A: Action>(for action: A, event: ActionEvent<EncoderPressEvent<A.Settings>>) {
   |                  `- note: consider making generic parameter 'A' conform to the 'Sendable' protocol
65 |
66 | 		log.log("Beginning long press timer for \(action.context, privacy: .public)")
   :
68 | 		// Begin the long-press timer
69 | 		let timer = Timer(timeInterval: action.longPressDuration, repeats: false) { _ in
70 | 			log.log("Long dial press timer has fired for \(action.context, privacy: .public)")
   |                                                   `- warning: capture of 'action' with non-sendable type 'A' in a '@Sendable' closure
71 | 			self.lastState[action.context] = true
72 | 			action.longDialPress(device: event.device, payload: event.payload)
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/LongPress.swift:71:4: warning: capture of 'self' with non-sendable type 'TimerKeeper' in a '@Sendable' closure
12 |
13 | /// A class that stores long press timers for actions.
14 | class TimerKeeper {
   |       `- note: class 'TimerKeeper' does not conform to the 'Sendable' protocol
15 |
16 | 	/// The shared `TimerKeeper` instance.
   :
69 | 		let timer = Timer(timeInterval: action.longPressDuration, repeats: false) { _ in
70 | 			log.log("Long dial press timer has fired for \(action.context, privacy: .public)")
71 | 			self.lastState[action.context] = true
   |    `- warning: capture of 'self' with non-sendable type 'TimerKeeper' in a '@Sendable' closure
72 | 			action.longDialPress(device: event.device, payload: event.payload)
73 | 		}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/LongPress.swift:72:33: warning: capture of 'event' with non-sendable type 'ActionEvent<EncoderPressEvent<A.Settings>>' in a '@Sendable' closure
70 | 			log.log("Long dial press timer has fired for \(action.context, privacy: .public)")
71 | 			self.lastState[action.context] = true
72 | 			action.longDialPress(device: event.device, payload: event.payload)
   |                                 `- warning: capture of 'event' with non-sendable type 'ActionEvent<EncoderPressEvent<A.Settings>>' in a '@Sendable' closure
73 | 		}
74 |
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/Events/Events.swift:86:15: note: consider making generic struct 'ActionEvent' conform to the 'Sendable' protocol
 84 |
 85 | /// Events sent by the server in response to actions.
 86 | public struct ActionEvent<Payload: Decodable>: Decodable {
    |               `- note: consider making generic struct 'ActionEvent' conform to the 'Sendable' protocol
 87 |
 88 | 	/// The action's unique identifier. If your plugin supports multiple actions, you should use this value to see which action was triggered.
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/LongPress.swift:70:51: warning: implicit capture of 'action' requires that 'A' conforms to 'Sendable'; this is an error in the Swift 6 language mode
62 | 	///   - action: The `Action`.
63 | 	///   - event: The `KeyEvent` which is passed to handler.
64 | 	func beginTimer<A: Action>(for action: A, event: ActionEvent<EncoderPressEvent<A.Settings>>) {
   |                  `- note: consider making generic parameter 'A' conform to the 'Sendable' protocol
65 |
66 | 		log.log("Beginning long press timer for \(action.context, privacy: .public)")
   :
68 | 		// Begin the long-press timer
69 | 		let timer = Timer(timeInterval: action.longPressDuration, repeats: false) { _ in
70 | 			log.log("Long dial press timer has fired for \(action.context, privacy: .public)")
   |                                                   `- warning: implicit capture of 'action' requires that 'A' conforms to 'Sendable'; this is an error in the Swift 6 language mode
71 | 			self.lastState[action.context] = true
72 | 			action.longDialPress(device: event.device, payload: event.payload)
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/StreamDeckError.swift:14:7: warning: associated value 'invalidJSON' of 'Sendable'-conforming enum 'StreamDeckError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
12 |
13 | 	/// The JSON for an event is invalid.
14 | 	case invalidJSON(String, [String: Any])
   |       `- warning: associated value 'invalidJSON' of 'Sendable'-conforming enum 'StreamDeckError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
15 |
16 | 	/// The UUID has been used more than once.
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/LongPress.swift:17:13: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'TimerKeeper' may have shared mutable state; this is an error in the Swift 6 language mode
12 |
13 | /// A class that stores long press timers for actions.
14 | class TimerKeeper {
   |       `- note: class 'TimerKeeper' does not conform to the 'Sendable' protocol
15 |
16 | 	/// The shared `TimerKeeper` instance.
17 | 	static let shared = TimerKeeper()
   |             |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'TimerKeeper' may have shared mutable state; this is an error in the Swift 6 language mode
   |             |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
   |             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
18 |
19 | 	/// Times that have been set for a specific action instance.
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/LongPress.swift:52:50: warning: capture of 'action' with non-sendable type 'A' in a '@Sendable' closure
44 | 	///   - action: The `Action`.
45 | 	///   - event: The `KeyEvent` which is passed to handler.
46 | 	func beginTimer<A: Action>(for action: A, event: ActionEvent<KeyEvent<A.Settings>>) {
   |                  `- note: consider making generic parameter 'A' conform to the 'Sendable' protocol
47 |
48 | 		log.log("Beginning long press timer for \(action.context, privacy: .public)")
   :
50 | 		// Begin the long-press timer
51 | 		let timer = Timer(timeInterval: action.longPressDuration, repeats: false) { _ in
52 | 			log.log("Long key press timer has fired for \(action.context, privacy: .public)")
   |                                                  `- warning: capture of 'action' with non-sendable type 'A' in a '@Sendable' closure
53 | 			self.lastState[action.context] = true
54 | 			action.longKeyPress(device: event.device, payload: event.payload)
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/LongPress.swift:53:4: warning: capture of 'self' with non-sendable type 'TimerKeeper' in a '@Sendable' closure
12 |
13 | /// A class that stores long press timers for actions.
14 | class TimerKeeper {
   |       `- note: class 'TimerKeeper' does not conform to the 'Sendable' protocol
15 |
16 | 	/// The shared `TimerKeeper` instance.
   :
51 | 		let timer = Timer(timeInterval: action.longPressDuration, repeats: false) { _ in
52 | 			log.log("Long key press timer has fired for \(action.context, privacy: .public)")
53 | 			self.lastState[action.context] = true
   |    `- warning: capture of 'self' with non-sendable type 'TimerKeeper' in a '@Sendable' closure
54 | 			action.longKeyPress(device: event.device, payload: event.payload)
55 | 		}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/LongPress.swift:54:32: warning: capture of 'event' with non-sendable type 'ActionEvent<KeyEvent<A.Settings>>' in a '@Sendable' closure
52 | 			log.log("Long key press timer has fired for \(action.context, privacy: .public)")
53 | 			self.lastState[action.context] = true
54 | 			action.longKeyPress(device: event.device, payload: event.payload)
   |                                `- warning: capture of 'event' with non-sendable type 'ActionEvent<KeyEvent<A.Settings>>' in a '@Sendable' closure
55 | 		}
56 |
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/Events/Events.swift:86:15: note: consider making generic struct 'ActionEvent' conform to the 'Sendable' protocol
 84 |
 85 | /// Events sent by the server in response to actions.
 86 | public struct ActionEvent<Payload: Decodable>: Decodable {
    |               `- note: consider making generic struct 'ActionEvent' conform to the 'Sendable' protocol
 87 |
 88 | 	/// The action's unique identifier. If your plugin supports multiple actions, you should use this value to see which action was triggered.
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/LongPress.swift:52:50: warning: implicit capture of 'action' requires that 'A' conforms to 'Sendable'; this is an error in the Swift 6 language mode
44 | 	///   - action: The `Action`.
45 | 	///   - event: The `KeyEvent` which is passed to handler.
46 | 	func beginTimer<A: Action>(for action: A, event: ActionEvent<KeyEvent<A.Settings>>) {
   |                  `- note: consider making generic parameter 'A' conform to the 'Sendable' protocol
47 |
48 | 		log.log("Beginning long press timer for \(action.context, privacy: .public)")
   :
50 | 		// Begin the long-press timer
51 | 		let timer = Timer(timeInterval: action.longPressDuration, repeats: false) { _ in
52 | 			log.log("Long key press timer has fired for \(action.context, privacy: .public)")
   |                                                  `- warning: implicit capture of 'action' requires that 'A' conforms to 'Sendable'; this is an error in the Swift 6 language mode
53 | 			self.lastState[action.context] = true
54 | 			action.longKeyPress(device: event.device, payload: event.payload)
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/LongPress.swift:70:51: warning: capture of 'action' with non-sendable type 'A' in a '@Sendable' closure
62 | 	///   - action: The `Action`.
63 | 	///   - event: The `KeyEvent` which is passed to handler.
64 | 	func beginTimer<A: Action>(for action: A, event: ActionEvent<EncoderPressEvent<A.Settings>>) {
   |                  `- note: consider making generic parameter 'A' conform to the 'Sendable' protocol
65 |
66 | 		log.log("Beginning long press timer for \(action.context, privacy: .public)")
   :
68 | 		// Begin the long-press timer
69 | 		let timer = Timer(timeInterval: action.longPressDuration, repeats: false) { _ in
70 | 			log.log("Long dial press timer has fired for \(action.context, privacy: .public)")
   |                                                   `- warning: capture of 'action' with non-sendable type 'A' in a '@Sendable' closure
71 | 			self.lastState[action.context] = true
72 | 			action.longDialPress(device: event.device, payload: event.payload)
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/LongPress.swift:71:4: warning: capture of 'self' with non-sendable type 'TimerKeeper' in a '@Sendable' closure
12 |
13 | /// A class that stores long press timers for actions.
14 | class TimerKeeper {
   |       `- note: class 'TimerKeeper' does not conform to the 'Sendable' protocol
15 |
16 | 	/// The shared `TimerKeeper` instance.
   :
69 | 		let timer = Timer(timeInterval: action.longPressDuration, repeats: false) { _ in
70 | 			log.log("Long dial press timer has fired for \(action.context, privacy: .public)")
71 | 			self.lastState[action.context] = true
   |    `- warning: capture of 'self' with non-sendable type 'TimerKeeper' in a '@Sendable' closure
72 | 			action.longDialPress(device: event.device, payload: event.payload)
73 | 		}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/LongPress.swift:72:33: warning: capture of 'event' with non-sendable type 'ActionEvent<EncoderPressEvent<A.Settings>>' in a '@Sendable' closure
70 | 			log.log("Long dial press timer has fired for \(action.context, privacy: .public)")
71 | 			self.lastState[action.context] = true
72 | 			action.longDialPress(device: event.device, payload: event.payload)
   |                                 `- warning: capture of 'event' with non-sendable type 'ActionEvent<EncoderPressEvent<A.Settings>>' in a '@Sendable' closure
73 | 		}
74 |
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/Events/Events.swift:86:15: note: consider making generic struct 'ActionEvent' conform to the 'Sendable' protocol
 84 |
 85 | /// Events sent by the server in response to actions.
 86 | public struct ActionEvent<Payload: Decodable>: Decodable {
    |               `- note: consider making generic struct 'ActionEvent' conform to the 'Sendable' protocol
 87 |
 88 | 	/// The action's unique identifier. If your plugin supports multiple actions, you should use this value to see which action was triggered.
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/LongPress.swift:70:51: warning: implicit capture of 'action' requires that 'A' conforms to 'Sendable'; this is an error in the Swift 6 language mode
62 | 	///   - action: The `Action`.
63 | 	///   - event: The `KeyEvent` which is passed to handler.
64 | 	func beginTimer<A: Action>(for action: A, event: ActionEvent<EncoderPressEvent<A.Settings>>) {
   |                  `- note: consider making generic parameter 'A' conform to the 'Sendable' protocol
65 |
66 | 		log.log("Beginning long press timer for \(action.context, privacy: .public)")
   :
68 | 		// Begin the long-press timer
69 | 		let timer = Timer(timeInterval: action.longPressDuration, repeats: false) { _ in
70 | 			log.log("Long dial press timer has fired for \(action.context, privacy: .public)")
   |                                                   `- warning: implicit capture of 'action' requires that 'A' conforms to 'Sendable'; this is an error in the Swift 6 language mode
71 | 			self.lastState[action.context] = true
72 | 			action.longDialPress(device: event.device, payload: event.payload)
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/StreamDeckError.swift:14:7: warning: associated value 'invalidJSON' of 'Sendable'-conforming enum 'StreamDeckError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
12 |
13 | 	/// The JSON for an event is invalid.
14 | 	case invalidJSON(String, [String: Any])
   |       `- warning: associated value 'invalidJSON' of 'Sendable'-conforming enum 'StreamDeckError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
15 |
16 | 	/// The UUID has been used more than once.
[412/424] Compiling StreamDeck Coordinates.swift
[413/424] Compiling StreamDeck Fonts.swift
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:25:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 23 | 	@available(*, deprecated, message: "Use the Settings API.")
 24 | 	func setSettings(to settings: [String: Any]) {
 25 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 26 | 			await PluginCommunication.shared.sendEvent(.setSettings,
 27 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
 28 | 													   payload: settings)
    |                          `- note: closure captures non-Sendable 'settings'
 29 | 		}
 30 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:26:37: warning: sending 'settings.some' risks causing data races; this is an error in the Swift 6 language mode
 24 | 	func setSettings(to settings: [String: Any]) {
 25 | 		Task {
 26 | 			await PluginCommunication.shared.sendEvent(.setSettings,
    |                                     |- warning: sending 'settings.some' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated 'settings.some' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
 27 | 													   context: context,
 28 | 													   payload: settings)
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:37:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 35 | 	///   - settings: A json object which is persistently saved for the action's instance.
 36 | 	func setSettings(to settings: Settings) {
 37 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 38 | 			await PluginCommunication.shared.sendEvent(.setSettings,
 39 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
 40 | 													   payload: settings)
    |                          `- note: closure captures non-Sendable 'settings'
 41 | 		}
 42 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:38:37: warning: sending value of non-Sendable type 'Self.Settings' risks causing data races; this is an error in the Swift 6 language mode
 36 | 	func setSettings(to settings: Settings) {
 37 | 		Task {
 38 | 			await PluginCommunication.shared.sendEvent(.setSettings,
    |                                     |- warning: sending value of non-Sendable type 'Self.Settings' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated value of non-Sendable type 'Self.Settings' to actor-isolated callee risks causing races in between task-isolated and actor-isolated uses
 39 | 													   context: context,
 40 | 													   payload: settings)
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:47:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 45 | 	///   - context: An opaque value identifying the instance's action or Property Inspector.
 46 | 	func getSettings() {
 47 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 48 | 			await PluginCommunication.shared.sendEvent(.getSettings,
 49 | 													   context: context,
    |                          `- note: closure captures 'self' which is accessible to code in the current task
 50 | 													   payload: nil)
 51 | 		}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:92:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 90 | 	///   - state: A 0-based integer value representing the state of an action with multiple states. This is an optional parameter. If not specified, the title is set to all states.
 91 | 	func setTitle(to title: String?, target: Target? = nil, state: Int? = nil) {
 92 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 93 | 			var payload: [String: Any] = [:]
 94 |
 95 | 			payload["title"] = title
 96 | 			payload["target"] = target?.rawValue
    |                        `- note: closure captures non-Sendable 'target'
 97 | 			payload["state"] = state
 98 |
 99 | 			await PluginCommunication.shared.sendEvent(.setTitle,
100 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
101 | 													   payload: payload)
102 | 		}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:115:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
113 | 	///   - state: A 0-based integer value representing the state of an action with multiple states. This is an optional parameter. If not specified, the image is set to all states.
114 | 	func setImage(to image: NSImage?, target: Target? = nil, state: Int? = nil) {
115 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
116 | 			var payload: [String: Any] = [:]
117 |
118 | 			payload["image"] = image?.base64String
    |                       `- note: closure captures non-Sendable 'image'
119 | 			payload["target"] = target?.rawValue
    |                        `- note: closure captures non-Sendable 'target'
120 | 			payload["state"] = state
121 |
122 |
123 | 			await PluginCommunication.shared.sendEvent(.setImage,
124 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
125 | 													   payload: payload)
126 | 		}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:165:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
163 | 	///   - state: A 0-based integer value representing the state of an action with multiple states. This is an optional parameter. If not specified, the image is set to all states.
164 | 	func setImage(toSVG svg: String?, target: Target? = nil, state: Int? = nil) {
165 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
166 | 			var payload: [String: Any] = [:]
167 |
    :
170 | 			}
171 |
172 | 			payload["target"] = target?.rawValue
    |                        `- note: closure captures non-Sendable 'target'
173 | 			payload["state"] = state
174 |
175 |
176 | 			await PluginCommunication.shared.sendEvent(.setImage,
177 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
178 | 													   payload: payload)
179 | 		}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:185:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
183 | 	/// - Parameter context: An opaque value identifying the instance's action or Property Inspector.
184 | 	func showAlert() {
185 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
186 | 			await PluginCommunication.shared.sendEvent(.showAlert, context: context, payload: nil)
    |                                                                    `- note: closure captures 'self' which is accessible to code in the current task
187 | 		}
188 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:193:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
191 | 	/// - Parameter context: An opaque value identifying the instance's action or Property Inspector.
192 | 	func showOk() {
193 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
194 | 			await PluginCommunication.shared.sendEvent(.showOK, context: context, payload: nil)
    |                                                                 `- note: closure captures 'self' which is accessible to code in the current task
195 | 		}
196 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:205:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
203 | 		let payload: [String: Any] = ["state": state]
204 |
205 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
206 | 			await PluginCommunication.shared.sendEvent(.setState,
207 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
208 | 													   payload: payload)
    |                          `- note: closure captures non-Sendable 'payload'
209 | 		}
210 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:206:37: warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
204 |
205 | 		Task {
206 | 			await PluginCommunication.shared.sendEvent(.setState,
    |                                     |- warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated 'payload.some' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
207 | 													   context: context,
208 | 													   payload: payload)
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:218:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
216 | 	///   - payload: A json object that will be received by the Property Inspector.
217 | 	func sendToPropertyInspector(payload: [String: Any]) {
218 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
219 | 			await PluginCommunication.shared.sendEvent(.sendToPropertyInspector,
220 | 													   action: uuid,
    |                         `- note: closure captures non-Sendable 'self'
221 | 													   context: context,
222 | 													   payload: payload)
    |                          `- note: closure captures non-Sendable 'payload'
223 | 		}
224 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:219:37: warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
217 | 	func sendToPropertyInspector(payload: [String: Any]) {
218 | 		Task {
219 | 			await PluginCommunication.shared.sendEvent(.sendToPropertyInspector,
    |                                     |- warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated 'payload.some' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
220 | 													   action: uuid,
221 | 													   context: context,
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:229:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
227 | 	/// The plugin can send a `setFeedback` event to the Stream Deck application to dynamically change properties of items on the Stream Deck + touch display layout.
228 | 	func setFeedback(_ payload: [String: Any]) {
229 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
230 | 			await PluginCommunication.shared.sendEvent(.setFeedback,
231 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
232 | 													   payload: payload)
    |                          `- note: closure captures non-Sendable 'payload'
233 | 		}
234 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:230:37: warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
228 | 	func setFeedback(_ payload: [String: Any]) {
229 | 		Task {
230 | 			await PluginCommunication.shared.sendEvent(.setFeedback,
    |                                     |- warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated 'payload.some' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
231 | 													   context: context,
232 | 													   payload: payload)
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:243:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
241 | 		let payload: [String: Any] = ["layout": layout.id]
242 |
243 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
244 | 			await PluginCommunication.shared.sendEvent(.setFeedbackLayout,
245 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
246 | 													   payload: payload)
    |                          `- note: closure captures non-Sendable 'payload'
247 | 		}
248 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:244:37: warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
242 |
243 | 		Task {
244 | 			await PluginCommunication.shared.sendEvent(.setFeedbackLayout,
    |                                     |- warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated 'payload.some' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
245 | 													   context: context,
246 | 													   payload: payload)
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:258:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
256 | 	/// - Parameter triggerDescription: The new `TriggerDescription` or `nil` to reset.
257 | 	func setTriggerDescription(_ triggerDescription: TriggerDescription?) {
258 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
259 | 			await PluginCommunication.shared.sendEvent(.setTriggerDescription,
260 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
261 | 													   payload: triggerDescription)
    |                          `- note: closure captures non-Sendable 'triggerDescription'
262 | 		}
263 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:259:37: warning: sending 'triggerDescription' risks causing data races; this is an error in the Swift 6 language mode
257 | 	func setTriggerDescription(_ triggerDescription: TriggerDescription?) {
258 | 		Task {
259 | 			await PluginCommunication.shared.sendEvent(.setTriggerDescription,
    |                                     |- warning: sending 'triggerDescription' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated 'triggerDescription' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
260 | 													   context: context,
261 | 													   payload: triggerDescription)
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:25:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 23 | 	@available(*, deprecated, message: "Use the Settings API.")
 24 | 	func setSettings(to settings: [String: Any]) {
 25 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 26 | 			await PluginCommunication.shared.sendEvent(.setSettings,
 27 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
 28 | 													   payload: settings)
    |                          `- note: closure captures non-Sendable 'settings'
 29 | 		}
 30 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:26:37: warning: sending 'settings.some' risks causing data races; this is an error in the Swift 6 language mode
 24 | 	func setSettings(to settings: [String: Any]) {
 25 | 		Task {
 26 | 			await PluginCommunication.shared.sendEvent(.setSettings,
    |                                     |- warning: sending 'settings.some' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated 'settings.some' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
 27 | 													   context: context,
 28 | 													   payload: settings)
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:37:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 35 | 	///   - settings: A json object which is persistently saved for the action's instance.
 36 | 	func setSettings(to settings: Settings) {
 37 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 38 | 			await PluginCommunication.shared.sendEvent(.setSettings,
 39 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
 40 | 													   payload: settings)
    |                          `- note: closure captures non-Sendable 'settings'
 41 | 		}
 42 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:38:37: warning: sending value of non-Sendable type 'Self.Settings' risks causing data races; this is an error in the Swift 6 language mode
 36 | 	func setSettings(to settings: Settings) {
 37 | 		Task {
 38 | 			await PluginCommunication.shared.sendEvent(.setSettings,
    |                                     |- warning: sending value of non-Sendable type 'Self.Settings' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated value of non-Sendable type 'Self.Settings' to actor-isolated callee risks causing races in between task-isolated and actor-isolated uses
 39 | 													   context: context,
 40 | 													   payload: settings)
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:47:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 45 | 	///   - context: An opaque value identifying the instance's action or Property Inspector.
 46 | 	func getSettings() {
 47 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 48 | 			await PluginCommunication.shared.sendEvent(.getSettings,
 49 | 													   context: context,
    |                          `- note: closure captures 'self' which is accessible to code in the current task
 50 | 													   payload: nil)
 51 | 		}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:92:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 90 | 	///   - state: A 0-based integer value representing the state of an action with multiple states. This is an optional parameter. If not specified, the title is set to all states.
 91 | 	func setTitle(to title: String?, target: Target? = nil, state: Int? = nil) {
 92 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 93 | 			var payload: [String: Any] = [:]
 94 |
 95 | 			payload["title"] = title
 96 | 			payload["target"] = target?.rawValue
    |                        `- note: closure captures non-Sendable 'target'
 97 | 			payload["state"] = state
 98 |
 99 | 			await PluginCommunication.shared.sendEvent(.setTitle,
100 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
101 | 													   payload: payload)
102 | 		}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:115:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
113 | 	///   - state: A 0-based integer value representing the state of an action with multiple states. This is an optional parameter. If not specified, the image is set to all states.
114 | 	func setImage(to image: NSImage?, target: Target? = nil, state: Int? = nil) {
115 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
116 | 			var payload: [String: Any] = [:]
117 |
118 | 			payload["image"] = image?.base64String
    |                       `- note: closure captures non-Sendable 'image'
119 | 			payload["target"] = target?.rawValue
    |                        `- note: closure captures non-Sendable 'target'
120 | 			payload["state"] = state
121 |
122 |
123 | 			await PluginCommunication.shared.sendEvent(.setImage,
124 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
125 | 													   payload: payload)
126 | 		}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:165:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
163 | 	///   - state: A 0-based integer value representing the state of an action with multiple states. This is an optional parameter. If not specified, the image is set to all states.
164 | 	func setImage(toSVG svg: String?, target: Target? = nil, state: Int? = nil) {
165 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
166 | 			var payload: [String: Any] = [:]
167 |
    :
170 | 			}
171 |
172 | 			payload["target"] = target?.rawValue
    |                        `- note: closure captures non-Sendable 'target'
173 | 			payload["state"] = state
174 |
175 |
176 | 			await PluginCommunication.shared.sendEvent(.setImage,
177 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
178 | 													   payload: payload)
179 | 		}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:185:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
183 | 	/// - Parameter context: An opaque value identifying the instance's action or Property Inspector.
184 | 	func showAlert() {
185 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
186 | 			await PluginCommunication.shared.sendEvent(.showAlert, context: context, payload: nil)
    |                                                                    `- note: closure captures 'self' which is accessible to code in the current task
187 | 		}
188 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:193:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
191 | 	/// - Parameter context: An opaque value identifying the instance's action or Property Inspector.
192 | 	func showOk() {
193 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
194 | 			await PluginCommunication.shared.sendEvent(.showOK, context: context, payload: nil)
    |                                                                 `- note: closure captures 'self' which is accessible to code in the current task
195 | 		}
196 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:205:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
203 | 		let payload: [String: Any] = ["state": state]
204 |
205 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
206 | 			await PluginCommunication.shared.sendEvent(.setState,
207 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
208 | 													   payload: payload)
    |                          `- note: closure captures non-Sendable 'payload'
209 | 		}
210 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:206:37: warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
204 |
205 | 		Task {
206 | 			await PluginCommunication.shared.sendEvent(.setState,
    |                                     |- warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated 'payload.some' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
207 | 													   context: context,
208 | 													   payload: payload)
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:218:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
216 | 	///   - payload: A json object that will be received by the Property Inspector.
217 | 	func sendToPropertyInspector(payload: [String: Any]) {
218 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
219 | 			await PluginCommunication.shared.sendEvent(.sendToPropertyInspector,
220 | 													   action: uuid,
    |                         `- note: closure captures non-Sendable 'self'
221 | 													   context: context,
222 | 													   payload: payload)
    |                          `- note: closure captures non-Sendable 'payload'
223 | 		}
224 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:219:37: warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
217 | 	func sendToPropertyInspector(payload: [String: Any]) {
218 | 		Task {
219 | 			await PluginCommunication.shared.sendEvent(.sendToPropertyInspector,
    |                                     |- warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated 'payload.some' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
220 | 													   action: uuid,
221 | 													   context: context,
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:229:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
227 | 	/// The plugin can send a `setFeedback` event to the Stream Deck application to dynamically change properties of items on the Stream Deck + touch display layout.
228 | 	func setFeedback(_ payload: [String: Any]) {
229 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
230 | 			await PluginCommunication.shared.sendEvent(.setFeedback,
231 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
232 | 													   payload: payload)
    |                          `- note: closure captures non-Sendable 'payload'
233 | 		}
234 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:230:37: warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
228 | 	func setFeedback(_ payload: [String: Any]) {
229 | 		Task {
230 | 			await PluginCommunication.shared.sendEvent(.setFeedback,
    |                                     |- warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated 'payload.some' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
231 | 													   context: context,
232 | 													   payload: payload)
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:243:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
241 | 		let payload: [String: Any] = ["layout": layout.id]
242 |
243 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
244 | 			await PluginCommunication.shared.sendEvent(.setFeedbackLayout,
245 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
246 | 													   payload: payload)
    |                          `- note: closure captures non-Sendable 'payload'
247 | 		}
248 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:244:37: warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
242 |
243 | 		Task {
244 | 			await PluginCommunication.shared.sendEvent(.setFeedbackLayout,
    |                                     |- warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated 'payload.some' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
245 | 													   context: context,
246 | 													   payload: payload)
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:258:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
256 | 	/// - Parameter triggerDescription: The new `TriggerDescription` or `nil` to reset.
257 | 	func setTriggerDescription(_ triggerDescription: TriggerDescription?) {
258 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
259 | 			await PluginCommunication.shared.sendEvent(.setTriggerDescription,
260 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
261 | 													   payload: triggerDescription)
    |                          `- note: closure captures non-Sendable 'triggerDescription'
262 | 		}
263 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:259:37: warning: sending 'triggerDescription' risks causing data races; this is an error in the Swift 6 language mode
257 | 	func setTriggerDescription(_ triggerDescription: TriggerDescription?) {
258 | 		Task {
259 | 			await PluginCommunication.shared.sendEvent(.setTriggerDescription,
    |                                     |- warning: sending 'triggerDescription' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated 'triggerDescription' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
260 | 													   context: context,
261 | 													   payload: triggerDescription)
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:25:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 23 | 	@available(*, deprecated, message: "Use the Settings API.")
 24 | 	func setSettings(to settings: [String: Any]) {
 25 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 26 | 			await PluginCommunication.shared.sendEvent(.setSettings,
 27 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
 28 | 													   payload: settings)
    |                          `- note: closure captures non-Sendable 'settings'
 29 | 		}
 30 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:26:37: warning: sending 'settings.some' risks causing data races; this is an error in the Swift 6 language mode
 24 | 	func setSettings(to settings: [String: Any]) {
 25 | 		Task {
 26 | 			await PluginCommunication.shared.sendEvent(.setSettings,
    |                                     |- warning: sending 'settings.some' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated 'settings.some' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
 27 | 													   context: context,
 28 | 													   payload: settings)
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:37:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 35 | 	///   - settings: A json object which is persistently saved for the action's instance.
 36 | 	func setSettings(to settings: Settings) {
 37 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 38 | 			await PluginCommunication.shared.sendEvent(.setSettings,
 39 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
 40 | 													   payload: settings)
    |                          `- note: closure captures non-Sendable 'settings'
 41 | 		}
 42 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:38:37: warning: sending value of non-Sendable type 'Self.Settings' risks causing data races; this is an error in the Swift 6 language mode
 36 | 	func setSettings(to settings: Settings) {
 37 | 		Task {
 38 | 			await PluginCommunication.shared.sendEvent(.setSettings,
    |                                     |- warning: sending value of non-Sendable type 'Self.Settings' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated value of non-Sendable type 'Self.Settings' to actor-isolated callee risks causing races in between task-isolated and actor-isolated uses
 39 | 													   context: context,
 40 | 													   payload: settings)
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:47:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 45 | 	///   - context: An opaque value identifying the instance's action or Property Inspector.
 46 | 	func getSettings() {
 47 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 48 | 			await PluginCommunication.shared.sendEvent(.getSettings,
 49 | 													   context: context,
    |                          `- note: closure captures 'self' which is accessible to code in the current task
 50 | 													   payload: nil)
 51 | 		}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:92:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 90 | 	///   - state: A 0-based integer value representing the state of an action with multiple states. This is an optional parameter. If not specified, the title is set to all states.
 91 | 	func setTitle(to title: String?, target: Target? = nil, state: Int? = nil) {
 92 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 93 | 			var payload: [String: Any] = [:]
 94 |
 95 | 			payload["title"] = title
 96 | 			payload["target"] = target?.rawValue
    |                        `- note: closure captures non-Sendable 'target'
 97 | 			payload["state"] = state
 98 |
 99 | 			await PluginCommunication.shared.sendEvent(.setTitle,
100 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
101 | 													   payload: payload)
102 | 		}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:115:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
113 | 	///   - state: A 0-based integer value representing the state of an action with multiple states. This is an optional parameter. If not specified, the image is set to all states.
114 | 	func setImage(to image: NSImage?, target: Target? = nil, state: Int? = nil) {
115 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
116 | 			var payload: [String: Any] = [:]
117 |
118 | 			payload["image"] = image?.base64String
    |                       `- note: closure captures non-Sendable 'image'
119 | 			payload["target"] = target?.rawValue
    |                        `- note: closure captures non-Sendable 'target'
120 | 			payload["state"] = state
121 |
122 |
123 | 			await PluginCommunication.shared.sendEvent(.setImage,
124 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
125 | 													   payload: payload)
126 | 		}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:165:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
163 | 	///   - state: A 0-based integer value representing the state of an action with multiple states. This is an optional parameter. If not specified, the image is set to all states.
164 | 	func setImage(toSVG svg: String?, target: Target? = nil, state: Int? = nil) {
165 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
166 | 			var payload: [String: Any] = [:]
167 |
    :
170 | 			}
171 |
172 | 			payload["target"] = target?.rawValue
    |                        `- note: closure captures non-Sendable 'target'
173 | 			payload["state"] = state
174 |
175 |
176 | 			await PluginCommunication.shared.sendEvent(.setImage,
177 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
178 | 													   payload: payload)
179 | 		}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:185:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
183 | 	/// - Parameter context: An opaque value identifying the instance's action or Property Inspector.
184 | 	func showAlert() {
185 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
186 | 			await PluginCommunication.shared.sendEvent(.showAlert, context: context, payload: nil)
    |                                                                    `- note: closure captures 'self' which is accessible to code in the current task
187 | 		}
188 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:193:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
191 | 	/// - Parameter context: An opaque value identifying the instance's action or Property Inspector.
192 | 	func showOk() {
193 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
194 | 			await PluginCommunication.shared.sendEvent(.showOK, context: context, payload: nil)
    |                                                                 `- note: closure captures 'self' which is accessible to code in the current task
195 | 		}
196 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:205:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
203 | 		let payload: [String: Any] = ["state": state]
204 |
205 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
206 | 			await PluginCommunication.shared.sendEvent(.setState,
207 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
208 | 													   payload: payload)
    |                          `- note: closure captures non-Sendable 'payload'
209 | 		}
210 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:206:37: warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
204 |
205 | 		Task {
206 | 			await PluginCommunication.shared.sendEvent(.setState,
    |                                     |- warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated 'payload.some' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
207 | 													   context: context,
208 | 													   payload: payload)
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:218:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
216 | 	///   - payload: A json object that will be received by the Property Inspector.
217 | 	func sendToPropertyInspector(payload: [String: Any]) {
218 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
219 | 			await PluginCommunication.shared.sendEvent(.sendToPropertyInspector,
220 | 													   action: uuid,
    |                         `- note: closure captures non-Sendable 'self'
221 | 													   context: context,
222 | 													   payload: payload)
    |                          `- note: closure captures non-Sendable 'payload'
223 | 		}
224 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:219:37: warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
217 | 	func sendToPropertyInspector(payload: [String: Any]) {
218 | 		Task {
219 | 			await PluginCommunication.shared.sendEvent(.sendToPropertyInspector,
    |                                     |- warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated 'payload.some' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
220 | 													   action: uuid,
221 | 													   context: context,
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:229:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
227 | 	/// The plugin can send a `setFeedback` event to the Stream Deck application to dynamically change properties of items on the Stream Deck + touch display layout.
228 | 	func setFeedback(_ payload: [String: Any]) {
229 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
230 | 			await PluginCommunication.shared.sendEvent(.setFeedback,
231 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
232 | 													   payload: payload)
    |                          `- note: closure captures non-Sendable 'payload'
233 | 		}
234 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:230:37: warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
228 | 	func setFeedback(_ payload: [String: Any]) {
229 | 		Task {
230 | 			await PluginCommunication.shared.sendEvent(.setFeedback,
    |                                     |- warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated 'payload.some' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
231 | 													   context: context,
232 | 													   payload: payload)
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:243:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
241 | 		let payload: [String: Any] = ["layout": layout.id]
242 |
243 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
244 | 			await PluginCommunication.shared.sendEvent(.setFeedbackLayout,
245 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
246 | 													   payload: payload)
    |                          `- note: closure captures non-Sendable 'payload'
247 | 		}
248 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:244:37: warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
242 |
243 | 		Task {
244 | 			await PluginCommunication.shared.sendEvent(.setFeedbackLayout,
    |                                     |- warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated 'payload.some' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
245 | 													   context: context,
246 | 													   payload: payload)
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:258:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
256 | 	/// - Parameter triggerDescription: The new `TriggerDescription` or `nil` to reset.
257 | 	func setTriggerDescription(_ triggerDescription: TriggerDescription?) {
258 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
259 | 			await PluginCommunication.shared.sendEvent(.setTriggerDescription,
260 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
261 | 													   payload: triggerDescription)
    |                          `- note: closure captures non-Sendable 'triggerDescription'
262 | 		}
263 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:259:37: warning: sending 'triggerDescription' risks causing data races; this is an error in the Swift 6 language mode
257 | 	func setTriggerDescription(_ triggerDescription: TriggerDescription?) {
258 | 		Task {
259 | 			await PluginCommunication.shared.sendEvent(.setTriggerDescription,
    |                                     |- warning: sending 'triggerDescription' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated 'triggerDescription' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
260 | 													   context: context,
261 | 													   payload: triggerDescription)
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:25:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 23 | 	@available(*, deprecated, message: "Use the Settings API.")
 24 | 	func setSettings(to settings: [String: Any]) {
 25 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 26 | 			await PluginCommunication.shared.sendEvent(.setSettings,
 27 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
 28 | 													   payload: settings)
    |                          `- note: closure captures non-Sendable 'settings'
 29 | 		}
 30 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:26:37: warning: sending 'settings.some' risks causing data races; this is an error in the Swift 6 language mode
 24 | 	func setSettings(to settings: [String: Any]) {
 25 | 		Task {
 26 | 			await PluginCommunication.shared.sendEvent(.setSettings,
    |                                     |- warning: sending 'settings.some' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated 'settings.some' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
 27 | 													   context: context,
 28 | 													   payload: settings)
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:37:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 35 | 	///   - settings: A json object which is persistently saved for the action's instance.
 36 | 	func setSettings(to settings: Settings) {
 37 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 38 | 			await PluginCommunication.shared.sendEvent(.setSettings,
 39 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
 40 | 													   payload: settings)
    |                          `- note: closure captures non-Sendable 'settings'
 41 | 		}
 42 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:38:37: warning: sending value of non-Sendable type 'Self.Settings' risks causing data races; this is an error in the Swift 6 language mode
 36 | 	func setSettings(to settings: Settings) {
 37 | 		Task {
 38 | 			await PluginCommunication.shared.sendEvent(.setSettings,
    |                                     |- warning: sending value of non-Sendable type 'Self.Settings' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated value of non-Sendable type 'Self.Settings' to actor-isolated callee risks causing races in between task-isolated and actor-isolated uses
 39 | 													   context: context,
 40 | 													   payload: settings)
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:47:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 45 | 	///   - context: An opaque value identifying the instance's action or Property Inspector.
 46 | 	func getSettings() {
 47 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 48 | 			await PluginCommunication.shared.sendEvent(.getSettings,
 49 | 													   context: context,
    |                          `- note: closure captures 'self' which is accessible to code in the current task
 50 | 													   payload: nil)
 51 | 		}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:92:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 90 | 	///   - state: A 0-based integer value representing the state of an action with multiple states. This is an optional parameter. If not specified, the title is set to all states.
 91 | 	func setTitle(to title: String?, target: Target? = nil, state: Int? = nil) {
 92 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 93 | 			var payload: [String: Any] = [:]
 94 |
 95 | 			payload["title"] = title
 96 | 			payload["target"] = target?.rawValue
    |                        `- note: closure captures non-Sendable 'target'
 97 | 			payload["state"] = state
 98 |
 99 | 			await PluginCommunication.shared.sendEvent(.setTitle,
100 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
101 | 													   payload: payload)
102 | 		}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:115:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
113 | 	///   - state: A 0-based integer value representing the state of an action with multiple states. This is an optional parameter. If not specified, the image is set to all states.
114 | 	func setImage(to image: NSImage?, target: Target? = nil, state: Int? = nil) {
115 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
116 | 			var payload: [String: Any] = [:]
117 |
118 | 			payload["image"] = image?.base64String
    |                       `- note: closure captures non-Sendable 'image'
119 | 			payload["target"] = target?.rawValue
    |                        `- note: closure captures non-Sendable 'target'
120 | 			payload["state"] = state
121 |
122 |
123 | 			await PluginCommunication.shared.sendEvent(.setImage,
124 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
125 | 													   payload: payload)
126 | 		}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:165:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
163 | 	///   - state: A 0-based integer value representing the state of an action with multiple states. This is an optional parameter. If not specified, the image is set to all states.
164 | 	func setImage(toSVG svg: String?, target: Target? = nil, state: Int? = nil) {
165 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
166 | 			var payload: [String: Any] = [:]
167 |
    :
170 | 			}
171 |
172 | 			payload["target"] = target?.rawValue
    |                        `- note: closure captures non-Sendable 'target'
173 | 			payload["state"] = state
174 |
175 |
176 | 			await PluginCommunication.shared.sendEvent(.setImage,
177 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
178 | 													   payload: payload)
179 | 		}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:185:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
183 | 	/// - Parameter context: An opaque value identifying the instance's action or Property Inspector.
184 | 	func showAlert() {
185 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
186 | 			await PluginCommunication.shared.sendEvent(.showAlert, context: context, payload: nil)
    |                                                                    `- note: closure captures 'self' which is accessible to code in the current task
187 | 		}
188 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:193:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
191 | 	/// - Parameter context: An opaque value identifying the instance's action or Property Inspector.
192 | 	func showOk() {
193 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
194 | 			await PluginCommunication.shared.sendEvent(.showOK, context: context, payload: nil)
    |                                                                 `- note: closure captures 'self' which is accessible to code in the current task
195 | 		}
196 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:205:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
203 | 		let payload: [String: Any] = ["state": state]
204 |
205 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
206 | 			await PluginCommunication.shared.sendEvent(.setState,
207 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
208 | 													   payload: payload)
    |                          `- note: closure captures non-Sendable 'payload'
209 | 		}
210 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:206:37: warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
204 |
205 | 		Task {
206 | 			await PluginCommunication.shared.sendEvent(.setState,
    |                                     |- warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated 'payload.some' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
207 | 													   context: context,
208 | 													   payload: payload)
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:218:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
216 | 	///   - payload: A json object that will be received by the Property Inspector.
217 | 	func sendToPropertyInspector(payload: [String: Any]) {
218 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
219 | 			await PluginCommunication.shared.sendEvent(.sendToPropertyInspector,
220 | 													   action: uuid,
    |                         `- note: closure captures non-Sendable 'self'
221 | 													   context: context,
222 | 													   payload: payload)
    |                          `- note: closure captures non-Sendable 'payload'
223 | 		}
224 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:219:37: warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
217 | 	func sendToPropertyInspector(payload: [String: Any]) {
218 | 		Task {
219 | 			await PluginCommunication.shared.sendEvent(.sendToPropertyInspector,
    |                                     |- warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated 'payload.some' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
220 | 													   action: uuid,
221 | 													   context: context,
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:229:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
227 | 	/// The plugin can send a `setFeedback` event to the Stream Deck application to dynamically change properties of items on the Stream Deck + touch display layout.
228 | 	func setFeedback(_ payload: [String: Any]) {
229 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
230 | 			await PluginCommunication.shared.sendEvent(.setFeedback,
231 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
232 | 													   payload: payload)
    |                          `- note: closure captures non-Sendable 'payload'
233 | 		}
234 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:230:37: warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
228 | 	func setFeedback(_ payload: [String: Any]) {
229 | 		Task {
230 | 			await PluginCommunication.shared.sendEvent(.setFeedback,
    |                                     |- warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated 'payload.some' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
231 | 													   context: context,
232 | 													   payload: payload)
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:243:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
241 | 		let payload: [String: Any] = ["layout": layout.id]
242 |
243 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
244 | 			await PluginCommunication.shared.sendEvent(.setFeedbackLayout,
245 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
246 | 													   payload: payload)
    |                          `- note: closure captures non-Sendable 'payload'
247 | 		}
248 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:244:37: warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
242 |
243 | 		Task {
244 | 			await PluginCommunication.shared.sendEvent(.setFeedbackLayout,
    |                                     |- warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated 'payload.some' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
245 | 													   context: context,
246 | 													   payload: payload)
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:258:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
256 | 	/// - Parameter triggerDescription: The new `TriggerDescription` or `nil` to reset.
257 | 	func setTriggerDescription(_ triggerDescription: TriggerDescription?) {
258 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
259 | 			await PluginCommunication.shared.sendEvent(.setTriggerDescription,
260 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
261 | 													   payload: triggerDescription)
    |                          `- note: closure captures non-Sendable 'triggerDescription'
262 | 		}
263 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:259:37: warning: sending 'triggerDescription' risks causing data races; this is an error in the Swift 6 language mode
257 | 	func setTriggerDescription(_ triggerDescription: TriggerDescription?) {
258 | 		Task {
259 | 			await PluginCommunication.shared.sendEvent(.setTriggerDescription,
    |                                     |- warning: sending 'triggerDescription' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated 'triggerDescription' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
260 | 													   context: context,
261 | 													   payload: triggerDescription)
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:25:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 23 | 	@available(*, deprecated, message: "Use the Settings API.")
 24 | 	func setSettings(to settings: [String: Any]) {
 25 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 26 | 			await PluginCommunication.shared.sendEvent(.setSettings,
 27 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
 28 | 													   payload: settings)
    |                          `- note: closure captures non-Sendable 'settings'
 29 | 		}
 30 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:26:37: warning: sending 'settings.some' risks causing data races; this is an error in the Swift 6 language mode
 24 | 	func setSettings(to settings: [String: Any]) {
 25 | 		Task {
 26 | 			await PluginCommunication.shared.sendEvent(.setSettings,
    |                                     |- warning: sending 'settings.some' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated 'settings.some' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
 27 | 													   context: context,
 28 | 													   payload: settings)
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:37:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 35 | 	///   - settings: A json object which is persistently saved for the action's instance.
 36 | 	func setSettings(to settings: Settings) {
 37 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 38 | 			await PluginCommunication.shared.sendEvent(.setSettings,
 39 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
 40 | 													   payload: settings)
    |                          `- note: closure captures non-Sendable 'settings'
 41 | 		}
 42 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:38:37: warning: sending value of non-Sendable type 'Self.Settings' risks causing data races; this is an error in the Swift 6 language mode
 36 | 	func setSettings(to settings: Settings) {
 37 | 		Task {
 38 | 			await PluginCommunication.shared.sendEvent(.setSettings,
    |                                     |- warning: sending value of non-Sendable type 'Self.Settings' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated value of non-Sendable type 'Self.Settings' to actor-isolated callee risks causing races in between task-isolated and actor-isolated uses
 39 | 													   context: context,
 40 | 													   payload: settings)
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:47:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 45 | 	///   - context: An opaque value identifying the instance's action or Property Inspector.
 46 | 	func getSettings() {
 47 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 48 | 			await PluginCommunication.shared.sendEvent(.getSettings,
 49 | 													   context: context,
    |                          `- note: closure captures 'self' which is accessible to code in the current task
 50 | 													   payload: nil)
 51 | 		}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:92:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 90 | 	///   - state: A 0-based integer value representing the state of an action with multiple states. This is an optional parameter. If not specified, the title is set to all states.
 91 | 	func setTitle(to title: String?, target: Target? = nil, state: Int? = nil) {
 92 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 93 | 			var payload: [String: Any] = [:]
 94 |
 95 | 			payload["title"] = title
 96 | 			payload["target"] = target?.rawValue
    |                        `- note: closure captures non-Sendable 'target'
 97 | 			payload["state"] = state
 98 |
 99 | 			await PluginCommunication.shared.sendEvent(.setTitle,
100 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
101 | 													   payload: payload)
102 | 		}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:115:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
113 | 	///   - state: A 0-based integer value representing the state of an action with multiple states. This is an optional parameter. If not specified, the image is set to all states.
114 | 	func setImage(to image: NSImage?, target: Target? = nil, state: Int? = nil) {
115 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
116 | 			var payload: [String: Any] = [:]
117 |
118 | 			payload["image"] = image?.base64String
    |                       `- note: closure captures non-Sendable 'image'
119 | 			payload["target"] = target?.rawValue
    |                        `- note: closure captures non-Sendable 'target'
120 | 			payload["state"] = state
121 |
122 |
123 | 			await PluginCommunication.shared.sendEvent(.setImage,
124 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
125 | 													   payload: payload)
126 | 		}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:165:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
163 | 	///   - state: A 0-based integer value representing the state of an action with multiple states. This is an optional parameter. If not specified, the image is set to all states.
164 | 	func setImage(toSVG svg: String?, target: Target? = nil, state: Int? = nil) {
165 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
166 | 			var payload: [String: Any] = [:]
167 |
    :
170 | 			}
171 |
172 | 			payload["target"] = target?.rawValue
    |                        `- note: closure captures non-Sendable 'target'
173 | 			payload["state"] = state
174 |
175 |
176 | 			await PluginCommunication.shared.sendEvent(.setImage,
177 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
178 | 													   payload: payload)
179 | 		}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:185:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
183 | 	/// - Parameter context: An opaque value identifying the instance's action or Property Inspector.
184 | 	func showAlert() {
185 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
186 | 			await PluginCommunication.shared.sendEvent(.showAlert, context: context, payload: nil)
    |                                                                    `- note: closure captures 'self' which is accessible to code in the current task
187 | 		}
188 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:193:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
191 | 	/// - Parameter context: An opaque value identifying the instance's action or Property Inspector.
192 | 	func showOk() {
193 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
194 | 			await PluginCommunication.shared.sendEvent(.showOK, context: context, payload: nil)
    |                                                                 `- note: closure captures 'self' which is accessible to code in the current task
195 | 		}
196 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:205:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
203 | 		let payload: [String: Any] = ["state": state]
204 |
205 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
206 | 			await PluginCommunication.shared.sendEvent(.setState,
207 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
208 | 													   payload: payload)
    |                          `- note: closure captures non-Sendable 'payload'
209 | 		}
210 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:206:37: warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
204 |
205 | 		Task {
206 | 			await PluginCommunication.shared.sendEvent(.setState,
    |                                     |- warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated 'payload.some' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
207 | 													   context: context,
208 | 													   payload: payload)
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:218:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
216 | 	///   - payload: A json object that will be received by the Property Inspector.
217 | 	func sendToPropertyInspector(payload: [String: Any]) {
218 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
219 | 			await PluginCommunication.shared.sendEvent(.sendToPropertyInspector,
220 | 													   action: uuid,
    |                         `- note: closure captures non-Sendable 'self'
221 | 													   context: context,
222 | 													   payload: payload)
    |                          `- note: closure captures non-Sendable 'payload'
223 | 		}
224 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:219:37: warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
217 | 	func sendToPropertyInspector(payload: [String: Any]) {
218 | 		Task {
219 | 			await PluginCommunication.shared.sendEvent(.sendToPropertyInspector,
    |                                     |- warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated 'payload.some' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
220 | 													   action: uuid,
221 | 													   context: context,
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:229:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
227 | 	/// The plugin can send a `setFeedback` event to the Stream Deck application to dynamically change properties of items on the Stream Deck + touch display layout.
228 | 	func setFeedback(_ payload: [String: Any]) {
229 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
230 | 			await PluginCommunication.shared.sendEvent(.setFeedback,
231 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
232 | 													   payload: payload)
    |                          `- note: closure captures non-Sendable 'payload'
233 | 		}
234 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:230:37: warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
228 | 	func setFeedback(_ payload: [String: Any]) {
229 | 		Task {
230 | 			await PluginCommunication.shared.sendEvent(.setFeedback,
    |                                     |- warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated 'payload.some' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
231 | 													   context: context,
232 | 													   payload: payload)
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:243:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
241 | 		let payload: [String: Any] = ["layout": layout.id]
242 |
243 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
244 | 			await PluginCommunication.shared.sendEvent(.setFeedbackLayout,
245 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
246 | 													   payload: payload)
    |                          `- note: closure captures non-Sendable 'payload'
247 | 		}
248 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:244:37: warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
242 |
243 | 		Task {
244 | 			await PluginCommunication.shared.sendEvent(.setFeedbackLayout,
    |                                     |- warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated 'payload.some' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
245 | 													   context: context,
246 | 													   payload: payload)
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:258:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
256 | 	/// - Parameter triggerDescription: The new `TriggerDescription` or `nil` to reset.
257 | 	func setTriggerDescription(_ triggerDescription: TriggerDescription?) {
258 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
259 | 			await PluginCommunication.shared.sendEvent(.setTriggerDescription,
260 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
261 | 													   payload: triggerDescription)
    |                          `- note: closure captures non-Sendable 'triggerDescription'
262 | 		}
263 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:259:37: warning: sending 'triggerDescription' risks causing data races; this is an error in the Swift 6 language mode
257 | 	func setTriggerDescription(_ triggerDescription: TriggerDescription?) {
258 | 		Task {
259 | 			await PluginCommunication.shared.sendEvent(.setTriggerDescription,
    |                                     |- warning: sending 'triggerDescription' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated 'triggerDescription' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
260 | 													   context: context,
261 | 													   payload: triggerDescription)
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:25:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 23 | 	@available(*, deprecated, message: "Use the Settings API.")
 24 | 	func setSettings(to settings: [String: Any]) {
 25 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 26 | 			await PluginCommunication.shared.sendEvent(.setSettings,
 27 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
 28 | 													   payload: settings)
    |                          `- note: closure captures non-Sendable 'settings'
 29 | 		}
 30 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:26:37: warning: sending 'settings.some' risks causing data races; this is an error in the Swift 6 language mode
 24 | 	func setSettings(to settings: [String: Any]) {
 25 | 		Task {
 26 | 			await PluginCommunication.shared.sendEvent(.setSettings,
    |                                     |- warning: sending 'settings.some' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated 'settings.some' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
 27 | 													   context: context,
 28 | 													   payload: settings)
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:37:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 35 | 	///   - settings: A json object which is persistently saved for the action's instance.
 36 | 	func setSettings(to settings: Settings) {
 37 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 38 | 			await PluginCommunication.shared.sendEvent(.setSettings,
 39 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
 40 | 													   payload: settings)
    |                          `- note: closure captures non-Sendable 'settings'
 41 | 		}
 42 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:38:37: warning: sending value of non-Sendable type 'Self.Settings' risks causing data races; this is an error in the Swift 6 language mode
 36 | 	func setSettings(to settings: Settings) {
 37 | 		Task {
 38 | 			await PluginCommunication.shared.sendEvent(.setSettings,
    |                                     |- warning: sending value of non-Sendable type 'Self.Settings' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated value of non-Sendable type 'Self.Settings' to actor-isolated callee risks causing races in between task-isolated and actor-isolated uses
 39 | 													   context: context,
 40 | 													   payload: settings)
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:47:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 45 | 	///   - context: An opaque value identifying the instance's action or Property Inspector.
 46 | 	func getSettings() {
 47 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 48 | 			await PluginCommunication.shared.sendEvent(.getSettings,
 49 | 													   context: context,
    |                          `- note: closure captures 'self' which is accessible to code in the current task
 50 | 													   payload: nil)
 51 | 		}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:92:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 90 | 	///   - state: A 0-based integer value representing the state of an action with multiple states. This is an optional parameter. If not specified, the title is set to all states.
 91 | 	func setTitle(to title: String?, target: Target? = nil, state: Int? = nil) {
 92 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 93 | 			var payload: [String: Any] = [:]
 94 |
 95 | 			payload["title"] = title
 96 | 			payload["target"] = target?.rawValue
    |                        `- note: closure captures non-Sendable 'target'
 97 | 			payload["state"] = state
 98 |
 99 | 			await PluginCommunication.shared.sendEvent(.setTitle,
100 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
101 | 													   payload: payload)
102 | 		}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:115:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
113 | 	///   - state: A 0-based integer value representing the state of an action with multiple states. This is an optional parameter. If not specified, the image is set to all states.
114 | 	func setImage(to image: NSImage?, target: Target? = nil, state: Int? = nil) {
115 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
116 | 			var payload: [String: Any] = [:]
117 |
118 | 			payload["image"] = image?.base64String
    |                       `- note: closure captures non-Sendable 'image'
119 | 			payload["target"] = target?.rawValue
    |                        `- note: closure captures non-Sendable 'target'
120 | 			payload["state"] = state
121 |
122 |
123 | 			await PluginCommunication.shared.sendEvent(.setImage,
124 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
125 | 													   payload: payload)
126 | 		}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:165:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
163 | 	///   - state: A 0-based integer value representing the state of an action with multiple states. This is an optional parameter. If not specified, the image is set to all states.
164 | 	func setImage(toSVG svg: String?, target: Target? = nil, state: Int? = nil) {
165 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
166 | 			var payload: [String: Any] = [:]
167 |
    :
170 | 			}
171 |
172 | 			payload["target"] = target?.rawValue
    |                        `- note: closure captures non-Sendable 'target'
173 | 			payload["state"] = state
174 |
175 |
176 | 			await PluginCommunication.shared.sendEvent(.setImage,
177 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
178 | 													   payload: payload)
179 | 		}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:185:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
183 | 	/// - Parameter context: An opaque value identifying the instance's action or Property Inspector.
184 | 	func showAlert() {
185 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
186 | 			await PluginCommunication.shared.sendEvent(.showAlert, context: context, payload: nil)
    |                                                                    `- note: closure captures 'self' which is accessible to code in the current task
187 | 		}
188 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:193:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
191 | 	/// - Parameter context: An opaque value identifying the instance's action or Property Inspector.
192 | 	func showOk() {
193 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
194 | 			await PluginCommunication.shared.sendEvent(.showOK, context: context, payload: nil)
    |                                                                 `- note: closure captures 'self' which is accessible to code in the current task
195 | 		}
196 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:205:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
203 | 		let payload: [String: Any] = ["state": state]
204 |
205 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
206 | 			await PluginCommunication.shared.sendEvent(.setState,
207 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
208 | 													   payload: payload)
    |                          `- note: closure captures non-Sendable 'payload'
209 | 		}
210 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:206:37: warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
204 |
205 | 		Task {
206 | 			await PluginCommunication.shared.sendEvent(.setState,
    |                                     |- warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated 'payload.some' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
207 | 													   context: context,
208 | 													   payload: payload)
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:218:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
216 | 	///   - payload: A json object that will be received by the Property Inspector.
217 | 	func sendToPropertyInspector(payload: [String: Any]) {
218 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
219 | 			await PluginCommunication.shared.sendEvent(.sendToPropertyInspector,
220 | 													   action: uuid,
    |                         `- note: closure captures non-Sendable 'self'
221 | 													   context: context,
222 | 													   payload: payload)
    |                          `- note: closure captures non-Sendable 'payload'
223 | 		}
224 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:219:37: warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
217 | 	func sendToPropertyInspector(payload: [String: Any]) {
218 | 		Task {
219 | 			await PluginCommunication.shared.sendEvent(.sendToPropertyInspector,
    |                                     |- warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated 'payload.some' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
220 | 													   action: uuid,
221 | 													   context: context,
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:229:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
227 | 	/// The plugin can send a `setFeedback` event to the Stream Deck application to dynamically change properties of items on the Stream Deck + touch display layout.
228 | 	func setFeedback(_ payload: [String: Any]) {
229 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
230 | 			await PluginCommunication.shared.sendEvent(.setFeedback,
231 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
232 | 													   payload: payload)
    |                          `- note: closure captures non-Sendable 'payload'
233 | 		}
234 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:230:37: warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
228 | 	func setFeedback(_ payload: [String: Any]) {
229 | 		Task {
230 | 			await PluginCommunication.shared.sendEvent(.setFeedback,
    |                                     |- warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated 'payload.some' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
231 | 													   context: context,
232 | 													   payload: payload)
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:243:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
241 | 		let payload: [String: Any] = ["layout": layout.id]
242 |
243 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
244 | 			await PluginCommunication.shared.sendEvent(.setFeedbackLayout,
245 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
246 | 													   payload: payload)
    |                          `- note: closure captures non-Sendable 'payload'
247 | 		}
248 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:244:37: warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
242 |
243 | 		Task {
244 | 			await PluginCommunication.shared.sendEvent(.setFeedbackLayout,
    |                                     |- warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated 'payload.some' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
245 | 													   context: context,
246 | 													   payload: payload)
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:258:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
256 | 	/// - Parameter triggerDescription: The new `TriggerDescription` or `nil` to reset.
257 | 	func setTriggerDescription(_ triggerDescription: TriggerDescription?) {
258 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
259 | 			await PluginCommunication.shared.sendEvent(.setTriggerDescription,
260 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
261 | 													   payload: triggerDescription)
    |                          `- note: closure captures non-Sendable 'triggerDescription'
262 | 		}
263 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:259:37: warning: sending 'triggerDescription' risks causing data races; this is an error in the Swift 6 language mode
257 | 	func setTriggerDescription(_ triggerDescription: TriggerDescription?) {
258 | 		Task {
259 | 			await PluginCommunication.shared.sendEvent(.setTriggerDescription,
    |                                     |- warning: sending 'triggerDescription' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated 'triggerDescription' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
260 | 													   context: context,
261 | 													   payload: triggerDescription)
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:25:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 23 | 	@available(*, deprecated, message: "Use the Settings API.")
 24 | 	func setSettings(to settings: [String: Any]) {
 25 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 26 | 			await PluginCommunication.shared.sendEvent(.setSettings,
 27 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
 28 | 													   payload: settings)
    |                          `- note: closure captures non-Sendable 'settings'
 29 | 		}
 30 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:26:37: warning: sending 'settings.some' risks causing data races; this is an error in the Swift 6 language mode
 24 | 	func setSettings(to settings: [String: Any]) {
 25 | 		Task {
 26 | 			await PluginCommunication.shared.sendEvent(.setSettings,
    |                                     |- warning: sending 'settings.some' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated 'settings.some' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
 27 | 													   context: context,
 28 | 													   payload: settings)
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:37:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 35 | 	///   - settings: A json object which is persistently saved for the action's instance.
 36 | 	func setSettings(to settings: Settings) {
 37 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 38 | 			await PluginCommunication.shared.sendEvent(.setSettings,
 39 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
 40 | 													   payload: settings)
    |                          `- note: closure captures non-Sendable 'settings'
 41 | 		}
 42 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:38:37: warning: sending value of non-Sendable type 'Self.Settings' risks causing data races; this is an error in the Swift 6 language mode
 36 | 	func setSettings(to settings: Settings) {
 37 | 		Task {
 38 | 			await PluginCommunication.shared.sendEvent(.setSettings,
    |                                     |- warning: sending value of non-Sendable type 'Self.Settings' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated value of non-Sendable type 'Self.Settings' to actor-isolated callee risks causing races in between task-isolated and actor-isolated uses
 39 | 													   context: context,
 40 | 													   payload: settings)
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:47:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 45 | 	///   - context: An opaque value identifying the instance's action or Property Inspector.
 46 | 	func getSettings() {
 47 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 48 | 			await PluginCommunication.shared.sendEvent(.getSettings,
 49 | 													   context: context,
    |                          `- note: closure captures 'self' which is accessible to code in the current task
 50 | 													   payload: nil)
 51 | 		}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:92:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 90 | 	///   - state: A 0-based integer value representing the state of an action with multiple states. This is an optional parameter. If not specified, the title is set to all states.
 91 | 	func setTitle(to title: String?, target: Target? = nil, state: Int? = nil) {
 92 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 93 | 			var payload: [String: Any] = [:]
 94 |
 95 | 			payload["title"] = title
 96 | 			payload["target"] = target?.rawValue
    |                        `- note: closure captures non-Sendable 'target'
 97 | 			payload["state"] = state
 98 |
 99 | 			await PluginCommunication.shared.sendEvent(.setTitle,
100 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
101 | 													   payload: payload)
102 | 		}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:115:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
113 | 	///   - state: A 0-based integer value representing the state of an action with multiple states. This is an optional parameter. If not specified, the image is set to all states.
114 | 	func setImage(to image: NSImage?, target: Target? = nil, state: Int? = nil) {
115 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
116 | 			var payload: [String: Any] = [:]
117 |
118 | 			payload["image"] = image?.base64String
    |                       `- note: closure captures non-Sendable 'image'
119 | 			payload["target"] = target?.rawValue
    |                        `- note: closure captures non-Sendable 'target'
120 | 			payload["state"] = state
121 |
122 |
123 | 			await PluginCommunication.shared.sendEvent(.setImage,
124 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
125 | 													   payload: payload)
126 | 		}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:165:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
163 | 	///   - state: A 0-based integer value representing the state of an action with multiple states. This is an optional parameter. If not specified, the image is set to all states.
164 | 	func setImage(toSVG svg: String?, target: Target? = nil, state: Int? = nil) {
165 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
166 | 			var payload: [String: Any] = [:]
167 |
    :
170 | 			}
171 |
172 | 			payload["target"] = target?.rawValue
    |                        `- note: closure captures non-Sendable 'target'
173 | 			payload["state"] = state
174 |
175 |
176 | 			await PluginCommunication.shared.sendEvent(.setImage,
177 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
178 | 													   payload: payload)
179 | 		}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:185:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
183 | 	/// - Parameter context: An opaque value identifying the instance's action or Property Inspector.
184 | 	func showAlert() {
185 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
186 | 			await PluginCommunication.shared.sendEvent(.showAlert, context: context, payload: nil)
    |                                                                    `- note: closure captures 'self' which is accessible to code in the current task
187 | 		}
188 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:193:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
191 | 	/// - Parameter context: An opaque value identifying the instance's action or Property Inspector.
192 | 	func showOk() {
193 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
194 | 			await PluginCommunication.shared.sendEvent(.showOK, context: context, payload: nil)
    |                                                                 `- note: closure captures 'self' which is accessible to code in the current task
195 | 		}
196 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:205:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
203 | 		let payload: [String: Any] = ["state": state]
204 |
205 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
206 | 			await PluginCommunication.shared.sendEvent(.setState,
207 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
208 | 													   payload: payload)
    |                          `- note: closure captures non-Sendable 'payload'
209 | 		}
210 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:206:37: warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
204 |
205 | 		Task {
206 | 			await PluginCommunication.shared.sendEvent(.setState,
    |                                     |- warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated 'payload.some' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
207 | 													   context: context,
208 | 													   payload: payload)
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:218:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
216 | 	///   - payload: A json object that will be received by the Property Inspector.
217 | 	func sendToPropertyInspector(payload: [String: Any]) {
218 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
219 | 			await PluginCommunication.shared.sendEvent(.sendToPropertyInspector,
220 | 													   action: uuid,
    |                         `- note: closure captures non-Sendable 'self'
221 | 													   context: context,
222 | 													   payload: payload)
    |                          `- note: closure captures non-Sendable 'payload'
223 | 		}
224 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:219:37: warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
217 | 	func sendToPropertyInspector(payload: [String: Any]) {
218 | 		Task {
219 | 			await PluginCommunication.shared.sendEvent(.sendToPropertyInspector,
    |                                     |- warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated 'payload.some' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
220 | 													   action: uuid,
221 | 													   context: context,
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:229:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
227 | 	/// The plugin can send a `setFeedback` event to the Stream Deck application to dynamically change properties of items on the Stream Deck + touch display layout.
228 | 	func setFeedback(_ payload: [String: Any]) {
229 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
230 | 			await PluginCommunication.shared.sendEvent(.setFeedback,
231 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
232 | 													   payload: payload)
    |                          `- note: closure captures non-Sendable 'payload'
233 | 		}
234 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:230:37: warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
228 | 	func setFeedback(_ payload: [String: Any]) {
229 | 		Task {
230 | 			await PluginCommunication.shared.sendEvent(.setFeedback,
    |                                     |- warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated 'payload.some' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
231 | 													   context: context,
232 | 													   payload: payload)
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:243:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
241 | 		let payload: [String: Any] = ["layout": layout.id]
242 |
243 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
244 | 			await PluginCommunication.shared.sendEvent(.setFeedbackLayout,
245 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
246 | 													   payload: payload)
    |                          `- note: closure captures non-Sendable 'payload'
247 | 		}
248 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:244:37: warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
242 |
243 | 		Task {
244 | 			await PluginCommunication.shared.sendEvent(.setFeedbackLayout,
    |                                     |- warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated 'payload.some' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
245 | 													   context: context,
246 | 													   payload: payload)
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:258:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
256 | 	/// - Parameter triggerDescription: The new `TriggerDescription` or `nil` to reset.
257 | 	func setTriggerDescription(_ triggerDescription: TriggerDescription?) {
258 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
259 | 			await PluginCommunication.shared.sendEvent(.setTriggerDescription,
260 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
261 | 													   payload: triggerDescription)
    |                          `- note: closure captures non-Sendable 'triggerDescription'
262 | 		}
263 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:259:37: warning: sending 'triggerDescription' risks causing data races; this is an error in the Swift 6 language mode
257 | 	func setTriggerDescription(_ triggerDescription: TriggerDescription?) {
258 | 		Task {
259 | 			await PluginCommunication.shared.sendEvent(.setTriggerDescription,
    |                                     |- warning: sending 'triggerDescription' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated 'triggerDescription' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
260 | 													   context: context,
261 | 													   payload: triggerDescription)
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:25:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 23 | 	@available(*, deprecated, message: "Use the Settings API.")
 24 | 	func setSettings(to settings: [String: Any]) {
 25 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 26 | 			await PluginCommunication.shared.sendEvent(.setSettings,
 27 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
 28 | 													   payload: settings)
    |                          `- note: closure captures non-Sendable 'settings'
 29 | 		}
 30 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:26:37: warning: sending 'settings.some' risks causing data races; this is an error in the Swift 6 language mode
 24 | 	func setSettings(to settings: [String: Any]) {
 25 | 		Task {
 26 | 			await PluginCommunication.shared.sendEvent(.setSettings,
    |                                     |- warning: sending 'settings.some' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated 'settings.some' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
 27 | 													   context: context,
 28 | 													   payload: settings)
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:37:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 35 | 	///   - settings: A json object which is persistently saved for the action's instance.
 36 | 	func setSettings(to settings: Settings) {
 37 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 38 | 			await PluginCommunication.shared.sendEvent(.setSettings,
 39 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
 40 | 													   payload: settings)
    |                          `- note: closure captures non-Sendable 'settings'
 41 | 		}
 42 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:38:37: warning: sending value of non-Sendable type 'Self.Settings' risks causing data races; this is an error in the Swift 6 language mode
 36 | 	func setSettings(to settings: Settings) {
 37 | 		Task {
 38 | 			await PluginCommunication.shared.sendEvent(.setSettings,
    |                                     |- warning: sending value of non-Sendable type 'Self.Settings' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated value of non-Sendable type 'Self.Settings' to actor-isolated callee risks causing races in between task-isolated and actor-isolated uses
 39 | 													   context: context,
 40 | 													   payload: settings)
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:47:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 45 | 	///   - context: An opaque value identifying the instance's action or Property Inspector.
 46 | 	func getSettings() {
 47 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 48 | 			await PluginCommunication.shared.sendEvent(.getSettings,
 49 | 													   context: context,
    |                          `- note: closure captures 'self' which is accessible to code in the current task
 50 | 													   payload: nil)
 51 | 		}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:92:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 90 | 	///   - state: A 0-based integer value representing the state of an action with multiple states. This is an optional parameter. If not specified, the title is set to all states.
 91 | 	func setTitle(to title: String?, target: Target? = nil, state: Int? = nil) {
 92 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 93 | 			var payload: [String: Any] = [:]
 94 |
 95 | 			payload["title"] = title
 96 | 			payload["target"] = target?.rawValue
    |                        `- note: closure captures non-Sendable 'target'
 97 | 			payload["state"] = state
 98 |
 99 | 			await PluginCommunication.shared.sendEvent(.setTitle,
100 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
101 | 													   payload: payload)
102 | 		}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:115:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
113 | 	///   - state: A 0-based integer value representing the state of an action with multiple states. This is an optional parameter. If not specified, the image is set to all states.
114 | 	func setImage(to image: NSImage?, target: Target? = nil, state: Int? = nil) {
115 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
116 | 			var payload: [String: Any] = [:]
117 |
118 | 			payload["image"] = image?.base64String
    |                       `- note: closure captures non-Sendable 'image'
119 | 			payload["target"] = target?.rawValue
    |                        `- note: closure captures non-Sendable 'target'
120 | 			payload["state"] = state
121 |
122 |
123 | 			await PluginCommunication.shared.sendEvent(.setImage,
124 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
125 | 													   payload: payload)
126 | 		}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:165:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
163 | 	///   - state: A 0-based integer value representing the state of an action with multiple states. This is an optional parameter. If not specified, the image is set to all states.
164 | 	func setImage(toSVG svg: String?, target: Target? = nil, state: Int? = nil) {
165 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
166 | 			var payload: [String: Any] = [:]
167 |
    :
170 | 			}
171 |
172 | 			payload["target"] = target?.rawValue
    |                        `- note: closure captures non-Sendable 'target'
173 | 			payload["state"] = state
174 |
175 |
176 | 			await PluginCommunication.shared.sendEvent(.setImage,
177 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
178 | 													   payload: payload)
179 | 		}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:185:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
183 | 	/// - Parameter context: An opaque value identifying the instance's action or Property Inspector.
184 | 	func showAlert() {
185 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
186 | 			await PluginCommunication.shared.sendEvent(.showAlert, context: context, payload: nil)
    |                                                                    `- note: closure captures 'self' which is accessible to code in the current task
187 | 		}
188 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:193:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
191 | 	/// - Parameter context: An opaque value identifying the instance's action or Property Inspector.
192 | 	func showOk() {
193 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
194 | 			await PluginCommunication.shared.sendEvent(.showOK, context: context, payload: nil)
    |                                                                 `- note: closure captures 'self' which is accessible to code in the current task
195 | 		}
196 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:205:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
203 | 		let payload: [String: Any] = ["state": state]
204 |
205 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
206 | 			await PluginCommunication.shared.sendEvent(.setState,
207 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
208 | 													   payload: payload)
    |                          `- note: closure captures non-Sendable 'payload'
209 | 		}
210 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:206:37: warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
204 |
205 | 		Task {
206 | 			await PluginCommunication.shared.sendEvent(.setState,
    |                                     |- warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated 'payload.some' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
207 | 													   context: context,
208 | 													   payload: payload)
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:218:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
216 | 	///   - payload: A json object that will be received by the Property Inspector.
217 | 	func sendToPropertyInspector(payload: [String: Any]) {
218 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
219 | 			await PluginCommunication.shared.sendEvent(.sendToPropertyInspector,
220 | 													   action: uuid,
    |                         `- note: closure captures non-Sendable 'self'
221 | 													   context: context,
222 | 													   payload: payload)
    |                          `- note: closure captures non-Sendable 'payload'
223 | 		}
224 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:219:37: warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
217 | 	func sendToPropertyInspector(payload: [String: Any]) {
218 | 		Task {
219 | 			await PluginCommunication.shared.sendEvent(.sendToPropertyInspector,
    |                                     |- warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated 'payload.some' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
220 | 													   action: uuid,
221 | 													   context: context,
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:229:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
227 | 	/// The plugin can send a `setFeedback` event to the Stream Deck application to dynamically change properties of items on the Stream Deck + touch display layout.
228 | 	func setFeedback(_ payload: [String: Any]) {
229 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
230 | 			await PluginCommunication.shared.sendEvent(.setFeedback,
231 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
232 | 													   payload: payload)
    |                          `- note: closure captures non-Sendable 'payload'
233 | 		}
234 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:230:37: warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
228 | 	func setFeedback(_ payload: [String: Any]) {
229 | 		Task {
230 | 			await PluginCommunication.shared.sendEvent(.setFeedback,
    |                                     |- warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated 'payload.some' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
231 | 													   context: context,
232 | 													   payload: payload)
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:243:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
241 | 		let payload: [String: Any] = ["layout": layout.id]
242 |
243 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
244 | 			await PluginCommunication.shared.sendEvent(.setFeedbackLayout,
245 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
246 | 													   payload: payload)
    |                          `- note: closure captures non-Sendable 'payload'
247 | 		}
248 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:244:37: warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
242 |
243 | 		Task {
244 | 			await PluginCommunication.shared.sendEvent(.setFeedbackLayout,
    |                                     |- warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated 'payload.some' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
245 | 													   context: context,
246 | 													   payload: payload)
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:258:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
256 | 	/// - Parameter triggerDescription: The new `TriggerDescription` or `nil` to reset.
257 | 	func setTriggerDescription(_ triggerDescription: TriggerDescription?) {
258 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
259 | 			await PluginCommunication.shared.sendEvent(.setTriggerDescription,
260 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
261 | 													   payload: triggerDescription)
    |                          `- note: closure captures non-Sendable 'triggerDescription'
262 | 		}
263 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:259:37: warning: sending 'triggerDescription' risks causing data races; this is an error in the Swift 6 language mode
257 | 	func setTriggerDescription(_ triggerDescription: TriggerDescription?) {
258 | 		Task {
259 | 			await PluginCommunication.shared.sendEvent(.setTriggerDescription,
    |                                     |- warning: sending 'triggerDescription' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated 'triggerDescription' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
260 | 													   context: context,
261 | 													   payload: triggerDescription)
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:25:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 23 | 	@available(*, deprecated, message: "Use the Settings API.")
 24 | 	func setSettings(to settings: [String: Any]) {
 25 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 26 | 			await PluginCommunication.shared.sendEvent(.setSettings,
 27 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
 28 | 													   payload: settings)
    |                          `- note: closure captures non-Sendable 'settings'
 29 | 		}
 30 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:26:37: warning: sending 'settings.some' risks causing data races; this is an error in the Swift 6 language mode
 24 | 	func setSettings(to settings: [String: Any]) {
 25 | 		Task {
 26 | 			await PluginCommunication.shared.sendEvent(.setSettings,
    |                                     |- warning: sending 'settings.some' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated 'settings.some' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
 27 | 													   context: context,
 28 | 													   payload: settings)
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:37:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 35 | 	///   - settings: A json object which is persistently saved for the action's instance.
 36 | 	func setSettings(to settings: Settings) {
 37 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 38 | 			await PluginCommunication.shared.sendEvent(.setSettings,
 39 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
 40 | 													   payload: settings)
    |                          `- note: closure captures non-Sendable 'settings'
 41 | 		}
 42 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:38:37: warning: sending value of non-Sendable type 'Self.Settings' risks causing data races; this is an error in the Swift 6 language mode
 36 | 	func setSettings(to settings: Settings) {
 37 | 		Task {
 38 | 			await PluginCommunication.shared.sendEvent(.setSettings,
    |                                     |- warning: sending value of non-Sendable type 'Self.Settings' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated value of non-Sendable type 'Self.Settings' to actor-isolated callee risks causing races in between task-isolated and actor-isolated uses
 39 | 													   context: context,
 40 | 													   payload: settings)
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:47:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 45 | 	///   - context: An opaque value identifying the instance's action or Property Inspector.
 46 | 	func getSettings() {
 47 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 48 | 			await PluginCommunication.shared.sendEvent(.getSettings,
 49 | 													   context: context,
    |                          `- note: closure captures 'self' which is accessible to code in the current task
 50 | 													   payload: nil)
 51 | 		}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:92:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 90 | 	///   - state: A 0-based integer value representing the state of an action with multiple states. This is an optional parameter. If not specified, the title is set to all states.
 91 | 	func setTitle(to title: String?, target: Target? = nil, state: Int? = nil) {
 92 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 93 | 			var payload: [String: Any] = [:]
 94 |
 95 | 			payload["title"] = title
 96 | 			payload["target"] = target?.rawValue
    |                        `- note: closure captures non-Sendable 'target'
 97 | 			payload["state"] = state
 98 |
 99 | 			await PluginCommunication.shared.sendEvent(.setTitle,
100 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
101 | 													   payload: payload)
102 | 		}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:115:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
113 | 	///   - state: A 0-based integer value representing the state of an action with multiple states. This is an optional parameter. If not specified, the image is set to all states.
114 | 	func setImage(to image: NSImage?, target: Target? = nil, state: Int? = nil) {
115 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
116 | 			var payload: [String: Any] = [:]
117 |
118 | 			payload["image"] = image?.base64String
    |                       `- note: closure captures non-Sendable 'image'
119 | 			payload["target"] = target?.rawValue
    |                        `- note: closure captures non-Sendable 'target'
120 | 			payload["state"] = state
121 |
122 |
123 | 			await PluginCommunication.shared.sendEvent(.setImage,
124 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
125 | 													   payload: payload)
126 | 		}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:165:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
163 | 	///   - state: A 0-based integer value representing the state of an action with multiple states. This is an optional parameter. If not specified, the image is set to all states.
164 | 	func setImage(toSVG svg: String?, target: Target? = nil, state: Int? = nil) {
165 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
166 | 			var payload: [String: Any] = [:]
167 |
    :
170 | 			}
171 |
172 | 			payload["target"] = target?.rawValue
    |                        `- note: closure captures non-Sendable 'target'
173 | 			payload["state"] = state
174 |
175 |
176 | 			await PluginCommunication.shared.sendEvent(.setImage,
177 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
178 | 													   payload: payload)
179 | 		}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:185:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
183 | 	/// - Parameter context: An opaque value identifying the instance's action or Property Inspector.
184 | 	func showAlert() {
185 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
186 | 			await PluginCommunication.shared.sendEvent(.showAlert, context: context, payload: nil)
    |                                                                    `- note: closure captures 'self' which is accessible to code in the current task
187 | 		}
188 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:193:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
191 | 	/// - Parameter context: An opaque value identifying the instance's action or Property Inspector.
192 | 	func showOk() {
193 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
194 | 			await PluginCommunication.shared.sendEvent(.showOK, context: context, payload: nil)
    |                                                                 `- note: closure captures 'self' which is accessible to code in the current task
195 | 		}
196 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:205:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
203 | 		let payload: [String: Any] = ["state": state]
204 |
205 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
206 | 			await PluginCommunication.shared.sendEvent(.setState,
207 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
208 | 													   payload: payload)
    |                          `- note: closure captures non-Sendable 'payload'
209 | 		}
210 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:206:37: warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
204 |
205 | 		Task {
206 | 			await PluginCommunication.shared.sendEvent(.setState,
    |                                     |- warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated 'payload.some' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
207 | 													   context: context,
208 | 													   payload: payload)
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:218:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
216 | 	///   - payload: A json object that will be received by the Property Inspector.
217 | 	func sendToPropertyInspector(payload: [String: Any]) {
218 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
219 | 			await PluginCommunication.shared.sendEvent(.sendToPropertyInspector,
220 | 													   action: uuid,
    |                         `- note: closure captures non-Sendable 'self'
221 | 													   context: context,
222 | 													   payload: payload)
    |                          `- note: closure captures non-Sendable 'payload'
223 | 		}
224 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:219:37: warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
217 | 	func sendToPropertyInspector(payload: [String: Any]) {
218 | 		Task {
219 | 			await PluginCommunication.shared.sendEvent(.sendToPropertyInspector,
    |                                     |- warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated 'payload.some' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
220 | 													   action: uuid,
221 | 													   context: context,
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:229:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
227 | 	/// The plugin can send a `setFeedback` event to the Stream Deck application to dynamically change properties of items on the Stream Deck + touch display layout.
228 | 	func setFeedback(_ payload: [String: Any]) {
229 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
230 | 			await PluginCommunication.shared.sendEvent(.setFeedback,
231 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
232 | 													   payload: payload)
    |                          `- note: closure captures non-Sendable 'payload'
233 | 		}
234 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:230:37: warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
228 | 	func setFeedback(_ payload: [String: Any]) {
229 | 		Task {
230 | 			await PluginCommunication.shared.sendEvent(.setFeedback,
    |                                     |- warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated 'payload.some' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
231 | 													   context: context,
232 | 													   payload: payload)
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:243:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
241 | 		let payload: [String: Any] = ["layout": layout.id]
242 |
243 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
244 | 			await PluginCommunication.shared.sendEvent(.setFeedbackLayout,
245 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
246 | 													   payload: payload)
    |                          `- note: closure captures non-Sendable 'payload'
247 | 		}
248 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:244:37: warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
242 |
243 | 		Task {
244 | 			await PluginCommunication.shared.sendEvent(.setFeedbackLayout,
    |                                     |- warning: sending 'payload.some' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated 'payload.some' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
245 | 													   context: context,
246 | 													   payload: payload)
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:258:8: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
256 | 	/// - Parameter triggerDescription: The new `TriggerDescription` or `nil` to reset.
257 | 	func setTriggerDescription(_ triggerDescription: TriggerDescription?) {
258 | 		Task {
    |        `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
259 | 			await PluginCommunication.shared.sendEvent(.setTriggerDescription,
260 | 													   context: context,
    |                          `- note: closure captures non-Sendable 'self'
261 | 													   payload: triggerDescription)
    |                          `- note: closure captures non-Sendable 'triggerDescription'
262 | 		}
263 | 	}
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeck/StreamDeck Plugin/Action/Action+Sent.swift:259:37: warning: sending 'triggerDescription' risks causing data races; this is an error in the Swift 6 language mode
257 | 	func setTriggerDescription(_ triggerDescription: TriggerDescription?) {
258 | 		Task {
259 | 			await PluginCommunication.shared.sendEvent(.setTriggerDescription,
    |                                     |- warning: sending 'triggerDescription' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: sending task-isolated 'triggerDescription' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
260 | 													   context: context,
261 | 													   payload: triggerDescription)
Build complete! (54.56s)
Fetching https://github.com/apple/swift-docc-plugin
Fetching https://github.com/apple/swift-syntax.git
Fetching https://github.com/apple/swift-argument-parser.git from cache
[1/2049] Fetching swift-docc-plugin
Fetched https://github.com/apple/swift-argument-parser.git from cache (0.64s)
[2050/72294] Fetching swift-docc-plugin, swift-syntax
Fetched https://github.com/apple/swift-docc-plugin from cache (3.06s)
Fetched https://github.com/apple/swift-syntax.git from cache (3.06s)
Computing version for https://github.com/apple/swift-argument-parser.git
Computed https://github.com/apple/swift-argument-parser.git at 1.5.0 (3.58s)
Computing version for https://github.com/apple/swift-syntax.git
Computed https://github.com/apple/swift-syntax.git at 509.1.1 (1.02s)
Computing version for https://github.com/apple/swift-docc-plugin
Computed https://github.com/apple/swift-docc-plugin at 1.4.3 (0.59s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit from cache
Fetched https://github.com/swiftlang/swift-docc-symbolkit from cache (0.83s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (1.47s)
Creating working copy for https://github.com/swiftlang/swift-docc-symbolkit
Working copy of https://github.com/swiftlang/swift-docc-symbolkit resolved at 1.0.0
Creating working copy for https://github.com/apple/swift-syntax.git
Working copy of https://github.com/apple/swift-syntax.git resolved at 509.1.1
Creating working copy for https://github.com/apple/swift-docc-plugin
Working copy of https://github.com/apple/swift-docc-plugin resolved at 1.4.3
Creating working copy for https://github.com/apple/swift-argument-parser.git
Working copy of https://github.com/apple/swift-argument-parser.git resolved at 1.5.0
Build complete.
{
  "dependencies" : [
    {
      "identity" : "swift-argument-parser",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.5.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-argument-parser.git"
    },
    {
      "identity" : "swift-syntax",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "509.0.0",
            "upper_bound" : "510.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-syntax.git"
    },
    {
      "identity" : "swift-docc-plugin",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.0.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-docc-plugin"
    }
  ],
  "manifest_display_name" : "StreamDeck",
  "name" : "StreamDeck",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "12.0"
    }
  ],
  "products" : [
    {
      "name" : "StreamDeck",
      "targets" : [
        "StreamDeck"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "StreamDeckMacros",
      "targets" : [
        "StreamDeckMacros"
      ],
      "type" : {
        "macro" : null
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "StreamDeckPluginTests",
      "module_type" : "SwiftTarget",
      "name" : "StreamDeckPluginTests",
      "path" : "Tests/StreamDeckPluginTests",
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/StreamDeckPluginTests/Support/Test Events",
          "rule" : {
            "copy" : {
            }
          }
        }
      ],
      "sources" : [
        "PluginEventTests.swift",
        "PluginManifestTests.swift",
        "PluginRegistrationTests.swift",
        "StreamDeckPluginTests.swift",
        "Support/TestEvents.swift",
        "Support/TestPlugin.swift"
      ],
      "target_dependencies" : [
        "StreamDeck"
      ],
      "type" : "test"
    },
    {
      "c99name" : "StreamDeckMacrosTests",
      "module_type" : "SwiftTarget",
      "name" : "StreamDeckMacrosTests",
      "path" : "Tests/StreamDeckMacrosTests",
      "product_dependencies" : [
        "SwiftSyntaxMacrosTestSupport"
      ],
      "sources" : [
        "SettingsMacroTests.swift"
      ],
      "target_dependencies" : [
        "StreamDeckMacros"
      ],
      "type" : "test"
    },
    {
      "c99name" : "StreamDeckMacros",
      "module_type" : "SwiftTarget",
      "name" : "StreamDeckMacros",
      "path" : "Sources/StreamDeckMacros",
      "product_dependencies" : [
        "SwiftSyntaxMacros",
        "SwiftCompilerPlugin"
      ],
      "product_memberships" : [
        "StreamDeck",
        "StreamDeckMacros"
      ],
      "sources" : [
        "KeyMacros.swift",
        "Plugin.swift",
        "SharedKeyMacro.swift"
      ],
      "type" : "macro"
    },
    {
      "c99name" : "StreamDeck",
      "module_type" : "SwiftTarget",
      "name" : "StreamDeck",
      "path" : "Sources/StreamDeck",
      "product_dependencies" : [
        "ArgumentParser"
      ],
      "product_memberships" : [
        "StreamDeck"
      ],
      "sources" : [
        "Builders/ActionBuilder.swift",
        "Command Line/ExportCommand.swift",
        "Command Line/PluginCommand.swift",
        "Command Line/StreamDeckCommand.swift",
        "Command Line/StreamDeckKey.swift",
        "Events/EventProtocols.swift",
        "Events/Events.swift",
        "Extensions/CharSet+DNS.swift",
        "Extensions/NSImage+Base64.swift",
        "Extensions/URL+Argument.swift",
        "Macros/SettingsMacros.swift",
        "StreamDeck Plugin/Action/Action+Received.swift",
        "StreamDeck Plugin/Action/Action+Sent.swift",
        "StreamDeck Plugin/Action/Action+Support.swift",
        "StreamDeck Plugin/Action/Action.swift",
        "StreamDeck Plugin/Action/LongPress.swift",
        "StreamDeck Plugin/PluginCommunication.swift",
        "StreamDeck Plugin/StreamDeckError.swift",
        "StreamDeck Plugin/StreamDeckPlugin/SDPlugin+Received.swift",
        "StreamDeck Plugin/StreamDeckPlugin/SDPlugin+Sent.swift",
        "StreamDeck Plugin/StreamDeckPlugin/SDPlugin+Support.swift",
        "StreamDeck Plugin/StreamDeckPlugin/StreamDeckPlugin.swift",
        "Support Models/ActionControllerRegistry.swift",
        "Support Models/Environment/EnvironmentKey.swift",
        "Support Models/Environment/EnvironmentValues.swift",
        "Support Models/Environment/EnvironmentWrapper.swift",
        "Support Models/PluginManifest/ApplicationsToMonitor.swift",
        "Support Models/PluginManifest/Coordinates.swift",
        "Support Models/PluginManifest/Fonts.swift",
        "Support Models/PluginManifest/Hardware.swift",
        "Support Models/PluginManifest/PluginAction.swift",
        "Support Models/PluginManifest/PluginActionState.swift",
        "Support Models/PluginManifest/PluginInfo.swift",
        "Support Models/PluginManifest/PluginManifest.swift",
        "Support Models/PluginManifest/PluginOS.swift",
        "Support Models/PluginManifest/PluginProfile.swift",
        "Support Models/PluginManifest/PluginSoftware.swift",
        "Support Models/RotaryEncoder/RotaryEncoder.swift",
        "Support Models/RotaryEncoder/TriggerDescription.swift",
        "Support Models/Settings/GlobalSettings.swift",
        "Support Models/Settings/GlobalSettingsKey.swift",
        "Support Models/Settings/SettingsWrapper.swift",
        "Support Models/State.swift"
      ],
      "target_dependencies" : [
        "StreamDeckMacros",
        "SDPlusLayout"
      ],
      "type" : "library"
    },
    {
      "c99name" : "SDPlusLayoutTests",
      "module_type" : "SwiftTarget",
      "name" : "SDPlusLayoutTests",
      "path" : "Tests/SDPlusLayoutTests",
      "sources" : [
        "LayoutTests.swift"
      ],
      "target_dependencies" : [
        "SDPlusLayout"
      ],
      "type" : "test"
    },
    {
      "c99name" : "SDPlusLayout",
      "module_type" : "SwiftTarget",
      "name" : "SDPlusLayout",
      "path" : "Sources/SDPlusLayout",
      "product_memberships" : [
        "StreamDeck"
      ],
      "sources" : [
        "BarLayoutItem.swift",
        "Color/Color+ExpressibleByStringLiteral.swift",
        "Color/Color+FormatStyle.swift",
        "Color/Color.swift",
        "Color/ColorStyle.swift",
        "Color/Gradient.swift",
        "Elements/Bar.swift",
        "Elements/Image.swift",
        "Elements/Slider.swift",
        "Elements/Text.swift",
        "Extensions/Clamped.swift",
        "Layout.swift",
        "LayoutItem.swift",
        "LayoutName.swift",
        "ModifiedItem.swift",
        "Properties.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.9"
}
Done.