The Swift Package Index logo.Swift Package Index

Build Information

Failed to build PatternAuthentication, reference 1.1.0 (2544d6), with Swift 6.3 for macOS (SPM) on 3 Jul 2026 10:36:32 UTC.

Build Command

env DEVELOPER_DIR=/Applications/Xcode-26.4.0.app xcrun swift build --arch arm64

Build Log

 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
 70 |
 71 |     /// Callback invoked by v1 setup APIs with a credential envelope.
 72 |     @Published public var credentialSetupCompletion: ((GestureCredentialEnvelope) -> Void)?
    |      `- error: 'Published' is only available in macOS 10.15 or newer
 73 |
 74 |     /// Callback invoked after successful legacy authentication creates a v1 credential.
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:75:6: error: 'Published' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
 73 |
 74 |     /// Callback invoked after successful legacy authentication creates a v1 credential.
 75 |     @Published public var legacyUpgradeCompletion: ((GestureCredentialEnvelope) -> Void)?
    |      `- error: 'Published' is only available in macOS 10.15 or newer
 76 |
 77 |     /// The setup confirmation state.
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:78:6: error: 'Published' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
 76 |
 77 |     /// The setup confirmation state.
 78 |     @Published public var confirmationState: ConfirmationState = .initial
    |      `- error: 'Published' is only available in macOS 10.15 or newer
 79 |
 80 |     /// The legacy hash of the first setup pattern when confirmation is required.
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:81:6: error: 'Published' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
 79 |
 80 |     /// The legacy hash of the first setup pattern when confirmation is required.
 81 |     @Published public var firstPatternHash: String?
    |      `- error: 'Published' is only available in macOS 10.15 or newer
 82 |
 83 |     /// Whether an entered pattern is currently being replayed.
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:84:6: error: 'Published' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
 82 |
 83 |     /// Whether an entered pattern is currently being replayed.
 84 |     @Published public var isSimulating: Bool = false
    |      `- error: 'Published' is only available in macOS 10.15 or newer
 85 |     private var simulationTask: Task<Void, Never>?
 86 |
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:85:33: error: 'Task' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
 83 |     /// Whether an entered pattern is currently being replayed.
 84 |     @Published public var isSimulating: Bool = false
 85 |     private var simulationTask: Task<Void, Never>?
    |                                 `- error: 'Task' is only available in macOS 10.15 or newer
 86 |
 87 |     /// The in-flight credential derivation or verification task.
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:88:33: error: 'Task' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
 86 |
 87 |     /// The in-flight credential derivation or verification task.
 88 |     private var credentialTask: Task<Void, Never>?
    |                                 `- error: 'Task' is only available in macOS 10.15 or newer
 89 |
 90 |     /// Whether the user currently has an active drag gesture.
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:91:6: error: 'Published' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
 89 |
 90 |     /// Whether the user currently has an active drag gesture.
 91 |     @Published public var isDragging: Bool = false
    |      `- error: 'Published' is only available in macOS 10.15 or newer
 92 |
 93 |     /// The most recent user-facing validation or credential error.
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:94:6: error: 'Published' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
 92 |
 93 |     /// The most recent user-facing validation or credential error.
 94 |     @Published public var lastDragError: String?
    |      `- error: 'Published' is only available in macOS 10.15 or newer
 95 |
 96 |     /// The last selected grid index in the current gesture.
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:203:34: error: 'DragGesture' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
201 |     /// particle state.
202 |     /// - Throws: This method does not throw.
203 |     public func duringDrag(drag: DragGesture.Value) {
    |                 |                `- error: 'DragGesture' is only available in macOS 10.15 or newer
    |                 `- note: add '@available' attribute to enclosing instance method
204 |         let wasDragging = isDragging
205 |         isDragging = true
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:681:29: error: 'blue' is only available in macOS 10.15 or newer
660 |
661 |     /// Defines the setup or authentication flow hosted by `GridAuthenticator`.
662 |     public enum GridAuthenticatorOption {
    |                 `- note: add '@available' attribute to enclosing enum
663 |         /// Creates a deprecated v0 setup flow that returns a legacy SHA-256 hash.
664 |         ///
    :
679 |         case set(
680 |             minimumVertices: Int = 6,
681 |             color: Color = .blue,
    |                             `- error: 'blue' is only available in macOS 10.15 or newer
682 |             interactionMode: InteractionMode = .drag,
683 |             requireConfirmation: Bool = true,
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:681:20: error: 'Color' is only available in macOS 10.15 or newer
660 |
661 |     /// Defines the setup or authentication flow hosted by `GridAuthenticator`.
662 |     public enum GridAuthenticatorOption {
    |                 `- note: add '@available' attribute to enclosing enum
663 |         /// Creates a deprecated v0 setup flow that returns a legacy SHA-256 hash.
664 |         ///
    :
679 |         case set(
680 |             minimumVertices: Int = 6,
681 |             color: Color = .blue,
    |                    `- error: 'Color' is only available in macOS 10.15 or newer
682 |             interactionMode: InteractionMode = .drag,
683 |             requireConfirmation: Bool = true,
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:703:29: error: 'blue' is only available in macOS 10.15 or newer
660 |
661 |     /// Defines the setup or authentication flow hosted by `GridAuthenticator`.
662 |     public enum GridAuthenticatorOption {
    |                 `- note: add '@available' attribute to enclosing enum
663 |         /// Creates a deprecated v0 setup flow that returns a legacy SHA-256 hash.
664 |         ///
    :
701 |         case authenticate(
702 |             expectedHash: String,
703 |             color: Color = .blue,
    |                             `- error: 'blue' is only available in macOS 10.15 or newer
704 |             interactionMode: InteractionMode = .drag,
705 |             debug: Bool = false,
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:703:20: error: 'Color' is only available in macOS 10.15 or newer
660 |
661 |     /// Defines the setup or authentication flow hosted by `GridAuthenticator`.
662 |     public enum GridAuthenticatorOption {
    |                 `- note: add '@available' attribute to enclosing enum
663 |         /// Creates a deprecated v0 setup flow that returns a legacy SHA-256 hash.
664 |         ///
    :
701 |         case authenticate(
702 |             expectedHash: String,
703 |             color: Color = .blue,
    |                    `- error: 'Color' is only available in macOS 10.15 or newer
704 |             interactionMode: InteractionMode = .drag,
705 |             debug: Bool = false,
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:728:29: error: 'blue' is only available in macOS 10.15 or newer
660 |
661 |     /// Defines the setup or authentication flow hosted by `GridAuthenticator`.
662 |     public enum GridAuthenticatorOption {
    |                 `- note: add '@available' attribute to enclosing enum
663 |         /// Creates a deprecated v0 setup flow that returns a legacy SHA-256 hash.
664 |         ///
    :
726 |         case setCredential(
727 |             minimumVertices: Int = 6,
728 |             color: Color = .blue,
    |                             `- error: 'blue' is only available in macOS 10.15 or newer
729 |             interactionMode: InteractionMode = .drag,
730 |             requireConfirmation: Bool = true,
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:728:20: error: 'Color' is only available in macOS 10.15 or newer
660 |
661 |     /// Defines the setup or authentication flow hosted by `GridAuthenticator`.
662 |     public enum GridAuthenticatorOption {
    |                 `- note: add '@available' attribute to enclosing enum
663 |         /// Creates a deprecated v0 setup flow that returns a legacy SHA-256 hash.
664 |         ///
    :
726 |         case setCredential(
727 |             minimumVertices: Int = 6,
728 |             color: Color = .blue,
    |                    `- error: 'Color' is only available in macOS 10.15 or newer
729 |             interactionMode: InteractionMode = .drag,
730 |             requireConfirmation: Bool = true,
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:749:29: error: 'blue' is only available in macOS 10.15 or newer
660 |
661 |     /// Defines the setup or authentication flow hosted by `GridAuthenticator`.
662 |     public enum GridAuthenticatorOption {
    |                 `- note: add '@available' attribute to enclosing enum
663 |         /// Creates a deprecated v0 setup flow that returns a legacy SHA-256 hash.
664 |         ///
    :
747 |         case authenticateCredential(
748 |             credential: GestureCredentialEnvelope,
749 |             color: Color = .blue,
    |                             `- error: 'blue' is only available in macOS 10.15 or newer
750 |             interactionMode: InteractionMode = .drag,
751 |             debug: Bool = false,
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:749:20: error: 'Color' is only available in macOS 10.15 or newer
660 |
661 |     /// Defines the setup or authentication flow hosted by `GridAuthenticator`.
662 |     public enum GridAuthenticatorOption {
    |                 `- note: add '@available' attribute to enclosing enum
663 |         /// Creates a deprecated v0 setup flow that returns a legacy SHA-256 hash.
664 |         ///
    :
747 |         case authenticateCredential(
748 |             credential: GestureCredentialEnvelope,
749 |             color: Color = .blue,
    |                    `- error: 'Color' is only available in macOS 10.15 or newer
750 |             interactionMode: InteractionMode = .drag,
751 |             debug: Bool = false,
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:772:29: error: 'blue' is only available in macOS 10.15 or newer
660 |
661 |     /// Defines the setup or authentication flow hosted by `GridAuthenticator`.
662 |     public enum GridAuthenticatorOption {
    |                 `- note: add '@available' attribute to enclosing enum
663 |         /// Creates a deprecated v0 setup flow that returns a legacy SHA-256 hash.
664 |         ///
    :
770 |         case authenticateAndUpgrade(
771 |             expectedHash: String,
772 |             color: Color = .blue,
    |                             `- error: 'blue' is only available in macOS 10.15 or newer
773 |             interactionMode: InteractionMode = .drag,
774 |             debug: Bool = false,
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:772:20: error: 'Color' is only available in macOS 10.15 or newer
660 |
661 |     /// Defines the setup or authentication flow hosted by `GridAuthenticator`.
662 |     public enum GridAuthenticatorOption {
    |                 `- note: add '@available' attribute to enclosing enum
663 |         /// Creates a deprecated v0 setup flow that returns a legacy SHA-256 hash.
664 |         ///
    :
770 |         case authenticateAndUpgrade(
771 |             expectedHash: String,
772 |             color: Color = .blue,
    |                    `- error: 'Color' is only available in macOS 10.15 or newer
773 |             interactionMode: InteractionMode = .drag,
774 |             debug: Bool = false,
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:16:42: error: 'ObservableObject' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              |                           `- error: 'ObservableObject' is only available in macOS 10.15 or newer
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/PatternAuthentication.swift:10:6: error: 'StateObject' is only available in macOS 11.0 or newer
  6 | /// A SwiftUI 3x3 gesture grid for pattern setup and authentication.
  7 | @MainActor
  8 | public struct GridAuthenticator: View {
    |               `- note: add '@available' attribute to enclosing struct
  9 |     /// The main-actor state object that owns gesture flow state.
 10 |     @StateObject public var viewModel: GridAuthenticatorViewModel
    |      `- error: 'StateObject' is only available in macOS 11.0 or newer
 11 |
 12 |     /// Creates a grid authenticator view for setup or authentication.
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/PatternAuthentication.swift:22:36: error: 'GridItem' is only available in macOS 11.0 or newer
  6 | /// A SwiftUI 3x3 gesture grid for pattern setup and authentication.
  7 | @MainActor
  8 | public struct GridAuthenticator: View {
    |               `- note: add '@available' attribute to enclosing struct
  9 |     /// The main-actor state object that owns gesture flow state.
 10 |     @StateObject public var viewModel: GridAuthenticatorViewModel
    :
 20 |     }
 21 |
 22 |     let columns = Array(repeating: GridItem(.fixed(60), spacing: 40), count: 3)
    |                                    `- error: 'GridItem' is only available in macOS 11.0 or newer
 23 |
 24 |     public var body: some View {
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/PatternAuthentication.swift:24:27: error: 'View' is only available in macOS 10.15 or newer
  6 | /// A SwiftUI 3x3 gesture grid for pattern setup and authentication.
  7 | @MainActor
  8 | public struct GridAuthenticator: View {
    |               `- note: add '@available' attribute to enclosing struct
  9 |     /// The main-actor state object that owns gesture flow state.
 10 |     @StateObject public var viewModel: GridAuthenticatorViewModel
    :
 22 |     let columns = Array(repeating: GridItem(.fixed(60), spacing: 40), count: 3)
 23 |
 24 |     public var body: some View {
    |                |          `- error: 'View' is only available in macOS 10.15 or newer
    |                `- note: add '@available' attribute to enclosing property
 25 |         VStack {
 26 |             if viewModel.debug {
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/PatternAuthentication.swift:149:6: error: 'State' is only available in macOS 10.15 or newer
142 | /// A single selectable circle in the 3x3 gesture grid.
143 | @MainActor
144 | public struct GlowyCircle: View {
    |               `- note: add '@available' attribute to enclosing struct
145 |     /// The zero-based 3x3 grid index represented by this circle.
146 |     public var index: Int
147 |
148 |     /// Whether the selection glow is currently visible.
149 |     @State private var isBeingTouched: Bool = false
    |      `- error: 'State' is only available in macOS 10.15 or newer
150 |
151 |     /// The view model that receives geometry and selection updates.
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/PatternAuthentication.swift:152:6: error: 'ObservedObject' is only available in macOS 10.15 or newer
142 | /// A single selectable circle in the 3x3 gesture grid.
143 | @MainActor
144 | public struct GlowyCircle: View {
    |               `- note: add '@available' attribute to enclosing struct
145 |     /// The zero-based 3x3 grid index represented by this circle.
146 |     public var index: Int
    :
150 |
151 |     /// The view model that receives geometry and selection updates.
152 |     @ObservedObject public var viewModel: GridAuthenticatorViewModel
    |      `- error: 'ObservedObject' is only available in macOS 10.15 or newer
153 |
154 |     public var body: some View {
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/PatternAuthentication.swift:154:27: error: 'View' is only available in macOS 10.15 or newer
142 | /// A single selectable circle in the 3x3 gesture grid.
143 | @MainActor
144 | public struct GlowyCircle: View {
    |               `- note: add '@available' attribute to enclosing struct
145 |     /// The zero-based 3x3 grid index represented by this circle.
146 |     public var index: Int
    :
152 |     @ObservedObject public var viewModel: GridAuthenticatorViewModel
153 |
154 |     public var body: some View {
    |                |          `- error: 'View' is only available in macOS 10.15 or newer
    |                `- note: add '@available' attribute to enclosing property
155 |         ZStack {
156 |             Circle()
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/PatternAuthentication.swift:238:31: error: 'View' is only available in macOS 10.15 or newer
235 |
236 | #if DEBUG
237 | struct GridAuthenticatorPreviews: PreviewProvider {
    |        `- note: add '@available' attribute to enclosing struct
238 |     static var previews: some View {
    |                |              `- error: 'View' is only available in macOS 10.15 or newer
    |                `- note: add '@available' attribute to enclosing static property
239 |         GridAuthenticator(.setCredential(debug: true) { _ in })
240 |             .previewDisplayName("Credential Setup")
[8/11] Compiling PatternAuthentication GridAuthenticatorViewModel.swift
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:18:6: error: 'Published' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    |      `- error: 'Published' is only available in macOS 10.15 or newer
 19 |
 20 |     /// Geometry captured from each grid circle in the grid coordinate space.
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:21:6: error: 'Published' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
 19 |
 20 |     /// Geometry captured from each grid circle in the grid coordinate space.
 21 |     @Published public var cardsData: [CardPreferenceData] = []
    |      `- error: 'Published' is only available in macOS 10.15 or newer
 22 |
 23 |     /// The particle system used to render drag and replay particles.
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:24:6: error: 'Published' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
 22 |
 23 |     /// The particle system used to render drag and replay particles.
 24 |     @Published public var particleSystem = ParticleSystem()
    |      `- error: 'Published' is only available in macOS 10.15 or newer
 25 |
 26 |     /// Whether the current gesture is locked while setup confirmation is pending.
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:27:6: error: 'Published' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
 25 |
 26 |     /// Whether the current gesture is locked while setup confirmation is pending.
 27 |     @Published public var locked: Bool = false
    |      `- error: 'Published' is only available in macOS 10.15 or newer
 28 |
 29 |     /// The primary color used by the grid, glow, and particles.
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:30:38: error: 'Color' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
 28 |
 29 |     /// The primary color used by the grid, glow, and particles.
 30 |     @Published public var viewColor: Color
    |                                      `- error: 'Color' is only available in macOS 10.15 or newer
 31 |
 32 |     /// Whether developer diagnostics should be shown in the view.
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:30:6: error: 'Published' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
 28 |
 29 |     /// The primary color used by the grid, glow, and particles.
 30 |     @Published public var viewColor: Color
    |      `- error: 'Published' is only available in macOS 10.15 or newer
 31 |
 32 |     /// Whether developer diagnostics should be shown in the view.
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:33:6: error: 'Published' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
 31 |
 32 |     /// Whether developer diagnostics should be shown in the view.
 33 |     @Published public var debug: Bool
    |      `- error: 'Published' is only available in macOS 10.15 or newer
 34 |
 35 |     /// The high-level mode for this authenticator instance.
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:39:6: error: 'Published' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
 37 |
 38 |     /// Whether the most recent authentication attempt failed.
 39 |     @Published public var incorrectHash: Bool?
    |      `- error: 'Published' is only available in macOS 10.15 or newer
 40 |
 41 |     /// The input style expected by this authenticator.
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:42:6: error: 'Published' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
 40 |
 41 |     /// The input style expected by this authenticator.
 42 |     @Published public var interactionMode: InteractionMode
    |      `- error: 'Published' is only available in macOS 10.15 or newer
 43 |
 44 |     /// The number of failed attempts used to drive the shake animation.
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:45:6: error: 'Published' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
 43 |
 44 |     /// The number of failed attempts used to drive the shake animation.
 45 |     @Published public var incorrectCount: Int = 0
    |      `- error: 'Published' is only available in macOS 10.15 or newer
 46 |
 47 |     /// Whether setup should replay the entered gesture after input.
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:48:6: error: 'Published' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
 46 |
 47 |     /// Whether setup should replay the entered gesture after input.
 48 |     @Published public var repeatInput: Bool?
    |      `- error: 'Published' is only available in macOS 10.15 or newer
 49 |
 50 |     /// Whether setup requires the user to enter the same gesture twice.
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:51:6: error: 'Published' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
 49 |
 50 |     /// Whether setup requires the user to enter the same gesture twice.
 51 |     @Published public var requireConfirmation: Bool?
    |      `- error: 'Published' is only available in macOS 10.15 or newer
 52 |
 53 |     /// The legacy v0 SHA-256 hash used by deprecated authentication APIs.
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:54:6: error: 'Published' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
 52 |
 53 |     /// The legacy v0 SHA-256 hash used by deprecated authentication APIs.
 54 |     @Published public var expectedHash: String?
    |      `- error: 'Published' is only available in macOS 10.15 or newer
 55 |
 56 |     /// The v1 salted credential envelope used by credential authentication APIs.
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:57:6: error: 'Published' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
 55 |
 56 |     /// The v1 salted credential envelope used by credential authentication APIs.
 57 |     @Published public var expectedCredential: GestureCredentialEnvelope?
    |      `- error: 'Published' is only available in macOS 10.15 or newer
 58 |
 59 |     /// The minimum number of vertices required during setup.
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:66:6: error: 'Published' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
 64 |
 65 |     /// Callback invoked after authentication succeeds or fails.
 66 |     @Published public var authCompletion: ((Bool) -> Void)?
    |      `- error: 'Published' is only available in macOS 10.15 or newer
 67 |
 68 |     /// Callback invoked by deprecated setup APIs with a legacy v0 hash.
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:69:6: error: 'Published' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
 67 |
 68 |     /// Callback invoked by deprecated setup APIs with a legacy v0 hash.
 69 |     @Published public var setupCompletion: ((String) -> Void)?
    |      `- error: 'Published' is only available in macOS 10.15 or newer
 70 |
 71 |     /// Callback invoked by v1 setup APIs with a credential envelope.
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:72:6: error: 'Published' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
 70 |
 71 |     /// Callback invoked by v1 setup APIs with a credential envelope.
 72 |     @Published public var credentialSetupCompletion: ((GestureCredentialEnvelope) -> Void)?
    |      `- error: 'Published' is only available in macOS 10.15 or newer
 73 |
 74 |     /// Callback invoked after successful legacy authentication creates a v1 credential.
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:75:6: error: 'Published' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
 73 |
 74 |     /// Callback invoked after successful legacy authentication creates a v1 credential.
 75 |     @Published public var legacyUpgradeCompletion: ((GestureCredentialEnvelope) -> Void)?
    |      `- error: 'Published' is only available in macOS 10.15 or newer
 76 |
 77 |     /// The setup confirmation state.
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:78:6: error: 'Published' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
 76 |
 77 |     /// The setup confirmation state.
 78 |     @Published public var confirmationState: ConfirmationState = .initial
    |      `- error: 'Published' is only available in macOS 10.15 or newer
 79 |
 80 |     /// The legacy hash of the first setup pattern when confirmation is required.
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:81:6: error: 'Published' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
 79 |
 80 |     /// The legacy hash of the first setup pattern when confirmation is required.
 81 |     @Published public var firstPatternHash: String?
    |      `- error: 'Published' is only available in macOS 10.15 or newer
 82 |
 83 |     /// Whether an entered pattern is currently being replayed.
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:84:6: error: 'Published' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
 82 |
 83 |     /// Whether an entered pattern is currently being replayed.
 84 |     @Published public var isSimulating: Bool = false
    |      `- error: 'Published' is only available in macOS 10.15 or newer
 85 |     private var simulationTask: Task<Void, Never>?
 86 |
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:85:33: error: 'Task' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
 83 |     /// Whether an entered pattern is currently being replayed.
 84 |     @Published public var isSimulating: Bool = false
 85 |     private var simulationTask: Task<Void, Never>?
    |                                 `- error: 'Task' is only available in macOS 10.15 or newer
 86 |
 87 |     /// The in-flight credential derivation or verification task.
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:88:33: error: 'Task' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
 86 |
 87 |     /// The in-flight credential derivation or verification task.
 88 |     private var credentialTask: Task<Void, Never>?
    |                                 `- error: 'Task' is only available in macOS 10.15 or newer
 89 |
 90 |     /// Whether the user currently has an active drag gesture.
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:91:6: error: 'Published' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
 89 |
 90 |     /// Whether the user currently has an active drag gesture.
 91 |     @Published public var isDragging: Bool = false
    |      `- error: 'Published' is only available in macOS 10.15 or newer
 92 |
 93 |     /// The most recent user-facing validation or credential error.
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:94:6: error: 'Published' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
 92 |
 93 |     /// The most recent user-facing validation or credential error.
 94 |     @Published public var lastDragError: String?
    |      `- error: 'Published' is only available in macOS 10.15 or newer
 95 |
 96 |     /// The last selected grid index in the current gesture.
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:203:34: error: 'DragGesture' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
201 |     /// particle state.
202 |     /// - Throws: This method does not throw.
203 |     public func duringDrag(drag: DragGesture.Value) {
    |                 |                `- error: 'DragGesture' is only available in macOS 10.15 or newer
    |                 `- note: add '@available' attribute to enclosing instance method
204 |         let wasDragging = isDragging
205 |         isDragging = true
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:681:29: error: 'blue' is only available in macOS 10.15 or newer
660 |
661 |     /// Defines the setup or authentication flow hosted by `GridAuthenticator`.
662 |     public enum GridAuthenticatorOption {
    |                 `- note: add '@available' attribute to enclosing enum
663 |         /// Creates a deprecated v0 setup flow that returns a legacy SHA-256 hash.
664 |         ///
    :
679 |         case set(
680 |             minimumVertices: Int = 6,
681 |             color: Color = .blue,
    |                             `- error: 'blue' is only available in macOS 10.15 or newer
682 |             interactionMode: InteractionMode = .drag,
683 |             requireConfirmation: Bool = true,
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:681:20: error: 'Color' is only available in macOS 10.15 or newer
660 |
661 |     /// Defines the setup or authentication flow hosted by `GridAuthenticator`.
662 |     public enum GridAuthenticatorOption {
    |                 `- note: add '@available' attribute to enclosing enum
663 |         /// Creates a deprecated v0 setup flow that returns a legacy SHA-256 hash.
664 |         ///
    :
679 |         case set(
680 |             minimumVertices: Int = 6,
681 |             color: Color = .blue,
    |                    `- error: 'Color' is only available in macOS 10.15 or newer
682 |             interactionMode: InteractionMode = .drag,
683 |             requireConfirmation: Bool = true,
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:703:29: error: 'blue' is only available in macOS 10.15 or newer
660 |
661 |     /// Defines the setup or authentication flow hosted by `GridAuthenticator`.
662 |     public enum GridAuthenticatorOption {
    |                 `- note: add '@available' attribute to enclosing enum
663 |         /// Creates a deprecated v0 setup flow that returns a legacy SHA-256 hash.
664 |         ///
    :
701 |         case authenticate(
702 |             expectedHash: String,
703 |             color: Color = .blue,
    |                             `- error: 'blue' is only available in macOS 10.15 or newer
704 |             interactionMode: InteractionMode = .drag,
705 |             debug: Bool = false,
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:703:20: error: 'Color' is only available in macOS 10.15 or newer
660 |
661 |     /// Defines the setup or authentication flow hosted by `GridAuthenticator`.
662 |     public enum GridAuthenticatorOption {
    |                 `- note: add '@available' attribute to enclosing enum
663 |         /// Creates a deprecated v0 setup flow that returns a legacy SHA-256 hash.
664 |         ///
    :
701 |         case authenticate(
702 |             expectedHash: String,
703 |             color: Color = .blue,
    |                    `- error: 'Color' is only available in macOS 10.15 or newer
704 |             interactionMode: InteractionMode = .drag,
705 |             debug: Bool = false,
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:728:29: error: 'blue' is only available in macOS 10.15 or newer
660 |
661 |     /// Defines the setup or authentication flow hosted by `GridAuthenticator`.
662 |     public enum GridAuthenticatorOption {
    |                 `- note: add '@available' attribute to enclosing enum
663 |         /// Creates a deprecated v0 setup flow that returns a legacy SHA-256 hash.
664 |         ///
    :
726 |         case setCredential(
727 |             minimumVertices: Int = 6,
728 |             color: Color = .blue,
    |                             `- error: 'blue' is only available in macOS 10.15 or newer
729 |             interactionMode: InteractionMode = .drag,
730 |             requireConfirmation: Bool = true,
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:728:20: error: 'Color' is only available in macOS 10.15 or newer
660 |
661 |     /// Defines the setup or authentication flow hosted by `GridAuthenticator`.
662 |     public enum GridAuthenticatorOption {
    |                 `- note: add '@available' attribute to enclosing enum
663 |         /// Creates a deprecated v0 setup flow that returns a legacy SHA-256 hash.
664 |         ///
    :
726 |         case setCredential(
727 |             minimumVertices: Int = 6,
728 |             color: Color = .blue,
    |                    `- error: 'Color' is only available in macOS 10.15 or newer
729 |             interactionMode: InteractionMode = .drag,
730 |             requireConfirmation: Bool = true,
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:749:29: error: 'blue' is only available in macOS 10.15 or newer
660 |
661 |     /// Defines the setup or authentication flow hosted by `GridAuthenticator`.
662 |     public enum GridAuthenticatorOption {
    |                 `- note: add '@available' attribute to enclosing enum
663 |         /// Creates a deprecated v0 setup flow that returns a legacy SHA-256 hash.
664 |         ///
    :
747 |         case authenticateCredential(
748 |             credential: GestureCredentialEnvelope,
749 |             color: Color = .blue,
    |                             `- error: 'blue' is only available in macOS 10.15 or newer
750 |             interactionMode: InteractionMode = .drag,
751 |             debug: Bool = false,
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:749:20: error: 'Color' is only available in macOS 10.15 or newer
660 |
661 |     /// Defines the setup or authentication flow hosted by `GridAuthenticator`.
662 |     public enum GridAuthenticatorOption {
    |                 `- note: add '@available' attribute to enclosing enum
663 |         /// Creates a deprecated v0 setup flow that returns a legacy SHA-256 hash.
664 |         ///
    :
747 |         case authenticateCredential(
748 |             credential: GestureCredentialEnvelope,
749 |             color: Color = .blue,
    |                    `- error: 'Color' is only available in macOS 10.15 or newer
750 |             interactionMode: InteractionMode = .drag,
751 |             debug: Bool = false,
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:772:29: error: 'blue' is only available in macOS 10.15 or newer
660 |
661 |     /// Defines the setup or authentication flow hosted by `GridAuthenticator`.
662 |     public enum GridAuthenticatorOption {
    |                 `- note: add '@available' attribute to enclosing enum
663 |         /// Creates a deprecated v0 setup flow that returns a legacy SHA-256 hash.
664 |         ///
    :
770 |         case authenticateAndUpgrade(
771 |             expectedHash: String,
772 |             color: Color = .blue,
    |                             `- error: 'blue' is only available in macOS 10.15 or newer
773 |             interactionMode: InteractionMode = .drag,
774 |             debug: Bool = false,
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:772:20: error: 'Color' is only available in macOS 10.15 or newer
660 |
661 |     /// Defines the setup or authentication flow hosted by `GridAuthenticator`.
662 |     public enum GridAuthenticatorOption {
    |                 `- note: add '@available' attribute to enclosing enum
663 |         /// Creates a deprecated v0 setup flow that returns a legacy SHA-256 hash.
664 |         ///
    :
770 |         case authenticateAndUpgrade(
771 |             expectedHash: String,
772 |             color: Color = .blue,
    |                    `- error: 'Color' is only available in macOS 10.15 or newer
773 |             interactionMode: InteractionMode = .drag,
774 |             debug: Bool = false,
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:16:42: error: 'ObservableObject' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              |                           `- error: 'ObservableObject' is only available in macOS 10.15 or newer
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
<unknown>:0: error: cannot convert value of type 'KeyPath<GridAuthenticatorViewModel, [Int]>' to expected argument type 'ReferenceWritableKeyPath<GridAuthenticatorViewModel, [Int]>'
<unknown>:0: error: cannot convert value of type 'KeyPath<GridAuthenticatorViewModel, [CardPreferenceData]>' to expected argument type 'ReferenceWritableKeyPath<GridAuthenticatorViewModel, [CardPreferenceData]>'
<unknown>:0: error: cannot convert value of type 'KeyPath<GridAuthenticatorViewModel, ParticleSystem>' to expected argument type 'ReferenceWritableKeyPath<GridAuthenticatorViewModel, ParticleSystem>'
<unknown>:0: error: cannot convert value of type 'KeyPath<GridAuthenticatorViewModel, Bool>' to expected argument type 'ReferenceWritableKeyPath<GridAuthenticatorViewModel, Bool>'
<unknown>:0: error: cannot convert value of type 'KeyPath<GridAuthenticatorViewModel, Color>' to expected argument type 'ReferenceWritableKeyPath<GridAuthenticatorViewModel, Color>'
<unknown>:0: error: cannot convert value of type 'KeyPath<GridAuthenticatorViewModel, Bool>' to expected argument type 'ReferenceWritableKeyPath<GridAuthenticatorViewModel, Bool>'
<unknown>:0: error: cannot convert value of type 'KeyPath<GridAuthenticatorViewModel, Bool?>' to expected argument type 'ReferenceWritableKeyPath<GridAuthenticatorViewModel, Bool?>'
<unknown>:0: error: cannot convert value of type 'KeyPath<GridAuthenticatorViewModel, GridAuthenticatorViewModel.InteractionMode>' to expected argument type 'ReferenceWritableKeyPath<GridAuthenticatorViewModel, GridAuthenticatorViewModel.InteractionMode>'
<unknown>:0: error: cannot convert value of type 'KeyPath<GridAuthenticatorViewModel, Int>' to expected argument type 'ReferenceWritableKeyPath<GridAuthenticatorViewModel, Int>'
<unknown>:0: error: cannot convert value of type 'KeyPath<GridAuthenticatorViewModel, Bool?>' to expected argument type 'ReferenceWritableKeyPath<GridAuthenticatorViewModel, Bool?>'
<unknown>:0: error: cannot convert value of type 'KeyPath<GridAuthenticatorViewModel, Bool?>' to expected argument type 'ReferenceWritableKeyPath<GridAuthenticatorViewModel, Bool?>'
<unknown>:0: error: cannot convert value of type 'KeyPath<GridAuthenticatorViewModel, String?>' to expected argument type 'ReferenceWritableKeyPath<GridAuthenticatorViewModel, String?>'
<unknown>:0: error: cannot convert value of type 'KeyPath<GridAuthenticatorViewModel, GestureCredentialEnvelope?>' to expected argument type 'ReferenceWritableKeyPath<GridAuthenticatorViewModel, GestureCredentialEnvelope?>'
<unknown>:0: error: cannot convert value of type 'KeyPath<GridAuthenticatorViewModel, ((Bool) -> Void)?>' to expected argument type 'ReferenceWritableKeyPath<GridAuthenticatorViewModel, ((Bool) -> Void)?>'
<unknown>:0: error: cannot convert value of type 'KeyPath<GridAuthenticatorViewModel, ((String) -> Void)?>' to expected argument type 'ReferenceWritableKeyPath<GridAuthenticatorViewModel, ((String) -> Void)?>'
<unknown>:0: error: cannot convert value of type 'KeyPath<GridAuthenticatorViewModel, ((GestureCredentialEnvelope) -> Void)?>' to expected argument type 'ReferenceWritableKeyPath<GridAuthenticatorViewModel, ((GestureCredentialEnvelope) -> Void)?>'
<unknown>:0: error: cannot convert value of type 'KeyPath<GridAuthenticatorViewModel, ((GestureCredentialEnvelope) -> Void)?>' to expected argument type 'ReferenceWritableKeyPath<GridAuthenticatorViewModel, ((GestureCredentialEnvelope) -> Void)?>'
<unknown>:0: error: cannot convert value of type 'KeyPath<GridAuthenticatorViewModel, GridAuthenticatorViewModel.ConfirmationState>' to expected argument type 'ReferenceWritableKeyPath<GridAuthenticatorViewModel, GridAuthenticatorViewModel.ConfirmationState>'
<unknown>:0: error: cannot convert value of type 'KeyPath<GridAuthenticatorViewModel, String?>' to expected argument type 'ReferenceWritableKeyPath<GridAuthenticatorViewModel, String?>'
<unknown>:0: error: cannot convert value of type 'KeyPath<GridAuthenticatorViewModel, Bool>' to expected argument type 'ReferenceWritableKeyPath<GridAuthenticatorViewModel, Bool>'
<unknown>:0: error: cannot convert value of type 'KeyPath<GridAuthenticatorViewModel, Bool>' to expected argument type 'ReferenceWritableKeyPath<GridAuthenticatorViewModel, Bool>'
<unknown>:0: error: cannot convert value of type 'KeyPath<GridAuthenticatorViewModel, String?>' to expected argument type 'ReferenceWritableKeyPath<GridAuthenticatorViewModel, String?>'
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:121:13: error: setter for 'expectedHash' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
116 |     /// - Returns: A main-actor view model configured for `authOption`.
117 |     /// - Throws: This initializer does not throw.
118 |     public init(_ authOption: GridAuthenticatorOption) {
    |            `- note: add '@available' attribute to enclosing initializer
119 |         switch authOption {
120 |         case let .authenticate(expectedHash, color, interactionMode, debug, completion):
121 |             self.expectedHash = expectedHash
    |             |- error: setter for 'expectedHash' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
122 |             viewColor = color
123 |             self.interactionMode = interactionMode
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:122:13: error: setter for 'viewColor' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
116 |     /// - Returns: A main-actor view model configured for `authOption`.
117 |     /// - Throws: This initializer does not throw.
118 |     public init(_ authOption: GridAuthenticatorOption) {
    |            `- note: add '@available' attribute to enclosing initializer
119 |         switch authOption {
120 |         case let .authenticate(expectedHash, color, interactionMode, debug, completion):
121 |             self.expectedHash = expectedHash
122 |             viewColor = color
    |             |- error: setter for 'viewColor' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
123 |             self.interactionMode = interactionMode
124 |             self.debug = debug
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:123:13: error: setter for 'interactionMode' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
116 |     /// - Returns: A main-actor view model configured for `authOption`.
117 |     /// - Throws: This initializer does not throw.
118 |     public init(_ authOption: GridAuthenticatorOption) {
    |            `- note: add '@available' attribute to enclosing initializer
119 |         switch authOption {
120 |         case let .authenticate(expectedHash, color, interactionMode, debug, completion):
121 |             self.expectedHash = expectedHash
122 |             viewColor = color
123 |             self.interactionMode = interactionMode
    |             |- error: setter for 'interactionMode' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
124 |             self.debug = debug
125 |             mode = .authenticate
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:124:13: error: setter for 'debug' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
116 |     /// - Returns: A main-actor view model configured for `authOption`.
117 |     /// - Throws: This initializer does not throw.
118 |     public init(_ authOption: GridAuthenticatorOption) {
    |            `- note: add '@available' attribute to enclosing initializer
119 |         switch authOption {
120 |         case let .authenticate(expectedHash, color, interactionMode, debug, completion):
    :
122 |             viewColor = color
123 |             self.interactionMode = interactionMode
124 |             self.debug = debug
    |             |- error: setter for 'debug' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
125 |             mode = .authenticate
126 |             authCompletion = completion
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:126:13: error: setter for 'authCompletion' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
116 |     /// - Returns: A main-actor view model configured for `authOption`.
117 |     /// - Throws: This initializer does not throw.
118 |     public init(_ authOption: GridAuthenticatorOption) {
    |            `- note: add '@available' attribute to enclosing initializer
119 |         switch authOption {
120 |         case let .authenticate(expectedHash, color, interactionMode, debug, completion):
    :
124 |             self.debug = debug
125 |             mode = .authenticate
126 |             authCompletion = completion
    |             |- error: setter for 'authCompletion' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
127 |
128 |         case let .authenticateAndUpgrade(expectedHash, color, interactionMode, debug, configuration, onCredentialUpgrade, completion):
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:129:13: error: setter for 'expectedHash' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
116 |     /// - Returns: A main-actor view model configured for `authOption`.
117 |     /// - Throws: This initializer does not throw.
118 |     public init(_ authOption: GridAuthenticatorOption) {
    |            `- note: add '@available' attribute to enclosing initializer
119 |         switch authOption {
120 |         case let .authenticate(expectedHash, color, interactionMode, debug, completion):
    :
127 |
128 |         case let .authenticateAndUpgrade(expectedHash, color, interactionMode, debug, configuration, onCredentialUpgrade, completion):
129 |             self.expectedHash = expectedHash
    |             |- error: setter for 'expectedHash' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
130 |             viewColor = color
131 |             self.interactionMode = interactionMode
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:130:13: error: setter for 'viewColor' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
116 |     /// - Returns: A main-actor view model configured for `authOption`.
117 |     /// - Throws: This initializer does not throw.
118 |     public init(_ authOption: GridAuthenticatorOption) {
    |            `- note: add '@available' attribute to enclosing initializer
119 |         switch authOption {
120 |         case let .authenticate(expectedHash, color, interactionMode, debug, completion):
    :
128 |         case let .authenticateAndUpgrade(expectedHash, color, interactionMode, debug, configuration, onCredentialUpgrade, completion):
129 |             self.expectedHash = expectedHash
130 |             viewColor = color
    |             |- error: setter for 'viewColor' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
131 |             self.interactionMode = interactionMode
132 |             self.debug = debug
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:131:13: error: setter for 'interactionMode' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
116 |     /// - Returns: A main-actor view model configured for `authOption`.
117 |     /// - Throws: This initializer does not throw.
118 |     public init(_ authOption: GridAuthenticatorOption) {
    |            `- note: add '@available' attribute to enclosing initializer
119 |         switch authOption {
120 |         case let .authenticate(expectedHash, color, interactionMode, debug, completion):
    :
129 |             self.expectedHash = expectedHash
130 |             viewColor = color
131 |             self.interactionMode = interactionMode
    |             |- error: setter for 'interactionMode' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
132 |             self.debug = debug
133 |             hashConfiguration = configuration
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:132:13: error: setter for 'debug' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
116 |     /// - Returns: A main-actor view model configured for `authOption`.
117 |     /// - Throws: This initializer does not throw.
118 |     public init(_ authOption: GridAuthenticatorOption) {
    |            `- note: add '@available' attribute to enclosing initializer
119 |         switch authOption {
120 |         case let .authenticate(expectedHash, color, interactionMode, debug, completion):
    :
130 |             viewColor = color
131 |             self.interactionMode = interactionMode
132 |             self.debug = debug
    |             |- error: setter for 'debug' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
133 |             hashConfiguration = configuration
134 |             mode = .authenticate
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:135:13: error: setter for 'legacyUpgradeCompletion' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
116 |     /// - Returns: A main-actor view model configured for `authOption`.
117 |     /// - Throws: This initializer does not throw.
118 |     public init(_ authOption: GridAuthenticatorOption) {
    |            `- note: add '@available' attribute to enclosing initializer
119 |         switch authOption {
120 |         case let .authenticate(expectedHash, color, interactionMode, debug, completion):
    :
133 |             hashConfiguration = configuration
134 |             mode = .authenticate
135 |             legacyUpgradeCompletion = onCredentialUpgrade
    |             |- error: setter for 'legacyUpgradeCompletion' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
136 |             authCompletion = completion
137 |
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:136:13: error: setter for 'authCompletion' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
116 |     /// - Returns: A main-actor view model configured for `authOption`.
117 |     /// - Throws: This initializer does not throw.
118 |     public init(_ authOption: GridAuthenticatorOption) {
    |            `- note: add '@available' attribute to enclosing initializer
119 |         switch authOption {
120 |         case let .authenticate(expectedHash, color, interactionMode, debug, completion):
    :
134 |             mode = .authenticate
135 |             legacyUpgradeCompletion = onCredentialUpgrade
136 |             authCompletion = completion
    |             |- error: setter for 'authCompletion' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
137 |
138 |         case let .authenticateCredential(credential, color, interactionMode, debug, completion):
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:139:13: error: setter for 'expectedCredential' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
116 |     /// - Returns: A main-actor view model configured for `authOption`.
117 |     /// - Throws: This initializer does not throw.
118 |     public init(_ authOption: GridAuthenticatorOption) {
    |            `- note: add '@available' attribute to enclosing initializer
119 |         switch authOption {
120 |         case let .authenticate(expectedHash, color, interactionMode, debug, completion):
    :
137 |
138 |         case let .authenticateCredential(credential, color, interactionMode, debug, completion):
139 |             expectedCredential = credential
    |             |- error: setter for 'expectedCredential' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
140 |             viewColor = color
141 |             self.interactionMode = interactionMode
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:140:13: error: setter for 'viewColor' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
116 |     /// - Returns: A main-actor view model configured for `authOption`.
117 |     /// - Throws: This initializer does not throw.
118 |     public init(_ authOption: GridAuthenticatorOption) {
    |            `- note: add '@available' attribute to enclosing initializer
119 |         switch authOption {
120 |         case let .authenticate(expectedHash, color, interactionMode, debug, completion):
    :
138 |         case let .authenticateCredential(credential, color, interactionMode, debug, completion):
139 |             expectedCredential = credential
140 |             viewColor = color
    |             |- error: setter for 'viewColor' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
141 |             self.interactionMode = interactionMode
142 |             self.debug = debug
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:141:13: error: setter for 'interactionMode' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
116 |     /// - Returns: A main-actor view model configured for `authOption`.
117 |     /// - Throws: This initializer does not throw.
118 |     public init(_ authOption: GridAuthenticatorOption) {
    |            `- note: add '@available' attribute to enclosing initializer
119 |         switch authOption {
120 |         case let .authenticate(expectedHash, color, interactionMode, debug, completion):
    :
139 |             expectedCredential = credential
140 |             viewColor = color
141 |             self.interactionMode = interactionMode
    |             |- error: setter for 'interactionMode' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
142 |             self.debug = debug
143 |             mode = .authenticate
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:142:13: error: setter for 'debug' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
116 |     /// - Returns: A main-actor view model configured for `authOption`.
117 |     /// - Throws: This initializer does not throw.
118 |     public init(_ authOption: GridAuthenticatorOption) {
    |            `- note: add '@available' attribute to enclosing initializer
119 |         switch authOption {
120 |         case let .authenticate(expectedHash, color, interactionMode, debug, completion):
    :
140 |             viewColor = color
141 |             self.interactionMode = interactionMode
142 |             self.debug = debug
    |             |- error: setter for 'debug' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
143 |             mode = .authenticate
144 |             authCompletion = completion
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:144:13: error: setter for 'authCompletion' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
116 |     /// - Returns: A main-actor view model configured for `authOption`.
117 |     /// - Throws: This initializer does not throw.
118 |     public init(_ authOption: GridAuthenticatorOption) {
    |            `- note: add '@available' attribute to enclosing initializer
119 |         switch authOption {
120 |         case let .authenticate(expectedHash, color, interactionMode, debug, completion):
    :
142 |             self.debug = debug
143 |             mode = .authenticate
144 |             authCompletion = completion
    |             |- error: setter for 'authCompletion' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
145 |
146 |         case let .set(minimumVertices, color, interactionMode, requireConfirmation, repeatInput, debug, completion):
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:148:13: error: setter for 'repeatInput' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
116 |     /// - Returns: A main-actor view model configured for `authOption`.
117 |     /// - Throws: This initializer does not throw.
118 |     public init(_ authOption: GridAuthenticatorOption) {
    |            `- note: add '@available' attribute to enclosing initializer
119 |         switch authOption {
120 |         case let .authenticate(expectedHash, color, interactionMode, debug, completion):
    :
146 |         case let .set(minimumVertices, color, interactionMode, requireConfirmation, repeatInput, debug, completion):
147 |             self.minimumVertices = minimumVertices
148 |             self.repeatInput = repeatInput
    |             |- error: setter for 'repeatInput' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
149 |             viewColor = color
150 |             self.interactionMode = interactionMode
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:149:13: error: setter for 'viewColor' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
116 |     /// - Returns: A main-actor view model configured for `authOption`.
117 |     /// - Throws: This initializer does not throw.
118 |     public init(_ authOption: GridAuthenticatorOption) {
    |            `- note: add '@available' attribute to enclosing initializer
119 |         switch authOption {
120 |         case let .authenticate(expectedHash, color, interactionMode, debug, completion):
    :
147 |             self.minimumVertices = minimumVertices
148 |             self.repeatInput = repeatInput
149 |             viewColor = color
    |             |- error: setter for 'viewColor' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
150 |             self.interactionMode = interactionMode
151 |             self.requireConfirmation = requireConfirmation
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:150:13: error: setter for 'interactionMode' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
116 |     /// - Returns: A main-actor view model configured for `authOption`.
117 |     /// - Throws: This initializer does not throw.
118 |     public init(_ authOption: GridAuthenticatorOption) {
    |            `- note: add '@available' attribute to enclosing initializer
119 |         switch authOption {
120 |         case let .authenticate(expectedHash, color, interactionMode, debug, completion):
    :
148 |             self.repeatInput = repeatInput
149 |             viewColor = color
150 |             self.interactionMode = interactionMode
    |             |- error: setter for 'interactionMode' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
151 |             self.requireConfirmation = requireConfirmation
152 |             self.debug = debug
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:151:13: error: setter for 'requireConfirmation' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
116 |     /// - Returns: A main-actor view model configured for `authOption`.
117 |     /// - Throws: This initializer does not throw.
118 |     public init(_ authOption: GridAuthenticatorOption) {
    |            `- note: add '@available' attribute to enclosing initializer
119 |         switch authOption {
120 |         case let .authenticate(expectedHash, color, interactionMode, debug, completion):
    :
149 |             viewColor = color
150 |             self.interactionMode = interactionMode
151 |             self.requireConfirmation = requireConfirmation
    |             |- error: setter for 'requireConfirmation' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
152 |             self.debug = debug
153 |             mode = .set
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:152:13: error: setter for 'debug' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
116 |     /// - Returns: A main-actor view model configured for `authOption`.
117 |     /// - Throws: This initializer does not throw.
118 |     public init(_ authOption: GridAuthenticatorOption) {
    |            `- note: add '@available' attribute to enclosing initializer
119 |         switch authOption {
120 |         case let .authenticate(expectedHash, color, interactionMode, debug, completion):
    :
150 |             self.interactionMode = interactionMode
151 |             self.requireConfirmation = requireConfirmation
152 |             self.debug = debug
    |             |- error: setter for 'debug' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
153 |             mode = .set
154 |             setupCompletion = completion
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:154:13: error: setter for 'setupCompletion' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
116 |     /// - Returns: A main-actor view model configured for `authOption`.
117 |     /// - Throws: This initializer does not throw.
118 |     public init(_ authOption: GridAuthenticatorOption) {
    |            `- note: add '@available' attribute to enclosing initializer
119 |         switch authOption {
120 |         case let .authenticate(expectedHash, color, interactionMode, debug, completion):
    :
152 |             self.debug = debug
153 |             mode = .set
154 |             setupCompletion = completion
    |             |- error: setter for 'setupCompletion' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
155 |
156 |         case let .setCredential(minimumVertices, color, interactionMode, requireConfirmation, repeatInput, debug, configuration, completion):
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:158:13: error: setter for 'repeatInput' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
116 |     /// - Returns: A main-actor view model configured for `authOption`.
117 |     /// - Throws: This initializer does not throw.
118 |     public init(_ authOption: GridAuthenticatorOption) {
    |            `- note: add '@available' attribute to enclosing initializer
119 |         switch authOption {
120 |         case let .authenticate(expectedHash, color, interactionMode, debug, completion):
    :
156 |         case let .setCredential(minimumVertices, color, interactionMode, requireConfirmation, repeatInput, debug, configuration, completion):
157 |             self.minimumVertices = minimumVertices
158 |             self.repeatInput = repeatInput
    |             |- error: setter for 'repeatInput' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
159 |             viewColor = color
160 |             self.interactionMode = interactionMode
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:159:13: error: setter for 'viewColor' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
116 |     /// - Returns: A main-actor view model configured for `authOption`.
117 |     /// - Throws: This initializer does not throw.
118 |     public init(_ authOption: GridAuthenticatorOption) {
    |            `- note: add '@available' attribute to enclosing initializer
119 |         switch authOption {
120 |         case let .authenticate(expectedHash, color, interactionMode, debug, completion):
    :
157 |             self.minimumVertices = minimumVertices
158 |             self.repeatInput = repeatInput
159 |             viewColor = color
    |             |- error: setter for 'viewColor' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
160 |             self.interactionMode = interactionMode
161 |             self.requireConfirmation = requireConfirmation
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:160:13: error: setter for 'interactionMode' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
116 |     /// - Returns: A main-actor view model configured for `authOption`.
117 |     /// - Throws: This initializer does not throw.
118 |     public init(_ authOption: GridAuthenticatorOption) {
    |            `- note: add '@available' attribute to enclosing initializer
119 |         switch authOption {
120 |         case let .authenticate(expectedHash, color, interactionMode, debug, completion):
    :
158 |             self.repeatInput = repeatInput
159 |             viewColor = color
160 |             self.interactionMode = interactionMode
    |             |- error: setter for 'interactionMode' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
161 |             self.requireConfirmation = requireConfirmation
162 |             self.debug = debug
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:161:13: error: setter for 'requireConfirmation' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
116 |     /// - Returns: A main-actor view model configured for `authOption`.
117 |     /// - Throws: This initializer does not throw.
118 |     public init(_ authOption: GridAuthenticatorOption) {
    |            `- note: add '@available' attribute to enclosing initializer
119 |         switch authOption {
120 |         case let .authenticate(expectedHash, color, interactionMode, debug, completion):
    :
159 |             viewColor = color
160 |             self.interactionMode = interactionMode
161 |             self.requireConfirmation = requireConfirmation
    |             |- error: setter for 'requireConfirmation' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
162 |             self.debug = debug
163 |             hashConfiguration = configuration
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:162:13: error: setter for 'debug' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
116 |     /// - Returns: A main-actor view model configured for `authOption`.
117 |     /// - Throws: This initializer does not throw.
118 |     public init(_ authOption: GridAuthenticatorOption) {
    |            `- note: add '@available' attribute to enclosing initializer
119 |         switch authOption {
120 |         case let .authenticate(expectedHash, color, interactionMode, debug, completion):
    :
160 |             self.interactionMode = interactionMode
161 |             self.requireConfirmation = requireConfirmation
162 |             self.debug = debug
    |             |- error: setter for 'debug' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
163 |             hashConfiguration = configuration
164 |             mode = .set
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:165:13: error: setter for 'credentialSetupCompletion' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
116 |     /// - Returns: A main-actor view model configured for `authOption`.
117 |     /// - Throws: This initializer does not throw.
118 |     public init(_ authOption: GridAuthenticatorOption) {
    |            `- note: add '@available' attribute to enclosing initializer
119 |         switch authOption {
120 |         case let .authenticate(expectedHash, color, interactionMode, debug, completion):
    :
163 |             hashConfiguration = configuration
164 |             mode = .set
165 |             credentialSetupCompletion = completion
    |             |- error: setter for 'credentialSetupCompletion' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
166 |         }
167 |     }
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:205:9: error: setter for 'isDragging' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
201 |     /// particle state.
202 |     /// - Throws: This method does not throw.
203 |     public func duringDrag(drag: DragGesture.Value) {
    |                 `- note: add '@available' attribute to enclosing instance method
204 |         let wasDragging = isDragging
205 |         isDragging = true
    |         |- error: setter for 'isDragging' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
206 |         guard !locked else { return }
207 |
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:214:13: error: cannot pass as inout because setter for 'selectedCardsIndices' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
201 |     /// particle state.
202 |     /// - Throws: This method does not throw.
203 |     public func duringDrag(drag: DragGesture.Value) {
    |                 `- note: add '@available' attribute to enclosing instance method
204 |         let wasDragging = isDragging
205 |         isDragging = true
    :
212 |         if let data = cardsData.first(where: { $0.bounds.contains(drag.location) }),
213 |            selectedCardsIndices.last ?? -1 != data.index {
214 |             selectedCardsIndices.append(data.index)
    |             |- error: cannot pass as inout because setter for 'selectedCardsIndices' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
215 |         }
216 |
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:227:9: error: setter for 'isDragging' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
224 |     /// - Throws: This method does not throw. Credential errors are converted to
225 |     ///   user-facing state.
226 |     public func afterDrag() {
    |                 `- note: add '@available' attribute to enclosing instance method
227 |         isDragging = false
    |         |- error: setter for 'isDragging' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
228 |         guard !selectedCardsIndices.isEmpty else { return }
229 |         particleSystem.resetTrail()
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:239:13: error: setter for 'locked' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
224 |     /// - Throws: This method does not throw. Credential errors are converted to
225 |     ///   user-facing state.
226 |     public func afterDrag() {
    |                 `- note: add '@available' attribute to enclosing instance method
227 |         isDragging = false
228 |         guard !selectedCardsIndices.isEmpty else { return }
    :
237 |             authenticateHash()
238 |         case .set:
239 |             locked = true
    |             |- error: setter for 'locked' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
240 |             lastDragError = nil
241 |             guard valid else {
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:240:13: error: setter for 'lastDragError' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
224 |     /// - Throws: This method does not throw. Credential errors are converted to
225 |     ///   user-facing state.
226 |     public func afterDrag() {
    |                 `- note: add '@available' attribute to enclosing instance method
227 |         isDragging = false
228 |         guard !selectedCardsIndices.isEmpty else { return }
    :
238 |         case .set:
239 |             locked = true
240 |             lastDragError = nil
    |             |- error: setter for 'lastDragError' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
241 |             guard valid else {
242 |                 withAnimation {
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:242:17: error: 'withAnimation' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
224 |     /// - Throws: This method does not throw. Credential errors are converted to
225 |     ///   user-facing state.
226 |     public func afterDrag() {
    |                 `- note: add '@available' attribute to enclosing instance method
227 |         isDragging = false
228 |         guard !selectedCardsIndices.isEmpty else { return }
    :
240 |             lastDragError = nil
241 |             guard valid else {
242 |                 withAnimation {
    |                 |- error: 'withAnimation' is only available in macOS 10.15 or newer
    |                 `- note: add 'if #available' version check
243 |                     incorrectCount += 1
244 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:243:21: error: cannot pass as inout because setter for 'incorrectCount' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
224 |     /// - Throws: This method does not throw. Credential errors are converted to
225 |     ///   user-facing state.
226 |     public func afterDrag() {
    |                 `- note: add '@available' attribute to enclosing instance method
227 |         isDragging = false
228 |         guard !selectedCardsIndices.isEmpty else { return }
    :
241 |             guard valid else {
242 |                 withAnimation {
243 |                     incorrectCount += 1
    |                     |- error: cannot pass as inout because setter for 'incorrectCount' is only available in macOS 10.15 or newer
    |                     `- note: add 'if #available' version check
244 |                 }
245 |                 lastDragError = "Not long enough. Pattern must include at least \(minimumVertices ?? .max) vertices"
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:245:17: error: setter for 'lastDragError' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
224 |     /// - Throws: This method does not throw. Credential errors are converted to
225 |     ///   user-facing state.
226 |     public func afterDrag() {
    |                 `- note: add '@available' attribute to enclosing instance method
227 |         isDragging = false
228 |         guard !selectedCardsIndices.isEmpty else { return }
    :
243 |                     incorrectCount += 1
244 |                 }
245 |                 lastDragError = "Not long enough. Pattern must include at least \(minimumVertices ?? .max) vertices"
    |                 |- error: setter for 'lastDragError' is only available in macOS 10.15 or newer
    |                 `- note: add 'if #available' version check
246 |                 return
247 |             }
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:300:9: error: setter for 'isSimulating' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
292 |     /// updated asynchronously on the main actor.
293 |     /// - Throws: This method does not throw.
294 |     func simulatePattern(
    |          `- note: add '@available' attribute to enclosing instance method
295 |         _ pattern: [Int],
296 |         initialDelayNanoseconds: UInt64,
    :
298 |     ) {
299 |         cancelSimulation()
300 |         isSimulating = true
    |         |- error: setter for 'isSimulating' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
301 |         simulationTask = Task { @MainActor in
302 |             particleSystem.resetTrail()
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:305:17: error: setter for 'isSimulating' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
292 |     /// updated asynchronously on the main actor.
293 |     /// - Throws: This method does not throw.
294 |     func simulatePattern(
    |          `- note: add '@available' attribute to enclosing instance method
295 |         _ pattern: [Int],
296 |         initialDelayNanoseconds: UInt64,
    :
303 |             defer {
304 |                 particleSystem.resetTrail()
305 |                 isSimulating = false
    |                 |- error: setter for 'isSimulating' is only available in macOS 10.15 or newer
    |                 `- note: add 'if #available' version check
306 |             }
307 |             if initialDelayNanoseconds > 0 {
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:301:26: error: 'Task' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
292 |     /// updated asynchronously on the main actor.
293 |     /// - Throws: This method does not throw.
294 |     func simulatePattern(
    |          `- note: add '@available' attribute to enclosing instance method
295 |         _ pattern: [Int],
296 |         initialDelayNanoseconds: UInt64,
    :
299 |         cancelSimulation()
300 |         isSimulating = true
301 |         simulationTask = Task { @MainActor in
    |                          |- error: 'Task' is only available in macOS 10.15 or newer
    |                          `- note: add 'if #available' version check
302 |             particleSystem.resetTrail()
303 |             defer {
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:301:26: error: 'init(name:priority:operation:)' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
292 |     /// updated asynchronously on the main actor.
293 |     /// - Throws: This method does not throw.
294 |     func simulatePattern(
    |          `- note: add '@available' attribute to enclosing instance method
295 |         _ pattern: [Int],
296 |         initialDelayNanoseconds: UInt64,
    :
299 |         cancelSimulation()
300 |         isSimulating = true
301 |         simulationTask = Task { @MainActor in
    |                          |- error: 'init(name:priority:operation:)' is only available in macOS 10.15 or newer
    |                          `- note: add 'if #available' version check
302 |             particleSystem.resetTrail()
303 |             defer {
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:308:28: error: 'Task' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
292 |     /// updated asynchronously on the main actor.
293 |     /// - Throws: This method does not throw.
294 |     func simulatePattern(
    |          `- note: add '@available' attribute to enclosing instance method
295 |         _ pattern: [Int],
296 |         initialDelayNanoseconds: UInt64,
    :
306 |             }
307 |             if initialDelayNanoseconds > 0 {
308 |                 try? await Task.sleep(nanoseconds: initialDelayNanoseconds)
    |                            |- error: 'Task' is only available in macOS 10.15 or newer
    |                            `- note: add 'if #available' version check
309 |             }
310 |             let replayPoints = simulationPoints(for: pattern)
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:308:33: error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
292 |     /// updated asynchronously on the main actor.
293 |     /// - Throws: This method does not throw.
294 |     func simulatePattern(
    |          `- note: add '@available' attribute to enclosing instance method
295 |         _ pattern: [Int],
296 |         initialDelayNanoseconds: UInt64,
    :
306 |             }
307 |             if initialDelayNanoseconds > 0 {
308 |                 try? await Task.sleep(nanoseconds: initialDelayNanoseconds)
    |                                 |- error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
    |                                 `- note: add 'if #available' version check
309 |             }
310 |             let replayPoints = simulationPoints(for: pattern)
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:313:20: error: 'Task' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
292 |     /// updated asynchronously on the main actor.
293 |     /// - Throws: This method does not throw.
294 |     func simulatePattern(
    |          `- note: add '@available' attribute to enclosing instance method
295 |         _ pattern: [Int],
296 |         initialDelayNanoseconds: UInt64,
    :
311 |
312 |             for point in replayPoints {
313 |                 if Task.isCancelled { return }
    |                    |- error: 'Task' is only available in macOS 10.15 or newer
    |                    `- note: add 'if #available' version check
314 |                 particleSystem.addParticle(at: point)
315 |                 if pointDelayNanoseconds > 0 {
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:313:25: error: 'isCancelled' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
292 |     /// updated asynchronously on the main actor.
293 |     /// - Throws: This method does not throw.
294 |     func simulatePattern(
    |          `- note: add '@available' attribute to enclosing instance method
295 |         _ pattern: [Int],
296 |         initialDelayNanoseconds: UInt64,
    :
311 |
312 |             for point in replayPoints {
313 |                 if Task.isCancelled { return }
    |                         |- error: 'isCancelled' is only available in macOS 10.15 or newer
    |                         `- note: add 'if #available' version check
314 |                 particleSystem.addParticle(at: point)
315 |                 if pointDelayNanoseconds > 0 {
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:316:32: error: 'Task' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
292 |     /// updated asynchronously on the main actor.
293 |     /// - Throws: This method does not throw.
294 |     func simulatePattern(
    |          `- note: add '@available' attribute to enclosing instance method
295 |         _ pattern: [Int],
296 |         initialDelayNanoseconds: UInt64,
    :
314 |                 particleSystem.addParticle(at: point)
315 |                 if pointDelayNanoseconds > 0 {
316 |                     try? await Task.sleep(nanoseconds: pointDelayNanoseconds)
    |                                |- error: 'Task' is only available in macOS 10.15 or newer
    |                                `- note: add 'if #available' version check
317 |                 }
318 |             }
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:316:37: error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
292 |     /// updated asynchronously on the main actor.
293 |     /// - Throws: This method does not throw.
294 |     func simulatePattern(
    |          `- note: add '@available' attribute to enclosing instance method
295 |         _ pattern: [Int],
296 |         initialDelayNanoseconds: UInt64,
    :
314 |                 particleSystem.addParticle(at: point)
315 |                 if pointDelayNanoseconds > 0 {
316 |                     try? await Task.sleep(nanoseconds: pointDelayNanoseconds)
    |                                     |- error: 'sleep(nanoseconds:)' is only available in macOS 10.15 or newer
    |                                     `- note: add 'if #available' version check
317 |                 }
318 |             }
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:365:25: error: 'cancel()' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
362 |     /// This method does not return a value. Replay state is reset immediately.
363 |     /// - Throws: This method does not throw.
364 |     public func cancelSimulation() {
    |                 `- note: add '@available' attribute to enclosing instance method
365 |         simulationTask?.cancel()
    |                         |- error: 'cancel()' is only available in macOS 10.15 or newer
    |                         `- note: add 'if #available' version check
366 |         simulationTask = nil
367 |         isSimulating = false
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:367:9: error: setter for 'isSimulating' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
362 |     /// This method does not return a value. Replay state is reset immediately.
363 |     /// - Throws: This method does not throw.
364 |     public func cancelSimulation() {
    |                 `- note: add '@available' attribute to enclosing instance method
365 |         simulationTask?.cancel()
366 |         simulationTask = nil
367 |         isSimulating = false
    |         |- error: setter for 'isSimulating' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
368 |     }
369 |
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:377:13: error: setter for 'firstPatternHash' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
373 |     /// confirmation state is updated and the selection is cleared.
374 |     /// - Throws: This method does not throw.
375 |     public func confirmPattern() {
    |                 `- note: add '@available' attribute to enclosing instance method
376 |         if valid {
377 |             firstPatternHash = currentHash
    |             |- error: setter for 'firstPatternHash' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
378 |             confirmationState = .awaitingConfirmation
379 |             selectedCardsIndices = []
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:378:13: error: setter for 'confirmationState' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
373 |     /// confirmation state is updated and the selection is cleared.
374 |     /// - Throws: This method does not throw.
375 |     public func confirmPattern() {
    |                 `- note: add '@available' attribute to enclosing instance method
376 |         if valid {
377 |             firstPatternHash = currentHash
378 |             confirmationState = .awaitingConfirmation
    |             |- error: setter for 'confirmationState' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
379 |             selectedCardsIndices = []
380 |             locked = false
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:379:13: error: setter for 'selectedCardsIndices' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
373 |     /// confirmation state is updated and the selection is cleared.
374 |     /// - Throws: This method does not throw.
375 |     public func confirmPattern() {
    |                 `- note: add '@available' attribute to enclosing instance method
376 |         if valid {
377 |             firstPatternHash = currentHash
378 |             confirmationState = .awaitingConfirmation
379 |             selectedCardsIndices = []
    |             |- error: setter for 'selectedCardsIndices' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
380 |             locked = false
381 |             lastDragError = nil
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:380:13: error: setter for 'locked' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
373 |     /// confirmation state is updated and the selection is cleared.
374 |     /// - Throws: This method does not throw.
375 |     public func confirmPattern() {
    |                 `- note: add '@available' attribute to enclosing instance method
376 |         if valid {
377 |             firstPatternHash = currentHash
378 |             confirmationState = .awaitingConfirmation
379 |             selectedCardsIndices = []
380 |             locked = false
    |             |- error: setter for 'locked' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
381 |             lastDragError = nil
382 |         }
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:381:13: error: setter for 'lastDragError' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
373 |     /// confirmation state is updated and the selection is cleared.
374 |     /// - Throws: This method does not throw.
375 |     public func confirmPattern() {
    |                 `- note: add '@available' attribute to enclosing instance method
376 |         if valid {
377 |             firstPatternHash = currentHash
    :
379 |             selectedCardsIndices = []
380 |             locked = false
381 |             lastDragError = nil
    |             |- error: setter for 'lastDragError' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
382 |         }
383 |     }
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:393:9: error: setter for 'selectedCardsIndices' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
388 |     /// confirmation state, replay, and validation messages are cleared.
389 |     /// - Throws: This method does not throw.
390 |     public func reset() {
    |                 `- note: add '@available' attribute to enclosing instance method
391 |         cancelSimulation()
392 |         cancelCredentialTask()
393 |         selectedCardsIndices = []
    |         |- error: setter for 'selectedCardsIndices' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
394 |         locked = false
395 |         confirmationState = .initial
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:394:9: error: setter for 'locked' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
388 |     /// confirmation state, replay, and validation messages are cleared.
389 |     /// - Throws: This method does not throw.
390 |     public func reset() {
    |                 `- note: add '@available' attribute to enclosing instance method
391 |         cancelSimulation()
392 |         cancelCredentialTask()
393 |         selectedCardsIndices = []
394 |         locked = false
    |         |- error: setter for 'locked' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
395 |         confirmationState = .initial
396 |         firstPatternHash = nil
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:395:9: error: setter for 'confirmationState' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
388 |     /// confirmation state, replay, and validation messages are cleared.
389 |     /// - Throws: This method does not throw.
390 |     public func reset() {
    |                 `- note: add '@available' attribute to enclosing instance method
391 |         cancelSimulation()
392 |         cancelCredentialTask()
393 |         selectedCardsIndices = []
394 |         locked = false
395 |         confirmationState = .initial
    |         |- error: setter for 'confirmationState' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
396 |         firstPatternHash = nil
397 |         lastDragError = nil
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:396:9: error: setter for 'firstPatternHash' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
388 |     /// confirmation state, replay, and validation messages are cleared.
389 |     /// - Throws: This method does not throw.
390 |     public func reset() {
    |                 `- note: add '@available' attribute to enclosing instance method
391 |         cancelSimulation()
392 |         cancelCredentialTask()
    :
394 |         locked = false
395 |         confirmationState = .initial
396 |         firstPatternHash = nil
    |         |- error: setter for 'firstPatternHash' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
397 |         lastDragError = nil
398 |     }
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:397:9: error: setter for 'lastDragError' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
388 |     /// confirmation state, replay, and validation messages are cleared.
389 |     /// - Throws: This method does not throw.
390 |     public func reset() {
    |                 `- note: add '@available' attribute to enclosing instance method
391 |         cancelSimulation()
392 |         cancelCredentialTask()
    :
395 |         confirmationState = .initial
396 |         firstPatternHash = nil
397 |         lastDragError = nil
    |         |- error: setter for 'lastDragError' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
398 |     }
399 |
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:429:21: error: setter for 'confirmationState' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
416 |     /// - Throws: This method does not throw. Credential creation errors are
417 |     ///   converted to `lastDragError`.
418 |     private func handleSetPattern() {
    |                  `- note: add '@available' attribute to enclosing instance method
419 |         let pattern = selectedCardsIndices
420 |
    :
427 |             case .awaitingConfirmation:
428 |                 if legacyHashArray(pattern) == firstPatternHash {
429 |                     confirmationState = .confirmed
    |                     |- error: setter for 'confirmationState' is only available in macOS 10.15 or newer
    |                     `- note: add 'if #available' version check
430 |                     completeSetup(with: pattern)
431 |                 } else {
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:432:21: error: cannot pass as inout because setter for 'incorrectCount' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
416 |     /// - Throws: This method does not throw. Credential creation errors are
417 |     ///   converted to `lastDragError`.
418 |     private func handleSetPattern() {
    |                  `- note: add '@available' attribute to enclosing instance method
419 |         let pattern = selectedCardsIndices
420 |
    :
430 |                     completeSetup(with: pattern)
431 |                 } else {
432 |                     incorrectCount += 1
    |                     |- error: cannot pass as inout because setter for 'incorrectCount' is only available in macOS 10.15 or newer
    |                     `- note: add 'if #available' version check
433 |                     lastDragError = "Patterns do not match. Please try again."
434 |                     selectedCardsIndices = []
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:433:21: error: setter for 'lastDragError' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
416 |     /// - Throws: This method does not throw. Credential creation errors are
417 |     ///   converted to `lastDragError`.
418 |     private func handleSetPattern() {
    |                  `- note: add '@available' attribute to enclosing instance method
419 |         let pattern = selectedCardsIndices
420 |
    :
431 |                 } else {
432 |                     incorrectCount += 1
433 |                     lastDragError = "Patterns do not match. Please try again."
    |                     |- error: setter for 'lastDragError' is only available in macOS 10.15 or newer
    |                     `- note: add 'if #available' version check
434 |                     selectedCardsIndices = []
435 |                     locked = false
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:434:21: error: setter for 'selectedCardsIndices' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
416 |     /// - Throws: This method does not throw. Credential creation errors are
417 |     ///   converted to `lastDragError`.
418 |     private func handleSetPattern() {
    |                  `- note: add '@available' attribute to enclosing instance method
419 |         let pattern = selectedCardsIndices
420 |
    :
432 |                     incorrectCount += 1
433 |                     lastDragError = "Patterns do not match. Please try again."
434 |                     selectedCardsIndices = []
    |                     |- error: setter for 'selectedCardsIndices' is only available in macOS 10.15 or newer
    |                     `- note: add 'if #available' version check
435 |                     locked = false
436 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:435:21: error: setter for 'locked' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
416 |     /// - Throws: This method does not throw. Credential creation errors are
417 |     ///   converted to `lastDragError`.
418 |     private func handleSetPattern() {
    |                  `- note: add '@available' attribute to enclosing instance method
419 |         let pattern = selectedCardsIndices
420 |
    :
433 |                     lastDragError = "Patterns do not match. Please try again."
434 |                     selectedCardsIndices = []
435 |                     locked = false
    |                     |- error: setter for 'locked' is only available in macOS 10.15 or newer
    |                     `- note: add 'if #available' version check
436 |                 }
437 |             case .confirmed:
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:476:26: error: 'Task' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
470 |     /// - Throws: This method does not throw. Credential creation errors are
471 |     ///   converted to `lastDragError`.
472 |     private func startCredentialSetupTask(for pattern: [Int]) {
    |                  `- note: add '@available' attribute to enclosing instance method
473 |         cancelCredentialTask()
474 |         let configuration = hashConfiguration
475 |
476 |         credentialTask = Task { @MainActor [weak self] in
    |                          |- error: 'Task' is only available in macOS 10.15 or newer
    |                          `- note: add 'if #available' version check
477 |             do {
478 |                 let credential = try await Self.createCredentialOffMainActor(
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:476:26: error: 'init(name:priority:operation:)' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
470 |     /// - Throws: This method does not throw. Credential creation errors are
471 |     ///   converted to `lastDragError`.
472 |     private func startCredentialSetupTask(for pattern: [Int]) {
    |                  `- note: add '@available' attribute to enclosing instance method
473 |         cancelCredentialTask()
474 |         let configuration = hashConfiguration
475 |
476 |         credentialTask = Task { @MainActor [weak self] in
    |                          |- error: 'init(name:priority:operation:)' is only available in macOS 10.15 or newer
    |                          `- note: add 'if #available' version check
477 |             do {
478 |                 let credential = try await Self.createCredentialOffMainActor(
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:482:34: error: 'Task' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
470 |     /// - Throws: This method does not throw. Credential creation errors are
471 |     ///   converted to `lastDragError`.
472 |     private func startCredentialSetupTask(for pattern: [Int]) {
    |                  `- note: add '@available' attribute to enclosing instance method
473 |         cancelCredentialTask()
474 |         let configuration = hashConfiguration
    :
480 |                     configuration: configuration
481 |                 )
482 |                 guard let self, !Task.isCancelled else { return }
    |                                  |- error: 'Task' is only available in macOS 10.15 or newer
    |                                  `- note: add 'if #available' version check
483 |                 credentialSetupCompletion?(credential)
484 |                 finishSetup()
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:482:39: error: 'isCancelled' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
470 |     /// - Throws: This method does not throw. Credential creation errors are
471 |     ///   converted to `lastDragError`.
472 |     private func startCredentialSetupTask(for pattern: [Int]) {
    |                  `- note: add '@available' attribute to enclosing instance method
473 |         cancelCredentialTask()
474 |         let configuration = hashConfiguration
    :
480 |                     configuration: configuration
481 |                 )
482 |                 guard let self, !Task.isCancelled else { return }
    |                                       |- error: 'isCancelled' is only available in macOS 10.15 or newer
    |                                       `- note: add 'if #available' version check
483 |                 credentialSetupCompletion?(credential)
484 |                 finishSetup()
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:486:34: error: 'Task' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
470 |     /// - Throws: This method does not throw. Credential creation errors are
471 |     ///   converted to `lastDragError`.
472 |     private func startCredentialSetupTask(for pattern: [Int]) {
    |                  `- note: add '@available' attribute to enclosing instance method
473 |         cancelCredentialTask()
474 |         let configuration = hashConfiguration
    :
484 |                 finishSetup()
485 |             } catch {
486 |                 guard let self, !Task.isCancelled else { return }
    |                                  |- error: 'Task' is only available in macOS 10.15 or newer
    |                                  `- note: add 'if #available' version check
487 |                 incorrectCount += 1
488 |                 lastDragError = "Unable to create gesture credential."
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:486:39: error: 'isCancelled' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
470 |     /// - Throws: This method does not throw. Credential creation errors are
471 |     ///   converted to `lastDragError`.
472 |     private func startCredentialSetupTask(for pattern: [Int]) {
    |                  `- note: add '@available' attribute to enclosing instance method
473 |         cancelCredentialTask()
474 |         let configuration = hashConfiguration
    :
484 |                 finishSetup()
485 |             } catch {
486 |                 guard let self, !Task.isCancelled else { return }
    |                                       |- error: 'isCancelled' is only available in macOS 10.15 or newer
    |                                       `- note: add 'if #available' version check
487 |                 incorrectCount += 1
488 |                 lastDragError = "Unable to create gesture credential."
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:487:17: error: cannot pass as inout because setter for 'incorrectCount' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
470 |     /// - Throws: This method does not throw. Credential creation errors are
471 |     ///   converted to `lastDragError`.
472 |     private func startCredentialSetupTask(for pattern: [Int]) {
    |                  `- note: add '@available' attribute to enclosing instance method
473 |         cancelCredentialTask()
474 |         let configuration = hashConfiguration
    :
485 |             } catch {
486 |                 guard let self, !Task.isCancelled else { return }
487 |                 incorrectCount += 1
    |                 |- error: cannot pass as inout because setter for 'incorrectCount' is only available in macOS 10.15 or newer
    |                 `- note: add 'if #available' version check
488 |                 lastDragError = "Unable to create gesture credential."
489 |                 finishSetup()
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:488:17: error: setter for 'lastDragError' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
470 |     /// - Throws: This method does not throw. Credential creation errors are
471 |     ///   converted to `lastDragError`.
472 |     private func startCredentialSetupTask(for pattern: [Int]) {
    |                  `- note: add '@available' attribute to enclosing instance method
473 |         cancelCredentialTask()
474 |         let configuration = hashConfiguration
    :
486 |                 guard let self, !Task.isCancelled else { return }
487 |                 incorrectCount += 1
488 |                 lastDragError = "Unable to create gesture credential."
    |                 |- error: setter for 'lastDragError' is only available in macOS 10.15 or newer
    |                 `- note: add 'if #available' version check
489 |                 finishSetup()
490 |             }
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:506:26: error: 'Task' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
501 |     /// - Throws: This method does not throw. Verification errors are converted
502 |     ///   to failed authentication state.
503 |     private func authenticateCredential(_ pattern: [Int], credential: GestureCredentialEnvelope) {
    |                  `- note: add '@available' attribute to enclosing instance method
504 |         cancelCredentialTask()
505 |
506 |         credentialTask = Task { @MainActor [weak self] in
    |                          |- error: 'Task' is only available in macOS 10.15 or newer
    |                          `- note: add 'if #available' version check
507 |             do {
508 |                 let success = try await Self.verifyCredentialOffMainActor(
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:506:26: error: 'init(name:priority:operation:)' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
501 |     /// - Throws: This method does not throw. Verification errors are converted
502 |     ///   to failed authentication state.
503 |     private func authenticateCredential(_ pattern: [Int], credential: GestureCredentialEnvelope) {
    |                  `- note: add '@available' attribute to enclosing instance method
504 |         cancelCredentialTask()
505 |
506 |         credentialTask = Task { @MainActor [weak self] in
    |                          |- error: 'init(name:priority:operation:)' is only available in macOS 10.15 or newer
    |                          `- note: add 'if #available' version check
507 |             do {
508 |                 let success = try await Self.verifyCredentialOffMainActor(
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:512:34: error: 'Task' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
501 |     /// - Throws: This method does not throw. Verification errors are converted
502 |     ///   to failed authentication state.
503 |     private func authenticateCredential(_ pattern: [Int], credential: GestureCredentialEnvelope) {
    |                  `- note: add '@available' attribute to enclosing instance method
504 |         cancelCredentialTask()
505 |
    :
510 |                     credential: credential
511 |                 )
512 |                 guard let self, !Task.isCancelled else { return }
    |                                  |- error: 'Task' is only available in macOS 10.15 or newer
    |                                  `- note: add 'if #available' version check
513 |                 if success {
514 |                     incorrectHash = nil
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:512:39: error: 'isCancelled' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
501 |     /// - Throws: This method does not throw. Verification errors are converted
502 |     ///   to failed authentication state.
503 |     private func authenticateCredential(_ pattern: [Int], credential: GestureCredentialEnvelope) {
    |                  `- note: add '@available' attribute to enclosing instance method
504 |         cancelCredentialTask()
505 |
    :
510 |                     credential: credential
511 |                 )
512 |                 guard let self, !Task.isCancelled else { return }
    |                                       |- error: 'isCancelled' is only available in macOS 10.15 or newer
    |                                       `- note: add 'if #available' version check
513 |                 if success {
514 |                     incorrectHash = nil
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:514:21: error: setter for 'incorrectHash' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
501 |     /// - Throws: This method does not throw. Verification errors are converted
502 |     ///   to failed authentication state.
503 |     private func authenticateCredential(_ pattern: [Int], credential: GestureCredentialEnvelope) {
    |                  `- note: add '@available' attribute to enclosing instance method
504 |         cancelCredentialTask()
505 |
    :
512 |                 guard let self, !Task.isCancelled else { return }
513 |                 if success {
514 |                     incorrectHash = nil
    |                     |- error: setter for 'incorrectHash' is only available in macOS 10.15 or newer
    |                     `- note: add 'if #available' version check
515 |                     authCompletion?(true)
516 |                 } else {
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:520:34: error: 'Task' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
501 |     /// - Throws: This method does not throw. Verification errors are converted
502 |     ///   to failed authentication state.
503 |     private func authenticateCredential(_ pattern: [Int], credential: GestureCredentialEnvelope) {
    |                  `- note: add '@available' attribute to enclosing instance method
504 |         cancelCredentialTask()
505 |
    :
518 |                 }
519 |             } catch {
520 |                 guard let self, !Task.isCancelled else { return }
    |                                  |- error: 'Task' is only available in macOS 10.15 or newer
    |                                  `- note: add 'if #available' version check
521 |                 lastDragError = "Unable to verify gesture credential."
522 |                 failAuthentication()
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:520:39: error: 'isCancelled' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
501 |     /// - Throws: This method does not throw. Verification errors are converted
502 |     ///   to failed authentication state.
503 |     private func authenticateCredential(_ pattern: [Int], credential: GestureCredentialEnvelope) {
    |                  `- note: add '@available' attribute to enclosing instance method
504 |         cancelCredentialTask()
505 |
    :
518 |                 }
519 |             } catch {
520 |                 guard let self, !Task.isCancelled else { return }
    |                                       |- error: 'isCancelled' is only available in macOS 10.15 or newer
    |                                       `- note: add 'if #available' version check
521 |                 lastDragError = "Unable to verify gesture credential."
522 |                 failAuthentication()
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:521:17: error: setter for 'lastDragError' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
501 |     /// - Throws: This method does not throw. Verification errors are converted
502 |     ///   to failed authentication state.
503 |     private func authenticateCredential(_ pattern: [Int], credential: GestureCredentialEnvelope) {
    |                  `- note: add '@available' attribute to enclosing instance method
504 |         cancelCredentialTask()
505 |
    :
519 |             } catch {
520 |                 guard let self, !Task.isCancelled else { return }
521 |                 lastDragError = "Unable to verify gesture credential."
    |                 |- error: setter for 'lastDragError' is only available in macOS 10.15 or newer
    |                 `- note: add 'if #available' version check
522 |                 failAuthentication()
523 |             }
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:550:13: error: setter for 'incorrectHash' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
532 |     /// - Throws: This method does not throw. Migration errors are converted to
533 |     ///   `lastDragError` while preserving successful authentication.
534 |     private func authenticateLegacyHash(_ pattern: [Int]) {
    |                  `- note: add '@available' attribute to enclosing instance method
535 |         guard let expectedHash else {
536 |             failAuthentication()
    :
548 |
549 |         guard legacyUpgradeCompletion != nil else {
550 |             incorrectHash = nil
    |             |- error: setter for 'incorrectHash' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
551 |             authCompletion?(true)
552 |             return
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:570:26: error: 'Task' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
564 |     /// - Throws: This method does not throw. Migration errors are converted to
565 |     ///   `lastDragError` while preserving successful authentication.
566 |     private func startLegacyUpgradeAuthenticationTask(for pattern: [Int]) {
    |                  `- note: add '@available' attribute to enclosing instance method
567 |         cancelCredentialTask()
568 |         let configuration = hashConfiguration
569 |
570 |         credentialTask = Task { @MainActor [weak self] in
    |                          |- error: 'Task' is only available in macOS 10.15 or newer
    |                          `- note: add 'if #available' version check
571 |             do {
572 |                 let credential = try await Self.createCredentialOffMainActor(
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:570:26: error: 'init(name:priority:operation:)' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
564 |     /// - Throws: This method does not throw. Migration errors are converted to
565 |     ///   `lastDragError` while preserving successful authentication.
566 |     private func startLegacyUpgradeAuthenticationTask(for pattern: [Int]) {
    |                  `- note: add '@available' attribute to enclosing instance method
567 |         cancelCredentialTask()
568 |         let configuration = hashConfiguration
569 |
570 |         credentialTask = Task { @MainActor [weak self] in
    |                          |- error: 'init(name:priority:operation:)' is only available in macOS 10.15 or newer
    |                          `- note: add 'if #available' version check
571 |             do {
572 |                 let credential = try await Self.createCredentialOffMainActor(
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:576:34: error: 'Task' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
564 |     /// - Throws: This method does not throw. Migration errors are converted to
565 |     ///   `lastDragError` while preserving successful authentication.
566 |     private func startLegacyUpgradeAuthenticationTask(for pattern: [Int]) {
    |                  `- note: add '@available' attribute to enclosing instance method
567 |         cancelCredentialTask()
568 |         let configuration = hashConfiguration
    :
574 |                     configuration: configuration
575 |                 )
576 |                 guard let self, !Task.isCancelled else { return }
    |                                  |- error: 'Task' is only available in macOS 10.15 or newer
    |                                  `- note: add 'if #available' version check
577 |                 legacyUpgradeCompletion?(credential)
578 |             } catch {
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:576:39: error: 'isCancelled' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
564 |     /// - Throws: This method does not throw. Migration errors are converted to
565 |     ///   `lastDragError` while preserving successful authentication.
566 |     private func startLegacyUpgradeAuthenticationTask(for pattern: [Int]) {
    |                  `- note: add '@available' attribute to enclosing instance method
567 |         cancelCredentialTask()
568 |         let configuration = hashConfiguration
    :
574 |                     configuration: configuration
575 |                 )
576 |                 guard let self, !Task.isCancelled else { return }
    |                                       |- error: 'isCancelled' is only available in macOS 10.15 or newer
    |                                       `- note: add 'if #available' version check
577 |                 legacyUpgradeCompletion?(credential)
578 |             } catch {
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:579:34: error: 'Task' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
564 |     /// - Throws: This method does not throw. Migration errors are converted to
565 |     ///   `lastDragError` while preserving successful authentication.
566 |     private func startLegacyUpgradeAuthenticationTask(for pattern: [Int]) {
    |                  `- note: add '@available' attribute to enclosing instance method
567 |         cancelCredentialTask()
568 |         let configuration = hashConfiguration
    :
577 |                 legacyUpgradeCompletion?(credential)
578 |             } catch {
579 |                 guard let self, !Task.isCancelled else { return }
    |                                  |- error: 'Task' is only available in macOS 10.15 or newer
    |                                  `- note: add 'if #available' version check
580 |                 lastDragError = "Gesture matched, but credential migration failed."
581 |             }
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:579:39: error: 'isCancelled' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
564 |     /// - Throws: This method does not throw. Migration errors are converted to
565 |     ///   `lastDragError` while preserving successful authentication.
566 |     private func startLegacyUpgradeAuthenticationTask(for pattern: [Int]) {
    |                  `- note: add '@available' attribute to enclosing instance method
567 |         cancelCredentialTask()
568 |         let configuration = hashConfiguration
    :
577 |                 legacyUpgradeCompletion?(credential)
578 |             } catch {
579 |                 guard let self, !Task.isCancelled else { return }
    |                                       |- error: 'isCancelled' is only available in macOS 10.15 or newer
    |                                       `- note: add 'if #available' version check
580 |                 lastDragError = "Gesture matched, but credential migration failed."
581 |             }
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:580:17: error: setter for 'lastDragError' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
564 |     /// - Throws: This method does not throw. Migration errors are converted to
565 |     ///   `lastDragError` while preserving successful authentication.
566 |     private func startLegacyUpgradeAuthenticationTask(for pattern: [Int]) {
    |                  `- note: add '@available' attribute to enclosing instance method
567 |         cancelCredentialTask()
568 |         let configuration = hashConfiguration
    :
578 |             } catch {
579 |                 guard let self, !Task.isCancelled else { return }
580 |                 lastDragError = "Gesture matched, but credential migration failed."
    |                 |- error: setter for 'lastDragError' is only available in macOS 10.15 or newer
    |                 `- note: add 'if #available' version check
581 |             }
582 |
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:583:30: error: 'Task' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
564 |     /// - Throws: This method does not throw. Migration errors are converted to
565 |     ///   `lastDragError` while preserving successful authentication.
566 |     private func startLegacyUpgradeAuthenticationTask(for pattern: [Int]) {
    |                  `- note: add '@available' attribute to enclosing instance method
567 |         cancelCredentialTask()
568 |         let configuration = hashConfiguration
    :
581 |             }
582 |
583 |             guard let self, !Task.isCancelled else { return }
    |                              |- error: 'Task' is only available in macOS 10.15 or newer
    |                              `- note: add 'if #available' version check
584 |             incorrectHash = nil
585 |             authCompletion?(true)
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:583:35: error: 'isCancelled' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
564 |     /// - Throws: This method does not throw. Migration errors are converted to
565 |     ///   `lastDragError` while preserving successful authentication.
566 |     private func startLegacyUpgradeAuthenticationTask(for pattern: [Int]) {
    |                  `- note: add '@available' attribute to enclosing instance method
567 |         cancelCredentialTask()
568 |         let configuration = hashConfiguration
    :
581 |             }
582 |
583 |             guard let self, !Task.isCancelled else { return }
    |                                   |- error: 'isCancelled' is only available in macOS 10.15 or newer
    |                                   `- note: add 'if #available' version check
584 |             incorrectHash = nil
585 |             authCompletion?(true)
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:584:13: error: setter for 'incorrectHash' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
564 |     /// - Throws: This method does not throw. Migration errors are converted to
565 |     ///   `lastDragError` while preserving successful authentication.
566 |     private func startLegacyUpgradeAuthenticationTask(for pattern: [Int]) {
    |                  `- note: add '@available' attribute to enclosing instance method
567 |         cancelCredentialTask()
568 |         let configuration = hashConfiguration
    :
582 |
583 |             guard let self, !Task.isCancelled else { return }
584 |             incorrectHash = nil
    |             |- error: setter for 'incorrectHash' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
585 |             authCompletion?(true)
586 |         }
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:595:9: error: setter for 'selectedCardsIndices' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
592 |     /// first pattern hash, then unlocks input.
593 |     /// - Throws: This method does not throw.
594 |     private func finishSetup() {
    |                  `- note: add '@available' attribute to enclosing instance method
595 |         selectedCardsIndices = []
    |         |- error: setter for 'selectedCardsIndices' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
596 |         firstPatternHash = nil
597 |         locked = false
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:596:9: error: setter for 'firstPatternHash' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
592 |     /// first pattern hash, then unlocks input.
593 |     /// - Throws: This method does not throw.
594 |     private func finishSetup() {
    |                  `- note: add '@available' attribute to enclosing instance method
595 |         selectedCardsIndices = []
596 |         firstPatternHash = nil
    |         |- error: setter for 'firstPatternHash' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
597 |         locked = false
598 |     }
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:597:9: error: setter for 'locked' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
592 |     /// first pattern hash, then unlocks input.
593 |     /// - Throws: This method does not throw.
594 |     private func finishSetup() {
    |                  `- note: add '@available' attribute to enclosing instance method
595 |         selectedCardsIndices = []
596 |         firstPatternHash = nil
597 |         locked = false
    |         |- error: setter for 'locked' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
598 |     }
599 |
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:606:25: error: 'cancel()' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
603 |     /// finish in the background, but cancelled tasks do not update view state.
604 |     /// - Throws: This method does not throw.
605 |     private func cancelCredentialTask() {
    |                  `- note: add '@available' attribute to enclosing instance method
606 |         credentialTask?.cancel()
    |                         |- error: 'cancel()' is only available in macOS 10.15 or newer
    |                         `- note: add 'if #available' version check
607 |         credentialTask = nil
608 |     }
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:621:19: error: 'Task' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
615 |     /// - Returns: A new credential envelope with a fresh random salt.
616 |     /// - Throws: Any error thrown by `GestureCredentialHasher.createCredential`.
617 |     private nonisolated static func createCredentialOffMainActor(
    |                                     `- note: add '@available' attribute to enclosing static method
618 |         for pattern: [Int],
619 |         configuration: GestureHashConfiguration
620 |     ) async throws -> GestureCredentialEnvelope {
621 |         try await Task.detached(priority: .userInitiated) {
    |                   |- error: 'Task' is only available in macOS 10.15 or newer
    |                   `- note: add 'if #available' version check
622 |             try GestureCredentialHasher.createCredential(
623 |                 for: pattern,
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:621:24: error: 'detached(name:priority:operation:)' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
615 |     /// - Returns: A new credential envelope with a fresh random salt.
616 |     /// - Throws: Any error thrown by `GestureCredentialHasher.createCredential`.
617 |     private nonisolated static func createCredentialOffMainActor(
    |                                     `- note: add '@available' attribute to enclosing static method
618 |         for pattern: [Int],
619 |         configuration: GestureHashConfiguration
620 |     ) async throws -> GestureCredentialEnvelope {
621 |         try await Task.detached(priority: .userInitiated) {
    |                        |- error: 'detached(name:priority:operation:)' is only available in macOS 10.15 or newer
    |                        `- note: add 'if #available' version check
622 |             try GestureCredentialHasher.createCredential(
623 |                 for: pattern,
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:626:11: error: 'value' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
615 |     /// - Returns: A new credential envelope with a fresh random salt.
616 |     /// - Throws: Any error thrown by `GestureCredentialHasher.createCredential`.
617 |     private nonisolated static func createCredentialOffMainActor(
    |                                     `- note: add '@available' attribute to enclosing static method
618 |         for pattern: [Int],
619 |         configuration: GestureHashConfiguration
    :
624 |                 configuration: configuration
625 |             )
626 |         }.value
    |           |- error: 'value' is only available in macOS 10.15 or newer
    |           `- note: add 'if #available' version check
627 |     }
628 |
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:641:19: error: 'Task' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
635 |     ///   otherwise, `false`.
636 |     /// - Throws: Any error thrown by `GestureCredentialHasher.verify`.
637 |     private nonisolated static func verifyCredentialOffMainActor(
    |                                     `- note: add '@available' attribute to enclosing static method
638 |         vertices: [Int],
639 |         credential: GestureCredentialEnvelope
640 |     ) async throws -> Bool {
641 |         try await Task.detached(priority: .userInitiated) {
    |                   |- error: 'Task' is only available in macOS 10.15 or newer
    |                   `- note: add 'if #available' version check
642 |             try GestureCredentialHasher.verify(vertices: vertices, against: credential)
643 |         }.value
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:641:24: error: 'detached(name:priority:operation:)' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
635 |     ///   otherwise, `false`.
636 |     /// - Throws: Any error thrown by `GestureCredentialHasher.verify`.
637 |     private nonisolated static func verifyCredentialOffMainActor(
    |                                     `- note: add '@available' attribute to enclosing static method
638 |         vertices: [Int],
639 |         credential: GestureCredentialEnvelope
640 |     ) async throws -> Bool {
641 |         try await Task.detached(priority: .userInitiated) {
    |                        |- error: 'detached(name:priority:operation:)' is only available in macOS 10.15 or newer
    |                        `- note: add 'if #available' version check
642 |             try GestureCredentialHasher.verify(vertices: vertices, against: credential)
643 |         }.value
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:643:11: error: 'value' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
635 |     ///   otherwise, `false`.
636 |     /// - Throws: Any error thrown by `GestureCredentialHasher.verify`.
637 |     private nonisolated static func verifyCredentialOffMainActor(
    |                                     `- note: add '@available' attribute to enclosing static method
638 |         vertices: [Int],
639 |         credential: GestureCredentialEnvelope
    :
641 |         try await Task.detached(priority: .userInitiated) {
642 |             try GestureCredentialHasher.verify(vertices: vertices, against: credential)
643 |         }.value
    |           |- error: 'value' is only available in macOS 10.15 or newer
    |           `- note: add 'if #available' version check
644 |     }
645 |
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:653:9: error: setter for 'incorrectHash' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
650 |     /// `false`.
651 |     /// - Throws: This method does not throw.
652 |     private func failAuthentication() {
    |                  `- note: add '@available' attribute to enclosing instance method
653 |         incorrectHash = true
    |         |- error: setter for 'incorrectHash' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
654 |         selectedCardsIndices = []
655 |         withAnimation(.easeInOut(duration: 0.3)) {
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:654:9: error: setter for 'selectedCardsIndices' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
650 |     /// `false`.
651 |     /// - Throws: This method does not throw.
652 |     private func failAuthentication() {
    |                  `- note: add '@available' attribute to enclosing instance method
653 |         incorrectHash = true
654 |         selectedCardsIndices = []
    |         |- error: setter for 'selectedCardsIndices' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
655 |         withAnimation(.easeInOut(duration: 0.3)) {
656 |             incorrectCount += 1
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:655:9: error: 'withAnimation' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
650 |     /// `false`.
651 |     /// - Throws: This method does not throw.
652 |     private func failAuthentication() {
    |                  `- note: add '@available' attribute to enclosing instance method
653 |         incorrectHash = true
654 |         selectedCardsIndices = []
655 |         withAnimation(.easeInOut(duration: 0.3)) {
    |         |- error: 'withAnimation' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
656 |             incorrectCount += 1
657 |         }
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:655:24: error: 'easeInOut(duration:)' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
650 |     /// `false`.
651 |     /// - Throws: This method does not throw.
652 |     private func failAuthentication() {
    |                  `- note: add '@available' attribute to enclosing instance method
653 |         incorrectHash = true
654 |         selectedCardsIndices = []
655 |         withAnimation(.easeInOut(duration: 0.3)) {
    |                        |- error: 'easeInOut(duration:)' is only available in macOS 10.15 or newer
    |                        `- note: add 'if #available' version check
656 |             incorrectCount += 1
657 |         }
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/GridAuthenticatorViewModel.swift:656:13: error: cannot pass as inout because setter for 'incorrectCount' is only available in macOS 10.15 or newer
 14 | /// SwiftUI-observed state and animation state.
 15 | @MainActor
 16 | public class GridAuthenticatorViewModel: ObservableObject {
    |              `- note: add '@available' attribute to enclosing class
 17 |     /// The ordered 3x3 grid indices selected during the current gesture.
 18 |     @Published public var selectedCardsIndices: [Int] = []
    :
650 |     /// `false`.
651 |     /// - Throws: This method does not throw.
652 |     private func failAuthentication() {
    |                  `- note: add '@available' attribute to enclosing instance method
653 |         incorrectHash = true
654 |         selectedCardsIndices = []
655 |         withAnimation(.easeInOut(duration: 0.3)) {
656 |             incorrectCount += 1
    |             |- error: cannot pass as inout because setter for 'incorrectCount' is only available in macOS 10.15 or newer
    |             `- note: add 'if #available' version check
657 |         }
658 |         authCompletion?(false)
[9/11] Compiling PatternAuthentication LegacyPatternHash.swift
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/Credentials/LegacyPatternHash.swift:25:16: error: 'SHA256' is only available in macOS 10.15 or newer
21 | /// - Returns: A lowercase hexadecimal SHA-256 hash matching v0 package output.
22 | /// - Throws: This function does not throw.
23 | func legacyHashArray(_ array: [Int]) -> String {
   |      `- note: add '@available' attribute to enclosing global function
24 |     let data = array.withUnsafeBytes { Data($0) }
25 |     let hash = SHA256.hash(data: data)
   |                |- error: 'SHA256' is only available in macOS 10.15 or newer
   |                `- note: add 'if #available' version check
26 |     return hash.compactMap { String(format: "%02x", $0) }.joined()
27 | }
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/Credentials/LegacyPatternHash.swift:25:23: error: 'hash(data:)' is only available in macOS 10.15 or newer
21 | /// - Returns: A lowercase hexadecimal SHA-256 hash matching v0 package output.
22 | /// - Throws: This function does not throw.
23 | func legacyHashArray(_ array: [Int]) -> String {
   |      `- note: add '@available' attribute to enclosing global function
24 |     let data = array.withUnsafeBytes { Data($0) }
25 |     let hash = SHA256.hash(data: data)
   |                       |- error: 'hash(data:)' is only available in macOS 10.15 or newer
   |                       `- note: add 'if #available' version check
26 |     return hash.compactMap { String(format: "%02x", $0) }.joined()
27 | }
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/Credentials/LegacyPatternHash.swift:26:17: error: conformance of 'SHA256Digest' to 'Sequence' is only available in macOS 10.15 or newer
21 | /// - Returns: A lowercase hexadecimal SHA-256 hash matching v0 package output.
22 | /// - Throws: This function does not throw.
23 | func legacyHashArray(_ array: [Int]) -> String {
   |      `- note: add '@available' attribute to enclosing global function
24 |     let data = array.withUnsafeBytes { Data($0) }
25 |     let hash = SHA256.hash(data: data)
26 |     return hash.compactMap { String(format: "%02x", $0) }.joined()
   |                 |- error: conformance of 'SHA256Digest' to 'Sequence' is only available in macOS 10.15 or newer
   |                 `- note: add 'if #available' version check
27 | }
28 |
[10/11] Compiling PatternAuthentication ParticleSystem.swift
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/Animations/ParticleSystem.swift:35:43: error: 'now' is only available in macOS 12 or newer
 11 |
 12 | /// A single path particle rendered in grid-local coordinates.
 13 | public struct Particle: Hashable, Sendable {
    |               `- note: add '@available' attribute to enclosing struct
 14 |     /// The particle's x-coordinate in the grid canvas coordinate space.
 15 |     public let x: Double
    :
 30 |     /// - Returns: A particle ready to render.
 31 |     /// - Throws: This initializer does not throw.
 32 |     public init(
    |            `- note: add '@available' attribute to enclosing initializer
 33 |         x: Double,
 34 |         y: Double,
 35 |         creationDate: TimeInterval = Date.now.timeIntervalSinceReferenceDate
    |                                           `- error: 'now' is only available in macOS 12 or newer
 36 |     ) {
 37 |         self.x = x
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/Animations/ParticleSystem.swift:50:24: error: 'Image' is only available in macOS 10.15 or newer
 46 | /// and is mutated by SwiftUI gesture callbacks and timeline rendering.
 47 | @MainActor
 48 | public final class ParticleSystem {
    |                    `- note: add '@available' attribute to enclosing class
 49 |     /// The spark image loaded from the SwiftPM resource bundle.
 50 |     public let image = Image("spark", bundle: Bundle.module)
    |                        `- error: 'Image' is only available in macOS 10.15 or newer
 51 |
 52 |     /// The rendered point-size of each particle.
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/Animations/ParticleSystem.swift:50:24: error: 'init(_:bundle:)' is only available in macOS 10.15 or newer
 46 | /// and is mutated by SwiftUI gesture callbacks and timeline rendering.
 47 | @MainActor
 48 | public final class ParticleSystem {
    |                    `- note: add '@available' attribute to enclosing class
 49 |     /// The spark image loaded from the SwiftPM resource bundle.
 50 |     public let image = Image("spark", bundle: Bundle.module)
    |                        `- error: 'init(_:bundle:)' is only available in macOS 10.15 or newer
 51 |
 52 |     /// The rendered point-size of each particle.
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/Animations/ParticleSystem.swift:115:33: error: 'now' is only available in macOS 12 or newer
 46 | /// and is mutated by SwiftUI gesture callbacks and timeline rendering.
 47 | @MainActor
 48 | public final class ParticleSystem {
    |                    `- note: add '@available' attribute to enclosing class
 49 |     /// The spark image loaded from the SwiftPM resource bundle.
 50 |     public let image = Image("spark", bundle: Bundle.module)
    :
112 |     /// trail instead of a dotted path.
113 |     /// - Throws: This method does not throw.
114 |     public func addParticle(at location: CGPoint) {
    |                 `- note: add '@available' attribute to enclosing instance method
115 |         let creationDate = Date.now.timeIntervalSinceReferenceDate
    |                                 |- error: 'now' is only available in macOS 12 or newer
    |                                 `- note: add 'if #available' version check
116 |         defer { lastEmissionPoint = location }
117 |
[11/11] Compiling PatternAuthentication Shake.swift
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/Animations/Shake.swift:46:46: error: 'ProjectionTransform' is only available in macOS 10.15 or newer
 9 |
10 | /// A horizontal shake effect used to signal failed gesture attempts.
11 | public struct Shake: GeometryEffect {
   |               `- note: add '@available' attribute to enclosing struct
12 |     /// The maximum horizontal translation in points.
13 |     public var amount: CGFloat = 10
   :
44 |     /// - Returns: A projection transform that translates the view on the x-axis.
45 |     /// - Throws: This method does not throw.
46 |     public func effectValue(size: CGSize) -> ProjectionTransform {
   |                 |                            `- error: 'ProjectionTransform' is only available in macOS 10.15 or newer
   |                 `- note: add '@available' attribute to enclosing instance method
47 |         ProjectionTransform(CGAffineTransform(translationX:
48 |             amount * sin(animatableData * .pi * CGFloat(shakesPerUnit)),
/Users/admin/builder/spi-builder-workspace/Sources/PatternAuthentication/Animations/Shake.swift:47:9: error: 'ProjectionTransform' is only available in macOS 10.15 or newer
 9 |
10 | /// A horizontal shake effect used to signal failed gesture attempts.
11 | public struct Shake: GeometryEffect {
   |               `- note: add '@available' attribute to enclosing struct
12 |     /// The maximum horizontal translation in points.
13 |     public var amount: CGFloat = 10
   :
44 |     /// - Returns: A projection transform that translates the view on the x-axis.
45 |     /// - Throws: This method does not throw.
46 |     public func effectValue(size: CGSize) -> ProjectionTransform {
   |                 `- note: add '@available' attribute to enclosing instance method
47 |         ProjectionTransform(CGAffineTransform(translationX:
   |         |- error: 'ProjectionTransform' is only available in macOS 10.15 or newer
   |         `- note: add 'if #available' version check
48 |             amount * sin(animatableData * .pi * CGFloat(shakesPerUnit)),
49 |             y: 0))
BUILD FAILURE 6.3 macosSpm