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

Failed to build VisionKeyboardKit, reference main (0804e4), with Swift 6.0 for macOS (SPM) on 14 Sep 2024 22:04:41 UTC.

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.0.0-Release.Candidate.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete

Build Log

20 |     @AppStorage("IsExpanded") private var isExpanded: Bool = false
21 |     @AppStorage("Layout") private var layout: KeyboardLayoutType = .ansi
   |      `- error: 'AppStorage' is only available in macOS 11.0 or newer
22 |
23 |     func body(content: Content) -> some View {
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardSettingsViewModifier.swift:23:41: error: 'View' is only available in macOS 10.15 or newer
17 | import SwiftUI
18 |
19 | struct KeyboardSettingsViewModifier: ViewModifier {
   |        `- note: add @available attribute to enclosing struct
20 |     @AppStorage("IsExpanded") private var isExpanded: Bool = false
21 |     @AppStorage("Layout") private var layout: KeyboardLayoutType = .ansi
22 |
23 |     func body(content: Content) -> some View {
   |          |                              `- error: 'View' is only available in macOS 10.15 or newer
   |          `- note: add @available attribute to enclosing instance method
24 |         content.ornament(attachmentAnchor: .scene(.topLeading)) {
25 |             Menu {
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardSettingsViewModifier.swift:56:37: error: 'View' is only available in macOS 10.15 or newer
53 | }
54 |
55 | extension View {
   | `- note: add @available attribute to enclosing extension
56 |     func keyboardOrnament() -> some View {
   |          |                          `- error: 'View' is only available in macOS 10.15 or newer
   |          `- note: add @available attribute to enclosing instance method
57 |         self.modifier(KeyboardSettingsViewModifier())
58 |     }
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardSettingsViewModifier.swift:55:11: error: 'View' is only available in macOS 10.15 or newer
53 | }
54 |
55 | extension View {
   | |         `- error: 'View' is only available in macOS 10.15 or newer
   | `- note: add @available attribute to enclosing extension
56 |     func keyboardOrnament() -> some View {
57 |         self.modifier(KeyboardSettingsViewModifier())
macro expansion @Observable:1:2: error: 'ObservationTracked()' is only available in macOS 14.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardState.swift:26:5: note: expanded code originates here
18 |
19 | @Observable
20 | class KeyboardState {
   |       `- note: add @available attribute to enclosing class
21 |     private let id: KeyboardIdentifier
22 |     private let subject: KeyboardEventSubject
   :
24 |     let clicker = KeyboardClickSound()
25 |
26 |     var modifier: KeyboardModifier = .none
   +--- macro expansion @Observable ------------------------------------
   |1 | @ObservationTracked
   |  |  `- error: 'ObservationTracked()' is only available in macOS 14.0 or newer
   +--------------------------------------------------------------------
27 |
28 |     init(for id: KeyboardIdentifier) {
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardState.swift:19:2: error: 'Observable()' is only available in macOS 14.0 or newer
17 | import SwiftUI
18 |
19 | @Observable
   |  `- error: 'Observable()' is only available in macOS 14.0 or newer
20 | class KeyboardState {
   |       `- note: add @available attribute to enclosing class
21 |     private let id: KeyboardIdentifier
22 |     private let subject: KeyboardEventSubject
macro expansion @Observable:1:2: error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardState.swift:51:1: note: expanded code originates here
18 |
19 | @Observable
20 | class KeyboardState {
   |       `- note: add @available attribute to enclosing class
21 |     private let id: KeyboardIdentifier
22 |     private let subject: KeyboardEventSubject
   :
49 |         }
50 |     }
51 | }
   +--- macro expansion @Observable ------------------------------------
   | 1 | @ObservationIgnored private let _$observationRegistrar = Observation.ObservationRegistrar()
   |   |  `- error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
   | 2 |
   | 3 | internal nonisolated func access<Member>(
   +--------------------------------------------------------------------
52 |
macro expansion @ObservationTracked:1:2: error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardState.swift:26:43: note: expanded code originates here
18 |
19 | @Observable
20 | class KeyboardState {
   |       `- note: add @available attribute to enclosing class
21 |     private let id: KeyboardIdentifier
22 |     private let subject: KeyboardEventSubject
   :
24 |     let clicker = KeyboardClickSound()
25 |
26 |     var modifier: KeyboardModifier = .none
   +--- macro expansion @ObservationTracked ----------------------------
   |1 | @ObservationIgnored private  var _modifier: KeyboardModifier = .none
   |  |  `- error: 'ObservationIgnored()' is only available in macOS 14.0 or newer
   +--------------------------------------------------------------------
27 |
28 |     init(for id: KeyboardIdentifier) {
macro expansion @Observable:1:70: error: 'ObservationRegistrar' is only available in macOS 14.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardState.swift:51:1: note: expanded code originates here
18 |
19 | @Observable
20 | class KeyboardState {
   |       `- note: add @available attribute to enclosing class
21 |     private let id: KeyboardIdentifier
22 |     private let subject: KeyboardEventSubject
   :
49 |         }
50 |     }
51 | }
   +--- macro expansion @Observable ------------------------------------
   | 1 | @ObservationIgnored private let _$observationRegistrar = Observation.ObservationRegistrar()
   |   |                                                                      `- error: 'ObservationRegistrar' is only available in macOS 14.0 or newer
   | 2 |
   | 3 | internal nonisolated func access<Member>(
   +--------------------------------------------------------------------
52 |
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardState.swift:19:2: error: 'Observable()' is only available in macOS 14.0 or newer
17 | import SwiftUI
18 |
19 | @Observable
   |  `- error: 'Observable()' is only available in macOS 14.0 or newer
20 | class KeyboardState {
   |       `- note: add @available attribute to enclosing class
21 |     private let id: KeyboardIdentifier
22 |     private let subject: KeyboardEventSubject
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardView.swift:20:6: error: 'init(wrappedValue:_:store:)' is only available in macOS 11.0 or newer
17 | import SwiftUI
18 |
19 | struct KeyboardView: View {
   |        `- note: add @available attribute to enclosing struct
20 |     @AppStorage("IsExpanded") private var isExpanded: Bool = false
   |      `- error: 'init(wrappedValue:_:store:)' is only available in macOS 11.0 or newer
21 |     @AppStorage("Layout") private var layout: KeyboardLayoutType = .ansi
22 |     @State private var state: KeyboardState
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardView.swift:21:6: error: 'init(wrappedValue:_:store:)' is only available in macOS 11.0 or newer
17 | import SwiftUI
18 |
19 | struct KeyboardView: View {
   |        `- note: add @available attribute to enclosing struct
20 |     @AppStorage("IsExpanded") private var isExpanded: Bool = false
21 |     @AppStorage("Layout") private var layout: KeyboardLayoutType = .ansi
   |      `- error: 'init(wrappedValue:_:store:)' is only available in macOS 11.0 or newer
22 |     @State private var state: KeyboardState
23 |
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardView.swift:20:6: error: 'AppStorage' is only available in macOS 11.0 or newer
17 | import SwiftUI
18 |
19 | struct KeyboardView: View {
   |        `- note: add @available attribute to enclosing struct
20 |     @AppStorage("IsExpanded") private var isExpanded: Bool = false
   |      `- error: 'AppStorage' is only available in macOS 11.0 or newer
21 |     @AppStorage("Layout") private var layout: KeyboardLayoutType = .ansi
22 |     @State private var state: KeyboardState
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardView.swift:21:6: error: 'AppStorage' is only available in macOS 11.0 or newer
17 | import SwiftUI
18 |
19 | struct KeyboardView: View {
   |        `- note: add @available attribute to enclosing struct
20 |     @AppStorage("IsExpanded") private var isExpanded: Bool = false
21 |     @AppStorage("Layout") private var layout: KeyboardLayoutType = .ansi
   |      `- error: 'AppStorage' is only available in macOS 11.0 or newer
22 |     @State private var state: KeyboardState
23 |
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardView.swift:22:6: error: 'State' is only available in macOS 10.15 or newer
17 | import SwiftUI
18 |
19 | struct KeyboardView: View {
   |        `- note: add @available attribute to enclosing struct
20 |     @AppStorage("IsExpanded") private var isExpanded: Bool = false
21 |     @AppStorage("Layout") private var layout: KeyboardLayoutType = .ansi
22 |     @State private var state: KeyboardState
   |      `- error: 'State' is only available in macOS 10.15 or newer
23 |
24 |     init(for id: KeyboardIdentifier) {
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardView.swift:28:20: error: 'View' is only available in macOS 10.15 or newer
17 | import SwiftUI
18 |
19 | struct KeyboardView: View {
   |        `- note: add @available attribute to enclosing struct
20 |     @AppStorage("IsExpanded") private var isExpanded: Bool = false
21 |     @AppStorage("Layout") private var layout: KeyboardLayoutType = .ansi
   :
26 |     }
27 |
28 |     var body: some View {
   |         |          `- error: 'View' is only available in macOS 10.15 or newer
   |         `- note: add @available attribute to enclosing property
29 |         HStack {
30 |             KeyboardLayoutANSI()
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardWindowGroup.swift:25:27: error: 'Scene' is only available in macOS 11.0 or newer
20 | ///
21 | /// Use `OpenWindowAction.callAsFunction(keyboardFor:)` to show the keyboard.
22 | public struct KeyboardWindowGroup: Scene {
   |               `- note: add @available attribute to enclosing struct
23 |     public init(){}
24 |
25 |     public var body: some Scene {
   |                |          `- error: 'Scene' is only available in macOS 11.0 or newer
   |                `- note: add @available attribute to enclosing property
26 |         WindowGroup(for: KeyboardIdentifier.self) { $id in
27 |             KeyboardView(for: id ?? .global)
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardWindowGroup.swift:33:18: error: 'OpenWindowAction' is only available in macOS 13.0 or newer
31 | }
32 |
33 | public extension OpenWindowAction {
   |        |         `- error: 'OpenWindowAction' is only available in macOS 13.0 or newer
   |        `- note: add @available attribute to enclosing extension
34 |     /// Opens a keyboard window
35 |     /// - Parameter id: Any `Hashable` object that uniquely identifies this keyboard instance.
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardWindowGroup.swift:47:18: error: 'DismissWindowAction' is only available in macOS 14.0 or newer
45 | }
46 |
47 | public extension DismissWindowAction {
   |        |         `- error: 'DismissWindowAction' is only available in macOS 14.0 or newer
   |        `- note: add @available attribute to enclosing extension
48 |     /// Closes a keyboard window
49 |     /// - Parameter id: Any `Hashable` object that uniquely identifies this keyboard instance.
[13/16] Compiling VisionKeyboardKit KeyboardButtonStyle.swift
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardButtonStyle.swift:20:28: error: 'Duration' is only available in macOS 13.0 or newer
 18 | import RealityKit
 19 |
 20 | private let kDebounceTime: Duration = .milliseconds(25)
    |             |              `- error: 'Duration' is only available in macOS 13.0 or newer
    |             `- note: add @available attribute to enclosing let
 21 |
 22 | struct KeyboardButtonStyle: PrimitiveButtonStyle {
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardButtonStyle.swift:20:40: error: 'milliseconds' is only available in macOS 13.0 or newer
 18 | import RealityKit
 19 |
 20 | private let kDebounceTime: Duration = .milliseconds(25)
    |             |                          `- error: 'milliseconds' is only available in macOS 13.0 or newer
    |             `- note: add @available attribute to enclosing let
 21 |
 22 | struct KeyboardButtonStyle: PrimitiveButtonStyle {
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardState.swift:19:2: error: 'Observable()' is only available in macOS 14.0 or newer
17 | import SwiftUI
18 |
19 | @Observable
   |  `- error: 'Observable()' is only available in macOS 14.0 or newer
20 | class KeyboardState {
21 |     private let id: KeyboardIdentifier
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardButtonStyle.swift:34:6: error: 'init(_:)' is only available in macOS 14.0 or newer
 20 | private let kDebounceTime: Duration = .milliseconds(25)
 21 |
 22 | struct KeyboardButtonStyle: PrimitiveButtonStyle {
    |        `- note: add @available attribute to enclosing struct
 23 |     let isDark: Bool
 24 |     let isToggled: Bool
    :
 32 |     @State private var isPressed: Bool = false
 33 |     @State private var debounceTask: Task<Void, Never>?
 34 |     @Environment(KeyboardState.self) private var state
    |      `- error: 'init(_:)' is only available in macOS 14.0 or newer
 35 |
 36 |     private func spatialGesture(configuration: Configuration) -> some Gesture {
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardButtonStyle.swift:32:6: error: 'State' is only available in macOS 10.15 or newer
 20 | private let kDebounceTime: Duration = .milliseconds(25)
 21 |
 22 | struct KeyboardButtonStyle: PrimitiveButtonStyle {
    |        `- note: add @available attribute to enclosing struct
 23 |     let isDark: Bool
 24 |     let isToggled: Bool
    :
 30 |     let onTouchUp: () -> Void
 31 |
 32 |     @State private var isPressed: Bool = false
    |      `- error: 'State' is only available in macOS 10.15 or newer
 33 |     @State private var debounceTask: Task<Void, Never>?
 34 |     @Environment(KeyboardState.self) private var state
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardButtonStyle.swift:33:38: error: 'Task' is only available in macOS 10.15 or newer
 20 | private let kDebounceTime: Duration = .milliseconds(25)
 21 |
 22 | struct KeyboardButtonStyle: PrimitiveButtonStyle {
    |        `- note: add @available attribute to enclosing struct
 23 |     let isDark: Bool
 24 |     let isToggled: Bool
    :
 31 |
 32 |     @State private var isPressed: Bool = false
 33 |     @State private var debounceTask: Task<Void, Never>?
    |                                      `- error: 'Task' is only available in macOS 10.15 or newer
 34 |     @Environment(KeyboardState.self) private var state
 35 |
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardButtonStyle.swift:33:6: error: 'State' is only available in macOS 10.15 or newer
 20 | private let kDebounceTime: Duration = .milliseconds(25)
 21 |
 22 | struct KeyboardButtonStyle: PrimitiveButtonStyle {
    |        `- note: add @available attribute to enclosing struct
 23 |     let isDark: Bool
 24 |     let isToggled: Bool
    :
 31 |
 32 |     @State private var isPressed: Bool = false
 33 |     @State private var debounceTask: Task<Void, Never>?
    |      `- error: 'State' is only available in macOS 10.15 or newer
 34 |     @Environment(KeyboardState.self) private var state
 35 |
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardButtonStyle.swift:34:6: error: 'Environment' is only available in macOS 10.15 or newer
 20 | private let kDebounceTime: Duration = .milliseconds(25)
 21 |
 22 | struct KeyboardButtonStyle: PrimitiveButtonStyle {
    |        `- note: add @available attribute to enclosing struct
 23 |     let isDark: Bool
 24 |     let isToggled: Bool
    :
 32 |     @State private var isPressed: Bool = false
 33 |     @State private var debounceTask: Task<Void, Never>?
 34 |     @Environment(KeyboardState.self) private var state
    |      `- error: 'Environment' is only available in macOS 10.15 or newer
 35 |
 36 |     private func spatialGesture(configuration: Configuration) -> some Gesture {
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardButtonStyle.swift:36:71: error: 'Gesture' is only available in macOS 10.15 or newer
 20 | private let kDebounceTime: Duration = .milliseconds(25)
 21 |
 22 | struct KeyboardButtonStyle: PrimitiveButtonStyle {
    |        `- note: add @available attribute to enclosing struct
 23 |     let isDark: Bool
 24 |     let isToggled: Bool
    :
 34 |     @Environment(KeyboardState.self) private var state
 35 |
 36 |     private func spatialGesture(configuration: Configuration) -> some Gesture {
    |                  |                                                    `- error: 'Gesture' is only available in macOS 10.15 or newer
    |                  `- note: add @available attribute to enclosing instance method
 37 |         SpatialEventGesture()
 38 |             .onChanged { events in
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardButtonStyle.swift:79:57: error: 'View' is only available in macOS 10.15 or newer
 20 | private let kDebounceTime: Duration = .milliseconds(25)
 21 |
 22 | struct KeyboardButtonStyle: PrimitiveButtonStyle {
    |        `- note: add @available attribute to enclosing struct
 23 |     let isDark: Bool
 24 |     let isToggled: Bool
    :
 77 |     }
 78 |
 79 |     func makeBody(configuration: Configuration) -> some View {
    |          |                                              `- error: 'View' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
 80 |         ZStack {
 81 |             if isPressed {
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardButtonStyle.swift:126:11: error: 'PrimitiveButtonStyle' is only available in macOS 10.15 or newer
124 | }
125 |
126 | extension PrimitiveButtonStyle where Self == KeyboardButtonStyle {
    | |         `- error: 'PrimitiveButtonStyle' is only available in macOS 10.15 or newer
    | `- note: add @available attribute to enclosing extension
127 |     static func keyboardButton(isDark: Bool = false, isToggled: Bool = false, fontSize: CGFloat = 24, width: CGFloat = 50, height: CGFloat = 50, clickSound: KeyboardClickSound.File = .normal, onTouchDown: @escaping () -> Void = {}, onTouchUp: @escaping () -> Void = {}) -> KeyboardButtonStyle {
128 |         KeyboardButtonStyle(isDark: isDark, isToggled: isToggled, fontSize: fontSize, width: width, height: height, clickSound: clickSound, onTouchDown: onTouchDown, onTouchUp: onTouchUp)
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardButtonStyle.swift:55:14: warning: conformance of '_EndedGesture<Content>' to 'Gesture' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
 20 | private let kDebounceTime: Duration = .milliseconds(25)
 21 |
 22 | struct KeyboardButtonStyle: PrimitiveButtonStyle {
    |        `- note: add @available attribute to enclosing struct
 23 |     let isDark: Bool
 24 |     let isToggled: Bool
    :
 34 |     @Environment(KeyboardState.self) private var state
 35 |
 36 |     private func spatialGesture(configuration: Configuration) -> some Gesture {
    |                  `- note: add @available attribute to enclosing instance method
 37 |         SpatialEventGesture()
 38 |             .onChanged { events in
    :
 53 |                 }
 54 |             }
 55 |             .onEnded { events in
    |              |- warning: conformance of '_EndedGesture<Content>' to 'Gesture' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
    |              `- note: add 'if #available' version check
 56 |                 for event in events {
 57 |                     switch event.kind {
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardButtonStyle.swift:37:9: error: 'SpatialEventGesture' is only available in macOS 15.0 or newer
 20 | private let kDebounceTime: Duration = .milliseconds(25)
 21 |
 22 | struct KeyboardButtonStyle: PrimitiveButtonStyle {
    |        `- note: add @available attribute to enclosing struct
 23 |     let isDark: Bool
 24 |     let isToggled: Bool
    :
 34 |     @Environment(KeyboardState.self) private var state
 35 |
 36 |     private func spatialGesture(configuration: Configuration) -> some Gesture {
    |                  `- note: add @available attribute to enclosing instance method
 37 |         SpatialEventGesture()
    |         |- error: 'SpatialEventGesture' is only available in macOS 15.0 or newer
    |         `- note: add 'if #available' version check
 38 |             .onChanged { events in
 39 |                 for event in events {
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardButtonStyle.swift:38:14: error: 'onChanged' is only available in macOS 10.15 or newer
 20 | private let kDebounceTime: Duration = .milliseconds(25)
 21 |
 22 | struct KeyboardButtonStyle: PrimitiveButtonStyle {
    |        `- note: add @available attribute to enclosing struct
 23 |     let isDark: Bool
 24 |     let isToggled: Bool
    :
 34 |     @Environment(KeyboardState.self) private var state
 35 |
 36 |     private func spatialGesture(configuration: Configuration) -> some Gesture {
    |                  `- note: add @available attribute to enclosing instance method
 37 |         SpatialEventGesture()
 38 |             .onChanged { events in
    |              |- error: 'onChanged' is only available in macOS 10.15 or newer
    |              `- note: add 'if #available' version check
 39 |                 for event in events {
 40 |                     switch event.kind {
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardButtonStyle.swift:43:29: error: setter for 'isPressed' is only available in macOS 10.15 or newer
 20 | private let kDebounceTime: Duration = .milliseconds(25)
 21 |
 22 | struct KeyboardButtonStyle: PrimitiveButtonStyle {
    |        `- note: add @available attribute to enclosing struct
 23 |     let isDark: Bool
 24 |     let isToggled: Bool
    :
 34 |     @Environment(KeyboardState.self) private var state
 35 |
 36 |     private func spatialGesture(configuration: Configuration) -> some Gesture {
    |                  `- note: add @available attribute to enclosing instance method
 37 |         SpatialEventGesture()
 38 |             .onChanged { events in
    :
 41 |                     case .indirectPinch, .pointer, .touch:
 42 |                         if !isPressed {
 43 |                             isPressed = true
    |                             |- error: setter for 'isPressed' is only available in macOS 10.15 or newer
    |                             `- note: add 'if #available' version check
 44 |                             onTouchDown()
 45 |                         }
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardButtonStyle.swift:48:43: error: 'cancel()' is only available in macOS 10.15 or newer
 20 | private let kDebounceTime: Duration = .milliseconds(25)
 21 |
 22 | struct KeyboardButtonStyle: PrimitiveButtonStyle {
    |        `- note: add @available attribute to enclosing struct
 23 |     let isDark: Bool
 24 |     let isToggled: Bool
    :
 34 |     @Environment(KeyboardState.self) private var state
 35 |
 36 |     private func spatialGesture(configuration: Configuration) -> some Gesture {
    |                  `- note: add @available attribute to enclosing instance method
 37 |         SpatialEventGesture()
 38 |             .onChanged { events in
    :
 46 |                         // touch events require debouncing
 47 |                         if event.kind == .touch {
 48 |                             debounceTask?.cancel()
    |                                           |- error: 'cancel()' is only available in macOS 10.15 or newer
    |                                           `- note: add 'if #available' version check
 49 |                             debounceTask = nil
 50 |                         }
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardButtonStyle.swift:49:29: error: setter for 'debounceTask' is only available in macOS 10.15 or newer
 20 | private let kDebounceTime: Duration = .milliseconds(25)
 21 |
 22 | struct KeyboardButtonStyle: PrimitiveButtonStyle {
    |        `- note: add @available attribute to enclosing struct
 23 |     let isDark: Bool
 24 |     let isToggled: Bool
    :
 34 |     @Environment(KeyboardState.self) private var state
 35 |
 36 |     private func spatialGesture(configuration: Configuration) -> some Gesture {
    |                  `- note: add @available attribute to enclosing instance method
 37 |         SpatialEventGesture()
 38 |             .onChanged { events in
    :
 47 |                         if event.kind == .touch {
 48 |                             debounceTask?.cancel()
 49 |                             debounceTask = nil
    |                             |- error: setter for 'debounceTask' is only available in macOS 10.15 or newer
    |                             `- note: add 'if #available' version check
 50 |                         }
 51 |                     default: break
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardButtonStyle.swift:55:14: error: 'onEnded' is only available in macOS 10.15 or newer
 20 | private let kDebounceTime: Duration = .milliseconds(25)
 21 |
 22 | struct KeyboardButtonStyle: PrimitiveButtonStyle {
    |        `- note: add @available attribute to enclosing struct
 23 |     let isDark: Bool
 24 |     let isToggled: Bool
    :
 34 |     @Environment(KeyboardState.self) private var state
 35 |
 36 |     private func spatialGesture(configuration: Configuration) -> some Gesture {
    |                  `- note: add @available attribute to enclosing instance method
 37 |         SpatialEventGesture()
 38 |             .onChanged { events in
    :
 53 |                 }
 54 |             }
 55 |             .onEnded { events in
    |              |- error: 'onEnded' is only available in macOS 10.15 or newer
    |              `- note: add 'if #available' version check
 56 |                 for event in events {
 57 |                     switch event.kind {
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardButtonStyle.swift:55:22: warning: conformance of 'SpatialEventCollection' to 'Equatable' is only available in macOS 15.0 or newer; this is an error in the Swift 6 language mode
 20 | private let kDebounceTime: Duration = .milliseconds(25)
 21 |
 22 | struct KeyboardButtonStyle: PrimitiveButtonStyle {
    |        `- note: add @available attribute to enclosing struct
 23 |     let isDark: Bool
 24 |     let isToggled: Bool
    :
 34 |     @Environment(KeyboardState.self) private var state
 35 |
 36 |     private func spatialGesture(configuration: Configuration) -> some Gesture {
    |                  `- note: add @available attribute to enclosing instance method
 37 |         SpatialEventGesture()
 38 |             .onChanged { events in
    :
 53 |                 }
 54 |             }
 55 |             .onEnded { events in
    |                      |- warning: conformance of 'SpatialEventCollection' to 'Equatable' is only available in macOS 15.0 or newer; this is an error in the Swift 6 language mode
    |                      `- note: add 'if #available' version check
 56 |                 for event in events {
 57 |                     switch event.kind {
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardButtonStyle.swift:55:22: warning: conformance of 'SpatialEventCollection' to 'Equatable' is only available in macOS 15.0 or newer; this is an error in the Swift 6 language mode
 20 | private let kDebounceTime: Duration = .milliseconds(25)
 21 |
 22 | struct KeyboardButtonStyle: PrimitiveButtonStyle {
    |        `- note: add @available attribute to enclosing struct
 23 |     let isDark: Bool
 24 |     let isToggled: Bool
    :
 34 |     @Environment(KeyboardState.self) private var state
 35 |
 36 |     private func spatialGesture(configuration: Configuration) -> some Gesture {
    |                  `- note: add @available attribute to enclosing instance method
 37 |         SpatialEventGesture()
 38 |             .onChanged { events in
    :
 53 |                 }
 54 |             }
 55 |             .onEnded { events in
    |                      |- warning: conformance of 'SpatialEventCollection' to 'Equatable' is only available in macOS 15.0 or newer; this is an error in the Swift 6 language mode
    |                      `- note: add 'if #available' version check
 56 |                 for event in events {
 57 |                     switch event.kind {
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardButtonStyle.swift:59:25: error: setter for 'isPressed' is only available in macOS 10.15 or newer
 20 | private let kDebounceTime: Duration = .milliseconds(25)
 21 |
 22 | struct KeyboardButtonStyle: PrimitiveButtonStyle {
    |        `- note: add @available attribute to enclosing struct
 23 |     let isDark: Bool
 24 |     let isToggled: Bool
    :
 34 |     @Environment(KeyboardState.self) private var state
 35 |
 36 |     private func spatialGesture(configuration: Configuration) -> some Gesture {
    |                  `- note: add @available attribute to enclosing instance method
 37 |         SpatialEventGesture()
 38 |             .onChanged { events in
    :
 57 |                     switch event.kind {
 58 |                     case .indirectPinch, .pointer:
 59 |                         isPressed = false
    |                         |- error: setter for 'isPressed' is only available in macOS 10.15 or newer
    |                         `- note: add 'if #available' version check
 60 |                         onTouchUp()
 61 |                         configuration.trigger()
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardButtonStyle.swift:65:25: error: setter for 'debounceTask' is only available in macOS 10.15 or newer
 20 | private let kDebounceTime: Duration = .milliseconds(25)
 21 |
 22 | struct KeyboardButtonStyle: PrimitiveButtonStyle {
    |        `- note: add @available attribute to enclosing struct
 23 |     let isDark: Bool
 24 |     let isToggled: Bool
    :
 34 |     @Environment(KeyboardState.self) private var state
 35 |
 36 |     private func spatialGesture(configuration: Configuration) -> some Gesture {
    |                  `- note: add @available attribute to enclosing instance method
 37 |         SpatialEventGesture()
 38 |             .onChanged { events in
    :
 63 |                         // ignore any .ended phase followed immediately by an .active phase
 64 |                         let trigger = configuration.trigger
 65 |                         debounceTask = Task { @MainActor in
    |                         |- error: setter for 'debounceTask' is only available in macOS 10.15 or newer
    |                         `- note: add 'if #available' version check
 66 |                             try? await Task.sleep(for: kDebounceTime)
 67 |                             if !Task.isCancelled {
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardButtonStyle.swift:65:40: error: 'Task' is only available in macOS 10.15 or newer
 20 | private let kDebounceTime: Duration = .milliseconds(25)
 21 |
 22 | struct KeyboardButtonStyle: PrimitiveButtonStyle {
    |        `- note: add @available attribute to enclosing struct
 23 |     let isDark: Bool
 24 |     let isToggled: Bool
    :
 34 |     @Environment(KeyboardState.self) private var state
 35 |
 36 |     private func spatialGesture(configuration: Configuration) -> some Gesture {
    |                  `- note: add @available attribute to enclosing instance method
 37 |         SpatialEventGesture()
 38 |             .onChanged { events in
    :
 63 |                         // ignore any .ended phase followed immediately by an .active phase
 64 |                         let trigger = configuration.trigger
 65 |                         debounceTask = Task { @MainActor in
    |                                        |- error: 'Task' is only available in macOS 10.15 or newer
    |                                        `- note: add 'if #available' version check
 66 |                             try? await Task.sleep(for: kDebounceTime)
 67 |                             if !Task.isCancelled {
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardButtonStyle.swift:65:40: error: 'init(priority:operation:)' is only available in macOS 10.15 or newer
 20 | private let kDebounceTime: Duration = .milliseconds(25)
 21 |
 22 | struct KeyboardButtonStyle: PrimitiveButtonStyle {
    |        `- note: add @available attribute to enclosing struct
 23 |     let isDark: Bool
 24 |     let isToggled: Bool
    :
 34 |     @Environment(KeyboardState.self) private var state
 35 |
 36 |     private func spatialGesture(configuration: Configuration) -> some Gesture {
    |                  `- note: add @available attribute to enclosing instance method
 37 |         SpatialEventGesture()
 38 |             .onChanged { events in
    :
 63 |                         // ignore any .ended phase followed immediately by an .active phase
 64 |                         let trigger = configuration.trigger
 65 |                         debounceTask = Task { @MainActor in
    |                                        |- error: 'init(priority:operation:)' is only available in macOS 10.15 or newer
    |                                        `- note: add 'if #available' version check
 66 |                             try? await Task.sleep(for: kDebounceTime)
 67 |                             if !Task.isCancelled {
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardButtonStyle.swift:66:40: error: 'Task' is only available in macOS 10.15 or newer
 20 | private let kDebounceTime: Duration = .milliseconds(25)
 21 |
 22 | struct KeyboardButtonStyle: PrimitiveButtonStyle {
    |        `- note: add @available attribute to enclosing struct
 23 |     let isDark: Bool
 24 |     let isToggled: Bool
    :
 34 |     @Environment(KeyboardState.self) private var state
 35 |
 36 |     private func spatialGesture(configuration: Configuration) -> some Gesture {
    |                  `- note: add @available attribute to enclosing instance method
 37 |         SpatialEventGesture()
 38 |             .onChanged { events in
    :
 64 |                         let trigger = configuration.trigger
 65 |                         debounceTask = Task { @MainActor in
 66 |                             try? await Task.sleep(for: kDebounceTime)
    |                                        |- error: 'Task' is only available in macOS 10.15 or newer
    |                                        `- note: add 'if #available' version check
 67 |                             if !Task.isCancelled {
 68 |                                 isPressed = false
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardButtonStyle.swift:66:45: error: 'sleep(for:tolerance:clock:)' is only available in macOS 13.0 or newer
 20 | private let kDebounceTime: Duration = .milliseconds(25)
 21 |
 22 | struct KeyboardButtonStyle: PrimitiveButtonStyle {
    |        `- note: add @available attribute to enclosing struct
 23 |     let isDark: Bool
 24 |     let isToggled: Bool
    :
 34 |     @Environment(KeyboardState.self) private var state
 35 |
 36 |     private func spatialGesture(configuration: Configuration) -> some Gesture {
    |                  `- note: add @available attribute to enclosing instance method
 37 |         SpatialEventGesture()
 38 |             .onChanged { events in
    :
 64 |                         let trigger = configuration.trigger
 65 |                         debounceTask = Task { @MainActor in
 66 |                             try? await Task.sleep(for: kDebounceTime)
    |                                             |- error: 'sleep(for:tolerance:clock:)' is only available in macOS 13.0 or newer
    |                                             `- note: add 'if #available' version check
 67 |                             if !Task.isCancelled {
 68 |                                 isPressed = false
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardButtonStyle.swift:67:33: error: 'Task' is only available in macOS 10.15 or newer
 20 | private let kDebounceTime: Duration = .milliseconds(25)
 21 |
 22 | struct KeyboardButtonStyle: PrimitiveButtonStyle {
    |        `- note: add @available attribute to enclosing struct
 23 |     let isDark: Bool
 24 |     let isToggled: Bool
    :
 34 |     @Environment(KeyboardState.self) private var state
 35 |
 36 |     private func spatialGesture(configuration: Configuration) -> some Gesture {
    |                  `- note: add @available attribute to enclosing instance method
 37 |         SpatialEventGesture()
 38 |             .onChanged { events in
    :
 65 |                         debounceTask = Task { @MainActor in
 66 |                             try? await Task.sleep(for: kDebounceTime)
 67 |                             if !Task.isCancelled {
    |                                 |- error: 'Task' is only available in macOS 10.15 or newer
    |                                 `- note: add 'if #available' version check
 68 |                                 isPressed = false
 69 |                                 onTouchUp()
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardButtonStyle.swift:67:38: error: 'isCancelled' is only available in macOS 10.15 or newer
 20 | private let kDebounceTime: Duration = .milliseconds(25)
 21 |
 22 | struct KeyboardButtonStyle: PrimitiveButtonStyle {
    |        `- note: add @available attribute to enclosing struct
 23 |     let isDark: Bool
 24 |     let isToggled: Bool
    :
 34 |     @Environment(KeyboardState.self) private var state
 35 |
 36 |     private func spatialGesture(configuration: Configuration) -> some Gesture {
    |                  `- note: add @available attribute to enclosing instance method
 37 |         SpatialEventGesture()
 38 |             .onChanged { events in
    :
 65 |                         debounceTask = Task { @MainActor in
 66 |                             try? await Task.sleep(for: kDebounceTime)
 67 |                             if !Task.isCancelled {
    |                                      |- error: 'isCancelled' is only available in macOS 10.15 or newer
    |                                      `- note: add 'if #available' version check
 68 |                                 isPressed = false
 69 |                                 onTouchUp()
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardButtonStyle.swift:68:33: error: setter for 'isPressed' is only available in macOS 10.15 or newer
 20 | private let kDebounceTime: Duration = .milliseconds(25)
 21 |
 22 | struct KeyboardButtonStyle: PrimitiveButtonStyle {
    |        `- note: add @available attribute to enclosing struct
 23 |     let isDark: Bool
 24 |     let isToggled: Bool
    :
 34 |     @Environment(KeyboardState.self) private var state
 35 |
 36 |     private func spatialGesture(configuration: Configuration) -> some Gesture {
    |                  `- note: add @available attribute to enclosing instance method
 37 |         SpatialEventGesture()
 38 |             .onChanged { events in
    :
 66 |                             try? await Task.sleep(for: kDebounceTime)
 67 |                             if !Task.isCancelled {
 68 |                                 isPressed = false
    |                                 |- error: setter for 'isPressed' is only available in macOS 10.15 or newer
    |                                 `- note: add 'if #available' version check
 69 |                                 onTouchUp()
 70 |                                 trigger()
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:29:18: error: 'Entity' is only available in macOS 10.15 or newer
 19 |
 20 | /// Plays the system keyboard click sound
 21 | class KeyboardClickSound {
    |       `- note: add @available attribute to enclosing class
 22 |     enum File {
 23 |         case normal
    :
 27 |
 28 |     /// The RK entity where the sound will originate
 29 |     let entity = Entity()
    |                  `- error: 'Entity' is only available in macOS 10.15 or newer
 30 |
 31 |     private var pressNormalPlayer: AudioPlaybackController?
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardButtonStyle.swift:121:33: error: argument passed to call that takes no arguments
119 |         .frame(width: width + 4, height: height + 4)
120 |         .hoverEffect()
121 |         .frame(depth: isPressed ? 0 : 12)
    |                                 `- error: argument passed to call that takes no arguments
122 |         .gesture(spatialGesture(configuration: configuration))
123 |     }
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:29:9: warning: main actor-isolated default value in a nonisolated context; this is an error in the Swift 6 language mode
 27 |
 28 |     /// The RK entity where the sound will originate
 29 |     let entity = Entity()
    |         `- warning: main actor-isolated default value in a nonisolated context; this is an error in the Swift 6 language mode
 30 |
 31 |     private var pressNormalPlayer: AudioPlaybackController?
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:31:36: error: 'AudioPlaybackController' is only available in macOS 10.15 or newer
 19 |
 20 | /// Plays the system keyboard click sound
 21 | class KeyboardClickSound {
    |       `- note: add @available attribute to enclosing class
 22 |     enum File {
 23 |         case normal
    :
 29 |     let entity = Entity()
 30 |
 31 |     private var pressNormalPlayer: AudioPlaybackController?
    |                                    `- error: 'AudioPlaybackController' is only available in macOS 10.15 or newer
 32 |     private var pressDeletePlayer: AudioPlaybackController?
 33 |     private var pressModifierPlayer: AudioPlaybackController?
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:32:36: error: 'AudioPlaybackController' is only available in macOS 10.15 or newer
 19 |
 20 | /// Plays the system keyboard click sound
 21 | class KeyboardClickSound {
    |       `- note: add @available attribute to enclosing class
 22 |     enum File {
 23 |         case normal
    :
 30 |
 31 |     private var pressNormalPlayer: AudioPlaybackController?
 32 |     private var pressDeletePlayer: AudioPlaybackController?
    |                                    `- error: 'AudioPlaybackController' is only available in macOS 10.15 or newer
 33 |     private var pressModifierPlayer: AudioPlaybackController?
 34 |
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:33:38: error: 'AudioPlaybackController' is only available in macOS 10.15 or newer
 19 |
 20 | /// Plays the system keyboard click sound
 21 | class KeyboardClickSound {
    |       `- note: add @available attribute to enclosing class
 22 |     enum File {
 23 |         case normal
    :
 31 |     private var pressNormalPlayer: AudioPlaybackController?
 32 |     private var pressDeletePlayer: AudioPlaybackController?
 33 |     private var pressModifierPlayer: AudioPlaybackController?
    |                                      `- error: 'AudioPlaybackController' is only available in macOS 10.15 or newer
 34 |
 35 |     private func loadAudioResource(for url: URL) -> AudioFileResource? {
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:35:53: error: 'AudioFileResource' is only available in macOS 10.15 or newer
 19 |
 20 | /// Plays the system keyboard click sound
 21 | class KeyboardClickSound {
    |       `- note: add @available attribute to enclosing class
 22 |     enum File {
 23 |         case normal
    :
 33 |     private var pressModifierPlayer: AudioPlaybackController?
 34 |
 35 |     private func loadAudioResource(for url: URL) -> AudioFileResource? {
    |                  |                                  `- error: 'AudioFileResource' is only available in macOS 10.15 or newer
    |                  `- note: add @available attribute to enclosing instance method
 36 |         let configuration = AudioFileResource.Configuration(calibration: .absolute(dBSPL: 58.0))
 37 |         return try? .load(contentsOf: url, configuration: configuration)
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:61:24: error: 'appending(components:directoryHint:)' is only available in macOS 13.0 or newer
 19 |
 20 | /// Plays the system keyboard click sound
 21 | class KeyboardClickSound {
    |       `- note: add @available attribute to enclosing class
 22 |     enum File {
 23 |         case normal
    :
 59 |         let fm = FileManager.default
 60 |         let library = fm.urls(for: .libraryDirectory, in: .systemDomainMask)[0]
 61 |         return library.appending(components: "Audio", "UISounds")
    |                        |- error: 'appending(components:directoryHint:)' is only available in macOS 13.0 or newer
    |                        `- note: add 'if #available' version check
 62 |     }()
 63 |     #endif
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:107:33: error: 'AudioPlaybackController' is only available in macOS 10.15 or newer
 19 |
 20 | /// Plays the system keyboard click sound
 21 | class KeyboardClickSound {
    |       `- note: add @available attribute to enclosing class
 22 |     enum File {
 23 |         case normal
    :
105 |
106 |     @MainActor
107 |     private func play(_ player: AudioPlaybackController?) {
    |                  |              `- error: 'AudioPlaybackController' is only available in macOS 10.15 or newer
    |                  `- note: add @available attribute to enclosing instance method
108 |         guard let player = player else {
109 |             return
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:36:29: error: 'AudioFileResource' is only available in macOS 10.15 or newer
 19 |
 20 | /// Plays the system keyboard click sound
 21 | class KeyboardClickSound {
    |       `- note: add @available attribute to enclosing class
 22 |     enum File {
 23 |         case normal
    :
 33 |     private var pressModifierPlayer: AudioPlaybackController?
 34 |
 35 |     private func loadAudioResource(for url: URL) -> AudioFileResource? {
    |                  `- note: add @available attribute to enclosing instance method
 36 |         let configuration = AudioFileResource.Configuration(calibration: .absolute(dBSPL: 58.0))
    |                             |- error: 'AudioFileResource' is only available in macOS 10.15 or newer
    |                             `- note: add 'if #available' version check
 37 |         return try? .load(contentsOf: url, configuration: configuration)
 38 |     }
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:37:22: error: 'load(contentsOf:withName:configuration:)' is only available in macOS 15.0 or newer
 19 |
 20 | /// Plays the system keyboard click sound
 21 | class KeyboardClickSound {
    |       `- note: add @available attribute to enclosing class
 22 |     enum File {
 23 |         case normal
    :
 33 |     private var pressModifierPlayer: AudioPlaybackController?
 34 |
 35 |     private func loadAudioResource(for url: URL) -> AudioFileResource? {
    |                  `- note: add @available attribute to enclosing instance method
 36 |         let configuration = AudioFileResource.Configuration(calibration: .absolute(dBSPL: 58.0))
 37 |         return try? .load(contentsOf: url, configuration: configuration)
    |                      |- error: 'load(contentsOf:withName:configuration:)' is only available in macOS 15.0 or newer
    |                      `- note: add 'if #available' version check
 38 |     }
 39 |
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:37:22: warning: call to main actor-isolated static method 'load(contentsOf:withName:configuration:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 33 |     private var pressModifierPlayer: AudioPlaybackController?
 34 |
 35 |     private func loadAudioResource(for url: URL) -> AudioFileResource? {
    |                  `- note: add '@MainActor' to make instance method 'loadAudioResource(for:)' part of global actor 'MainActor'
 36 |         let configuration = AudioFileResource.Configuration(calibration: .absolute(dBSPL: 58.0))
 37 |         return try? .load(contentsOf: url, configuration: configuration)
    |                      `- warning: call to main actor-isolated static method 'load(contentsOf:withName:configuration:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 38 |     }
 39 |
RealityFoundation.AudioFileResource:3:51: note: calls to static method 'load(contentsOf:withName:configuration:)' from outside of its actor context are implicitly asynchronous
1 | @available(visionOS 1.0, macOS 15.0, iOS 18.0, *)
2 | extension AudioFileResource {
3 |     @MainActor @preconcurrency public static func load(contentsOf url: URL, withName name: String? = nil, configuration: AudioFileResource.Configuration = .init()) throws -> AudioFileResource
  |                                                   `- note: calls to static method 'load(contentsOf:withName:configuration:)' from outside of its actor context are implicitly asynchronous
4 |     @MainActor @preconcurrency public static func load(named name: String, in bundle: Bundle? = nil, configuration: AudioFileResource.Configuration = .init()) throws -> AudioFileResource
5 |     @MainActor @preconcurrency public static func load(named name: String, from scene: String, in bundle: Bundle? = nil) throws -> AudioFileResource
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:77:42: error: 'appending(component:directoryHint:)' is only available in macOS 13.0 or newer
 19 |
 20 | /// Plays the system keyboard click sound
 21 | class KeyboardClickSound {
    |       `- note: add @available attribute to enclosing class
 22 |     enum File {
 23 |         case normal
    :
 70 |     }()
 71 |
 72 |     init() {
    |     `- note: add @available attribute to enclosing initializer
 73 |         // if we disabled system sounds then do not create the players
 74 |         guard isEnabled else {
 75 |             return
 76 |         }
 77 |         let pressNormalUrl = uiSoundsUrl.appending(component: "key_press_click.caf")
    |                                          |- error: 'appending(component:directoryHint:)' is only available in macOS 13.0 or newer
    |                                          `- note: add 'if #available' version check
 78 |         let pressDeleteUrl = uiSoundsUrl.appending(component: "key_press_delete.caf")
 79 |         let pressModifierUrl = uiSoundsUrl.appending(component: "key_press_modifier.caf")
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:78:42: error: 'appending(component:directoryHint:)' is only available in macOS 13.0 or newer
 19 |
 20 | /// Plays the system keyboard click sound
 21 | class KeyboardClickSound {
    |       `- note: add @available attribute to enclosing class
 22 |     enum File {
 23 |         case normal
    :
 70 |     }()
 71 |
 72 |     init() {
    |     `- note: add @available attribute to enclosing initializer
 73 |         // if we disabled system sounds then do not create the players
 74 |         guard isEnabled else {
    :
 76 |         }
 77 |         let pressNormalUrl = uiSoundsUrl.appending(component: "key_press_click.caf")
 78 |         let pressDeleteUrl = uiSoundsUrl.appending(component: "key_press_delete.caf")
    |                                          |- error: 'appending(component:directoryHint:)' is only available in macOS 13.0 or newer
    |                                          `- note: add 'if #available' version check
 79 |         let pressModifierUrl = uiSoundsUrl.appending(component: "key_press_modifier.caf")
 80 |         if let resource = loadAudioResource(for: pressNormalUrl) {
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:79:44: error: 'appending(component:directoryHint:)' is only available in macOS 13.0 or newer
 19 |
 20 | /// Plays the system keyboard click sound
 21 | class KeyboardClickSound {
    |       `- note: add @available attribute to enclosing class
 22 |     enum File {
 23 |         case normal
    :
 70 |     }()
 71 |
 72 |     init() {
    |     `- note: add @available attribute to enclosing initializer
 73 |         // if we disabled system sounds then do not create the players
 74 |         guard isEnabled else {
    :
 77 |         let pressNormalUrl = uiSoundsUrl.appending(component: "key_press_click.caf")
 78 |         let pressDeleteUrl = uiSoundsUrl.appending(component: "key_press_delete.caf")
 79 |         let pressModifierUrl = uiSoundsUrl.appending(component: "key_press_modifier.caf")
    |                                            |- error: 'appending(component:directoryHint:)' is only available in macOS 13.0 or newer
    |                                            `- note: add 'if #available' version check
 80 |         if let resource = loadAudioResource(for: pressNormalUrl) {
 81 |             pressNormalPlayer = entity.prepareAudio(resource)
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:81:40: error: 'prepareAudio' is only available in macOS 10.15 or newer
 19 |
 20 | /// Plays the system keyboard click sound
 21 | class KeyboardClickSound {
    |       `- note: add @available attribute to enclosing class
 22 |     enum File {
 23 |         case normal
    :
 70 |     }()
 71 |
 72 |     init() {
    |     `- note: add @available attribute to enclosing initializer
 73 |         // if we disabled system sounds then do not create the players
 74 |         guard isEnabled else {
    :
 79 |         let pressModifierUrl = uiSoundsUrl.appending(component: "key_press_modifier.caf")
 80 |         if let resource = loadAudioResource(for: pressNormalUrl) {
 81 |             pressNormalPlayer = entity.prepareAudio(resource)
    |                                        |- error: 'prepareAudio' is only available in macOS 10.15 or newer
    |                                        `- note: add 'if #available' version check
 82 |         }
 83 |         if let resource = loadAudioResource(for: pressDeleteUrl) {
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:84:40: error: 'prepareAudio' is only available in macOS 10.15 or newer
 19 |
 20 | /// Plays the system keyboard click sound
 21 | class KeyboardClickSound {
    |       `- note: add @available attribute to enclosing class
 22 |     enum File {
 23 |         case normal
    :
 70 |     }()
 71 |
 72 |     init() {
    |     `- note: add @available attribute to enclosing initializer
 73 |         // if we disabled system sounds then do not create the players
 74 |         guard isEnabled else {
    :
 82 |         }
 83 |         if let resource = loadAudioResource(for: pressDeleteUrl) {
 84 |             pressDeletePlayer = entity.prepareAudio(resource)
    |                                        |- error: 'prepareAudio' is only available in macOS 10.15 or newer
    |                                        `- note: add 'if #available' version check
 85 |         }
 86 |         if let resource = loadAudioResource(for: pressModifierUrl) {
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:87:42: error: 'prepareAudio' is only available in macOS 10.15 or newer
 19 |
 20 | /// Plays the system keyboard click sound
 21 | class KeyboardClickSound {
    |       `- note: add @available attribute to enclosing class
 22 |     enum File {
 23 |         case normal
    :
 70 |     }()
 71 |
 72 |     init() {
    |     `- note: add @available attribute to enclosing initializer
 73 |         // if we disabled system sounds then do not create the players
 74 |         guard isEnabled else {
    :
 85 |         }
 86 |         if let resource = loadAudioResource(for: pressModifierUrl) {
 87 |             pressModifierPlayer = entity.prepareAudio(resource)
    |                                          |- error: 'prepareAudio' is only available in macOS 10.15 or newer
    |                                          `- note: add 'if #available' version check
 88 |         }
 89 |     }
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:81:40: warning: call to main actor-isolated instance method 'prepareAudio' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 79 |         let pressModifierUrl = uiSoundsUrl.appending(component: "key_press_modifier.caf")
 80 |         if let resource = loadAudioResource(for: pressNormalUrl) {
 81 |             pressNormalPlayer = entity.prepareAudio(resource)
    |                                        `- warning: call to main actor-isolated instance method 'prepareAudio' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 82 |         }
 83 |         if let resource = loadAudioResource(for: pressDeleteUrl) {
RealityFoundation.Entity:5:44: note: calls to instance method 'prepareAudio' from outside of its actor context are implicitly asynchronous
3 |     @discardableResult
4 |     @MainActor @preconcurrency public func playAudio(_ resource: AudioResource) -> AudioPlaybackController
5 |     @MainActor @preconcurrency public func prepareAudio(_ resource: AudioResource) -> AudioPlaybackController
  |                                            `- note: calls to instance method 'prepareAudio' from outside of its actor context are implicitly asynchronous
6 |     @MainActor @preconcurrency public func stopAllAudio()
7 | }
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:84:40: warning: call to main actor-isolated instance method 'prepareAudio' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 82 |         }
 83 |         if let resource = loadAudioResource(for: pressDeleteUrl) {
 84 |             pressDeletePlayer = entity.prepareAudio(resource)
    |                                        `- warning: call to main actor-isolated instance method 'prepareAudio' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 85 |         }
 86 |         if let resource = loadAudioResource(for: pressModifierUrl) {
RealityFoundation.Entity:5:44: note: calls to instance method 'prepareAudio' from outside of its actor context are implicitly asynchronous
3 |     @discardableResult
4 |     @MainActor @preconcurrency public func playAudio(_ resource: AudioResource) -> AudioPlaybackController
5 |     @MainActor @preconcurrency public func prepareAudio(_ resource: AudioResource) -> AudioPlaybackController
  |                                            `- note: calls to instance method 'prepareAudio' from outside of its actor context are implicitly asynchronous
6 |     @MainActor @preconcurrency public func stopAllAudio()
7 | }
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:87:42: warning: call to main actor-isolated instance method 'prepareAudio' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 85 |         }
 86 |         if let resource = loadAudioResource(for: pressModifierUrl) {
 87 |             pressModifierPlayer = entity.prepareAudio(resource)
    |                                          `- warning: call to main actor-isolated instance method 'prepareAudio' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 88 |         }
 89 |     }
RealityFoundation.Entity:5:44: note: calls to instance method 'prepareAudio' from outside of its actor context are implicitly asynchronous
3 |     @discardableResult
4 |     @MainActor @preconcurrency public func playAudio(_ resource: AudioResource) -> AudioPlaybackController
5 |     @MainActor @preconcurrency public func prepareAudio(_ resource: AudioResource) -> AudioPlaybackController
  |                                            `- note: calls to instance method 'prepareAudio' from outside of its actor context are implicitly asynchronous
6 |     @MainActor @preconcurrency public func stopAllAudio()
7 | }
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:92:23: error: 'AVAudioSession' is unavailable in macOS
 90 |
 91 |     private func withAmbientSession(_ callback: () -> Void) {
 92 |         let session = AVAudioSession.sharedInstance()
    |                       `- error: 'AVAudioSession' is unavailable in macOS
 93 |         let oldCategory = session.category
 94 |         let oldMode = session.mode
AVFAudio.AVAudioSession:2:12: note: 'AVAudioSession' has been explicitly marked unavailable here
 1 | @available(macOS, unavailable)
 2 | open class AVAudioSession : NSObject, @unchecked Sendable {
   |            `- note: 'AVAudioSession' has been explicitly marked unavailable here
 3 |     @available(macOS, unavailable)
 4 |     open class func sharedInstance() -> AVAudioSession
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:92:38: error: 'sharedInstance()' is unavailable in macOS
 90 |
 91 |     private func withAmbientSession(_ callback: () -> Void) {
 92 |         let session = AVAudioSession.sharedInstance()
    |                                      `- error: 'sharedInstance()' is unavailable in macOS
 93 |         let oldCategory = session.category
 94 |         let oldMode = session.mode
AVFAudio.AVAudioSession:4:21: note: 'sharedInstance()' has been explicitly marked unavailable here
 2 | open class AVAudioSession : NSObject, @unchecked Sendable {
 3 |     @available(macOS, unavailable)
 4 |     open class func sharedInstance() -> AVAudioSession
   |                     `- note: 'sharedInstance()' has been explicitly marked unavailable here
 5 |     @available(macOS, unavailable)
 6 |     open var availableCategories: [AVAudioSession.Category] { get }
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:93:35: error: 'category' is unavailable in macOS
 91 |     private func withAmbientSession(_ callback: () -> Void) {
 92 |         let session = AVAudioSession.sharedInstance()
 93 |         let oldCategory = session.category
    |                                   `- error: 'category' is unavailable in macOS
 94 |         let oldMode = session.mode
 95 |         let oldPolicy = session.routeSharingPolicy
AVFAudio.AVAudioSession:25:14: note: 'category' has been explicitly marked unavailable here
23 |     open func setCategory(_ category: AVAudioSession.Category, mode: AVAudioSession.Mode, routeSharingPolicy policy: AVAudioSession.RouteSharingPolicy, options: AVAudioSession.CategoryOptions = []) throws
24 |     @available(macOS, unavailable)
25 |     open var category: AVAudioSession.Category { get }
   |              `- note: 'category' has been explicitly marked unavailable here
26 |     @available(macOS, unavailable)
27 |     open var categoryOptions: AVAudioSession.CategoryOptions { get }
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:94:31: error: 'mode' is unavailable in macOS
 92 |         let session = AVAudioSession.sharedInstance()
 93 |         let oldCategory = session.category
 94 |         let oldMode = session.mode
    |                               `- error: 'mode' is unavailable in macOS
 95 |         let oldPolicy = session.routeSharingPolicy
 96 |         let oldOptions = session.categoryOptions
AVFAudio.AVAudioSession:35:14: note: 'mode' has been explicitly marked unavailable here
33 |     open func setMode(_ mode: AVAudioSession.Mode) throws
34 |     @available(macOS, unavailable)
35 |     open var mode: AVAudioSession.Mode { get }
   |              `- note: 'mode' has been explicitly marked unavailable here
36 |     @available(macOS, unavailable)
37 |     open func setAllowHapticsAndSystemSoundsDuringRecording(_ inValue: Bool) throws
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:95:33: error: 'routeSharingPolicy' is unavailable in macOS
 93 |         let oldCategory = session.category
 94 |         let oldMode = session.mode
 95 |         let oldPolicy = session.routeSharingPolicy
    |                                 `- error: 'routeSharingPolicy' is unavailable in macOS
 96 |         let oldOptions = session.categoryOptions
 97 |         do {
AVFAudio.AVAudioSession:29:14: note: 'routeSharingPolicy' has been explicitly marked unavailable here
27 |     open var categoryOptions: AVAudioSession.CategoryOptions { get }
28 |     @available(macOS, unavailable)
29 |     open var routeSharingPolicy: AVAudioSession.RouteSharingPolicy { get }
   |              `- note: 'routeSharingPolicy' has been explicitly marked unavailable here
30 |     @available(macOS, unavailable)
31 |     open var availableModes: [AVAudioSession.Mode] { get }
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:96:34: error: 'categoryOptions' is unavailable in macOS
 94 |         let oldMode = session.mode
 95 |         let oldPolicy = session.routeSharingPolicy
 96 |         let oldOptions = session.categoryOptions
    |                                  `- error: 'categoryOptions' is unavailable in macOS
 97 |         do {
 98 |             try session.setCategory(.ambient, mode: .default, policy: .default, options: .mixWithOthers)
AVFAudio.AVAudioSession:27:14: note: 'categoryOptions' has been explicitly marked unavailable here
25 |     open var category: AVAudioSession.Category { get }
26 |     @available(macOS, unavailable)
27 |     open var categoryOptions: AVAudioSession.CategoryOptions { get }
   |              `- note: 'categoryOptions' has been explicitly marked unavailable here
28 |     @available(macOS, unavailable)
29 |     open var routeSharingPolicy: AVAudioSession.RouteSharingPolicy { get }
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:98:25: error: 'setCategory(_:mode:policy:options:)' is unavailable in macOS
 96 |         let oldOptions = session.categoryOptions
 97 |         do {
 98 |             try session.setCategory(.ambient, mode: .default, policy: .default, options: .mixWithOthers)
    |                         `- error: 'setCategory(_:mode:policy:options:)' is unavailable in macOS
 99 |             callback()
100 |             try session.setCategory(oldCategory, mode: oldMode, policy: oldPolicy, options: oldOptions)
AVFAudio.AVAudioSession:20:15: note: 'setCategory(_:mode:policy:options:)' has been explicitly marked unavailable here
18 |     open func setCategory(_ category: AVAudioSession.Category, mode: AVAudioSession.Mode, options: AVAudioSession.CategoryOptions = []) throws
19 |     @available(macOS, unavailable)
20 |     open func setCategory(_ category: AVAudioSession.Category, mode: AVAudioSession.Mode, policy: AVAudioSession.RouteSharingPolicy, options: AVAudioSession.CategoryOptions = []) throws
   |               `- note: 'setCategory(_:mode:policy:options:)' has been explicitly marked unavailable here
21 |     @available(swift, obsoleted: 4.2, renamed: "setCategory(_:mode:policy:options:)")
22 |     @available(macOS, unavailable)
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:98:38: error: 'ambient' is unavailable in macOS
 96 |         let oldOptions = session.categoryOptions
 97 |         do {
 98 |             try session.setCategory(.ambient, mode: .default, policy: .default, options: .mixWithOthers)
    |                                      `- error: 'ambient' is unavailable in macOS
 99 |             callback()
100 |             try session.setCategory(oldCategory, mode: oldMode, policy: oldPolicy, options: oldOptions)
AVFAudio.AVAudioSession.Category:3:23: note: 'ambient' has been explicitly marked unavailable here
 1 | extension AVAudioSession.Category {
 2 |     @available(macOS, unavailable)
 3 |     public static let ambient: AVAudioSession.Category
   |                       `- note: 'ambient' has been explicitly marked unavailable here
 4 |     @available(macOS, unavailable)
 5 |     public static let soloAmbient: AVAudioSession.Category
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:98:54: error: 'default' is unavailable in macOS
 96 |         let oldOptions = session.categoryOptions
 97 |         do {
 98 |             try session.setCategory(.ambient, mode: .default, policy: .default, options: .mixWithOthers)
    |                                                      `- error: 'default' is unavailable in macOS
 99 |             callback()
100 |             try session.setCategory(oldCategory, mode: oldMode, policy: oldPolicy, options: oldOptions)
AVFAudio.AVAudioSession.Mode:3:23: note: 'default' has been explicitly marked unavailable here
 1 | extension AVAudioSession.Mode {
 2 |     @available(macOS, unavailable)
 3 |     public static let `default`: AVAudioSession.Mode
   |                       `- note: 'default' has been explicitly marked unavailable here
 4 |     @available(macOS, unavailable)
 5 |     public static let voiceChat: AVAudioSession.Mode
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:100:25: error: 'setCategory(_:mode:policy:options:)' is unavailable in macOS
 98 |             try session.setCategory(.ambient, mode: .default, policy: .default, options: .mixWithOthers)
 99 |             callback()
100 |             try session.setCategory(oldCategory, mode: oldMode, policy: oldPolicy, options: oldOptions)
    |                         `- error: 'setCategory(_:mode:policy:options:)' is unavailable in macOS
101 |         } catch {
102 |             print(error)
AVFAudio.AVAudioSession:20:15: note: 'setCategory(_:mode:policy:options:)' has been explicitly marked unavailable here
18 |     open func setCategory(_ category: AVAudioSession.Category, mode: AVAudioSession.Mode, options: AVAudioSession.CategoryOptions = []) throws
19 |     @available(macOS, unavailable)
20 |     open func setCategory(_ category: AVAudioSession.Category, mode: AVAudioSession.Mode, policy: AVAudioSession.RouteSharingPolicy, options: AVAudioSession.CategoryOptions = []) throws
   |               `- note: 'setCategory(_:mode:policy:options:)' has been explicitly marked unavailable here
21 |     @available(swift, obsoleted: 4.2, renamed: "setCategory(_:mode:policy:options:)")
22 |     @available(macOS, unavailable)
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:112:23: error: 'isPlaying' is only available in macOS 10.15 or newer
 19 |
 20 | /// Plays the system keyboard click sound
 21 | class KeyboardClickSound {
    |       `- note: add @available attribute to enclosing class
 22 |     enum File {
 23 |         case normal
    :
105 |
106 |     @MainActor
107 |     private func play(_ player: AudioPlaybackController?) {
    |                  `- note: add @available attribute to enclosing instance method
108 |         guard let player = player else {
109 |             return
110 |         }
111 |         withAmbientSession {
112 |             if player.isPlaying {
    |                       |- error: 'isPlaying' is only available in macOS 10.15 or newer
    |                       `- note: add 'if #available' version check
113 |                 player.seek(to: .zero)
114 |             }
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:113:24: error: 'seek(to:)' is only available in macOS 15.0 or newer
 19 |
 20 | /// Plays the system keyboard click sound
 21 | class KeyboardClickSound {
    |       `- note: add @available attribute to enclosing class
 22 |     enum File {
 23 |         case normal
    :
105 |
106 |     @MainActor
107 |     private func play(_ player: AudioPlaybackController?) {
    |                  `- note: add @available attribute to enclosing instance method
108 |         guard let player = player else {
109 |             return
    :
111 |         withAmbientSession {
112 |             if player.isPlaying {
113 |                 player.seek(to: .zero)
    |                        |- error: 'seek(to:)' is only available in macOS 15.0 or newer
    |                        `- note: add 'if #available' version check
114 |             }
115 |             player.play()
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:113:34: error: 'zero' is only available in macOS 13.0 or newer
 19 |
 20 | /// Plays the system keyboard click sound
 21 | class KeyboardClickSound {
    |       `- note: add @available attribute to enclosing class
 22 |     enum File {
 23 |         case normal
    :
105 |
106 |     @MainActor
107 |     private func play(_ player: AudioPlaybackController?) {
    |                  `- note: add @available attribute to enclosing instance method
108 |         guard let player = player else {
109 |             return
    :
111 |         withAmbientSession {
112 |             if player.isPlaying {
113 |                 player.seek(to: .zero)
    |                                  |- error: 'zero' is only available in macOS 13.0 or newer
    |                                  `- note: add 'if #available' version check
114 |             }
115 |             player.play()
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:115:20: error: 'play()' is only available in macOS 10.15 or newer
 19 |
 20 | /// Plays the system keyboard click sound
 21 | class KeyboardClickSound {
    |       `- note: add @available attribute to enclosing class
 22 |     enum File {
 23 |         case normal
    :
105 |
106 |     @MainActor
107 |     private func play(_ player: AudioPlaybackController?) {
    |                  `- note: add @available attribute to enclosing instance method
108 |         guard let player = player else {
109 |             return
    :
113 |                 player.seek(to: .zero)
114 |             }
115 |             player.play()
    |                    |- error: 'play()' is only available in macOS 10.15 or newer
    |                    `- note: add 'if #available' version check
116 |         }
117 |     }
[14/16] Compiling VisionKeyboardKit KeyboardClickSound.swift
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardButtonStyle.swift:20:28: error: 'Duration' is only available in macOS 13.0 or newer
 18 | import RealityKit
 19 |
 20 | private let kDebounceTime: Duration = .milliseconds(25)
    |             |              `- error: 'Duration' is only available in macOS 13.0 or newer
    |             `- note: add @available attribute to enclosing let
 21 |
 22 | struct KeyboardButtonStyle: PrimitiveButtonStyle {
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardButtonStyle.swift:20:40: error: 'milliseconds' is only available in macOS 13.0 or newer
 18 | import RealityKit
 19 |
 20 | private let kDebounceTime: Duration = .milliseconds(25)
    |             |                          `- error: 'milliseconds' is only available in macOS 13.0 or newer
    |             `- note: add @available attribute to enclosing let
 21 |
 22 | struct KeyboardButtonStyle: PrimitiveButtonStyle {
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardState.swift:19:2: error: 'Observable()' is only available in macOS 14.0 or newer
17 | import SwiftUI
18 |
19 | @Observable
   |  `- error: 'Observable()' is only available in macOS 14.0 or newer
20 | class KeyboardState {
21 |     private let id: KeyboardIdentifier
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardButtonStyle.swift:34:6: error: 'init(_:)' is only available in macOS 14.0 or newer
 20 | private let kDebounceTime: Duration = .milliseconds(25)
 21 |
 22 | struct KeyboardButtonStyle: PrimitiveButtonStyle {
    |        `- note: add @available attribute to enclosing struct
 23 |     let isDark: Bool
 24 |     let isToggled: Bool
    :
 32 |     @State private var isPressed: Bool = false
 33 |     @State private var debounceTask: Task<Void, Never>?
 34 |     @Environment(KeyboardState.self) private var state
    |      `- error: 'init(_:)' is only available in macOS 14.0 or newer
 35 |
 36 |     private func spatialGesture(configuration: Configuration) -> some Gesture {
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardButtonStyle.swift:32:6: error: 'State' is only available in macOS 10.15 or newer
 20 | private let kDebounceTime: Duration = .milliseconds(25)
 21 |
 22 | struct KeyboardButtonStyle: PrimitiveButtonStyle {
    |        `- note: add @available attribute to enclosing struct
 23 |     let isDark: Bool
 24 |     let isToggled: Bool
    :
 30 |     let onTouchUp: () -> Void
 31 |
 32 |     @State private var isPressed: Bool = false
    |      `- error: 'State' is only available in macOS 10.15 or newer
 33 |     @State private var debounceTask: Task<Void, Never>?
 34 |     @Environment(KeyboardState.self) private var state
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardButtonStyle.swift:33:38: error: 'Task' is only available in macOS 10.15 or newer
 20 | private let kDebounceTime: Duration = .milliseconds(25)
 21 |
 22 | struct KeyboardButtonStyle: PrimitiveButtonStyle {
    |        `- note: add @available attribute to enclosing struct
 23 |     let isDark: Bool
 24 |     let isToggled: Bool
    :
 31 |
 32 |     @State private var isPressed: Bool = false
 33 |     @State private var debounceTask: Task<Void, Never>?
    |                                      `- error: 'Task' is only available in macOS 10.15 or newer
 34 |     @Environment(KeyboardState.self) private var state
 35 |
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardButtonStyle.swift:33:6: error: 'State' is only available in macOS 10.15 or newer
 20 | private let kDebounceTime: Duration = .milliseconds(25)
 21 |
 22 | struct KeyboardButtonStyle: PrimitiveButtonStyle {
    |        `- note: add @available attribute to enclosing struct
 23 |     let isDark: Bool
 24 |     let isToggled: Bool
    :
 31 |
 32 |     @State private var isPressed: Bool = false
 33 |     @State private var debounceTask: Task<Void, Never>?
    |      `- error: 'State' is only available in macOS 10.15 or newer
 34 |     @Environment(KeyboardState.self) private var state
 35 |
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardButtonStyle.swift:34:6: error: 'Environment' is only available in macOS 10.15 or newer
 20 | private let kDebounceTime: Duration = .milliseconds(25)
 21 |
 22 | struct KeyboardButtonStyle: PrimitiveButtonStyle {
    |        `- note: add @available attribute to enclosing struct
 23 |     let isDark: Bool
 24 |     let isToggled: Bool
    :
 32 |     @State private var isPressed: Bool = false
 33 |     @State private var debounceTask: Task<Void, Never>?
 34 |     @Environment(KeyboardState.self) private var state
    |      `- error: 'Environment' is only available in macOS 10.15 or newer
 35 |
 36 |     private func spatialGesture(configuration: Configuration) -> some Gesture {
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardButtonStyle.swift:36:71: error: 'Gesture' is only available in macOS 10.15 or newer
 20 | private let kDebounceTime: Duration = .milliseconds(25)
 21 |
 22 | struct KeyboardButtonStyle: PrimitiveButtonStyle {
    |        `- note: add @available attribute to enclosing struct
 23 |     let isDark: Bool
 24 |     let isToggled: Bool
    :
 34 |     @Environment(KeyboardState.self) private var state
 35 |
 36 |     private func spatialGesture(configuration: Configuration) -> some Gesture {
    |                  |                                                    `- error: 'Gesture' is only available in macOS 10.15 or newer
    |                  `- note: add @available attribute to enclosing instance method
 37 |         SpatialEventGesture()
 38 |             .onChanged { events in
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardButtonStyle.swift:79:57: error: 'View' is only available in macOS 10.15 or newer
 20 | private let kDebounceTime: Duration = .milliseconds(25)
 21 |
 22 | struct KeyboardButtonStyle: PrimitiveButtonStyle {
    |        `- note: add @available attribute to enclosing struct
 23 |     let isDark: Bool
 24 |     let isToggled: Bool
    :
 77 |     }
 78 |
 79 |     func makeBody(configuration: Configuration) -> some View {
    |          |                                              `- error: 'View' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
 80 |         ZStack {
 81 |             if isPressed {
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardButtonStyle.swift:126:11: error: 'PrimitiveButtonStyle' is only available in macOS 10.15 or newer
124 | }
125 |
126 | extension PrimitiveButtonStyle where Self == KeyboardButtonStyle {
    | |         `- error: 'PrimitiveButtonStyle' is only available in macOS 10.15 or newer
    | `- note: add @available attribute to enclosing extension
127 |     static func keyboardButton(isDark: Bool = false, isToggled: Bool = false, fontSize: CGFloat = 24, width: CGFloat = 50, height: CGFloat = 50, clickSound: KeyboardClickSound.File = .normal, onTouchDown: @escaping () -> Void = {}, onTouchUp: @escaping () -> Void = {}) -> KeyboardButtonStyle {
128 |         KeyboardButtonStyle(isDark: isDark, isToggled: isToggled, fontSize: fontSize, width: width, height: height, clickSound: clickSound, onTouchDown: onTouchDown, onTouchUp: onTouchUp)
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardButtonStyle.swift:55:14: warning: conformance of '_EndedGesture<Content>' to 'Gesture' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
 20 | private let kDebounceTime: Duration = .milliseconds(25)
 21 |
 22 | struct KeyboardButtonStyle: PrimitiveButtonStyle {
    |        `- note: add @available attribute to enclosing struct
 23 |     let isDark: Bool
 24 |     let isToggled: Bool
    :
 34 |     @Environment(KeyboardState.self) private var state
 35 |
 36 |     private func spatialGesture(configuration: Configuration) -> some Gesture {
    |                  `- note: add @available attribute to enclosing instance method
 37 |         SpatialEventGesture()
 38 |             .onChanged { events in
    :
 53 |                 }
 54 |             }
 55 |             .onEnded { events in
    |              |- warning: conformance of '_EndedGesture<Content>' to 'Gesture' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
    |              `- note: add 'if #available' version check
 56 |                 for event in events {
 57 |                     switch event.kind {
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardButtonStyle.swift:37:9: error: 'SpatialEventGesture' is only available in macOS 15.0 or newer
 20 | private let kDebounceTime: Duration = .milliseconds(25)
 21 |
 22 | struct KeyboardButtonStyle: PrimitiveButtonStyle {
    |        `- note: add @available attribute to enclosing struct
 23 |     let isDark: Bool
 24 |     let isToggled: Bool
    :
 34 |     @Environment(KeyboardState.self) private var state
 35 |
 36 |     private func spatialGesture(configuration: Configuration) -> some Gesture {
    |                  `- note: add @available attribute to enclosing instance method
 37 |         SpatialEventGesture()
    |         |- error: 'SpatialEventGesture' is only available in macOS 15.0 or newer
    |         `- note: add 'if #available' version check
 38 |             .onChanged { events in
 39 |                 for event in events {
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardButtonStyle.swift:38:14: error: 'onChanged' is only available in macOS 10.15 or newer
 20 | private let kDebounceTime: Duration = .milliseconds(25)
 21 |
 22 | struct KeyboardButtonStyle: PrimitiveButtonStyle {
    |        `- note: add @available attribute to enclosing struct
 23 |     let isDark: Bool
 24 |     let isToggled: Bool
    :
 34 |     @Environment(KeyboardState.self) private var state
 35 |
 36 |     private func spatialGesture(configuration: Configuration) -> some Gesture {
    |                  `- note: add @available attribute to enclosing instance method
 37 |         SpatialEventGesture()
 38 |             .onChanged { events in
    |              |- error: 'onChanged' is only available in macOS 10.15 or newer
    |              `- note: add 'if #available' version check
 39 |                 for event in events {
 40 |                     switch event.kind {
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardButtonStyle.swift:43:29: error: setter for 'isPressed' is only available in macOS 10.15 or newer
 20 | private let kDebounceTime: Duration = .milliseconds(25)
 21 |
 22 | struct KeyboardButtonStyle: PrimitiveButtonStyle {
    |        `- note: add @available attribute to enclosing struct
 23 |     let isDark: Bool
 24 |     let isToggled: Bool
    :
 34 |     @Environment(KeyboardState.self) private var state
 35 |
 36 |     private func spatialGesture(configuration: Configuration) -> some Gesture {
    |                  `- note: add @available attribute to enclosing instance method
 37 |         SpatialEventGesture()
 38 |             .onChanged { events in
    :
 41 |                     case .indirectPinch, .pointer, .touch:
 42 |                         if !isPressed {
 43 |                             isPressed = true
    |                             |- error: setter for 'isPressed' is only available in macOS 10.15 or newer
    |                             `- note: add 'if #available' version check
 44 |                             onTouchDown()
 45 |                         }
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardButtonStyle.swift:48:43: error: 'cancel()' is only available in macOS 10.15 or newer
 20 | private let kDebounceTime: Duration = .milliseconds(25)
 21 |
 22 | struct KeyboardButtonStyle: PrimitiveButtonStyle {
    |        `- note: add @available attribute to enclosing struct
 23 |     let isDark: Bool
 24 |     let isToggled: Bool
    :
 34 |     @Environment(KeyboardState.self) private var state
 35 |
 36 |     private func spatialGesture(configuration: Configuration) -> some Gesture {
    |                  `- note: add @available attribute to enclosing instance method
 37 |         SpatialEventGesture()
 38 |             .onChanged { events in
    :
 46 |                         // touch events require debouncing
 47 |                         if event.kind == .touch {
 48 |                             debounceTask?.cancel()
    |                                           |- error: 'cancel()' is only available in macOS 10.15 or newer
    |                                           `- note: add 'if #available' version check
 49 |                             debounceTask = nil
 50 |                         }
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardButtonStyle.swift:49:29: error: setter for 'debounceTask' is only available in macOS 10.15 or newer
 20 | private let kDebounceTime: Duration = .milliseconds(25)
 21 |
 22 | struct KeyboardButtonStyle: PrimitiveButtonStyle {
    |        `- note: add @available attribute to enclosing struct
 23 |     let isDark: Bool
 24 |     let isToggled: Bool
    :
 34 |     @Environment(KeyboardState.self) private var state
 35 |
 36 |     private func spatialGesture(configuration: Configuration) -> some Gesture {
    |                  `- note: add @available attribute to enclosing instance method
 37 |         SpatialEventGesture()
 38 |             .onChanged { events in
    :
 47 |                         if event.kind == .touch {
 48 |                             debounceTask?.cancel()
 49 |                             debounceTask = nil
    |                             |- error: setter for 'debounceTask' is only available in macOS 10.15 or newer
    |                             `- note: add 'if #available' version check
 50 |                         }
 51 |                     default: break
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardButtonStyle.swift:55:14: error: 'onEnded' is only available in macOS 10.15 or newer
 20 | private let kDebounceTime: Duration = .milliseconds(25)
 21 |
 22 | struct KeyboardButtonStyle: PrimitiveButtonStyle {
    |        `- note: add @available attribute to enclosing struct
 23 |     let isDark: Bool
 24 |     let isToggled: Bool
    :
 34 |     @Environment(KeyboardState.self) private var state
 35 |
 36 |     private func spatialGesture(configuration: Configuration) -> some Gesture {
    |                  `- note: add @available attribute to enclosing instance method
 37 |         SpatialEventGesture()
 38 |             .onChanged { events in
    :
 53 |                 }
 54 |             }
 55 |             .onEnded { events in
    |              |- error: 'onEnded' is only available in macOS 10.15 or newer
    |              `- note: add 'if #available' version check
 56 |                 for event in events {
 57 |                     switch event.kind {
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardButtonStyle.swift:55:22: warning: conformance of 'SpatialEventCollection' to 'Equatable' is only available in macOS 15.0 or newer; this is an error in the Swift 6 language mode
 20 | private let kDebounceTime: Duration = .milliseconds(25)
 21 |
 22 | struct KeyboardButtonStyle: PrimitiveButtonStyle {
    |        `- note: add @available attribute to enclosing struct
 23 |     let isDark: Bool
 24 |     let isToggled: Bool
    :
 34 |     @Environment(KeyboardState.self) private var state
 35 |
 36 |     private func spatialGesture(configuration: Configuration) -> some Gesture {
    |                  `- note: add @available attribute to enclosing instance method
 37 |         SpatialEventGesture()
 38 |             .onChanged { events in
    :
 53 |                 }
 54 |             }
 55 |             .onEnded { events in
    |                      |- warning: conformance of 'SpatialEventCollection' to 'Equatable' is only available in macOS 15.0 or newer; this is an error in the Swift 6 language mode
    |                      `- note: add 'if #available' version check
 56 |                 for event in events {
 57 |                     switch event.kind {
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardButtonStyle.swift:55:22: warning: conformance of 'SpatialEventCollection' to 'Equatable' is only available in macOS 15.0 or newer; this is an error in the Swift 6 language mode
 20 | private let kDebounceTime: Duration = .milliseconds(25)
 21 |
 22 | struct KeyboardButtonStyle: PrimitiveButtonStyle {
    |        `- note: add @available attribute to enclosing struct
 23 |     let isDark: Bool
 24 |     let isToggled: Bool
    :
 34 |     @Environment(KeyboardState.self) private var state
 35 |
 36 |     private func spatialGesture(configuration: Configuration) -> some Gesture {
    |                  `- note: add @available attribute to enclosing instance method
 37 |         SpatialEventGesture()
 38 |             .onChanged { events in
    :
 53 |                 }
 54 |             }
 55 |             .onEnded { events in
    |                      |- warning: conformance of 'SpatialEventCollection' to 'Equatable' is only available in macOS 15.0 or newer; this is an error in the Swift 6 language mode
    |                      `- note: add 'if #available' version check
 56 |                 for event in events {
 57 |                     switch event.kind {
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardButtonStyle.swift:59:25: error: setter for 'isPressed' is only available in macOS 10.15 or newer
 20 | private let kDebounceTime: Duration = .milliseconds(25)
 21 |
 22 | struct KeyboardButtonStyle: PrimitiveButtonStyle {
    |        `- note: add @available attribute to enclosing struct
 23 |     let isDark: Bool
 24 |     let isToggled: Bool
    :
 34 |     @Environment(KeyboardState.self) private var state
 35 |
 36 |     private func spatialGesture(configuration: Configuration) -> some Gesture {
    |                  `- note: add @available attribute to enclosing instance method
 37 |         SpatialEventGesture()
 38 |             .onChanged { events in
    :
 57 |                     switch event.kind {
 58 |                     case .indirectPinch, .pointer:
 59 |                         isPressed = false
    |                         |- error: setter for 'isPressed' is only available in macOS 10.15 or newer
    |                         `- note: add 'if #available' version check
 60 |                         onTouchUp()
 61 |                         configuration.trigger()
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardButtonStyle.swift:65:25: error: setter for 'debounceTask' is only available in macOS 10.15 or newer
 20 | private let kDebounceTime: Duration = .milliseconds(25)
 21 |
 22 | struct KeyboardButtonStyle: PrimitiveButtonStyle {
    |        `- note: add @available attribute to enclosing struct
 23 |     let isDark: Bool
 24 |     let isToggled: Bool
    :
 34 |     @Environment(KeyboardState.self) private var state
 35 |
 36 |     private func spatialGesture(configuration: Configuration) -> some Gesture {
    |                  `- note: add @available attribute to enclosing instance method
 37 |         SpatialEventGesture()
 38 |             .onChanged { events in
    :
 63 |                         // ignore any .ended phase followed immediately by an .active phase
 64 |                         let trigger = configuration.trigger
 65 |                         debounceTask = Task { @MainActor in
    |                         |- error: setter for 'debounceTask' is only available in macOS 10.15 or newer
    |                         `- note: add 'if #available' version check
 66 |                             try? await Task.sleep(for: kDebounceTime)
 67 |                             if !Task.isCancelled {
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardButtonStyle.swift:65:40: error: 'Task' is only available in macOS 10.15 or newer
 20 | private let kDebounceTime: Duration = .milliseconds(25)
 21 |
 22 | struct KeyboardButtonStyle: PrimitiveButtonStyle {
    |        `- note: add @available attribute to enclosing struct
 23 |     let isDark: Bool
 24 |     let isToggled: Bool
    :
 34 |     @Environment(KeyboardState.self) private var state
 35 |
 36 |     private func spatialGesture(configuration: Configuration) -> some Gesture {
    |                  `- note: add @available attribute to enclosing instance method
 37 |         SpatialEventGesture()
 38 |             .onChanged { events in
    :
 63 |                         // ignore any .ended phase followed immediately by an .active phase
 64 |                         let trigger = configuration.trigger
 65 |                         debounceTask = Task { @MainActor in
    |                                        |- error: 'Task' is only available in macOS 10.15 or newer
    |                                        `- note: add 'if #available' version check
 66 |                             try? await Task.sleep(for: kDebounceTime)
 67 |                             if !Task.isCancelled {
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardButtonStyle.swift:65:40: error: 'init(priority:operation:)' is only available in macOS 10.15 or newer
 20 | private let kDebounceTime: Duration = .milliseconds(25)
 21 |
 22 | struct KeyboardButtonStyle: PrimitiveButtonStyle {
    |        `- note: add @available attribute to enclosing struct
 23 |     let isDark: Bool
 24 |     let isToggled: Bool
    :
 34 |     @Environment(KeyboardState.self) private var state
 35 |
 36 |     private func spatialGesture(configuration: Configuration) -> some Gesture {
    |                  `- note: add @available attribute to enclosing instance method
 37 |         SpatialEventGesture()
 38 |             .onChanged { events in
    :
 63 |                         // ignore any .ended phase followed immediately by an .active phase
 64 |                         let trigger = configuration.trigger
 65 |                         debounceTask = Task { @MainActor in
    |                                        |- error: 'init(priority:operation:)' is only available in macOS 10.15 or newer
    |                                        `- note: add 'if #available' version check
 66 |                             try? await Task.sleep(for: kDebounceTime)
 67 |                             if !Task.isCancelled {
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardButtonStyle.swift:66:40: error: 'Task' is only available in macOS 10.15 or newer
 20 | private let kDebounceTime: Duration = .milliseconds(25)
 21 |
 22 | struct KeyboardButtonStyle: PrimitiveButtonStyle {
    |        `- note: add @available attribute to enclosing struct
 23 |     let isDark: Bool
 24 |     let isToggled: Bool
    :
 34 |     @Environment(KeyboardState.self) private var state
 35 |
 36 |     private func spatialGesture(configuration: Configuration) -> some Gesture {
    |                  `- note: add @available attribute to enclosing instance method
 37 |         SpatialEventGesture()
 38 |             .onChanged { events in
    :
 64 |                         let trigger = configuration.trigger
 65 |                         debounceTask = Task { @MainActor in
 66 |                             try? await Task.sleep(for: kDebounceTime)
    |                                        |- error: 'Task' is only available in macOS 10.15 or newer
    |                                        `- note: add 'if #available' version check
 67 |                             if !Task.isCancelled {
 68 |                                 isPressed = false
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardButtonStyle.swift:66:45: error: 'sleep(for:tolerance:clock:)' is only available in macOS 13.0 or newer
 20 | private let kDebounceTime: Duration = .milliseconds(25)
 21 |
 22 | struct KeyboardButtonStyle: PrimitiveButtonStyle {
    |        `- note: add @available attribute to enclosing struct
 23 |     let isDark: Bool
 24 |     let isToggled: Bool
    :
 34 |     @Environment(KeyboardState.self) private var state
 35 |
 36 |     private func spatialGesture(configuration: Configuration) -> some Gesture {
    |                  `- note: add @available attribute to enclosing instance method
 37 |         SpatialEventGesture()
 38 |             .onChanged { events in
    :
 64 |                         let trigger = configuration.trigger
 65 |                         debounceTask = Task { @MainActor in
 66 |                             try? await Task.sleep(for: kDebounceTime)
    |                                             |- error: 'sleep(for:tolerance:clock:)' is only available in macOS 13.0 or newer
    |                                             `- note: add 'if #available' version check
 67 |                             if !Task.isCancelled {
 68 |                                 isPressed = false
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardButtonStyle.swift:67:33: error: 'Task' is only available in macOS 10.15 or newer
 20 | private let kDebounceTime: Duration = .milliseconds(25)
 21 |
 22 | struct KeyboardButtonStyle: PrimitiveButtonStyle {
    |        `- note: add @available attribute to enclosing struct
 23 |     let isDark: Bool
 24 |     let isToggled: Bool
    :
 34 |     @Environment(KeyboardState.self) private var state
 35 |
 36 |     private func spatialGesture(configuration: Configuration) -> some Gesture {
    |                  `- note: add @available attribute to enclosing instance method
 37 |         SpatialEventGesture()
 38 |             .onChanged { events in
    :
 65 |                         debounceTask = Task { @MainActor in
 66 |                             try? await Task.sleep(for: kDebounceTime)
 67 |                             if !Task.isCancelled {
    |                                 |- error: 'Task' is only available in macOS 10.15 or newer
    |                                 `- note: add 'if #available' version check
 68 |                                 isPressed = false
 69 |                                 onTouchUp()
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardButtonStyle.swift:67:38: error: 'isCancelled' is only available in macOS 10.15 or newer
 20 | private let kDebounceTime: Duration = .milliseconds(25)
 21 |
 22 | struct KeyboardButtonStyle: PrimitiveButtonStyle {
    |        `- note: add @available attribute to enclosing struct
 23 |     let isDark: Bool
 24 |     let isToggled: Bool
    :
 34 |     @Environment(KeyboardState.self) private var state
 35 |
 36 |     private func spatialGesture(configuration: Configuration) -> some Gesture {
    |                  `- note: add @available attribute to enclosing instance method
 37 |         SpatialEventGesture()
 38 |             .onChanged { events in
    :
 65 |                         debounceTask = Task { @MainActor in
 66 |                             try? await Task.sleep(for: kDebounceTime)
 67 |                             if !Task.isCancelled {
    |                                      |- error: 'isCancelled' is only available in macOS 10.15 or newer
    |                                      `- note: add 'if #available' version check
 68 |                                 isPressed = false
 69 |                                 onTouchUp()
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardButtonStyle.swift:68:33: error: setter for 'isPressed' is only available in macOS 10.15 or newer
 20 | private let kDebounceTime: Duration = .milliseconds(25)
 21 |
 22 | struct KeyboardButtonStyle: PrimitiveButtonStyle {
    |        `- note: add @available attribute to enclosing struct
 23 |     let isDark: Bool
 24 |     let isToggled: Bool
    :
 34 |     @Environment(KeyboardState.self) private var state
 35 |
 36 |     private func spatialGesture(configuration: Configuration) -> some Gesture {
    |                  `- note: add @available attribute to enclosing instance method
 37 |         SpatialEventGesture()
 38 |             .onChanged { events in
    :
 66 |                             try? await Task.sleep(for: kDebounceTime)
 67 |                             if !Task.isCancelled {
 68 |                                 isPressed = false
    |                                 |- error: setter for 'isPressed' is only available in macOS 10.15 or newer
    |                                 `- note: add 'if #available' version check
 69 |                                 onTouchUp()
 70 |                                 trigger()
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:29:18: error: 'Entity' is only available in macOS 10.15 or newer
 19 |
 20 | /// Plays the system keyboard click sound
 21 | class KeyboardClickSound {
    |       `- note: add @available attribute to enclosing class
 22 |     enum File {
 23 |         case normal
    :
 27 |
 28 |     /// The RK entity where the sound will originate
 29 |     let entity = Entity()
    |                  `- error: 'Entity' is only available in macOS 10.15 or newer
 30 |
 31 |     private var pressNormalPlayer: AudioPlaybackController?
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardButtonStyle.swift:121:33: error: argument passed to call that takes no arguments
119 |         .frame(width: width + 4, height: height + 4)
120 |         .hoverEffect()
121 |         .frame(depth: isPressed ? 0 : 12)
    |                                 `- error: argument passed to call that takes no arguments
122 |         .gesture(spatialGesture(configuration: configuration))
123 |     }
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:29:9: warning: main actor-isolated default value in a nonisolated context; this is an error in the Swift 6 language mode
 27 |
 28 |     /// The RK entity where the sound will originate
 29 |     let entity = Entity()
    |         `- warning: main actor-isolated default value in a nonisolated context; this is an error in the Swift 6 language mode
 30 |
 31 |     private var pressNormalPlayer: AudioPlaybackController?
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:31:36: error: 'AudioPlaybackController' is only available in macOS 10.15 or newer
 19 |
 20 | /// Plays the system keyboard click sound
 21 | class KeyboardClickSound {
    |       `- note: add @available attribute to enclosing class
 22 |     enum File {
 23 |         case normal
    :
 29 |     let entity = Entity()
 30 |
 31 |     private var pressNormalPlayer: AudioPlaybackController?
    |                                    `- error: 'AudioPlaybackController' is only available in macOS 10.15 or newer
 32 |     private var pressDeletePlayer: AudioPlaybackController?
 33 |     private var pressModifierPlayer: AudioPlaybackController?
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:32:36: error: 'AudioPlaybackController' is only available in macOS 10.15 or newer
 19 |
 20 | /// Plays the system keyboard click sound
 21 | class KeyboardClickSound {
    |       `- note: add @available attribute to enclosing class
 22 |     enum File {
 23 |         case normal
    :
 30 |
 31 |     private var pressNormalPlayer: AudioPlaybackController?
 32 |     private var pressDeletePlayer: AudioPlaybackController?
    |                                    `- error: 'AudioPlaybackController' is only available in macOS 10.15 or newer
 33 |     private var pressModifierPlayer: AudioPlaybackController?
 34 |
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:33:38: error: 'AudioPlaybackController' is only available in macOS 10.15 or newer
 19 |
 20 | /// Plays the system keyboard click sound
 21 | class KeyboardClickSound {
    |       `- note: add @available attribute to enclosing class
 22 |     enum File {
 23 |         case normal
    :
 31 |     private var pressNormalPlayer: AudioPlaybackController?
 32 |     private var pressDeletePlayer: AudioPlaybackController?
 33 |     private var pressModifierPlayer: AudioPlaybackController?
    |                                      `- error: 'AudioPlaybackController' is only available in macOS 10.15 or newer
 34 |
 35 |     private func loadAudioResource(for url: URL) -> AudioFileResource? {
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:35:53: error: 'AudioFileResource' is only available in macOS 10.15 or newer
 19 |
 20 | /// Plays the system keyboard click sound
 21 | class KeyboardClickSound {
    |       `- note: add @available attribute to enclosing class
 22 |     enum File {
 23 |         case normal
    :
 33 |     private var pressModifierPlayer: AudioPlaybackController?
 34 |
 35 |     private func loadAudioResource(for url: URL) -> AudioFileResource? {
    |                  |                                  `- error: 'AudioFileResource' is only available in macOS 10.15 or newer
    |                  `- note: add @available attribute to enclosing instance method
 36 |         let configuration = AudioFileResource.Configuration(calibration: .absolute(dBSPL: 58.0))
 37 |         return try? .load(contentsOf: url, configuration: configuration)
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:61:24: error: 'appending(components:directoryHint:)' is only available in macOS 13.0 or newer
 19 |
 20 | /// Plays the system keyboard click sound
 21 | class KeyboardClickSound {
    |       `- note: add @available attribute to enclosing class
 22 |     enum File {
 23 |         case normal
    :
 59 |         let fm = FileManager.default
 60 |         let library = fm.urls(for: .libraryDirectory, in: .systemDomainMask)[0]
 61 |         return library.appending(components: "Audio", "UISounds")
    |                        |- error: 'appending(components:directoryHint:)' is only available in macOS 13.0 or newer
    |                        `- note: add 'if #available' version check
 62 |     }()
 63 |     #endif
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:107:33: error: 'AudioPlaybackController' is only available in macOS 10.15 or newer
 19 |
 20 | /// Plays the system keyboard click sound
 21 | class KeyboardClickSound {
    |       `- note: add @available attribute to enclosing class
 22 |     enum File {
 23 |         case normal
    :
105 |
106 |     @MainActor
107 |     private func play(_ player: AudioPlaybackController?) {
    |                  |              `- error: 'AudioPlaybackController' is only available in macOS 10.15 or newer
    |                  `- note: add @available attribute to enclosing instance method
108 |         guard let player = player else {
109 |             return
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:36:29: error: 'AudioFileResource' is only available in macOS 10.15 or newer
 19 |
 20 | /// Plays the system keyboard click sound
 21 | class KeyboardClickSound {
    |       `- note: add @available attribute to enclosing class
 22 |     enum File {
 23 |         case normal
    :
 33 |     private var pressModifierPlayer: AudioPlaybackController?
 34 |
 35 |     private func loadAudioResource(for url: URL) -> AudioFileResource? {
    |                  `- note: add @available attribute to enclosing instance method
 36 |         let configuration = AudioFileResource.Configuration(calibration: .absolute(dBSPL: 58.0))
    |                             |- error: 'AudioFileResource' is only available in macOS 10.15 or newer
    |                             `- note: add 'if #available' version check
 37 |         return try? .load(contentsOf: url, configuration: configuration)
 38 |     }
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:37:22: error: 'load(contentsOf:withName:configuration:)' is only available in macOS 15.0 or newer
 19 |
 20 | /// Plays the system keyboard click sound
 21 | class KeyboardClickSound {
    |       `- note: add @available attribute to enclosing class
 22 |     enum File {
 23 |         case normal
    :
 33 |     private var pressModifierPlayer: AudioPlaybackController?
 34 |
 35 |     private func loadAudioResource(for url: URL) -> AudioFileResource? {
    |                  `- note: add @available attribute to enclosing instance method
 36 |         let configuration = AudioFileResource.Configuration(calibration: .absolute(dBSPL: 58.0))
 37 |         return try? .load(contentsOf: url, configuration: configuration)
    |                      |- error: 'load(contentsOf:withName:configuration:)' is only available in macOS 15.0 or newer
    |                      `- note: add 'if #available' version check
 38 |     }
 39 |
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:37:22: warning: call to main actor-isolated static method 'load(contentsOf:withName:configuration:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 33 |     private var pressModifierPlayer: AudioPlaybackController?
 34 |
 35 |     private func loadAudioResource(for url: URL) -> AudioFileResource? {
    |                  `- note: add '@MainActor' to make instance method 'loadAudioResource(for:)' part of global actor 'MainActor'
 36 |         let configuration = AudioFileResource.Configuration(calibration: .absolute(dBSPL: 58.0))
 37 |         return try? .load(contentsOf: url, configuration: configuration)
    |                      `- warning: call to main actor-isolated static method 'load(contentsOf:withName:configuration:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 38 |     }
 39 |
RealityFoundation.AudioFileResource:3:51: note: calls to static method 'load(contentsOf:withName:configuration:)' from outside of its actor context are implicitly asynchronous
1 | @available(visionOS 1.0, macOS 15.0, iOS 18.0, *)
2 | extension AudioFileResource {
3 |     @MainActor @preconcurrency public static func load(contentsOf url: URL, withName name: String? = nil, configuration: AudioFileResource.Configuration = .init()) throws -> AudioFileResource
  |                                                   `- note: calls to static method 'load(contentsOf:withName:configuration:)' from outside of its actor context are implicitly asynchronous
4 |     @MainActor @preconcurrency public static func load(named name: String, in bundle: Bundle? = nil, configuration: AudioFileResource.Configuration = .init()) throws -> AudioFileResource
5 |     @MainActor @preconcurrency public static func load(named name: String, from scene: String, in bundle: Bundle? = nil) throws -> AudioFileResource
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:77:42: error: 'appending(component:directoryHint:)' is only available in macOS 13.0 or newer
 19 |
 20 | /// Plays the system keyboard click sound
 21 | class KeyboardClickSound {
    |       `- note: add @available attribute to enclosing class
 22 |     enum File {
 23 |         case normal
    :
 70 |     }()
 71 |
 72 |     init() {
    |     `- note: add @available attribute to enclosing initializer
 73 |         // if we disabled system sounds then do not create the players
 74 |         guard isEnabled else {
 75 |             return
 76 |         }
 77 |         let pressNormalUrl = uiSoundsUrl.appending(component: "key_press_click.caf")
    |                                          |- error: 'appending(component:directoryHint:)' is only available in macOS 13.0 or newer
    |                                          `- note: add 'if #available' version check
 78 |         let pressDeleteUrl = uiSoundsUrl.appending(component: "key_press_delete.caf")
 79 |         let pressModifierUrl = uiSoundsUrl.appending(component: "key_press_modifier.caf")
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:78:42: error: 'appending(component:directoryHint:)' is only available in macOS 13.0 or newer
 19 |
 20 | /// Plays the system keyboard click sound
 21 | class KeyboardClickSound {
    |       `- note: add @available attribute to enclosing class
 22 |     enum File {
 23 |         case normal
    :
 70 |     }()
 71 |
 72 |     init() {
    |     `- note: add @available attribute to enclosing initializer
 73 |         // if we disabled system sounds then do not create the players
 74 |         guard isEnabled else {
    :
 76 |         }
 77 |         let pressNormalUrl = uiSoundsUrl.appending(component: "key_press_click.caf")
 78 |         let pressDeleteUrl = uiSoundsUrl.appending(component: "key_press_delete.caf")
    |                                          |- error: 'appending(component:directoryHint:)' is only available in macOS 13.0 or newer
    |                                          `- note: add 'if #available' version check
 79 |         let pressModifierUrl = uiSoundsUrl.appending(component: "key_press_modifier.caf")
 80 |         if let resource = loadAudioResource(for: pressNormalUrl) {
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:79:44: error: 'appending(component:directoryHint:)' is only available in macOS 13.0 or newer
 19 |
 20 | /// Plays the system keyboard click sound
 21 | class KeyboardClickSound {
    |       `- note: add @available attribute to enclosing class
 22 |     enum File {
 23 |         case normal
    :
 70 |     }()
 71 |
 72 |     init() {
    |     `- note: add @available attribute to enclosing initializer
 73 |         // if we disabled system sounds then do not create the players
 74 |         guard isEnabled else {
    :
 77 |         let pressNormalUrl = uiSoundsUrl.appending(component: "key_press_click.caf")
 78 |         let pressDeleteUrl = uiSoundsUrl.appending(component: "key_press_delete.caf")
 79 |         let pressModifierUrl = uiSoundsUrl.appending(component: "key_press_modifier.caf")
    |                                            |- error: 'appending(component:directoryHint:)' is only available in macOS 13.0 or newer
    |                                            `- note: add 'if #available' version check
 80 |         if let resource = loadAudioResource(for: pressNormalUrl) {
 81 |             pressNormalPlayer = entity.prepareAudio(resource)
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:81:40: error: 'prepareAudio' is only available in macOS 10.15 or newer
 19 |
 20 | /// Plays the system keyboard click sound
 21 | class KeyboardClickSound {
    |       `- note: add @available attribute to enclosing class
 22 |     enum File {
 23 |         case normal
    :
 70 |     }()
 71 |
 72 |     init() {
    |     `- note: add @available attribute to enclosing initializer
 73 |         // if we disabled system sounds then do not create the players
 74 |         guard isEnabled else {
    :
 79 |         let pressModifierUrl = uiSoundsUrl.appending(component: "key_press_modifier.caf")
 80 |         if let resource = loadAudioResource(for: pressNormalUrl) {
 81 |             pressNormalPlayer = entity.prepareAudio(resource)
    |                                        |- error: 'prepareAudio' is only available in macOS 10.15 or newer
    |                                        `- note: add 'if #available' version check
 82 |         }
 83 |         if let resource = loadAudioResource(for: pressDeleteUrl) {
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:84:40: error: 'prepareAudio' is only available in macOS 10.15 or newer
 19 |
 20 | /// Plays the system keyboard click sound
 21 | class KeyboardClickSound {
    |       `- note: add @available attribute to enclosing class
 22 |     enum File {
 23 |         case normal
    :
 70 |     }()
 71 |
 72 |     init() {
    |     `- note: add @available attribute to enclosing initializer
 73 |         // if we disabled system sounds then do not create the players
 74 |         guard isEnabled else {
    :
 82 |         }
 83 |         if let resource = loadAudioResource(for: pressDeleteUrl) {
 84 |             pressDeletePlayer = entity.prepareAudio(resource)
    |                                        |- error: 'prepareAudio' is only available in macOS 10.15 or newer
    |                                        `- note: add 'if #available' version check
 85 |         }
 86 |         if let resource = loadAudioResource(for: pressModifierUrl) {
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:87:42: error: 'prepareAudio' is only available in macOS 10.15 or newer
 19 |
 20 | /// Plays the system keyboard click sound
 21 | class KeyboardClickSound {
    |       `- note: add @available attribute to enclosing class
 22 |     enum File {
 23 |         case normal
    :
 70 |     }()
 71 |
 72 |     init() {
    |     `- note: add @available attribute to enclosing initializer
 73 |         // if we disabled system sounds then do not create the players
 74 |         guard isEnabled else {
    :
 85 |         }
 86 |         if let resource = loadAudioResource(for: pressModifierUrl) {
 87 |             pressModifierPlayer = entity.prepareAudio(resource)
    |                                          |- error: 'prepareAudio' is only available in macOS 10.15 or newer
    |                                          `- note: add 'if #available' version check
 88 |         }
 89 |     }
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:81:40: warning: call to main actor-isolated instance method 'prepareAudio' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 79 |         let pressModifierUrl = uiSoundsUrl.appending(component: "key_press_modifier.caf")
 80 |         if let resource = loadAudioResource(for: pressNormalUrl) {
 81 |             pressNormalPlayer = entity.prepareAudio(resource)
    |                                        `- warning: call to main actor-isolated instance method 'prepareAudio' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 82 |         }
 83 |         if let resource = loadAudioResource(for: pressDeleteUrl) {
RealityFoundation.Entity:5:44: note: calls to instance method 'prepareAudio' from outside of its actor context are implicitly asynchronous
3 |     @discardableResult
4 |     @MainActor @preconcurrency public func playAudio(_ resource: AudioResource) -> AudioPlaybackController
5 |     @MainActor @preconcurrency public func prepareAudio(_ resource: AudioResource) -> AudioPlaybackController
  |                                            `- note: calls to instance method 'prepareAudio' from outside of its actor context are implicitly asynchronous
6 |     @MainActor @preconcurrency public func stopAllAudio()
7 | }
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:84:40: warning: call to main actor-isolated instance method 'prepareAudio' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 82 |         }
 83 |         if let resource = loadAudioResource(for: pressDeleteUrl) {
 84 |             pressDeletePlayer = entity.prepareAudio(resource)
    |                                        `- warning: call to main actor-isolated instance method 'prepareAudio' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 85 |         }
 86 |         if let resource = loadAudioResource(for: pressModifierUrl) {
RealityFoundation.Entity:5:44: note: calls to instance method 'prepareAudio' from outside of its actor context are implicitly asynchronous
3 |     @discardableResult
4 |     @MainActor @preconcurrency public func playAudio(_ resource: AudioResource) -> AudioPlaybackController
5 |     @MainActor @preconcurrency public func prepareAudio(_ resource: AudioResource) -> AudioPlaybackController
  |                                            `- note: calls to instance method 'prepareAudio' from outside of its actor context are implicitly asynchronous
6 |     @MainActor @preconcurrency public func stopAllAudio()
7 | }
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:87:42: warning: call to main actor-isolated instance method 'prepareAudio' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 85 |         }
 86 |         if let resource = loadAudioResource(for: pressModifierUrl) {
 87 |             pressModifierPlayer = entity.prepareAudio(resource)
    |                                          `- warning: call to main actor-isolated instance method 'prepareAudio' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 88 |         }
 89 |     }
RealityFoundation.Entity:5:44: note: calls to instance method 'prepareAudio' from outside of its actor context are implicitly asynchronous
3 |     @discardableResult
4 |     @MainActor @preconcurrency public func playAudio(_ resource: AudioResource) -> AudioPlaybackController
5 |     @MainActor @preconcurrency public func prepareAudio(_ resource: AudioResource) -> AudioPlaybackController
  |                                            `- note: calls to instance method 'prepareAudio' from outside of its actor context are implicitly asynchronous
6 |     @MainActor @preconcurrency public func stopAllAudio()
7 | }
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:92:23: error: 'AVAudioSession' is unavailable in macOS
 90 |
 91 |     private func withAmbientSession(_ callback: () -> Void) {
 92 |         let session = AVAudioSession.sharedInstance()
    |                       `- error: 'AVAudioSession' is unavailable in macOS
 93 |         let oldCategory = session.category
 94 |         let oldMode = session.mode
AVFAudio.AVAudioSession:2:12: note: 'AVAudioSession' has been explicitly marked unavailable here
 1 | @available(macOS, unavailable)
 2 | open class AVAudioSession : NSObject, @unchecked Sendable {
   |            `- note: 'AVAudioSession' has been explicitly marked unavailable here
 3 |     @available(macOS, unavailable)
 4 |     open class func sharedInstance() -> AVAudioSession
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:92:38: error: 'sharedInstance()' is unavailable in macOS
 90 |
 91 |     private func withAmbientSession(_ callback: () -> Void) {
 92 |         let session = AVAudioSession.sharedInstance()
    |                                      `- error: 'sharedInstance()' is unavailable in macOS
 93 |         let oldCategory = session.category
 94 |         let oldMode = session.mode
AVFAudio.AVAudioSession:4:21: note: 'sharedInstance()' has been explicitly marked unavailable here
 2 | open class AVAudioSession : NSObject, @unchecked Sendable {
 3 |     @available(macOS, unavailable)
 4 |     open class func sharedInstance() -> AVAudioSession
   |                     `- note: 'sharedInstance()' has been explicitly marked unavailable here
 5 |     @available(macOS, unavailable)
 6 |     open var availableCategories: [AVAudioSession.Category] { get }
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:93:35: error: 'category' is unavailable in macOS
 91 |     private func withAmbientSession(_ callback: () -> Void) {
 92 |         let session = AVAudioSession.sharedInstance()
 93 |         let oldCategory = session.category
    |                                   `- error: 'category' is unavailable in macOS
 94 |         let oldMode = session.mode
 95 |         let oldPolicy = session.routeSharingPolicy
AVFAudio.AVAudioSession:25:14: note: 'category' has been explicitly marked unavailable here
23 |     open func setCategory(_ category: AVAudioSession.Category, mode: AVAudioSession.Mode, routeSharingPolicy policy: AVAudioSession.RouteSharingPolicy, options: AVAudioSession.CategoryOptions = []) throws
24 |     @available(macOS, unavailable)
25 |     open var category: AVAudioSession.Category { get }
   |              `- note: 'category' has been explicitly marked unavailable here
26 |     @available(macOS, unavailable)
27 |     open var categoryOptions: AVAudioSession.CategoryOptions { get }
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:94:31: error: 'mode' is unavailable in macOS
 92 |         let session = AVAudioSession.sharedInstance()
 93 |         let oldCategory = session.category
 94 |         let oldMode = session.mode
    |                               `- error: 'mode' is unavailable in macOS
 95 |         let oldPolicy = session.routeSharingPolicy
 96 |         let oldOptions = session.categoryOptions
AVFAudio.AVAudioSession:35:14: note: 'mode' has been explicitly marked unavailable here
33 |     open func setMode(_ mode: AVAudioSession.Mode) throws
34 |     @available(macOS, unavailable)
35 |     open var mode: AVAudioSession.Mode { get }
   |              `- note: 'mode' has been explicitly marked unavailable here
36 |     @available(macOS, unavailable)
37 |     open func setAllowHapticsAndSystemSoundsDuringRecording(_ inValue: Bool) throws
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:95:33: error: 'routeSharingPolicy' is unavailable in macOS
 93 |         let oldCategory = session.category
 94 |         let oldMode = session.mode
 95 |         let oldPolicy = session.routeSharingPolicy
    |                                 `- error: 'routeSharingPolicy' is unavailable in macOS
 96 |         let oldOptions = session.categoryOptions
 97 |         do {
AVFAudio.AVAudioSession:29:14: note: 'routeSharingPolicy' has been explicitly marked unavailable here
27 |     open var categoryOptions: AVAudioSession.CategoryOptions { get }
28 |     @available(macOS, unavailable)
29 |     open var routeSharingPolicy: AVAudioSession.RouteSharingPolicy { get }
   |              `- note: 'routeSharingPolicy' has been explicitly marked unavailable here
30 |     @available(macOS, unavailable)
31 |     open var availableModes: [AVAudioSession.Mode] { get }
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:96:34: error: 'categoryOptions' is unavailable in macOS
 94 |         let oldMode = session.mode
 95 |         let oldPolicy = session.routeSharingPolicy
 96 |         let oldOptions = session.categoryOptions
    |                                  `- error: 'categoryOptions' is unavailable in macOS
 97 |         do {
 98 |             try session.setCategory(.ambient, mode: .default, policy: .default, options: .mixWithOthers)
AVFAudio.AVAudioSession:27:14: note: 'categoryOptions' has been explicitly marked unavailable here
25 |     open var category: AVAudioSession.Category { get }
26 |     @available(macOS, unavailable)
27 |     open var categoryOptions: AVAudioSession.CategoryOptions { get }
   |              `- note: 'categoryOptions' has been explicitly marked unavailable here
28 |     @available(macOS, unavailable)
29 |     open var routeSharingPolicy: AVAudioSession.RouteSharingPolicy { get }
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:98:25: error: 'setCategory(_:mode:policy:options:)' is unavailable in macOS
 96 |         let oldOptions = session.categoryOptions
 97 |         do {
 98 |             try session.setCategory(.ambient, mode: .default, policy: .default, options: .mixWithOthers)
    |                         `- error: 'setCategory(_:mode:policy:options:)' is unavailable in macOS
 99 |             callback()
100 |             try session.setCategory(oldCategory, mode: oldMode, policy: oldPolicy, options: oldOptions)
AVFAudio.AVAudioSession:20:15: note: 'setCategory(_:mode:policy:options:)' has been explicitly marked unavailable here
18 |     open func setCategory(_ category: AVAudioSession.Category, mode: AVAudioSession.Mode, options: AVAudioSession.CategoryOptions = []) throws
19 |     @available(macOS, unavailable)
20 |     open func setCategory(_ category: AVAudioSession.Category, mode: AVAudioSession.Mode, policy: AVAudioSession.RouteSharingPolicy, options: AVAudioSession.CategoryOptions = []) throws
   |               `- note: 'setCategory(_:mode:policy:options:)' has been explicitly marked unavailable here
21 |     @available(swift, obsoleted: 4.2, renamed: "setCategory(_:mode:policy:options:)")
22 |     @available(macOS, unavailable)
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:98:38: error: 'ambient' is unavailable in macOS
 96 |         let oldOptions = session.categoryOptions
 97 |         do {
 98 |             try session.setCategory(.ambient, mode: .default, policy: .default, options: .mixWithOthers)
    |                                      `- error: 'ambient' is unavailable in macOS
 99 |             callback()
100 |             try session.setCategory(oldCategory, mode: oldMode, policy: oldPolicy, options: oldOptions)
AVFAudio.AVAudioSession.Category:3:23: note: 'ambient' has been explicitly marked unavailable here
 1 | extension AVAudioSession.Category {
 2 |     @available(macOS, unavailable)
 3 |     public static let ambient: AVAudioSession.Category
   |                       `- note: 'ambient' has been explicitly marked unavailable here
 4 |     @available(macOS, unavailable)
 5 |     public static let soloAmbient: AVAudioSession.Category
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:98:54: error: 'default' is unavailable in macOS
 96 |         let oldOptions = session.categoryOptions
 97 |         do {
 98 |             try session.setCategory(.ambient, mode: .default, policy: .default, options: .mixWithOthers)
    |                                                      `- error: 'default' is unavailable in macOS
 99 |             callback()
100 |             try session.setCategory(oldCategory, mode: oldMode, policy: oldPolicy, options: oldOptions)
AVFAudio.AVAudioSession.Mode:3:23: note: 'default' has been explicitly marked unavailable here
 1 | extension AVAudioSession.Mode {
 2 |     @available(macOS, unavailable)
 3 |     public static let `default`: AVAudioSession.Mode
   |                       `- note: 'default' has been explicitly marked unavailable here
 4 |     @available(macOS, unavailable)
 5 |     public static let voiceChat: AVAudioSession.Mode
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:100:25: error: 'setCategory(_:mode:policy:options:)' is unavailable in macOS
 98 |             try session.setCategory(.ambient, mode: .default, policy: .default, options: .mixWithOthers)
 99 |             callback()
100 |             try session.setCategory(oldCategory, mode: oldMode, policy: oldPolicy, options: oldOptions)
    |                         `- error: 'setCategory(_:mode:policy:options:)' is unavailable in macOS
101 |         } catch {
102 |             print(error)
AVFAudio.AVAudioSession:20:15: note: 'setCategory(_:mode:policy:options:)' has been explicitly marked unavailable here
18 |     open func setCategory(_ category: AVAudioSession.Category, mode: AVAudioSession.Mode, options: AVAudioSession.CategoryOptions = []) throws
19 |     @available(macOS, unavailable)
20 |     open func setCategory(_ category: AVAudioSession.Category, mode: AVAudioSession.Mode, policy: AVAudioSession.RouteSharingPolicy, options: AVAudioSession.CategoryOptions = []) throws
   |               `- note: 'setCategory(_:mode:policy:options:)' has been explicitly marked unavailable here
21 |     @available(swift, obsoleted: 4.2, renamed: "setCategory(_:mode:policy:options:)")
22 |     @available(macOS, unavailable)
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:112:23: error: 'isPlaying' is only available in macOS 10.15 or newer
 19 |
 20 | /// Plays the system keyboard click sound
 21 | class KeyboardClickSound {
    |       `- note: add @available attribute to enclosing class
 22 |     enum File {
 23 |         case normal
    :
105 |
106 |     @MainActor
107 |     private func play(_ player: AudioPlaybackController?) {
    |                  `- note: add @available attribute to enclosing instance method
108 |         guard let player = player else {
109 |             return
110 |         }
111 |         withAmbientSession {
112 |             if player.isPlaying {
    |                       |- error: 'isPlaying' is only available in macOS 10.15 or newer
    |                       `- note: add 'if #available' version check
113 |                 player.seek(to: .zero)
114 |             }
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:113:24: error: 'seek(to:)' is only available in macOS 15.0 or newer
 19 |
 20 | /// Plays the system keyboard click sound
 21 | class KeyboardClickSound {
    |       `- note: add @available attribute to enclosing class
 22 |     enum File {
 23 |         case normal
    :
105 |
106 |     @MainActor
107 |     private func play(_ player: AudioPlaybackController?) {
    |                  `- note: add @available attribute to enclosing instance method
108 |         guard let player = player else {
109 |             return
    :
111 |         withAmbientSession {
112 |             if player.isPlaying {
113 |                 player.seek(to: .zero)
    |                        |- error: 'seek(to:)' is only available in macOS 15.0 or newer
    |                        `- note: add 'if #available' version check
114 |             }
115 |             player.play()
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:113:34: error: 'zero' is only available in macOS 13.0 or newer
 19 |
 20 | /// Plays the system keyboard click sound
 21 | class KeyboardClickSound {
    |       `- note: add @available attribute to enclosing class
 22 |     enum File {
 23 |         case normal
    :
105 |
106 |     @MainActor
107 |     private func play(_ player: AudioPlaybackController?) {
    |                  `- note: add @available attribute to enclosing instance method
108 |         guard let player = player else {
109 |             return
    :
111 |         withAmbientSession {
112 |             if player.isPlaying {
113 |                 player.seek(to: .zero)
    |                                  |- error: 'zero' is only available in macOS 13.0 or newer
    |                                  `- note: add 'if #available' version check
114 |             }
115 |             player.play()
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardClickSound.swift:115:20: error: 'play()' is only available in macOS 10.15 or newer
 19 |
 20 | /// Plays the system keyboard click sound
 21 | class KeyboardClickSound {
    |       `- note: add @available attribute to enclosing class
 22 |     enum File {
 23 |         case normal
    :
105 |
106 |     @MainActor
107 |     private func play(_ player: AudioPlaybackController?) {
    |                  `- note: add @available attribute to enclosing instance method
108 |         guard let player = player else {
109 |             return
    :
113 |                 player.seek(to: .zero)
114 |             }
115 |             player.play()
    |                    |- error: 'play()' is only available in macOS 10.15 or newer
    |                    `- note: add 'if #available' version check
116 |         }
117 |     }
[15/16] Compiling VisionKeyboardKit KeyboardEvent.swift
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardEvent.swift:38:65: error: 'AnyPublisher' is only available in macOS 10.15 or newer
 19 |
 20 | /// Events posted by the keyboard
 21 | public enum KeyboardEvent {
    |             `- note: add @available attribute to enclosing enum
 22 |     /// Sent from the keyboard view's `onAppear()`
 23 |     case keyboardDidAppear
    :
 36 |     /// - Parameter id: A `KeyboardIdentifier` that uniquely identifies this keyboard instance.
 37 |     /// - Returns: A `Publisher` that emits events from the keyboard.
 38 |     public static func publisher(for id: KeyboardIdentifier) -> AnyPublisher<KeyboardEvent, Never> {
    |                        |                                        `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
    |                        `- note: add @available attribute to enclosing static method
 39 |         KeyboardEventSubject.for(id).eraseToAnyPublisher()
 40 |     }
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardEvent.swift:45:61: error: 'AnyPublisher' is only available in macOS 10.15 or newer
 19 |
 20 | /// Events posted by the keyboard
 21 | public enum KeyboardEvent {
    |             `- note: add @available attribute to enclosing enum
 22 |     /// Sent from the keyboard view's `onAppear()`
 23 |     case keyboardDidAppear
    :
 43 |     /// - Parameter id: Unique identifier for the keyboard to handle events from.
 44 |     /// - Returns: A `Publisher` that emits events from the keyboard.
 45 |     public static func publisher<H: Hashable>(for id: H) -> AnyPublisher<KeyboardEvent, Never> {
    |                        |                                    `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
    |                        `- note: add @available attribute to enclosing static method
 46 |         publisher(for: KeyboardIdentifier(for: id))
 47 |     }
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardEvent.swift:54:23: warning: static property 'none' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 52 |     public let rawValue: Int
 53 |
 54 |     public static var none = KeyboardModifier(rawValue: 0)
    |                       |- warning: static property 'none' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'none' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'none' 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
 55 |     public static var leftShift = KeyboardModifier(rawValue: 1 << 0)
 56 |     public static var rightShift = KeyboardModifier(rawValue: 1 << 1)
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardEvent.swift:55:23: warning: static property 'leftShift' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 53 |
 54 |     public static var none = KeyboardModifier(rawValue: 0)
 55 |     public static var leftShift = KeyboardModifier(rawValue: 1 << 0)
    |                       |- warning: static property 'leftShift' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'leftShift' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'leftShift' 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
 56 |     public static var rightShift = KeyboardModifier(rawValue: 1 << 1)
 57 |     public static var leftControl = KeyboardModifier(rawValue: 1 << 2)
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardEvent.swift:56:23: warning: static property 'rightShift' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 54 |     public static var none = KeyboardModifier(rawValue: 0)
 55 |     public static var leftShift = KeyboardModifier(rawValue: 1 << 0)
 56 |     public static var rightShift = KeyboardModifier(rawValue: 1 << 1)
    |                       |- warning: static property 'rightShift' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'rightShift' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'rightShift' 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
 57 |     public static var leftControl = KeyboardModifier(rawValue: 1 << 2)
 58 |     public static var rightControl = KeyboardModifier(rawValue: 1 << 3)
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardEvent.swift:57:23: warning: static property 'leftControl' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 55 |     public static var leftShift = KeyboardModifier(rawValue: 1 << 0)
 56 |     public static var rightShift = KeyboardModifier(rawValue: 1 << 1)
 57 |     public static var leftControl = KeyboardModifier(rawValue: 1 << 2)
    |                       |- warning: static property 'leftControl' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'leftControl' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'leftControl' 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
 58 |     public static var rightControl = KeyboardModifier(rawValue: 1 << 3)
 59 |     public static var leftOption = KeyboardModifier(rawValue: 1 << 4)
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardEvent.swift:58:23: warning: static property 'rightControl' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 56 |     public static var rightShift = KeyboardModifier(rawValue: 1 << 1)
 57 |     public static var leftControl = KeyboardModifier(rawValue: 1 << 2)
 58 |     public static var rightControl = KeyboardModifier(rawValue: 1 << 3)
    |                       |- warning: static property 'rightControl' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'rightControl' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'rightControl' 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
 59 |     public static var leftOption = KeyboardModifier(rawValue: 1 << 4)
 60 |     public static var rightOption = KeyboardModifier(rawValue: 1 << 5)
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardEvent.swift:59:23: warning: static property 'leftOption' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 57 |     public static var leftControl = KeyboardModifier(rawValue: 1 << 2)
 58 |     public static var rightControl = KeyboardModifier(rawValue: 1 << 3)
 59 |     public static var leftOption = KeyboardModifier(rawValue: 1 << 4)
    |                       |- warning: static property 'leftOption' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'leftOption' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'leftOption' 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
 60 |     public static var rightOption = KeyboardModifier(rawValue: 1 << 5)
 61 |     public static var leftCommand = KeyboardModifier(rawValue: 1 << 6)
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardEvent.swift:60:23: warning: static property 'rightOption' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 58 |     public static var rightControl = KeyboardModifier(rawValue: 1 << 3)
 59 |     public static var leftOption = KeyboardModifier(rawValue: 1 << 4)
 60 |     public static var rightOption = KeyboardModifier(rawValue: 1 << 5)
    |                       |- warning: static property 'rightOption' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'rightOption' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'rightOption' 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
 61 |     public static var leftCommand = KeyboardModifier(rawValue: 1 << 6)
 62 |     public static var rightCommand = KeyboardModifier(rawValue: 1 << 7)
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardEvent.swift:61:23: warning: static property 'leftCommand' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 59 |     public static var leftOption = KeyboardModifier(rawValue: 1 << 4)
 60 |     public static var rightOption = KeyboardModifier(rawValue: 1 << 5)
 61 |     public static var leftCommand = KeyboardModifier(rawValue: 1 << 6)
    |                       |- warning: static property 'leftCommand' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'leftCommand' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'leftCommand' 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
 62 |     public static var rightCommand = KeyboardModifier(rawValue: 1 << 7)
 63 |     public static var capsLock = KeyboardModifier(rawValue: 1 << 8)
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardEvent.swift:62:23: warning: static property 'rightCommand' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 60 |     public static var rightOption = KeyboardModifier(rawValue: 1 << 5)
 61 |     public static var leftCommand = KeyboardModifier(rawValue: 1 << 6)
 62 |     public static var rightCommand = KeyboardModifier(rawValue: 1 << 7)
    |                       |- warning: static property 'rightCommand' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'rightCommand' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'rightCommand' 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
 63 |     public static var capsLock = KeyboardModifier(rawValue: 1 << 8)
 64 |     public static var scrollLock = KeyboardModifier(rawValue: 1 << 9)
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardEvent.swift:63:23: warning: static property 'capsLock' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 61 |     public static var leftCommand = KeyboardModifier(rawValue: 1 << 6)
 62 |     public static var rightCommand = KeyboardModifier(rawValue: 1 << 7)
 63 |     public static var capsLock = KeyboardModifier(rawValue: 1 << 8)
    |                       |- warning: static property 'capsLock' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'capsLock' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'capsLock' 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
 64 |     public static var scrollLock = KeyboardModifier(rawValue: 1 << 9)
 65 |     public static var numLock = KeyboardModifier(rawValue: 1 << 10)
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardEvent.swift:64:23: warning: static property 'scrollLock' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 62 |     public static var rightCommand = KeyboardModifier(rawValue: 1 << 7)
 63 |     public static var capsLock = KeyboardModifier(rawValue: 1 << 8)
 64 |     public static var scrollLock = KeyboardModifier(rawValue: 1 << 9)
    |                       |- warning: static property 'scrollLock' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'scrollLock' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'scrollLock' 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
 65 |     public static var numLock = KeyboardModifier(rawValue: 1 << 10)
 66 |
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardEvent.swift:65:23: warning: static property 'numLock' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 63 |     public static var capsLock = KeyboardModifier(rawValue: 1 << 8)
 64 |     public static var scrollLock = KeyboardModifier(rawValue: 1 << 9)
 65 |     public static var numLock = KeyboardModifier(rawValue: 1 << 10)
    |                       |- warning: static property 'numLock' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'numLock' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'numLock' 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
 66 |
 67 |     public init(rawValue: Int) {
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardEvent.swift:220:39: error: 'OSAllocatedUnfairLock' is only available in macOS 13.0 or newer
214 | /// their reference and so it is safe to clean up the map entry (which should be holding a box with a nil reference).
215 | /// We make sure all this is done in a thread safe manner by the use of `subjectsLock`.
216 | final class KeyboardEventSubject: Subject {
    |             `- note: add @available attribute to enclosing class
217 |     typealias Output = KeyboardEvent
218 |     typealias Failure = Never
219 |
220 |     private static var subjectsLock = OSAllocatedUnfairLock()
    |                        |              `- error: 'OSAllocatedUnfairLock' is only available in macOS 13.0 or newer
    |                        `- note: add @available attribute to enclosing static property
221 |     private static var allSubjects: [KeyboardIdentifier: Weak<KeyboardEventSubject>] = [:]
222 |     private let id: KeyboardIdentifier
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardEvent.swift:220:39: error: 'init()' is only available in macOS 13.0 or newer
214 | /// their reference and so it is safe to clean up the map entry (which should be holding a box with a nil reference).
215 | /// We make sure all this is done in a thread safe manner by the use of `subjectsLock`.
216 | final class KeyboardEventSubject: Subject {
    |             `- note: add @available attribute to enclosing class
217 |     typealias Output = KeyboardEvent
218 |     typealias Failure = Never
219 |
220 |     private static var subjectsLock = OSAllocatedUnfairLock()
    |                        |              `- error: 'init()' is only available in macOS 13.0 or newer
    |                        `- note: add @available attribute to enclosing static property
221 |     private static var allSubjects: [KeyboardIdentifier: Weak<KeyboardEventSubject>] = [:]
222 |     private let id: KeyboardIdentifier
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardEvent.swift:220:24: warning: static property 'subjectsLock' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
218 |     typealias Failure = Never
219 |
220 |     private static var subjectsLock = OSAllocatedUnfairLock()
    |                        |- warning: static property 'subjectsLock' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'subjectsLock' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: annotate 'subjectsLock' 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
221 |     private static var allSubjects: [KeyboardIdentifier: Weak<KeyboardEventSubject>] = [:]
222 |     private let id: KeyboardIdentifier
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardEvent.swift:221:24: warning: static property 'allSubjects' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
219 |
220 |     private static var subjectsLock = OSAllocatedUnfairLock()
221 |     private static var allSubjects: [KeyboardIdentifier: Weak<KeyboardEventSubject>] = [:]
    |                        |- warning: static property 'allSubjects' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'allSubjects' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: annotate 'allSubjects' 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
222 |     private let id: KeyboardIdentifier
223 |     private let underlyingSubject = PassthroughSubject<Output, Failure>()
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardEvent.swift:223:37: error: 'PassthroughSubject' is only available in macOS 10.15 or newer
214 | /// their reference and so it is safe to clean up the map entry (which should be holding a box with a nil reference).
215 | /// We make sure all this is done in a thread safe manner by the use of `subjectsLock`.
216 | final class KeyboardEventSubject: Subject {
    |             `- note: add @available attribute to enclosing class
217 |     typealias Output = KeyboardEvent
218 |     typealias Failure = Never
    :
221 |     private static var allSubjects: [KeyboardIdentifier: Weak<KeyboardEventSubject>] = [:]
222 |     private let id: KeyboardIdentifier
223 |     private let underlyingSubject = PassthroughSubject<Output, Failure>()
    |                                     `- error: 'PassthroughSubject' is only available in macOS 10.15 or newer
224 |
225 |     private init(for id: KeyboardIdentifier) {
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardEvent.swift:247:29: error: 'Subscription' is only available in macOS 10.15 or newer
214 | /// their reference and so it is safe to clean up the map entry (which should be holding a box with a nil reference).
215 | /// We make sure all this is done in a thread safe manner by the use of `subjectsLock`.
216 | final class KeyboardEventSubject: Subject {
    |             `- note: add @available attribute to enclosing class
217 |     typealias Output = KeyboardEvent
218 |     typealias Failure = Never
    :
245 |     }
246 |
247 |     func send(subscription: Subscription) {
    |          |                  `- error: 'Subscription' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
248 |         underlyingSubject.send(subscription: subscription)
249 |     }
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardEvent.swift:251:92: error: 'Subscriber' is only available in macOS 10.15 or newer
214 | /// their reference and so it is safe to clean up the map entry (which should be holding a box with a nil reference).
215 | /// We make sure all this is done in a thread safe manner by the use of `subjectsLock`.
216 | final class KeyboardEventSubject: Subject {
    |             `- note: add @available attribute to enclosing class
217 |     typealias Output = KeyboardEvent
218 |     typealias Failure = Never
    :
249 |     }
250 |
251 |     func receive<S>(subscriber: S) where KeyboardEvent == S.Input, Never == S.Failure, S : Subscriber {
    |          |                                                                                 `- error: 'Subscriber' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
252 |         underlyingSubject.receive(subscriber: subscriber)
253 |     }
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardEvent.swift:259:27: error: 'Subscribers' is only available in macOS 10.15 or newer
214 | /// their reference and so it is safe to clean up the map entry (which should be holding a box with a nil reference).
215 | /// We make sure all this is done in a thread safe manner by the use of `subjectsLock`.
216 | final class KeyboardEventSubject: Subject {
    |             `- note: add @available attribute to enclosing class
217 |     typealias Output = KeyboardEvent
218 |     typealias Failure = Never
    :
257 |     }
258 |
259 |     func send(completion: Subscribers.Completion<Never>) {
    |          |                `- error: 'Subscribers' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
260 |         underlyingSubject.send(completion: completion)
261 |     }
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardEvent.swift:39:38: error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
 19 |
 20 | /// Events posted by the keyboard
 21 | public enum KeyboardEvent {
    |             `- note: add @available attribute to enclosing enum
 22 |     /// Sent from the keyboard view's `onAppear()`
 23 |     case keyboardDidAppear
    :
 36 |     /// - Parameter id: A `KeyboardIdentifier` that uniquely identifies this keyboard instance.
 37 |     /// - Returns: A `Publisher` that emits events from the keyboard.
 38 |     public static func publisher(for id: KeyboardIdentifier) -> AnyPublisher<KeyboardEvent, Never> {
    |                        `- note: add @available attribute to enclosing static method
 39 |         KeyboardEventSubject.for(id).eraseToAnyPublisher()
    |                                      |- error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
    |                                      `- note: add 'if #available' version check
 40 |     }
 41 |
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardEvent.swift:230:22: error: 'withLock' is only available in macOS 13.0 or newer
214 | /// their reference and so it is safe to clean up the map entry (which should be holding a box with a nil reference).
215 | /// We make sure all this is done in a thread safe manner by the use of `subjectsLock`.
216 | final class KeyboardEventSubject: Subject {
    |             `- note: add @available attribute to enclosing class
217 |     typealias Output = KeyboardEvent
218 |     typealias Failure = Never
    :
227 |     }
228 |
229 |     static func `for`(_ id: KeyboardIdentifier) -> KeyboardEventSubject {
    |                 `- note: add @available attribute to enclosing static method
230 |         subjectsLock.withLock {
    |                      |- error: 'withLock' is only available in macOS 13.0 or newer
    |                      `- note: add 'if #available' version check
231 |             if let w = allSubjects[id], let s = w.ref {
232 |                 return s
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardEvent.swift:231:36: warning: capture of 'id' with non-sendable type 'KeyboardIdentifier' in a `@Sendable` closure; this is an error in the Swift 6 language mode
229 |     static func `for`(_ id: KeyboardIdentifier) -> KeyboardEventSubject {
230 |         subjectsLock.withLock {
231 |             if let w = allSubjects[id], let s = w.ref {
    |                                    `- warning: capture of 'id' with non-sendable type 'KeyboardIdentifier' in a `@Sendable` closure; this is an error in the Swift 6 language mode
232 |                 return s
233 |             } else {
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardIdentifier.swift:20:15: note: consider making struct 'KeyboardIdentifier' conform to the 'Sendable' protocol
18 |
19 | /// Represents a unique instance of the keyboard.
20 | public struct KeyboardIdentifier: Codable, Hashable {
   |               `- note: consider making struct 'KeyboardIdentifier' conform to the 'Sendable' protocol
21 |     private let id: Int
22 |
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardEvent.swift:242:27: error: 'withLock' is only available in macOS 13.0 or newer
214 | /// their reference and so it is safe to clean up the map entry (which should be holding a box with a nil reference).
215 | /// We make sure all this is done in a thread safe manner by the use of `subjectsLock`.
216 | final class KeyboardEventSubject: Subject {
    |             `- note: add @available attribute to enclosing class
217 |     typealias Output = KeyboardEvent
218 |     typealias Failure = Never
    :
240 |
241 |     deinit {
242 |         Self.subjectsLock.withLock {
    |                           |- error: 'withLock' is only available in macOS 13.0 or newer
    |                           `- note: add 'if #available' version check
243 |             _ = Self.allSubjects.removeValue(forKey: id)
244 |         }
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardEvent.swift:243:54: warning: capture of 'self' with non-sendable type 'KeyboardEventSubject' in a `@Sendable` closure; this is an error in the Swift 6 language mode
214 | /// their reference and so it is safe to clean up the map entry (which should be holding a box with a nil reference).
215 | /// We make sure all this is done in a thread safe manner by the use of `subjectsLock`.
216 | final class KeyboardEventSubject: Subject {
    |             `- note: class 'KeyboardEventSubject' does not conform to the 'Sendable' protocol
217 |     typealias Output = KeyboardEvent
218 |     typealias Failure = Never
    :
241 |     deinit {
242 |         Self.subjectsLock.withLock {
243 |             _ = Self.allSubjects.removeValue(forKey: id)
    |                                                      `- warning: capture of 'self' with non-sendable type 'KeyboardEventSubject' in a `@Sendable` closure; this is an error in the Swift 6 language mode
244 |         }
245 |     }
[16/16] Compiling VisionKeyboardKit KeyboardEventPS2.swift
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardEvent.swift:38:65: error: 'AnyPublisher' is only available in macOS 10.15 or newer
 19 |
 20 | /// Events posted by the keyboard
 21 | public enum KeyboardEvent {
    |             `- note: add @available attribute to enclosing enum
 22 |     /// Sent from the keyboard view's `onAppear()`
 23 |     case keyboardDidAppear
    :
 36 |     /// - Parameter id: A `KeyboardIdentifier` that uniquely identifies this keyboard instance.
 37 |     /// - Returns: A `Publisher` that emits events from the keyboard.
 38 |     public static func publisher(for id: KeyboardIdentifier) -> AnyPublisher<KeyboardEvent, Never> {
    |                        |                                        `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
    |                        `- note: add @available attribute to enclosing static method
 39 |         KeyboardEventSubject.for(id).eraseToAnyPublisher()
 40 |     }
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardEvent.swift:45:61: error: 'AnyPublisher' is only available in macOS 10.15 or newer
 19 |
 20 | /// Events posted by the keyboard
 21 | public enum KeyboardEvent {
    |             `- note: add @available attribute to enclosing enum
 22 |     /// Sent from the keyboard view's `onAppear()`
 23 |     case keyboardDidAppear
    :
 43 |     /// - Parameter id: Unique identifier for the keyboard to handle events from.
 44 |     /// - Returns: A `Publisher` that emits events from the keyboard.
 45 |     public static func publisher<H: Hashable>(for id: H) -> AnyPublisher<KeyboardEvent, Never> {
    |                        |                                    `- error: 'AnyPublisher' is only available in macOS 10.15 or newer
    |                        `- note: add @available attribute to enclosing static method
 46 |         publisher(for: KeyboardIdentifier(for: id))
 47 |     }
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardEvent.swift:54:23: warning: static property 'none' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 52 |     public let rawValue: Int
 53 |
 54 |     public static var none = KeyboardModifier(rawValue: 0)
    |                       |- warning: static property 'none' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'none' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'none' 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
 55 |     public static var leftShift = KeyboardModifier(rawValue: 1 << 0)
 56 |     public static var rightShift = KeyboardModifier(rawValue: 1 << 1)
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardEvent.swift:55:23: warning: static property 'leftShift' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 53 |
 54 |     public static var none = KeyboardModifier(rawValue: 0)
 55 |     public static var leftShift = KeyboardModifier(rawValue: 1 << 0)
    |                       |- warning: static property 'leftShift' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'leftShift' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'leftShift' 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
 56 |     public static var rightShift = KeyboardModifier(rawValue: 1 << 1)
 57 |     public static var leftControl = KeyboardModifier(rawValue: 1 << 2)
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardEvent.swift:56:23: warning: static property 'rightShift' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 54 |     public static var none = KeyboardModifier(rawValue: 0)
 55 |     public static var leftShift = KeyboardModifier(rawValue: 1 << 0)
 56 |     public static var rightShift = KeyboardModifier(rawValue: 1 << 1)
    |                       |- warning: static property 'rightShift' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'rightShift' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'rightShift' 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
 57 |     public static var leftControl = KeyboardModifier(rawValue: 1 << 2)
 58 |     public static var rightControl = KeyboardModifier(rawValue: 1 << 3)
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardEvent.swift:57:23: warning: static property 'leftControl' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 55 |     public static var leftShift = KeyboardModifier(rawValue: 1 << 0)
 56 |     public static var rightShift = KeyboardModifier(rawValue: 1 << 1)
 57 |     public static var leftControl = KeyboardModifier(rawValue: 1 << 2)
    |                       |- warning: static property 'leftControl' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'leftControl' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'leftControl' 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
 58 |     public static var rightControl = KeyboardModifier(rawValue: 1 << 3)
 59 |     public static var leftOption = KeyboardModifier(rawValue: 1 << 4)
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardEvent.swift:58:23: warning: static property 'rightControl' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 56 |     public static var rightShift = KeyboardModifier(rawValue: 1 << 1)
 57 |     public static var leftControl = KeyboardModifier(rawValue: 1 << 2)
 58 |     public static var rightControl = KeyboardModifier(rawValue: 1 << 3)
    |                       |- warning: static property 'rightControl' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'rightControl' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'rightControl' 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
 59 |     public static var leftOption = KeyboardModifier(rawValue: 1 << 4)
 60 |     public static var rightOption = KeyboardModifier(rawValue: 1 << 5)
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardEvent.swift:59:23: warning: static property 'leftOption' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 57 |     public static var leftControl = KeyboardModifier(rawValue: 1 << 2)
 58 |     public static var rightControl = KeyboardModifier(rawValue: 1 << 3)
 59 |     public static var leftOption = KeyboardModifier(rawValue: 1 << 4)
    |                       |- warning: static property 'leftOption' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'leftOption' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'leftOption' 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
 60 |     public static var rightOption = KeyboardModifier(rawValue: 1 << 5)
 61 |     public static var leftCommand = KeyboardModifier(rawValue: 1 << 6)
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardEvent.swift:60:23: warning: static property 'rightOption' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 58 |     public static var rightControl = KeyboardModifier(rawValue: 1 << 3)
 59 |     public static var leftOption = KeyboardModifier(rawValue: 1 << 4)
 60 |     public static var rightOption = KeyboardModifier(rawValue: 1 << 5)
    |                       |- warning: static property 'rightOption' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'rightOption' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'rightOption' 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
 61 |     public static var leftCommand = KeyboardModifier(rawValue: 1 << 6)
 62 |     public static var rightCommand = KeyboardModifier(rawValue: 1 << 7)
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardEvent.swift:61:23: warning: static property 'leftCommand' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 59 |     public static var leftOption = KeyboardModifier(rawValue: 1 << 4)
 60 |     public static var rightOption = KeyboardModifier(rawValue: 1 << 5)
 61 |     public static var leftCommand = KeyboardModifier(rawValue: 1 << 6)
    |                       |- warning: static property 'leftCommand' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'leftCommand' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'leftCommand' 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
 62 |     public static var rightCommand = KeyboardModifier(rawValue: 1 << 7)
 63 |     public static var capsLock = KeyboardModifier(rawValue: 1 << 8)
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardEvent.swift:62:23: warning: static property 'rightCommand' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 60 |     public static var rightOption = KeyboardModifier(rawValue: 1 << 5)
 61 |     public static var leftCommand = KeyboardModifier(rawValue: 1 << 6)
 62 |     public static var rightCommand = KeyboardModifier(rawValue: 1 << 7)
    |                       |- warning: static property 'rightCommand' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'rightCommand' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'rightCommand' 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
 63 |     public static var capsLock = KeyboardModifier(rawValue: 1 << 8)
 64 |     public static var scrollLock = KeyboardModifier(rawValue: 1 << 9)
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardEvent.swift:63:23: warning: static property 'capsLock' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 61 |     public static var leftCommand = KeyboardModifier(rawValue: 1 << 6)
 62 |     public static var rightCommand = KeyboardModifier(rawValue: 1 << 7)
 63 |     public static var capsLock = KeyboardModifier(rawValue: 1 << 8)
    |                       |- warning: static property 'capsLock' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'capsLock' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'capsLock' 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
 64 |     public static var scrollLock = KeyboardModifier(rawValue: 1 << 9)
 65 |     public static var numLock = KeyboardModifier(rawValue: 1 << 10)
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardEvent.swift:64:23: warning: static property 'scrollLock' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 62 |     public static var rightCommand = KeyboardModifier(rawValue: 1 << 7)
 63 |     public static var capsLock = KeyboardModifier(rawValue: 1 << 8)
 64 |     public static var scrollLock = KeyboardModifier(rawValue: 1 << 9)
    |                       |- warning: static property 'scrollLock' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'scrollLock' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'scrollLock' 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
 65 |     public static var numLock = KeyboardModifier(rawValue: 1 << 10)
 66 |
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardEvent.swift:65:23: warning: static property 'numLock' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 63 |     public static var capsLock = KeyboardModifier(rawValue: 1 << 8)
 64 |     public static var scrollLock = KeyboardModifier(rawValue: 1 << 9)
 65 |     public static var numLock = KeyboardModifier(rawValue: 1 << 10)
    |                       |- warning: static property 'numLock' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'numLock' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'numLock' 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
 66 |
 67 |     public init(rawValue: Int) {
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardEvent.swift:220:39: error: 'OSAllocatedUnfairLock' is only available in macOS 13.0 or newer
214 | /// their reference and so it is safe to clean up the map entry (which should be holding a box with a nil reference).
215 | /// We make sure all this is done in a thread safe manner by the use of `subjectsLock`.
216 | final class KeyboardEventSubject: Subject {
    |             `- note: add @available attribute to enclosing class
217 |     typealias Output = KeyboardEvent
218 |     typealias Failure = Never
219 |
220 |     private static var subjectsLock = OSAllocatedUnfairLock()
    |                        |              `- error: 'OSAllocatedUnfairLock' is only available in macOS 13.0 or newer
    |                        `- note: add @available attribute to enclosing static property
221 |     private static var allSubjects: [KeyboardIdentifier: Weak<KeyboardEventSubject>] = [:]
222 |     private let id: KeyboardIdentifier
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardEvent.swift:220:39: error: 'init()' is only available in macOS 13.0 or newer
214 | /// their reference and so it is safe to clean up the map entry (which should be holding a box with a nil reference).
215 | /// We make sure all this is done in a thread safe manner by the use of `subjectsLock`.
216 | final class KeyboardEventSubject: Subject {
    |             `- note: add @available attribute to enclosing class
217 |     typealias Output = KeyboardEvent
218 |     typealias Failure = Never
219 |
220 |     private static var subjectsLock = OSAllocatedUnfairLock()
    |                        |              `- error: 'init()' is only available in macOS 13.0 or newer
    |                        `- note: add @available attribute to enclosing static property
221 |     private static var allSubjects: [KeyboardIdentifier: Weak<KeyboardEventSubject>] = [:]
222 |     private let id: KeyboardIdentifier
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardEvent.swift:220:24: warning: static property 'subjectsLock' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
218 |     typealias Failure = Never
219 |
220 |     private static var subjectsLock = OSAllocatedUnfairLock()
    |                        |- warning: static property 'subjectsLock' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'subjectsLock' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: annotate 'subjectsLock' 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
221 |     private static var allSubjects: [KeyboardIdentifier: Weak<KeyboardEventSubject>] = [:]
222 |     private let id: KeyboardIdentifier
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardEvent.swift:221:24: warning: static property 'allSubjects' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
219 |
220 |     private static var subjectsLock = OSAllocatedUnfairLock()
221 |     private static var allSubjects: [KeyboardIdentifier: Weak<KeyboardEventSubject>] = [:]
    |                        |- warning: static property 'allSubjects' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'allSubjects' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: annotate 'allSubjects' 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
222 |     private let id: KeyboardIdentifier
223 |     private let underlyingSubject = PassthroughSubject<Output, Failure>()
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardEvent.swift:223:37: error: 'PassthroughSubject' is only available in macOS 10.15 or newer
214 | /// their reference and so it is safe to clean up the map entry (which should be holding a box with a nil reference).
215 | /// We make sure all this is done in a thread safe manner by the use of `subjectsLock`.
216 | final class KeyboardEventSubject: Subject {
    |             `- note: add @available attribute to enclosing class
217 |     typealias Output = KeyboardEvent
218 |     typealias Failure = Never
    :
221 |     private static var allSubjects: [KeyboardIdentifier: Weak<KeyboardEventSubject>] = [:]
222 |     private let id: KeyboardIdentifier
223 |     private let underlyingSubject = PassthroughSubject<Output, Failure>()
    |                                     `- error: 'PassthroughSubject' is only available in macOS 10.15 or newer
224 |
225 |     private init(for id: KeyboardIdentifier) {
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardEvent.swift:247:29: error: 'Subscription' is only available in macOS 10.15 or newer
214 | /// their reference and so it is safe to clean up the map entry (which should be holding a box with a nil reference).
215 | /// We make sure all this is done in a thread safe manner by the use of `subjectsLock`.
216 | final class KeyboardEventSubject: Subject {
    |             `- note: add @available attribute to enclosing class
217 |     typealias Output = KeyboardEvent
218 |     typealias Failure = Never
    :
245 |     }
246 |
247 |     func send(subscription: Subscription) {
    |          |                  `- error: 'Subscription' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
248 |         underlyingSubject.send(subscription: subscription)
249 |     }
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardEvent.swift:251:92: error: 'Subscriber' is only available in macOS 10.15 or newer
214 | /// their reference and so it is safe to clean up the map entry (which should be holding a box with a nil reference).
215 | /// We make sure all this is done in a thread safe manner by the use of `subjectsLock`.
216 | final class KeyboardEventSubject: Subject {
    |             `- note: add @available attribute to enclosing class
217 |     typealias Output = KeyboardEvent
218 |     typealias Failure = Never
    :
249 |     }
250 |
251 |     func receive<S>(subscriber: S) where KeyboardEvent == S.Input, Never == S.Failure, S : Subscriber {
    |          |                                                                                 `- error: 'Subscriber' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
252 |         underlyingSubject.receive(subscriber: subscriber)
253 |     }
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardEvent.swift:259:27: error: 'Subscribers' is only available in macOS 10.15 or newer
214 | /// their reference and so it is safe to clean up the map entry (which should be holding a box with a nil reference).
215 | /// We make sure all this is done in a thread safe manner by the use of `subjectsLock`.
216 | final class KeyboardEventSubject: Subject {
    |             `- note: add @available attribute to enclosing class
217 |     typealias Output = KeyboardEvent
218 |     typealias Failure = Never
    :
257 |     }
258 |
259 |     func send(completion: Subscribers.Completion<Never>) {
    |          |                `- error: 'Subscribers' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
260 |         underlyingSubject.send(completion: completion)
261 |     }
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardEvent.swift:39:38: error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
 19 |
 20 | /// Events posted by the keyboard
 21 | public enum KeyboardEvent {
    |             `- note: add @available attribute to enclosing enum
 22 |     /// Sent from the keyboard view's `onAppear()`
 23 |     case keyboardDidAppear
    :
 36 |     /// - Parameter id: A `KeyboardIdentifier` that uniquely identifies this keyboard instance.
 37 |     /// - Returns: A `Publisher` that emits events from the keyboard.
 38 |     public static func publisher(for id: KeyboardIdentifier) -> AnyPublisher<KeyboardEvent, Never> {
    |                        `- note: add @available attribute to enclosing static method
 39 |         KeyboardEventSubject.for(id).eraseToAnyPublisher()
    |                                      |- error: 'eraseToAnyPublisher()' is only available in macOS 10.15 or newer
    |                                      `- note: add 'if #available' version check
 40 |     }
 41 |
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardEvent.swift:230:22: error: 'withLock' is only available in macOS 13.0 or newer
214 | /// their reference and so it is safe to clean up the map entry (which should be holding a box with a nil reference).
215 | /// We make sure all this is done in a thread safe manner by the use of `subjectsLock`.
216 | final class KeyboardEventSubject: Subject {
    |             `- note: add @available attribute to enclosing class
217 |     typealias Output = KeyboardEvent
218 |     typealias Failure = Never
    :
227 |     }
228 |
229 |     static func `for`(_ id: KeyboardIdentifier) -> KeyboardEventSubject {
    |                 `- note: add @available attribute to enclosing static method
230 |         subjectsLock.withLock {
    |                      |- error: 'withLock' is only available in macOS 13.0 or newer
    |                      `- note: add 'if #available' version check
231 |             if let w = allSubjects[id], let s = w.ref {
232 |                 return s
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardEvent.swift:231:36: warning: capture of 'id' with non-sendable type 'KeyboardIdentifier' in a `@Sendable` closure; this is an error in the Swift 6 language mode
229 |     static func `for`(_ id: KeyboardIdentifier) -> KeyboardEventSubject {
230 |         subjectsLock.withLock {
231 |             if let w = allSubjects[id], let s = w.ref {
    |                                    `- warning: capture of 'id' with non-sendable type 'KeyboardIdentifier' in a `@Sendable` closure; this is an error in the Swift 6 language mode
232 |                 return s
233 |             } else {
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardIdentifier.swift:20:15: note: consider making struct 'KeyboardIdentifier' conform to the 'Sendable' protocol
18 |
19 | /// Represents a unique instance of the keyboard.
20 | public struct KeyboardIdentifier: Codable, Hashable {
   |               `- note: consider making struct 'KeyboardIdentifier' conform to the 'Sendable' protocol
21 |     private let id: Int
22 |
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardEvent.swift:242:27: error: 'withLock' is only available in macOS 13.0 or newer
214 | /// their reference and so it is safe to clean up the map entry (which should be holding a box with a nil reference).
215 | /// We make sure all this is done in a thread safe manner by the use of `subjectsLock`.
216 | final class KeyboardEventSubject: Subject {
    |             `- note: add @available attribute to enclosing class
217 |     typealias Output = KeyboardEvent
218 |     typealias Failure = Never
    :
240 |
241 |     deinit {
242 |         Self.subjectsLock.withLock {
    |                           |- error: 'withLock' is only available in macOS 13.0 or newer
    |                           `- note: add 'if #available' version check
243 |             _ = Self.allSubjects.removeValue(forKey: id)
244 |         }
/Users/admin/builder/spi-builder-workspace/Sources/VisionKeyboardKit/KeyboardEvent.swift:243:54: warning: capture of 'self' with non-sendable type 'KeyboardEventSubject' in a `@Sendable` closure; this is an error in the Swift 6 language mode
214 | /// their reference and so it is safe to clean up the map entry (which should be holding a box with a nil reference).
215 | /// We make sure all this is done in a thread safe manner by the use of `subjectsLock`.
216 | final class KeyboardEventSubject: Subject {
    |             `- note: class 'KeyboardEventSubject' does not conform to the 'Sendable' protocol
217 |     typealias Output = KeyboardEvent
218 |     typealias Failure = Never
    :
241 |     deinit {
242 |         Self.subjectsLock.withLock {
243 |             _ = Self.allSubjects.removeValue(forKey: id)
    |                                                      `- warning: capture of 'self' with non-sendable type 'KeyboardEventSubject' in a `@Sendable` closure; this is an error in the Swift 6 language mode
244 |         }
245 |     }
BUILD FAILURE 6.0 macosSpm