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

The Swift Package Index logo.Swift Package Index

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

Build Information

Successful build of SwiftKeys with Swift 6.0 for macOS (SPM).

Swift 6 data race errors: 15

Build Command

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

Build Log

========================================
RunAll
========================================
Builder version: 4.40.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/jordanbaird/SwiftKeys.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/jordanbaird/SwiftKeys
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at 577088c Update README.md
Cloned https://github.com/jordanbaird/SwiftKeys.git
Revision (git rev-parse @):
577088c3c4a20f2b11cff3a61b2454044feea2cc
SPI manifest file found: $workDir/.spi.yml
SUCCESS checkout https://github.com/jordanbaird/SwiftKeys.git at main
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.0
Building package at path:  $workDir
https://github.com/jordanbaird/SwiftKeys.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-15.3.0.app xcrun --toolchain org.swift.600202405261a swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-6F35C1178C84523A.txt
[3/14] Compiling SwiftKeys Utilities.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/Utilities/Utilities.swift:279:16: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
245 |
246 | /// A wrapper for the unified logging system.
247 | struct Logger {
    |        `- note: consider making struct 'Logger' conform to the 'Sendable' protocol
248 |     /// The logger's corresponding object in the unified logging system.
249 |     let log: OSLog
    :
277 | extension Logger {
278 |     /// The default logger.
279 |     static let `default` = Self(log: .default, level: .default)
    |                |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
280 |
281 |     /// The logger for error messages.
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/Utilities/Utilities.swift:282:16: warning: static property 'error' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
245 |
246 | /// A wrapper for the unified logging system.
247 | struct Logger {
    |        `- note: consider making struct 'Logger' conform to the 'Sendable' protocol
248 |     /// The logger's corresponding object in the unified logging system.
249 |     let log: OSLog
    :
280 |
281 |     /// The logger for error messages.
282 |     static let error = Self(log: .default, level: .error)
    |                |- warning: static property 'error' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'error' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
283 |
284 |     /// The logger for debug messages.
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/Utilities/Utilities.swift:285:16: warning: static property 'debug' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
245 |
246 | /// A wrapper for the unified logging system.
247 | struct Logger {
    |        `- note: consider making struct 'Logger' conform to the 'Sendable' protocol
248 |     /// The logger's corresponding object in the unified logging system.
249 |     let log: OSLog
    :
283 |
284 |     /// The logger for debug messages.
285 |     static let debug = Self(log: .default, level: .debug)
    |                |- warning: static property 'debug' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'debug' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
286 |
287 |     /// The logger for faults.
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/Utilities/Utilities.swift:288:16: warning: static property 'fault' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
245 |
246 | /// A wrapper for the unified logging system.
247 | struct Logger {
    |        `- note: consider making struct 'Logger' conform to the 'Sendable' protocol
248 |     /// The logger's corresponding object in the unified logging system.
249 |     let log: OSLog
    :
286 |
287 |     /// The logger for faults.
288 |     static let fault = Self(log: .default, level: .fault)
    |                |- warning: static property 'fault' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'fault' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
289 |
290 |     /// The logger for informative messages.
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/Utilities/Utilities.swift:291:16: warning: static property 'info' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
245 |
246 | /// A wrapper for the unified logging system.
247 | struct Logger {
    |        `- note: consider making struct 'Logger' conform to the 'Sendable' protocol
248 |     /// The logger's corresponding object in the unified logging system.
249 |     let log: OSLog
    :
289 |
290 |     /// The logger for informative messages.
291 |     static let info = Self(log: .default, level: .info)
    |                |- warning: static property 'info' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'info' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
292 | }
293 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/Utilities/Utilities.swift:33:42: warning: main actor-isolated property 'bounds' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
 30 |     }
 31 |
 32 |     static func roundedRectBorder(for control: NSSegmentedControl) -> CALayer {
    |                 `- note: add '@MainActor' to make static method 'roundedRectBorder(for:)' part of global actor 'MainActor'
 33 |         roundedRectBorder(frame: control.bounds, color: .controlColor, lineWidth: 1, cornerRadius: 6)
    |                                          `- warning: main actor-isolated property 'bounds' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
 34 |     }
 35 |
AppKit.NSView:76:25: note: property declared here
 74 |     @available(swift, obsoleted: 3, renamed: "rotate(byDegrees:)")
 75 |     open func rotateByAngle(_ angle: CGFloat)
 76 |     @MainActor open var bounds: NSRect { get set }
    |                         `- note: property declared here
 77 |     open var isFlipped: Bool { get }
 78 |     @available(swift, obsoleted: 3, renamed: "isFlipped")
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/Utilities/Utilities.swift:38:31: warning: main actor-isolated property 'bounds' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
 34 |     }
 35 |
 36 |     static func segmentSplitter(for control: NSSegmentedControl, afterSegment segment: Int) -> CALayer {
    |                 `- note: add '@MainActor' to make static method 'segmentSplitter(for:afterSegment:)' part of global actor 'MainActor'
 37 |         let layer = CAShapeLayer()
 38 |         layer.frame = control.bounds
    |                               `- warning: main actor-isolated property 'bounds' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
 39 |         layer.lineWidth = 1
 40 |         if #available(macOS 10.14, *) {
AppKit.NSView:76:25: note: property declared here
 74 |     @available(swift, obsoleted: 3, renamed: "rotate(byDegrees:)")
 75 |     open func rotateByAngle(_ angle: CGFloat)
 76 |     @MainActor open var bounds: NSRect { get set }
    |                         `- note: property declared here
 77 |     open var isFlipped: Bool { get }
 78 |     @available(swift, obsoleted: 3, renamed: "isFlipped")
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/Utilities/Utilities.swift:48:48: warning: main actor-isolated property 'segmentCount' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
 34 |     }
 35 |
 36 |     static func segmentSplitter(for control: NSSegmentedControl, afterSegment segment: Int) -> CALayer {
    |                 `- note: add '@MainActor' to make static method 'segmentSplitter(for:afterSegment:)' part of global actor 'MainActor'
 37 |         let layer = CAShapeLayer()
 38 |         layer.frame = control.bounds
    :
 46 |         let path = CGMutablePath()
 47 |
 48 |         let segment = max(min(segment, control.segmentCount), 0)
    |                                                `- warning: main actor-isolated property 'segmentCount' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
 49 |         let xPosition: CGFloat = (0...segment).reduce(into: 0) {
 50 |             $0 += control.width(forSegment: $1)
AppKit.NSSegmentedControl:2:25: note: property declared here
 1 | @MainActor open class NSSegmentedControl : NSControl, NSUserInterfaceCompression {
 2 |     @MainActor open var segmentCount: Int { get set }
   |                         `- note: property declared here
 3 |     open var selectedSegment: Int { get set }
 4 |     open func selectSegment(withTag tag: Int) -> Bool
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/Utilities/Utilities.swift:50:27: warning: call to main actor-isolated instance method 'width(forSegment:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 48 |         let segment = max(min(segment, control.segmentCount), 0)
 49 |         let xPosition: CGFloat = (0...segment).reduce(into: 0) {
 50 |             $0 += control.width(forSegment: $1)
    |                           `- warning: call to main actor-isolated instance method 'width(forSegment:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 51 |         }
 52 |
AppKit.NSSegmentedControl:8:26: note: calls to instance method 'width(forSegment:)' from outside of its actor context are implicitly asynchronous
 6 |     open func selectSegmentWithTag(_ tag: Int) -> Bool
 7 |     open func setWidth(_ width: CGFloat, forSegment segment: Int)
 8 |     @MainActor open func width(forSegment segment: Int) -> CGFloat
   |                          `- note: calls to instance method 'width(forSegment:)' from outside of its actor context are implicitly asynchronous
 9 |     @available(swift, obsoleted: 3, renamed: "width(forSegment:)")
10 |     open func widthForSegment(_ segment: Int) -> CGFloat
[4/15] Compiling SwiftKeys NSMenuItem+extensions.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/Utilities/NSMenuItem+extensions.swift:11:24: warning: static property 'keyCommandNameStorage' is not concurrency-safe because non-'Sendable' type 'Storage<KeyCommand.Name>' may have shared mutable state; this is an error in the Swift 6 language mode
  9 |
 10 | extension NSMenuItem {
 11 |     private static let keyCommandNameStorage = Storage<KeyCommand.Name>()
    |                        |- warning: static property 'keyCommandNameStorage' is not concurrency-safe because non-'Sendable' type 'Storage<KeyCommand.Name>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: annotate 'keyCommandNameStorage' with '@MainActor' if property should only be accessed from the main actor
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 12 |     private static let keyAndModifierChangeHandlerStorage = Storage<VoidHandler>()
 13 |     private static let observationStorage = Storage<Set<NSKeyValueObservation>>()
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/Utilities/Utilities.swift:349:7: note: generic class 'Storage' does not conform to the 'Sendable' protocol
347 |
348 | /// A type that uses object association to store external values.
349 | class Storage<Value> {
    |       `- note: generic class 'Storage' does not conform to the 'Sendable' protocol
350 |     private let policy: AssociationPolicy
351 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/Utilities/NSMenuItem+extensions.swift:12:24: warning: static property 'keyAndModifierChangeHandlerStorage' is not concurrency-safe because non-'Sendable' type 'Storage<VoidHandler>' (aka 'Storage<Handler<()>>') may have shared mutable state; this is an error in the Swift 6 language mode
 10 | extension NSMenuItem {
 11 |     private static let keyCommandNameStorage = Storage<KeyCommand.Name>()
 12 |     private static let keyAndModifierChangeHandlerStorage = Storage<VoidHandler>()
    |                        |- warning: static property 'keyAndModifierChangeHandlerStorage' is not concurrency-safe because non-'Sendable' type 'Storage<VoidHandler>' (aka 'Storage<Handler<()>>') may have shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: annotate 'keyAndModifierChangeHandlerStorage' with '@MainActor' if property should only be accessed from the main actor
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 13 |     private static let observationStorage = Storage<Set<NSKeyValueObservation>>()
 14 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/Utilities/Utilities.swift:349:7: note: generic class 'Storage' does not conform to the 'Sendable' protocol
347 |
348 | /// A type that uses object association to store external values.
349 | class Storage<Value> {
    |       `- note: generic class 'Storage' does not conform to the 'Sendable' protocol
350 |     private let policy: AssociationPolicy
351 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/Utilities/NSMenuItem+extensions.swift:13:24: warning: static property 'observationStorage' is not concurrency-safe because non-'Sendable' type 'Storage<Set<NSKeyValueObservation>>' may have shared mutable state; this is an error in the Swift 6 language mode
 11 |     private static let keyCommandNameStorage = Storage<KeyCommand.Name>()
 12 |     private static let keyAndModifierChangeHandlerStorage = Storage<VoidHandler>()
 13 |     private static let observationStorage = Storage<Set<NSKeyValueObservation>>()
    |                        |- warning: static property 'observationStorage' is not concurrency-safe because non-'Sendable' type 'Storage<Set<NSKeyValueObservation>>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: annotate 'observationStorage' with '@MainActor' if property should only be accessed from the main actor
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 14 |
 15 |     private var keyAndModifierChangeHandler: VoidHandler? {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/Utilities/Utilities.swift:349:7: note: generic class 'Storage' does not conform to the 'Sendable' protocol
347 |
348 | /// A type that uses object association to store external values.
349 | class Storage<Value> {
    |       `- note: generic class 'Storage' does not conform to the 'Sendable' protocol
350 |     private let policy: AssociationPolicy
351 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/Utilities/NSMenuItem+extensions.swift:62:29: warning: capture of 'self' with non-sendable type 'NSMenuItem?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 60 |                 observe(\.keyEquivalent, options: [.old, .new]) { [weak self] _, changes in
 61 |                     guard
 62 |                         let self,
    |                             `- warning: capture of 'self' with non-sendable type 'NSMenuItem?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 63 |                         let oldValue = changes.oldValue,
 64 |                         let newValue = changes.newValue,
Swift.Optional:1:21: note: generic enum 'Optional' does not conform to the 'Sendable' protocol
1 | @frozen public enum Optional<Wrapped> : ~Copyable where Wrapped : ~Copyable {
  |                     `- note: generic enum 'Optional' does not conform to the 'Sendable' protocol
2 |     case none
3 |     case some(Wrapped)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/Utilities/NSMenuItem+extensions.swift:76:29: warning: capture of 'self' with non-sendable type 'NSMenuItem?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 74 |                 observe(\.keyEquivalentModifierMask, options: [.old, .new]) { [weak self] _, changes in
 75 |                     guard
 76 |                         let self,
    |                             `- warning: capture of 'self' with non-sendable type 'NSMenuItem?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 77 |                         let oldValue = changes.oldValue,
 78 |                         let newValue = changes.newValue,
Swift.Optional:1:21: note: generic enum 'Optional' does not conform to the 'Sendable' protocol
1 | @frozen public enum Optional<Wrapped> : ~Copyable where Wrapped : ~Copyable {
  |                     `- note: generic enum 'Optional' does not conform to the 'Sendable' protocol
2 |     case none
3 |     case some(Wrapped)
[5/15] Compiling SwiftKeys KeyRecorder.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/KeyCommand/Modifier.swift:99:16: warning: static property 'canonicalOrder' is not concurrency-safe because non-'Sendable' type 'Array<KeyCommand.Modifier>' may have shared mutable state; this is an error in the Swift 6 language mode
  9 | extension KeyCommand {
 10 |     /// Constants that represent the modifier keys of a key command.
 11 |     public enum Modifier {
    |                 `- note: consider making enum 'Modifier' conform to the 'Sendable' protocol
 12 |         /// The Control key.
 13 |         case control
    :
 97 |     /// The order that macOS represents its modifier keys, according
 98 |     /// to the Apple Style Guide.
 99 |     static let canonicalOrder: Self = {
    |                |- warning: static property 'canonicalOrder' is not concurrency-safe because non-'Sendable' type 'Array<KeyCommand.Modifier>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'canonicalOrder' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
100 |         let canonicalOrder: Self = [
101 |             .control,
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/KeyRecorder/KeyRecorder.swift:412:22: warning: main actor-isolated property 'recordingState' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
206 |     }
207 |
208 |     var recordingState = RecordingState.idle {
    |         `- note: mutation of this property is only permitted within the actor
209 |         didSet {
210 |             updateVisualAppearance()
    :
410 |             }
411 |             if !newValue {
412 |                 self.recordingState = .idle
    |                      `- warning: main actor-isolated property 'recordingState' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
413 |                 self.updateBasedOnNewRecordingState()
414 |             }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/KeyRecorder/KeyRecorder.swift:413:22: warning: call to main actor-isolated instance method 'updateBasedOnNewRecordingState()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
411 |             if !newValue {
412 |                 self.recordingState = .idle
413 |                 self.updateBasedOnNewRecordingState()
    |                      `- warning: call to main actor-isolated instance method 'updateBasedOnNewRecordingState()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
414 |             }
415 |         }
    :
499 |     }
500 |
501 |     func updateBasedOnNewRecordingState() {
    |          `- note: calls to instance method 'updateBasedOnNewRecordingState()' from outside of its actor context are implicitly asynchronous
502 |         // Note: updateVisualAppearance() will get called as an observation
503 |         // handler as soon as the proxy's registration state changes.
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/KeyRecorder/KeyRecorder.swift:426:22: warning: main actor-isolated property 'recordingState' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
206 |     }
207 |
208 |     var recordingState = RecordingState.idle {
    |         `- note: mutation of this property is only permitted within the actor
209 |         didSet {
210 |             updateVisualAppearance()
    :
424 |             }
425 |             if newValue != .current {
426 |                 self.recordingState = .idle
    |                      `- warning: main actor-isolated property 'recordingState' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
427 |                 self.updateBasedOnNewRecordingState()
428 |             }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/KeyRecorder/KeyRecorder.swift:427:22: warning: call to main actor-isolated instance method 'updateBasedOnNewRecordingState()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
425 |             if newValue != .current {
426 |                 self.recordingState = .idle
427 |                 self.updateBasedOnNewRecordingState()
    |                      `- warning: call to main actor-isolated instance method 'updateBasedOnNewRecordingState()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
428 |             }
429 |         }
    :
499 |     }
500 |
501 |     func updateBasedOnNewRecordingState() {
    |          `- note: calls to instance method 'updateBasedOnNewRecordingState()' from outside of its actor context are implicitly asynchronous
502 |         // Note: updateVisualAppearance() will get called as an observation
503 |         // handler as soon as the proxy's registration state changes.
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/KeyRecorder/KeyRecorder.swift:579:25: warning: call to main actor-isolated initializer 'init()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
573 |         }
574 |
575 |         func displayAlert() {
    |              `- note: add '@MainActor' to make instance method 'displayAlert()' part of global actor 'MainActor'
576 |             guard self != .noFailure else {
577 |                 return
578 |             }
579 |             let alert = NSAlert()
    |                         `- warning: call to main actor-isolated initializer 'init()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
580 |             alert.messageText = messageText
581 |             alert.informativeText = infoText
AppKit.NSAlert:33:23: note: calls to initializer 'init()' from outside of its actor context are implicitly asynchronous
31 |     open func beginSheetModalForWindow(_ sheetWindow: NSWindow, completionHandler handler: ((NSApplication.ModalResponse) -> Void)? = nil)
32 |     open var window: NSWindow { get }
33 |     @MainActor public init()
   |                       `- note: calls to initializer 'init()' from outside of its actor context are implicitly asynchronous
34 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/KeyRecorder/KeyRecorder.swift:580:19: warning: main actor-isolated property 'messageText' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
573 |         }
574 |
575 |         func displayAlert() {
    |              `- note: add '@MainActor' to make instance method 'displayAlert()' part of global actor 'MainActor'
576 |             guard self != .noFailure else {
577 |                 return
578 |             }
579 |             let alert = NSAlert()
580 |             alert.messageText = messageText
    |                   `- warning: main actor-isolated property 'messageText' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
581 |             alert.informativeText = infoText
582 |             alert.runModal()
AppKit.NSAlert:5:14: note: mutation of this property is only permitted within the actor
 3 |     @available(*, unavailable, renamed: "init(error:)", message: "Not available in Swift")
 4 |     open class func alertWithError(_ error: any Error) -> NSAlert
 5 |     open var messageText: String { get set }
   |              `- note: mutation of this property is only permitted within the actor
 6 |     open var informativeText: String { get set }
 7 |     open var icon: NSImage! { get set }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/KeyRecorder/KeyRecorder.swift:581:19: warning: main actor-isolated property 'informativeText' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
573 |         }
574 |
575 |         func displayAlert() {
    |              `- note: add '@MainActor' to make instance method 'displayAlert()' part of global actor 'MainActor'
576 |             guard self != .noFailure else {
577 |                 return
    :
579 |             let alert = NSAlert()
580 |             alert.messageText = messageText
581 |             alert.informativeText = infoText
    |                   `- warning: main actor-isolated property 'informativeText' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
582 |             alert.runModal()
583 |         }
AppKit.NSAlert:6:14: note: mutation of this property is only permitted within the actor
 4 |     open class func alertWithError(_ error: any Error) -> NSAlert
 5 |     open var messageText: String { get set }
 6 |     open var informativeText: String { get set }
   |              `- note: mutation of this property is only permitted within the actor
 7 |     open var icon: NSImage! { get set }
 8 |     open func addButton(withTitle title: String) -> NSButton
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/KeyRecorder/KeyRecorder.swift:582:19: warning: call to main actor-isolated instance method 'runModal()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
573 |         }
574 |
575 |         func displayAlert() {
    |              `- note: add '@MainActor' to make instance method 'displayAlert()' part of global actor 'MainActor'
576 |             guard self != .noFailure else {
577 |                 return
    :
580 |             alert.messageText = messageText
581 |             alert.informativeText = infoText
582 |             alert.runModal()
    |                   `- warning: call to main actor-isolated instance method 'runModal()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
583 |         }
584 |
AppKit.NSAlert:20:26: note: calls to instance method 'runModal()' from outside of its actor context are implicitly asynchronous
18 |     @available(macOS 10.5, *)
19 |     open func layout()
20 |     @MainActor open func runModal() -> NSApplication.ModalResponse
   |                          `- note: calls to instance method 'runModal()' from outside of its actor context are implicitly asynchronous
21 |     @available(macOS 10.5, *)
22 |     open var showsSuppressionButton: Bool { get set }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/KeyRecorder/KeyRecorder.swift:526:23: warning: cannot access property 'keyDownMonitor' with a non-sendable type 'LocalEventMonitor?' from non-isolated deinit; this is an error in the Swift 6 language mode
524 |
525 |     deinit {
526 |         keyDownMonitor?.stop()
    |                       `- warning: cannot access property 'keyDownMonitor' with a non-sendable type 'LocalEventMonitor?' from non-isolated deinit; this is an error in the Swift 6 language mode
527 |         mouseDownMonitor?.stop()
528 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/Utilities/Utilities.swift:74:7: note: class 'LocalEventMonitor' does not conform to the 'Sendable' protocol
 72 | // MARK: - LocalEventMonitor
 73 |
 74 | class LocalEventMonitor {
    |       `- note: class 'LocalEventMonitor' does not conform to the 'Sendable' protocol
 75 |     private let mask: NSEvent.EventTypeMask
 76 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/KeyRecorder/KeyRecorder.swift:527:25: warning: cannot access property 'mouseDownMonitor' with a non-sendable type 'LocalEventMonitor?' from non-isolated deinit; this is an error in the Swift 6 language mode
525 |     deinit {
526 |         keyDownMonitor?.stop()
527 |         mouseDownMonitor?.stop()
    |                         `- warning: cannot access property 'mouseDownMonitor' with a non-sendable type 'LocalEventMonitor?' from non-isolated deinit; this is an error in the Swift 6 language mode
528 |     }
529 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/Utilities/Utilities.swift:74:7: note: class 'LocalEventMonitor' does not conform to the 'Sendable' protocol
 72 | // MARK: - LocalEventMonitor
 73 |
 74 | class LocalEventMonitor {
    |       `- note: class 'LocalEventMonitor' does not conform to the 'Sendable' protocol
 75 |     private let mask: NSEvent.EventTypeMask
 76 |
[6/15] Compiling SwiftKeys Name.swift
[7/15] Compiling SwiftKeys KeyCommandProxy.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/KeyCommand/KeyCommandProxy.swift:12:24: warning: static property 'eventHandlerRef' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
 10 |     // MARK: Static Properties
 11 |
 12 |     private static var eventHandlerRef: EventHandlerRef?
    |                        |- warning: static property 'eventHandlerRef' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'eventHandlerRef' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: annotate 'eventHandlerRef' with '@MainActor' if property should only be accessed from the main actor
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 13 |
 14 |     private static let eventTypes = [
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/KeyCommand/KeyCommandProxy.swift:25:24: warning: static property 'proxyCount' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
 23 |     ]
 24 |
 25 |     private static var proxyCount: UInt32 = 0
    |                        |- warning: static property 'proxyCount' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'proxyCount' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: annotate 'proxyCount' with '@MainActor' if property should only be accessed from the main actor
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 26 |
 27 |     private static let signature: OSType = NSHFSTypeCodeFromFileType("'SWKE'")
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/KeyCommand/KeyCommandProxy.swift:346:24: warning: static property 'all' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
344 |
345 | extension ProxyStorage {
346 |     private static var all = Self()
    |                        |- warning: static property 'all' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'all' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: annotate 'all' with '@MainActor' if property should only be accessed from the main actor
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
347 |
348 |     static func proxy(with identifier: EventHotKeyID) -> KeyCommandProxy? {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/KeyCommand/Modifier.swift:99:16: warning: static property 'canonicalOrder' is not concurrency-safe because non-'Sendable' type 'Array<KeyCommand.Modifier>' may have shared mutable state; this is an error in the Swift 6 language mode
  9 | extension KeyCommand {
 10 |     /// Constants that represent the modifier keys of a key command.
 11 |     public enum Modifier {
    |                 `- note: consider making enum 'Modifier' conform to the 'Sendable' protocol
 12 |         /// The Control key.
 13 |         case control
    :
 97 |     /// The order that macOS represents its modifier keys, according
 98 |     /// to the Apple Style Guide.
 99 |     static let canonicalOrder: Self = {
    |                |- warning: static property 'canonicalOrder' is not concurrency-safe because non-'Sendable' type 'Array<KeyCommand.Modifier>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'canonicalOrder' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
100 |         let canonicalOrder: Self = [
101 |             .control,
[8/15] Compiling SwiftKeys Modifier.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/KeyCommand/KeyCommandProxy.swift:12:24: warning: static property 'eventHandlerRef' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
 10 |     // MARK: Static Properties
 11 |
 12 |     private static var eventHandlerRef: EventHandlerRef?
    |                        |- warning: static property 'eventHandlerRef' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'eventHandlerRef' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: annotate 'eventHandlerRef' with '@MainActor' if property should only be accessed from the main actor
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 13 |
 14 |     private static let eventTypes = [
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/KeyCommand/KeyCommandProxy.swift:25:24: warning: static property 'proxyCount' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
 23 |     ]
 24 |
 25 |     private static var proxyCount: UInt32 = 0
    |                        |- warning: static property 'proxyCount' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'proxyCount' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: annotate 'proxyCount' with '@MainActor' if property should only be accessed from the main actor
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 26 |
 27 |     private static let signature: OSType = NSHFSTypeCodeFromFileType("'SWKE'")
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/KeyCommand/KeyCommandProxy.swift:346:24: warning: static property 'all' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
344 |
345 | extension ProxyStorage {
346 |     private static var all = Self()
    |                        |- warning: static property 'all' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'all' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: annotate 'all' with '@MainActor' if property should only be accessed from the main actor
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
347 |
348 |     static func proxy(with identifier: EventHotKeyID) -> KeyCommandProxy? {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/KeyCommand/Modifier.swift:99:16: warning: static property 'canonicalOrder' is not concurrency-safe because non-'Sendable' type 'Array<KeyCommand.Modifier>' may have shared mutable state; this is an error in the Swift 6 language mode
  9 | extension KeyCommand {
 10 |     /// Constants that represent the modifier keys of a key command.
 11 |     public enum Modifier {
    |                 `- note: consider making enum 'Modifier' conform to the 'Sendable' protocol
 12 |         /// The Control key.
 13 |         case control
    :
 97 |     /// The order that macOS represents its modifier keys, according
 98 |     /// to the Apple Style Guide.
 99 |     static let canonicalOrder: Self = {
    |                |- warning: static property 'canonicalOrder' is not concurrency-safe because non-'Sendable' type 'Array<KeyCommand.Modifier>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'canonicalOrder' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
100 |         let canonicalOrder: Self = [
101 |             .control,
[9/15] Compiling SwiftKeys BezelStyle.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/KeyRecorder/BezelStyle.swift:35:27: warning: static property 'flatBordered' is not concurrency-safe because non-'Sendable' type 'KeyRecorder.BezelStyle' may have shared mutable state; this is an error in the Swift 6 language mode
11 |     /// A type that represents the visual style used to display a ``KeyRecorder``'s
12 |     /// bezel.
13 |     public enum BezelStyle: CaseIterable, Hashable {
   |                 `- note: consider making enum 'BezelStyle' conform to the 'Sendable' protocol
14 |         /// The key recorder is displayed with a rounded rectangular bezel.
15 |         case rounded
   :
33 |         /// border.
34 |         @available(*, deprecated, renamed: "capsule")
35 |         public static let flatBordered: Self = .capsule
   |                           |- warning: static property 'flatBordered' is not concurrency-safe because non-'Sendable' type 'KeyRecorder.BezelStyle' may have shared mutable state; this is an error in the Swift 6 language mode
   |                           |- note: annotate 'flatBordered' with '@MainActor' if property should only be accessed from the main actor
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
36 |     }
37 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/KeyRecorder/BezelStyle.swift:68:17: warning: main actor-isolated property 'segmentStyle' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
65 | // MARK: BezelStyle Methods
66 | extension KeyRecorder.BezelStyle {
67 |     func apply(to control: KeyRecorderSegmentedControl) {
   |          `- note: add '@MainActor' to make instance method 'apply(to:)' part of global actor 'MainActor'
68 |         control.segmentStyle = cocoaValue
   |                 `- warning: main actor-isolated property 'segmentStyle' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
69 |         switch self {
70 |         case .flat:
AppKit.NSSegmentedControl:60:25: note: mutation of this property is only permitted within the actor
58 |     open func showsMenuIndicatorForSegment(_ segment: Int) -> Bool
59 |     @available(macOS 10.5, *)
60 |     @MainActor open var segmentStyle: NSSegmentedControl.Style { get set }
   |                         `- note: mutation of this property is only permitted within the actor
61 |     @available(macOS 10.10.3, *)
62 |     open var isSpringLoaded: Bool { get set }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/KeyRecorder/BezelStyle.swift:71:27: warning: main actor-isolated property 'isBezeled' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
65 | // MARK: BezelStyle Methods
66 | extension KeyRecorder.BezelStyle {
67 |     func apply(to control: KeyRecorderSegmentedControl) {
   |          `- note: add '@MainActor' to make instance method 'apply(to:)' part of global actor 'MainActor'
68 |         control.segmentStyle = cocoaValue
69 |         switch self {
70 |         case .flat:
71 |             control.cell?.isBezeled = false
   |                           `- warning: main actor-isolated property 'isBezeled' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
72 |             control.borderLayer = .roundedRectBorder(for: control)
73 |             control.splitterLayer = .segmentSplitter(for: control, afterSegment: 0)
AppKit.NSCell:35:25: note: mutation of this property is only permitted within the actor
 33 |     @available(swift, obsoleted: 3, renamed: "isBordered")
 34 |     open var bordered: Bool { get set }
 35 |     @MainActor open var isBezeled: Bool { get set }
    |                         `- note: mutation of this property is only permitted within the actor
 36 |     @available(swift, obsoleted: 3, renamed: "isBezeled")
 37 |     open var bezeled: Bool { get set }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/KeyRecorder/BezelStyle.swift:71:21: warning: main actor-isolated property 'cell' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
65 | // MARK: BezelStyle Methods
66 | extension KeyRecorder.BezelStyle {
67 |     func apply(to control: KeyRecorderSegmentedControl) {
   |          `- note: add '@MainActor' to make instance method 'apply(to:)' part of global actor 'MainActor'
68 |         control.segmentStyle = cocoaValue
69 |         switch self {
70 |         case .flat:
71 |             control.cell?.isBezeled = false
   |                     `- warning: main actor-isolated property 'cell' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
72 |             control.borderLayer = .roundedRectBorder(for: control)
73 |             control.splitterLayer = .segmentSplitter(for: control, afterSegment: 0)
AppKit.NSControl:5:25: note: property declared here
 3 |     open func setFloatingPointFormat(_ autoRange: Bool, left leftDigits: Int, right rightDigits: Int)
 4 |     open class var cellClass: AnyClass? { get set }
 5 |     @MainActor open var cell: NSCell? { get set }
   |                         `- note: property declared here
 6 |     open func selectedCell() -> NSCell?
 7 |     open func selectedTag() -> Int
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/KeyRecorder/BezelStyle.swift:72:21: warning: main actor-isolated property 'borderLayer' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
65 | // MARK: BezelStyle Methods
66 | extension KeyRecorder.BezelStyle {
67 |     func apply(to control: KeyRecorderSegmentedControl) {
   |          `- note: add '@MainActor' to make instance method 'apply(to:)' part of global actor 'MainActor'
68 |         control.segmentStyle = cocoaValue
69 |         switch self {
70 |         case .flat:
71 |             control.cell?.isBezeled = false
72 |             control.borderLayer = .roundedRectBorder(for: control)
   |                     `- warning: main actor-isolated property 'borderLayer' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
73 |             control.splitterLayer = .segmentSplitter(for: control, afterSegment: 0)
74 |         default:
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/KeyRecorder/KeyRecorder.swift:226:9: note: mutation of this property is only permitted within the actor
224 |     }
225 |
226 |     var borderLayer: CALayer? {
    |         `- note: mutation of this property is only permitted within the actor
227 |         didSet {
228 |             if let borderLayer {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/KeyRecorder/BezelStyle.swift:73:21: warning: main actor-isolated property 'splitterLayer' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
65 | // MARK: BezelStyle Methods
66 | extension KeyRecorder.BezelStyle {
67 |     func apply(to control: KeyRecorderSegmentedControl) {
   |          `- note: add '@MainActor' to make instance method 'apply(to:)' part of global actor 'MainActor'
68 |         control.segmentStyle = cocoaValue
69 |         switch self {
   :
71 |             control.cell?.isBezeled = false
72 |             control.borderLayer = .roundedRectBorder(for: control)
73 |             control.splitterLayer = .segmentSplitter(for: control, afterSegment: 0)
   |                     `- warning: main actor-isolated property 'splitterLayer' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
74 |         default:
75 |             control.cell?.isBezeled = true
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/KeyRecorder/KeyRecorder.swift:237:9: note: mutation of this property is only permitted within the actor
235 |     }
236 |
237 |     var splitterLayer: CALayer? {
    |         `- note: mutation of this property is only permitted within the actor
238 |         didSet {
239 |             if let splitterLayer {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/KeyRecorder/BezelStyle.swift:75:27: warning: main actor-isolated property 'isBezeled' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
65 | // MARK: BezelStyle Methods
66 | extension KeyRecorder.BezelStyle {
67 |     func apply(to control: KeyRecorderSegmentedControl) {
   |          `- note: add '@MainActor' to make instance method 'apply(to:)' part of global actor 'MainActor'
68 |         control.segmentStyle = cocoaValue
69 |         switch self {
   :
73 |             control.splitterLayer = .segmentSplitter(for: control, afterSegment: 0)
74 |         default:
75 |             control.cell?.isBezeled = true
   |                           `- warning: main actor-isolated property 'isBezeled' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
76 |             control.borderLayer = nil
77 |             control.splitterLayer = nil
AppKit.NSCell:35:25: note: mutation of this property is only permitted within the actor
 33 |     @available(swift, obsoleted: 3, renamed: "isBordered")
 34 |     open var bordered: Bool { get set }
 35 |     @MainActor open var isBezeled: Bool { get set }
    |                         `- note: mutation of this property is only permitted within the actor
 36 |     @available(swift, obsoleted: 3, renamed: "isBezeled")
 37 |     open var bezeled: Bool { get set }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/KeyRecorder/BezelStyle.swift:75:21: warning: main actor-isolated property 'cell' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
65 | // MARK: BezelStyle Methods
66 | extension KeyRecorder.BezelStyle {
67 |     func apply(to control: KeyRecorderSegmentedControl) {
   |          `- note: add '@MainActor' to make instance method 'apply(to:)' part of global actor 'MainActor'
68 |         control.segmentStyle = cocoaValue
69 |         switch self {
   :
73 |             control.splitterLayer = .segmentSplitter(for: control, afterSegment: 0)
74 |         default:
75 |             control.cell?.isBezeled = true
   |                     `- warning: main actor-isolated property 'cell' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
76 |             control.borderLayer = nil
77 |             control.splitterLayer = nil
AppKit.NSControl:5:25: note: property declared here
 3 |     open func setFloatingPointFormat(_ autoRange: Bool, left leftDigits: Int, right rightDigits: Int)
 4 |     open class var cellClass: AnyClass? { get set }
 5 |     @MainActor open var cell: NSCell? { get set }
   |                         `- note: property declared here
 6 |     open func selectedCell() -> NSCell?
 7 |     open func selectedTag() -> Int
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/KeyRecorder/BezelStyle.swift:76:21: warning: main actor-isolated property 'borderLayer' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
65 | // MARK: BezelStyle Methods
66 | extension KeyRecorder.BezelStyle {
67 |     func apply(to control: KeyRecorderSegmentedControl) {
   |          `- note: add '@MainActor' to make instance method 'apply(to:)' part of global actor 'MainActor'
68 |         control.segmentStyle = cocoaValue
69 |         switch self {
   :
74 |         default:
75 |             control.cell?.isBezeled = true
76 |             control.borderLayer = nil
   |                     `- warning: main actor-isolated property 'borderLayer' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
77 |             control.splitterLayer = nil
78 |         }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/KeyRecorder/KeyRecorder.swift:226:9: note: mutation of this property is only permitted within the actor
224 |     }
225 |
226 |     var borderLayer: CALayer? {
    |         `- note: mutation of this property is only permitted within the actor
227 |         didSet {
228 |             if let borderLayer {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/KeyRecorder/BezelStyle.swift:77:21: warning: main actor-isolated property 'splitterLayer' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
65 | // MARK: BezelStyle Methods
66 | extension KeyRecorder.BezelStyle {
67 |     func apply(to control: KeyRecorderSegmentedControl) {
   |          `- note: add '@MainActor' to make instance method 'apply(to:)' part of global actor 'MainActor'
68 |         control.segmentStyle = cocoaValue
69 |         switch self {
   :
75 |             control.cell?.isBezeled = true
76 |             control.borderLayer = nil
77 |             control.splitterLayer = nil
   |                     `- warning: main actor-isolated property 'splitterLayer' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
78 |         }
79 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/KeyRecorder/KeyRecorder.swift:237:9: note: mutation of this property is only permitted within the actor
235 |     }
236 |
237 |     var splitterLayer: CALayer? {
    |         `- note: mutation of this property is only permitted within the actor
238 |         didSet {
239 |             if let splitterLayer {
[10/15] Emitting module SwiftKeys
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/KeyCommand/Key.swift:251:24: warning: static property 'customStringMapping' is not concurrency-safe because non-'Sendable' type '[KeyCommand.Key : String]' may have shared mutable state; this is an error in the Swift 6 language mode
  8 | extension KeyCommand {
  9 |     /// Constants that represent the various keys available on a keyboard.
 10 |     public enum Key {
    |                 `- note: consider making enum 'Key' conform to the 'Sendable' protocol
 11 |
 12 |         // MARK: ANSI
    :
249 |     /// Maps custom string representations to keys that can't be
250 |     /// represented by a key equivalent.
251 |     private static let customStringMapping: [KeyCommand.Key: String] = [
    |                        |- warning: static property 'customStringMapping' is not concurrency-safe because non-'Sendable' type '[KeyCommand.Key : String]' may have shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: annotate 'customStringMapping' with '@MainActor' if property should only be accessed from the main actor
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
252 |         .space: "Space", // matches macOS representation
253 |         .tab: "⇥",
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/KeyCommand/KeyCommandProxy.swift:12:24: warning: static property 'eventHandlerRef' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
 10 |     // MARK: Static Properties
 11 |
 12 |     private static var eventHandlerRef: EventHandlerRef?
    |                        |- warning: static property 'eventHandlerRef' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'eventHandlerRef' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: annotate 'eventHandlerRef' with '@MainActor' if property should only be accessed from the main actor
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 13 |
 14 |     private static let eventTypes = [
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/KeyCommand/KeyCommandProxy.swift:25:24: warning: static property 'proxyCount' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
 23 |     ]
 24 |
 25 |     private static var proxyCount: UInt32 = 0
    |                        |- warning: static property 'proxyCount' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'proxyCount' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: annotate 'proxyCount' with '@MainActor' if property should only be accessed from the main actor
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 26 |
 27 |     private static let signature: OSType = NSHFSTypeCodeFromFileType("'SWKE'")
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/KeyCommand/KeyCommandProxy.swift:346:24: warning: static property 'all' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
344 |
345 | extension ProxyStorage {
346 |     private static var all = Self()
    |                        |- warning: static property 'all' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'all' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: annotate 'all' with '@MainActor' if property should only be accessed from the main actor
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
347 |
348 |     static func proxy(with identifier: EventHotKeyID) -> KeyCommandProxy? {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/KeyCommand/Modifier.swift:99:16: warning: static property 'canonicalOrder' is not concurrency-safe because non-'Sendable' type 'Array<KeyCommand.Modifier>' may have shared mutable state; this is an error in the Swift 6 language mode
  9 | extension KeyCommand {
 10 |     /// Constants that represent the modifier keys of a key command.
 11 |     public enum Modifier {
    |                 `- note: consider making enum 'Modifier' conform to the 'Sendable' protocol
 12 |         /// The Control key.
 13 |         case control
    :
 97 |     /// The order that macOS represents its modifier keys, according
 98 |     /// to the Apple Style Guide.
 99 |     static let canonicalOrder: Self = {
    |                |- warning: static property 'canonicalOrder' is not concurrency-safe because non-'Sendable' type 'Array<KeyCommand.Modifier>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'canonicalOrder' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
100 |         let canonicalOrder: Self = [
101 |             .control,
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/KeyRecorder/BezelStyle.swift:35:27: warning: static property 'flatBordered' is not concurrency-safe because non-'Sendable' type 'KeyRecorder.BezelStyle' may have shared mutable state; this is an error in the Swift 6 language mode
11 |     /// A type that represents the visual style used to display a ``KeyRecorder``'s
12 |     /// bezel.
13 |     public enum BezelStyle: CaseIterable, Hashable {
   |                 `- note: consider making enum 'BezelStyle' conform to the 'Sendable' protocol
14 |         /// The key recorder is displayed with a rounded rectangular bezel.
15 |         case rounded
   :
33 |         /// border.
34 |         @available(*, deprecated, renamed: "capsule")
35 |         public static let flatBordered: Self = .capsule
   |                           |- warning: static property 'flatBordered' is not concurrency-safe because non-'Sendable' type 'KeyRecorder.BezelStyle' may have shared mutable state; this is an error in the Swift 6 language mode
   |                           |- note: annotate 'flatBordered' with '@MainActor' if property should only be accessed from the main actor
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
36 |     }
37 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/Utilities/NSMenuItem+extensions.swift:11:24: warning: static property 'keyCommandNameStorage' is not concurrency-safe because non-'Sendable' type 'Storage<KeyCommand.Name>' may have shared mutable state; this is an error in the Swift 6 language mode
  9 |
 10 | extension NSMenuItem {
 11 |     private static let keyCommandNameStorage = Storage<KeyCommand.Name>()
    |                        |- warning: static property 'keyCommandNameStorage' is not concurrency-safe because non-'Sendable' type 'Storage<KeyCommand.Name>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: annotate 'keyCommandNameStorage' with '@MainActor' if property should only be accessed from the main actor
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 12 |     private static let keyAndModifierChangeHandlerStorage = Storage<VoidHandler>()
 13 |     private static let observationStorage = Storage<Set<NSKeyValueObservation>>()
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/Utilities/Utilities.swift:349:7: note: generic class 'Storage' does not conform to the 'Sendable' protocol
347 |
348 | /// A type that uses object association to store external values.
349 | class Storage<Value> {
    |       `- note: generic class 'Storage' does not conform to the 'Sendable' protocol
350 |     private let policy: AssociationPolicy
351 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/Utilities/NSMenuItem+extensions.swift:12:24: warning: static property 'keyAndModifierChangeHandlerStorage' is not concurrency-safe because non-'Sendable' type 'Storage<VoidHandler>' (aka 'Storage<Handler<()>>') may have shared mutable state; this is an error in the Swift 6 language mode
 10 | extension NSMenuItem {
 11 |     private static let keyCommandNameStorage = Storage<KeyCommand.Name>()
 12 |     private static let keyAndModifierChangeHandlerStorage = Storage<VoidHandler>()
    |                        |- warning: static property 'keyAndModifierChangeHandlerStorage' is not concurrency-safe because non-'Sendable' type 'Storage<VoidHandler>' (aka 'Storage<Handler<()>>') may have shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: annotate 'keyAndModifierChangeHandlerStorage' with '@MainActor' if property should only be accessed from the main actor
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 13 |     private static let observationStorage = Storage<Set<NSKeyValueObservation>>()
 14 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/Utilities/Utilities.swift:349:7: note: generic class 'Storage' does not conform to the 'Sendable' protocol
347 |
348 | /// A type that uses object association to store external values.
349 | class Storage<Value> {
    |       `- note: generic class 'Storage' does not conform to the 'Sendable' protocol
350 |     private let policy: AssociationPolicy
351 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/Utilities/NSMenuItem+extensions.swift:13:24: warning: static property 'observationStorage' is not concurrency-safe because non-'Sendable' type 'Storage<Set<NSKeyValueObservation>>' may have shared mutable state; this is an error in the Swift 6 language mode
 11 |     private static let keyCommandNameStorage = Storage<KeyCommand.Name>()
 12 |     private static let keyAndModifierChangeHandlerStorage = Storage<VoidHandler>()
 13 |     private static let observationStorage = Storage<Set<NSKeyValueObservation>>()
    |                        |- warning: static property 'observationStorage' is not concurrency-safe because non-'Sendable' type 'Storage<Set<NSKeyValueObservation>>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: annotate 'observationStorage' with '@MainActor' if property should only be accessed from the main actor
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 14 |
 15 |     private var keyAndModifierChangeHandler: VoidHandler? {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/Utilities/Utilities.swift:349:7: note: generic class 'Storage' does not conform to the 'Sendable' protocol
347 |
348 | /// A type that uses object association to store external values.
349 | class Storage<Value> {
    |       `- note: generic class 'Storage' does not conform to the 'Sendable' protocol
350 |     private let policy: AssociationPolicy
351 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/Utilities/Utilities.swift:279:16: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
245 |
246 | /// A wrapper for the unified logging system.
247 | struct Logger {
    |        `- note: consider making struct 'Logger' conform to the 'Sendable' protocol
248 |     /// The logger's corresponding object in the unified logging system.
249 |     let log: OSLog
    :
277 | extension Logger {
278 |     /// The default logger.
279 |     static let `default` = Self(log: .default, level: .default)
    |                |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
280 |
281 |     /// The logger for error messages.
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/Utilities/Utilities.swift:282:16: warning: static property 'error' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
245 |
246 | /// A wrapper for the unified logging system.
247 | struct Logger {
    |        `- note: consider making struct 'Logger' conform to the 'Sendable' protocol
248 |     /// The logger's corresponding object in the unified logging system.
249 |     let log: OSLog
    :
280 |
281 |     /// The logger for error messages.
282 |     static let error = Self(log: .default, level: .error)
    |                |- warning: static property 'error' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'error' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
283 |
284 |     /// The logger for debug messages.
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/Utilities/Utilities.swift:285:16: warning: static property 'debug' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
245 |
246 | /// A wrapper for the unified logging system.
247 | struct Logger {
    |        `- note: consider making struct 'Logger' conform to the 'Sendable' protocol
248 |     /// The logger's corresponding object in the unified logging system.
249 |     let log: OSLog
    :
283 |
284 |     /// The logger for debug messages.
285 |     static let debug = Self(log: .default, level: .debug)
    |                |- warning: static property 'debug' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'debug' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
286 |
287 |     /// The logger for faults.
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/Utilities/Utilities.swift:288:16: warning: static property 'fault' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
245 |
246 | /// A wrapper for the unified logging system.
247 | struct Logger {
    |        `- note: consider making struct 'Logger' conform to the 'Sendable' protocol
248 |     /// The logger's corresponding object in the unified logging system.
249 |     let log: OSLog
    :
286 |
287 |     /// The logger for faults.
288 |     static let fault = Self(log: .default, level: .fault)
    |                |- warning: static property 'fault' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'fault' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
289 |
290 |     /// The logger for informative messages.
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/Utilities/Utilities.swift:291:16: warning: static property 'info' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
245 |
246 | /// A wrapper for the unified logging system.
247 | struct Logger {
    |        `- note: consider making struct 'Logger' conform to the 'Sendable' protocol
248 |     /// The logger's corresponding object in the unified logging system.
249 |     let log: OSLog
    :
289 |
290 |     /// The logger for informative messages.
291 |     static let info = Self(log: .default, level: .info)
    |                |- warning: static property 'info' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'info' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
292 | }
293 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/Utilities/ViewModifiers.swift:13:16: warning: static property 'defaultValue' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
 11 | @available(macOS 10.15, *)
 12 | struct KeyRecorderBezelStyleKey: EnvironmentKey {
 13 |     static var defaultValue = KeyRecorderView.BezelStyle.rounded
    |                |- warning: static property 'defaultValue' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: annotate 'defaultValue' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 14 | }
 15 |
[11/15] Compiling SwiftKeys Observation.swift
[12/15] Compiling SwiftKeys Key.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/KeyCommand/Key.swift:251:24: warning: static property 'customStringMapping' is not concurrency-safe because non-'Sendable' type '[KeyCommand.Key : String]' may have shared mutable state; this is an error in the Swift 6 language mode
  8 | extension KeyCommand {
  9 |     /// Constants that represent the various keys available on a keyboard.
 10 |     public enum Key {
    |                 `- note: consider making enum 'Key' conform to the 'Sendable' protocol
 11 |
 12 |         // MARK: ANSI
    :
249 |     /// Maps custom string representations to keys that can't be
250 |     /// represented by a key equivalent.
251 |     private static let customStringMapping: [KeyCommand.Key: String] = [
    |                        |- warning: static property 'customStringMapping' is not concurrency-safe because non-'Sendable' type '[KeyCommand.Key : String]' may have shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: annotate 'customStringMapping' with '@MainActor' if property should only be accessed from the main actor
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
252 |         .space: "Space", // matches macOS representation
253 |         .tab: "⇥",
[13/15] Compiling SwiftKeys KeyCommand.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/KeyCommand/Key.swift:251:24: warning: static property 'customStringMapping' is not concurrency-safe because non-'Sendable' type '[KeyCommand.Key : String]' may have shared mutable state; this is an error in the Swift 6 language mode
  8 | extension KeyCommand {
  9 |     /// Constants that represent the various keys available on a keyboard.
 10 |     public enum Key {
    |                 `- note: consider making enum 'Key' conform to the 'Sendable' protocol
 11 |
 12 |         // MARK: ANSI
    :
249 |     /// Maps custom string representations to keys that can't be
250 |     /// represented by a key equivalent.
251 |     private static let customStringMapping: [KeyCommand.Key: String] = [
    |                        |- warning: static property 'customStringMapping' is not concurrency-safe because non-'Sendable' type '[KeyCommand.Key : String]' may have shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: annotate 'customStringMapping' with '@MainActor' if property should only be accessed from the main actor
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
252 |         .space: "Space", // matches macOS representation
253 |         .tab: "⇥",
[14/15] Compiling SwiftKeys KeyRecorderView.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/KeyRecorder/KeyRecorderView.swift:79:17: warning: call to main actor-isolated initializer 'init(keyCommand:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 77 |         self.init(keyCommand: keyCommand) {
 78 |             _KeyRecorderView {
 79 |                 KeyRecorder(keyCommand: keyCommand)
    |                 `- warning: call to main actor-isolated initializer 'init(keyCommand:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 80 |             }
 81 |         }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/KeyRecorder/KeyRecorder.swift:149:12: note: calls to initializer 'init(keyCommand:)' from outside of its actor context are implicitly asynchronous
147 |     /// Whenever a new key combination is recorded, the key and modifiers
148 |     /// of the command will be updated to match.
149 |     public init(keyCommand: KeyCommand) {
    |            `- note: calls to initializer 'init(keyCommand:)' from outside of its actor context are implicitly asynchronous
150 |         super.init(_keyCommand: keyCommand)
151 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/KeyRecorder/KeyRecorderView.swift:79:17: warning: sending 'keyCommand' risks causing data races; this is an error in the Swift 6 language mode
 77 |         self.init(keyCommand: keyCommand) {
 78 |             _KeyRecorderView {
 79 |                 KeyRecorder(keyCommand: keyCommand)
    |                 |- warning: sending 'keyCommand' risks causing data races; this is an error in the Swift 6 language mode
    |                 `- note: sending task-isolated 'keyCommand' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
 80 |             }
 81 |         }
[15/15] Compiling SwiftKeys ViewModifiers.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftKeys/Utilities/ViewModifiers.swift:13:16: warning: static property 'defaultValue' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
 11 | @available(macOS 10.15, *)
 12 | struct KeyRecorderBezelStyleKey: EnvironmentKey {
 13 |     static var defaultValue = KeyRecorderView.BezelStyle.rounded
    |                |- warning: static property 'defaultValue' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: annotate 'defaultValue' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 14 | }
 15 |
Build complete! (35.77s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "SwiftKeys",
  "name" : "SwiftKeys",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "10.13"
    }
  ],
  "products" : [
    {
      "name" : "SwiftKeys",
      "targets" : [
        "SwiftKeys"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "SwiftKeysTests",
      "module_type" : "SwiftTarget",
      "name" : "SwiftKeysTests",
      "path" : "Tests/SwiftKeysTests",
      "sources" : [
        "EventTypeTests.swift",
        "KeyCommandProxyTests.swift",
        "KeyCommandTests.swift",
        "KeyRecorderTests.swift",
        "Utilities.swift"
      ],
      "target_dependencies" : [
        "SwiftKeys"
      ],
      "type" : "test"
    },
    {
      "c99name" : "SwiftKeys",
      "module_type" : "SwiftTarget",
      "name" : "SwiftKeys",
      "path" : "Sources/SwiftKeys",
      "product_memberships" : [
        "SwiftKeys"
      ],
      "sources" : [
        "KeyCommand/Key.swift",
        "KeyCommand/KeyCommand.swift",
        "KeyCommand/KeyCommandProxy.swift",
        "KeyCommand/Modifier.swift",
        "KeyCommand/Name.swift",
        "KeyCommand/Observation.swift",
        "KeyRecorder/BezelStyle.swift",
        "KeyRecorder/KeyRecorder.swift",
        "KeyRecorder/KeyRecorderView.swift",
        "Utilities/NSMenuItem+extensions.swift",
        "Utilities/Utilities.swift",
        "Utilities/ViewModifiers.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.9"
}
Done.
This is a staging environment. For live and up-to-date package information, visit swiftpackageindex.com.