The Swift Package Index logo.Swift Package Index

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

Build Information

Successful build of Tonic, reference main (8f103c), with Swift 6.0 for Linux on 19 Dec 2024 23:36:32 UTC.

Swift 6 data race errors: 312

Build Command

bash -c docker run --pull=always --rm -v "checkouts-4606859-1":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.0-latest swift build --triple x86_64-unknown-linux-gnu -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures 2>&1

Build Log

 7 |     public static let shared = ChordTable()
   |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'ChordTable' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 8 |
 9 |     static func hash(_ noteClasses: [NoteClass]) -> Int {
[19/26] Compiling Tonic Key+Shortcuts.swift
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:7:16: warning: static property 'circleOfFifths' is not concurrency-safe because non-'Sendable' type '[Key]' may have shared mutable state; this is an error in the Swift 6 language mode
  5 | public extension Key {
  6 |
  7 |     static let circleOfFifths: [Key] = [.C, .G, .D, .A, .E, .B, .Fs, .Cs]
    |                |- warning: static property 'circleOfFifths' is not concurrency-safe because non-'Sendable' type '[Key]' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'circleOfFifths' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
  8 |     static let circleOfFourths: [Key] = [.F, .Bb, .Eb, .Ab, .Db, .Gb, .Cb]
  9 |
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:34:16: warning: static property 'C' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 32 |
 33 |     /// C Major
 34 |     static let C = Key(root: NoteClass(.C), scale: .major)
    |                |- warning: static property 'C' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'C' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 35 |
 36 |     /// G Major
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:37:16: warning: static property 'G' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 35 |
 36 |     /// G Major
 37 |     static let G = Key(root: NoteClass(.G), scale: .major)
    |                |- warning: static property 'G' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'G' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 38 |
 39 |     /// D Major
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:40:16: warning: static property 'D' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 38 |
 39 |     /// D Major
 40 |     static let D = Key(root: NoteClass(.D), scale: .major)
    |                |- warning: static property 'D' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'D' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 41 |
 42 |     /// A Major
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:43:16: warning: static property 'A' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 41 |
 42 |     /// A Major
 43 |     static let A = Key(root: NoteClass(.A), scale: .major)
    |                |- warning: static property 'A' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'A' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 44 |
 45 |     /// E Major
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:46:16: warning: static property 'E' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 44 |
 45 |     /// E Major
 46 |     static let E = Key(root: NoteClass(.E), scale: .major)
    |                |- warning: static property 'E' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'E' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 47 |
 48 |     /// B Major
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:49:16: warning: static property 'B' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 47 |
 48 |     /// B Major
 49 |     static let B = Key(root: NoteClass(.B), scale: .major)
    |                |- warning: static property 'B' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'B' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 50 |
 51 |     /// F♯ Major
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:52:16: warning: static property 'Fs' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 50 |
 51 |     /// F♯ Major
 52 |     static let Fs = Key(root: NoteClass(.F, accidental: .sharp), scale: .major)
    |                |- warning: static property 'Fs' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'Fs' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 53 |
 54 |     /// C♯ Major
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:55:16: warning: static property 'Cs' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 53 |
 54 |     /// C♯ Major
 55 |     static let Cs = Key(root: NoteClass(.C, accidental: .sharp), scale: .major)
    |                |- warning: static property 'Cs' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'Cs' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 56 |
 57 |     // MARK: - Minor keys
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:8:16: warning: static property 'circleOfFourths' is not concurrency-safe because non-'Sendable' type '[Key]' may have shared mutable state; this is an error in the Swift 6 language mode
  6 |
  7 |     static let circleOfFifths: [Key] = [.C, .G, .D, .A, .E, .B, .Fs, .Cs]
  8 |     static let circleOfFourths: [Key] = [.F, .Bb, .Eb, .Ab, .Db, .Gb, .Cb]
    |                |- warning: static property 'circleOfFourths' is not concurrency-safe because non-'Sendable' type '[Key]' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'circleOfFourths' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
  9 |
 10 |     // MARK: - Major keys
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:31:16: warning: static property 'F' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 29 |
 30 |     /// F Major
 31 |     static let F = Key(root: NoteClass(.F), scale: .major)
    |                |- warning: static property 'F' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'F' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 32 |
 33 |     /// C Major
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:28:16: warning: static property 'Bb' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 26 |
 27 |     /// B♭ Major
 28 |     static let Bb = Key(root: NoteClass(.B, accidental: .flat), scale: .major)
    |                |- warning: static property 'Bb' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'Bb' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 29 |
 30 |     /// F Major
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:25:16: warning: static property 'Eb' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 23 |
 24 |     /// E♭ Major
 25 |     static let Eb = Key(root: NoteClass(.E, accidental: .flat), scale: .major)
    |                |- warning: static property 'Eb' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'Eb' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 26 |
 27 |     /// B♭ Major
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:22:16: warning: static property 'Ab' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 20 |
 21 |     /// A♭ Major
 22 |     static let Ab = Key(root: NoteClass(.A, accidental: .flat), scale: .major)
    |                |- warning: static property 'Ab' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'Ab' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 23 |
 24 |     /// E♭ Major
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:19:16: warning: static property 'Db' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 17 |
 18 |     /// D♭ Major
 19 |     static let Db = Key(root: NoteClass(.D, accidental: .flat), scale: .major)
    |                |- warning: static property 'Db' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'Db' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 20 |
 21 |     /// A♭ Major
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:16:16: warning: static property 'Gb' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 14 |
 15 |     /// G♭ Major
 16 |     static let Gb = Key(root: NoteClass(.G, accidental: .flat), scale: .major)
    |                |- warning: static property 'Gb' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'Gb' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 17 |
 18 |     /// D♭ Major
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:13:16: warning: static property 'Cb' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 11 |
 12 |     /// C♭ Major
 13 |     static let Cb = Key(root: NoteClass(.C, accidental: .flat), scale: .major)
    |                |- warning: static property 'Cb' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'Cb' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 14 |
 15 |     /// G♭ Major
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Scale+Shortcuts.swift:9:16: warning: static property 'major' is not concurrency-safe because non-'Sendable' type 'Scale' may have shared mutable state; this is an error in the Swift 6 language mode
  7 |
  8 |     /// Major scale
  9 |     static let major = Scale(intervals: Scale.ionian.intervals, description: "Major")
    |                |- warning: static property 'major' is not concurrency-safe because non-'Sendable' type 'Scale' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'major' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 10 |
 11 |     /// Minor scale
/host/spi-builder-workspace/Sources/Tonic/Scale.swift:6:15: note: consider making struct 'Scale' conform to the 'Sendable' protocol
 4 |
 5 | /// A set of intervals from the root (tonic).
 6 | public struct Scale: OptionSet, Hashable {
   |               `- note: consider making struct 'Scale' conform to the 'Sendable' protocol
 7 |     public let rawValue: Int
 8 |
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:60:16: warning: static property 'ab' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 58 |
 59 |     /// A♭ Minor
 60 |     static let ab = Key(root: NoteClass(.A, accidental: .flat), scale: .minor)
    |                |- warning: static property 'ab' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'ab' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 61 |
 62 |     /// E♭ Minor
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Scale+Shortcuts.swift:12:16: warning: static property 'minor' is not concurrency-safe because non-'Sendable' type 'Scale' may have shared mutable state; this is an error in the Swift 6 language mode
 10 |
 11 |     /// Minor scale
 12 |     static let minor = Scale(intervals: Scale.aeolian.intervals, description: "Minor")
    |                |- warning: static property 'minor' is not concurrency-safe because non-'Sendable' type 'Scale' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'minor' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 13 |
 14 |     /// Harmonic minor scale
/host/spi-builder-workspace/Sources/Tonic/Scale.swift:6:15: note: consider making struct 'Scale' conform to the 'Sendable' protocol
 4 |
 5 | /// A set of intervals from the root (tonic).
 6 | public struct Scale: OptionSet, Hashable {
   |               `- note: consider making struct 'Scale' conform to the 'Sendable' protocol
 7 |     public let rawValue: Int
 8 |
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:63:16: warning: static property 'eb' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 61 |
 62 |     /// E♭ Minor
 63 |     static let eb = Key(root: NoteClass(.E, accidental: .flat), scale: .minor)
    |                |- warning: static property 'eb' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'eb' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 64 |
 65 |     /// B♭ Minor
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:66:16: warning: static property 'bb' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 64 |
 65 |     /// B♭ Minor
 66 |     static let bb = Key(root: NoteClass(.B, accidental: .flat), scale: .minor)
    |                |- warning: static property 'bb' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'bb' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 67 |
 68 |     /// F Minor
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:69:16: warning: static property 'f' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 67 |
 68 |     /// F Minor
 69 |     static let f = Key(root: NoteClass(.F), scale: .minor)
    |                |- warning: static property 'f' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'f' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 70 |
 71 |     /// C Minor
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:72:16: warning: static property 'c' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 70 |
 71 |     /// C Minor
 72 |     static let c = Key(root: NoteClass(.C), scale: .minor)
    |                |- warning: static property 'c' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'c' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 73 |
 74 |     /// G Minor
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:75:16: warning: static property 'g' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 73 |
 74 |     /// G Minor
 75 |     static let g = Key(root: NoteClass(.G), scale: .minor)
    |                |- warning: static property 'g' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'g' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 76 |
 77 |     /// D Minor
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:78:16: warning: static property 'd' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 76 |
 77 |     /// D Minor
 78 |     static let d = Key(root: NoteClass(.D), scale: .minor)
    |                |- warning: static property 'd' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'd' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 79 |
 80 |     /// A Minor
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:81:16: warning: static property 'a' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 79 |
 80 |     /// A Minor
 81 |     static let a = Key(root: NoteClass(.A), scale: .minor)
    |                |- warning: static property 'a' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'a' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 82 |
 83 |     /// E Minor
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:84:16: warning: static property 'e' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 82 |
 83 |     /// E Minor
 84 |     static let e = Key(root: NoteClass(.E), scale: .minor)
    |                |- warning: static property 'e' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'e' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 85 |
 86 |     /// B Minor
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:87:16: warning: static property 'b' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 85 |
 86 |     /// B Minor
 87 |     static let b = Key(root: NoteClass(.B), scale: .minor)
    |                |- warning: static property 'b' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'b' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 88 |
 89 |     /// F♯ Minor
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:90:16: warning: static property 'fs' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 88 |
 89 |     /// F♯ Minor
 90 |     static let fs = Key(root: NoteClass(.F, accidental: .sharp), scale: .minor)
    |                |- warning: static property 'fs' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'fs' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 91 |
 92 |     /// C♯ Minor
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:93:16: warning: static property 'cs' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 91 |
 92 |     /// C♯ Minor
 93 |     static let cs = Key(root: NoteClass(.C, accidental: .sharp), scale: .minor)
    |                |- warning: static property 'cs' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'cs' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 94 |
 95 |     /// G♯ Minor
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:96:16: warning: static property 'gs' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 94 |
 95 |     /// G♯ Minor
 96 |     static let gs = Key(root: NoteClass(.G, accidental: .sharp), scale: .minor)
    |                |- warning: static property 'gs' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'gs' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 97 |
 98 |     /// D♯ Minor
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:99:16: warning: static property 'ds' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 97 |
 98 |     /// D♯ Minor
 99 |     static let ds = Key(root: NoteClass(.D, accidental: .sharp), scale: .minor)
    |                |- warning: static property 'ds' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'ds' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
100 |
101 |     /// A♯ Minor
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:102:16: warning: static property 'as' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
100 |
101 |     /// A♯ Minor
102 |     static let `as` = Key(root: NoteClass(.A, accidental: .sharp), scale: .minor)
    |                |- warning: static property 'as' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'as' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
103 |
104 |     /// A♭ Minor
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:105:16: warning: static property 'Abm' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
103 |
104 |     /// A♭ Minor
105 |     static let Abm = Key(root: NoteClass(.A, accidental: .flat), scale: .minor)
    |                |- warning: static property 'Abm' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'Abm' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
106 |
107 |     /// E♭ Minor
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:108:16: warning: static property 'Ebm' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
106 |
107 |     /// E♭ Minor
108 |     static let Ebm = Key(root: NoteClass(.E, accidental: .flat), scale: .minor)
    |                |- warning: static property 'Ebm' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'Ebm' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
109 |
110 |     /// B♭ Minor
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:111:16: warning: static property 'Bbm' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
109 |
110 |     /// B♭ Minor
111 |     static let Bbm = Key(root: NoteClass(.B, accidental: .flat), scale: .minor)
    |                |- warning: static property 'Bbm' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'Bbm' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
112 |
113 |     /// F Minor
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:114:16: warning: static property 'Fm' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
112 |
113 |     /// F Minor
114 |     static let Fm = Key(root: NoteClass(.F), scale: .minor)
    |                |- warning: static property 'Fm' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'Fm' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
115 |
116 |     /// C Minor
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:117:16: warning: static property 'Cm' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
115 |
116 |     /// C Minor
117 |     static let Cm = Key(root: NoteClass(.C), scale: .minor)
    |                |- warning: static property 'Cm' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'Cm' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
118 |
119 |     /// G Minor
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:120:16: warning: static property 'Gm' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
118 |
119 |     /// G Minor
120 |     static let Gm = Key(root: NoteClass(.G), scale: .minor)
    |                |- warning: static property 'Gm' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'Gm' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
121 |
122 |     /// D Minor
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:123:16: warning: static property 'Dm' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
121 |
122 |     /// D Minor
123 |     static let Dm = Key(root: NoteClass(.D), scale: .minor)
    |                |- warning: static property 'Dm' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'Dm' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
124 |
125 |     /// A Minor
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:126:16: warning: static property 'Am' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
124 |
125 |     /// A Minor
126 |     static let Am = Key(root: NoteClass(.A), scale: .minor)
    |                |- warning: static property 'Am' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'Am' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
127 |
128 |     /// E Minor
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:129:16: warning: static property 'Em' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
127 |
128 |     /// E Minor
129 |     static let Em = Key(root: NoteClass(.E), scale: .minor)
    |                |- warning: static property 'Em' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'Em' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
130 |
131 |     /// B Minor
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:132:16: warning: static property 'Bm' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
130 |
131 |     /// B Minor
132 |     static let Bm = Key(root: NoteClass(.B), scale: .minor)
    |                |- warning: static property 'Bm' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'Bm' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
133 |
134 |     /// F♯ Minor
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:135:16: warning: static property 'Fsm' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
133 |
134 |     /// F♯ Minor
135 |     static let Fsm = Key(root: NoteClass(.F, accidental: .sharp), scale: .minor)
    |                |- warning: static property 'Fsm' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'Fsm' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
136 |
137 |     /// C♯ Minor
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:138:16: warning: static property 'Csm' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
136 |
137 |     /// C♯ Minor
138 |     static let Csm = Key(root: NoteClass(.C, accidental: .sharp), scale: .minor)
    |                |- warning: static property 'Csm' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'Csm' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
139 |
140 |     /// G♯ Minor
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:141:16: warning: static property 'Gsm' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
139 |
140 |     /// G♯ Minor
141 |     static let Gsm = Key(root: NoteClass(.G, accidental: .sharp), scale: .minor)
    |                |- warning: static property 'Gsm' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'Gsm' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
142 |
143 |     /// D♯ Minor
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:144:16: warning: static property 'Dsm' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
142 |
143 |     /// D♯ Minor
144 |     static let Dsm = Key(root: NoteClass(.D, accidental: .sharp), scale: .minor)
    |                |- warning: static property 'Dsm' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'Dsm' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
145 |
146 |     /// A♯ Minor
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:147:16: warning: static property 'Asm' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
145 |
146 |     /// A♯ Minor
147 |     static let Asm = Key(root: NoteClass(.A, accidental: .sharp), scale: .minor)
    |                |- warning: static property 'Asm' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'Asm' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
148 | }
149 |
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/ChordTable.swift:7:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'ChordTable' may have shared mutable state; this is an error in the Swift 6 language mode
 4 |
 5 | /// A table of note sets so we can look up chord names.
 6 | public class ChordTable {
   |              `- note: class 'ChordTable' does not conform to the 'Sendable' protocol
 7 |     public static let shared = ChordTable()
   |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'ChordTable' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 8 |
 9 |     static func hash(_ noteClasses: [NoteClass]) -> Int {
[20/26] Compiling Tonic Key.swift
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:7:16: warning: static property 'circleOfFifths' is not concurrency-safe because non-'Sendable' type '[Key]' may have shared mutable state; this is an error in the Swift 6 language mode
  5 | public extension Key {
  6 |
  7 |     static let circleOfFifths: [Key] = [.C, .G, .D, .A, .E, .B, .Fs, .Cs]
    |                |- warning: static property 'circleOfFifths' is not concurrency-safe because non-'Sendable' type '[Key]' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'circleOfFifths' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
  8 |     static let circleOfFourths: [Key] = [.F, .Bb, .Eb, .Ab, .Db, .Gb, .Cb]
  9 |
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:34:16: warning: static property 'C' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 32 |
 33 |     /// C Major
 34 |     static let C = Key(root: NoteClass(.C), scale: .major)
    |                |- warning: static property 'C' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'C' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 35 |
 36 |     /// G Major
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:37:16: warning: static property 'G' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 35 |
 36 |     /// G Major
 37 |     static let G = Key(root: NoteClass(.G), scale: .major)
    |                |- warning: static property 'G' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'G' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 38 |
 39 |     /// D Major
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:40:16: warning: static property 'D' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 38 |
 39 |     /// D Major
 40 |     static let D = Key(root: NoteClass(.D), scale: .major)
    |                |- warning: static property 'D' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'D' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 41 |
 42 |     /// A Major
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:43:16: warning: static property 'A' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 41 |
 42 |     /// A Major
 43 |     static let A = Key(root: NoteClass(.A), scale: .major)
    |                |- warning: static property 'A' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'A' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 44 |
 45 |     /// E Major
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:46:16: warning: static property 'E' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 44 |
 45 |     /// E Major
 46 |     static let E = Key(root: NoteClass(.E), scale: .major)
    |                |- warning: static property 'E' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'E' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 47 |
 48 |     /// B Major
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:49:16: warning: static property 'B' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 47 |
 48 |     /// B Major
 49 |     static let B = Key(root: NoteClass(.B), scale: .major)
    |                |- warning: static property 'B' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'B' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 50 |
 51 |     /// F♯ Major
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:52:16: warning: static property 'Fs' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 50 |
 51 |     /// F♯ Major
 52 |     static let Fs = Key(root: NoteClass(.F, accidental: .sharp), scale: .major)
    |                |- warning: static property 'Fs' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'Fs' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 53 |
 54 |     /// C♯ Major
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:55:16: warning: static property 'Cs' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 53 |
 54 |     /// C♯ Major
 55 |     static let Cs = Key(root: NoteClass(.C, accidental: .sharp), scale: .major)
    |                |- warning: static property 'Cs' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'Cs' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 56 |
 57 |     // MARK: - Minor keys
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:8:16: warning: static property 'circleOfFourths' is not concurrency-safe because non-'Sendable' type '[Key]' may have shared mutable state; this is an error in the Swift 6 language mode
  6 |
  7 |     static let circleOfFifths: [Key] = [.C, .G, .D, .A, .E, .B, .Fs, .Cs]
  8 |     static let circleOfFourths: [Key] = [.F, .Bb, .Eb, .Ab, .Db, .Gb, .Cb]
    |                |- warning: static property 'circleOfFourths' is not concurrency-safe because non-'Sendable' type '[Key]' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'circleOfFourths' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
  9 |
 10 |     // MARK: - Major keys
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:31:16: warning: static property 'F' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 29 |
 30 |     /// F Major
 31 |     static let F = Key(root: NoteClass(.F), scale: .major)
    |                |- warning: static property 'F' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'F' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 32 |
 33 |     /// C Major
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:28:16: warning: static property 'Bb' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 26 |
 27 |     /// B♭ Major
 28 |     static let Bb = Key(root: NoteClass(.B, accidental: .flat), scale: .major)
    |                |- warning: static property 'Bb' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'Bb' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 29 |
 30 |     /// F Major
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:25:16: warning: static property 'Eb' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 23 |
 24 |     /// E♭ Major
 25 |     static let Eb = Key(root: NoteClass(.E, accidental: .flat), scale: .major)
    |                |- warning: static property 'Eb' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'Eb' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 26 |
 27 |     /// B♭ Major
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:22:16: warning: static property 'Ab' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 20 |
 21 |     /// A♭ Major
 22 |     static let Ab = Key(root: NoteClass(.A, accidental: .flat), scale: .major)
    |                |- warning: static property 'Ab' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'Ab' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 23 |
 24 |     /// E♭ Major
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:19:16: warning: static property 'Db' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 17 |
 18 |     /// D♭ Major
 19 |     static let Db = Key(root: NoteClass(.D, accidental: .flat), scale: .major)
    |                |- warning: static property 'Db' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'Db' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 20 |
 21 |     /// A♭ Major
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:16:16: warning: static property 'Gb' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 14 |
 15 |     /// G♭ Major
 16 |     static let Gb = Key(root: NoteClass(.G, accidental: .flat), scale: .major)
    |                |- warning: static property 'Gb' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'Gb' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 17 |
 18 |     /// D♭ Major
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:13:16: warning: static property 'Cb' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 11 |
 12 |     /// C♭ Major
 13 |     static let Cb = Key(root: NoteClass(.C, accidental: .flat), scale: .major)
    |                |- warning: static property 'Cb' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'Cb' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 14 |
 15 |     /// G♭ Major
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Scale+Shortcuts.swift:9:16: warning: static property 'major' is not concurrency-safe because non-'Sendable' type 'Scale' may have shared mutable state; this is an error in the Swift 6 language mode
  7 |
  8 |     /// Major scale
  9 |     static let major = Scale(intervals: Scale.ionian.intervals, description: "Major")
    |                |- warning: static property 'major' is not concurrency-safe because non-'Sendable' type 'Scale' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'major' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 10 |
 11 |     /// Minor scale
/host/spi-builder-workspace/Sources/Tonic/Scale.swift:6:15: note: consider making struct 'Scale' conform to the 'Sendable' protocol
 4 |
 5 | /// A set of intervals from the root (tonic).
 6 | public struct Scale: OptionSet, Hashable {
   |               `- note: consider making struct 'Scale' conform to the 'Sendable' protocol
 7 |     public let rawValue: Int
 8 |
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:60:16: warning: static property 'ab' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 58 |
 59 |     /// A♭ Minor
 60 |     static let ab = Key(root: NoteClass(.A, accidental: .flat), scale: .minor)
    |                |- warning: static property 'ab' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'ab' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 61 |
 62 |     /// E♭ Minor
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Scale+Shortcuts.swift:12:16: warning: static property 'minor' is not concurrency-safe because non-'Sendable' type 'Scale' may have shared mutable state; this is an error in the Swift 6 language mode
 10 |
 11 |     /// Minor scale
 12 |     static let minor = Scale(intervals: Scale.aeolian.intervals, description: "Minor")
    |                |- warning: static property 'minor' is not concurrency-safe because non-'Sendable' type 'Scale' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'minor' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 13 |
 14 |     /// Harmonic minor scale
/host/spi-builder-workspace/Sources/Tonic/Scale.swift:6:15: note: consider making struct 'Scale' conform to the 'Sendable' protocol
 4 |
 5 | /// A set of intervals from the root (tonic).
 6 | public struct Scale: OptionSet, Hashable {
   |               `- note: consider making struct 'Scale' conform to the 'Sendable' protocol
 7 |     public let rawValue: Int
 8 |
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:63:16: warning: static property 'eb' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 61 |
 62 |     /// E♭ Minor
 63 |     static let eb = Key(root: NoteClass(.E, accidental: .flat), scale: .minor)
    |                |- warning: static property 'eb' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'eb' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 64 |
 65 |     /// B♭ Minor
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:66:16: warning: static property 'bb' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 64 |
 65 |     /// B♭ Minor
 66 |     static let bb = Key(root: NoteClass(.B, accidental: .flat), scale: .minor)
    |                |- warning: static property 'bb' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'bb' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 67 |
 68 |     /// F Minor
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:69:16: warning: static property 'f' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 67 |
 68 |     /// F Minor
 69 |     static let f = Key(root: NoteClass(.F), scale: .minor)
    |                |- warning: static property 'f' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'f' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 70 |
 71 |     /// C Minor
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:72:16: warning: static property 'c' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 70 |
 71 |     /// C Minor
 72 |     static let c = Key(root: NoteClass(.C), scale: .minor)
    |                |- warning: static property 'c' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'c' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 73 |
 74 |     /// G Minor
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:75:16: warning: static property 'g' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 73 |
 74 |     /// G Minor
 75 |     static let g = Key(root: NoteClass(.G), scale: .minor)
    |                |- warning: static property 'g' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'g' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 76 |
 77 |     /// D Minor
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:78:16: warning: static property 'd' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 76 |
 77 |     /// D Minor
 78 |     static let d = Key(root: NoteClass(.D), scale: .minor)
    |                |- warning: static property 'd' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'd' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 79 |
 80 |     /// A Minor
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:81:16: warning: static property 'a' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 79 |
 80 |     /// A Minor
 81 |     static let a = Key(root: NoteClass(.A), scale: .minor)
    |                |- warning: static property 'a' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'a' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 82 |
 83 |     /// E Minor
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:84:16: warning: static property 'e' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 82 |
 83 |     /// E Minor
 84 |     static let e = Key(root: NoteClass(.E), scale: .minor)
    |                |- warning: static property 'e' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'e' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 85 |
 86 |     /// B Minor
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:87:16: warning: static property 'b' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 85 |
 86 |     /// B Minor
 87 |     static let b = Key(root: NoteClass(.B), scale: .minor)
    |                |- warning: static property 'b' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'b' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 88 |
 89 |     /// F♯ Minor
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:90:16: warning: static property 'fs' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 88 |
 89 |     /// F♯ Minor
 90 |     static let fs = Key(root: NoteClass(.F, accidental: .sharp), scale: .minor)
    |                |- warning: static property 'fs' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'fs' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 91 |
 92 |     /// C♯ Minor
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:93:16: warning: static property 'cs' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 91 |
 92 |     /// C♯ Minor
 93 |     static let cs = Key(root: NoteClass(.C, accidental: .sharp), scale: .minor)
    |                |- warning: static property 'cs' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'cs' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 94 |
 95 |     /// G♯ Minor
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:96:16: warning: static property 'gs' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 94 |
 95 |     /// G♯ Minor
 96 |     static let gs = Key(root: NoteClass(.G, accidental: .sharp), scale: .minor)
    |                |- warning: static property 'gs' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'gs' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 97 |
 98 |     /// D♯ Minor
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:99:16: warning: static property 'ds' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 97 |
 98 |     /// D♯ Minor
 99 |     static let ds = Key(root: NoteClass(.D, accidental: .sharp), scale: .minor)
    |                |- warning: static property 'ds' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'ds' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
100 |
101 |     /// A♯ Minor
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:102:16: warning: static property 'as' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
100 |
101 |     /// A♯ Minor
102 |     static let `as` = Key(root: NoteClass(.A, accidental: .sharp), scale: .minor)
    |                |- warning: static property 'as' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'as' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
103 |
104 |     /// A♭ Minor
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:105:16: warning: static property 'Abm' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
103 |
104 |     /// A♭ Minor
105 |     static let Abm = Key(root: NoteClass(.A, accidental: .flat), scale: .minor)
    |                |- warning: static property 'Abm' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'Abm' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
106 |
107 |     /// E♭ Minor
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:108:16: warning: static property 'Ebm' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
106 |
107 |     /// E♭ Minor
108 |     static let Ebm = Key(root: NoteClass(.E, accidental: .flat), scale: .minor)
    |                |- warning: static property 'Ebm' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'Ebm' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
109 |
110 |     /// B♭ Minor
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:111:16: warning: static property 'Bbm' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
109 |
110 |     /// B♭ Minor
111 |     static let Bbm = Key(root: NoteClass(.B, accidental: .flat), scale: .minor)
    |                |- warning: static property 'Bbm' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'Bbm' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
112 |
113 |     /// F Minor
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:114:16: warning: static property 'Fm' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
112 |
113 |     /// F Minor
114 |     static let Fm = Key(root: NoteClass(.F), scale: .minor)
    |                |- warning: static property 'Fm' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'Fm' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
115 |
116 |     /// C Minor
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:117:16: warning: static property 'Cm' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
115 |
116 |     /// C Minor
117 |     static let Cm = Key(root: NoteClass(.C), scale: .minor)
    |                |- warning: static property 'Cm' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'Cm' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
118 |
119 |     /// G Minor
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:120:16: warning: static property 'Gm' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
118 |
119 |     /// G Minor
120 |     static let Gm = Key(root: NoteClass(.G), scale: .minor)
    |                |- warning: static property 'Gm' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'Gm' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
121 |
122 |     /// D Minor
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:123:16: warning: static property 'Dm' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
121 |
122 |     /// D Minor
123 |     static let Dm = Key(root: NoteClass(.D), scale: .minor)
    |                |- warning: static property 'Dm' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'Dm' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
124 |
125 |     /// A Minor
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:126:16: warning: static property 'Am' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
124 |
125 |     /// A Minor
126 |     static let Am = Key(root: NoteClass(.A), scale: .minor)
    |                |- warning: static property 'Am' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'Am' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
127 |
128 |     /// E Minor
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:129:16: warning: static property 'Em' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
127 |
128 |     /// E Minor
129 |     static let Em = Key(root: NoteClass(.E), scale: .minor)
    |                |- warning: static property 'Em' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'Em' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
130 |
131 |     /// B Minor
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:132:16: warning: static property 'Bm' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
130 |
131 |     /// B Minor
132 |     static let Bm = Key(root: NoteClass(.B), scale: .minor)
    |                |- warning: static property 'Bm' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'Bm' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
133 |
134 |     /// F♯ Minor
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:135:16: warning: static property 'Fsm' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
133 |
134 |     /// F♯ Minor
135 |     static let Fsm = Key(root: NoteClass(.F, accidental: .sharp), scale: .minor)
    |                |- warning: static property 'Fsm' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'Fsm' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
136 |
137 |     /// C♯ Minor
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:138:16: warning: static property 'Csm' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
136 |
137 |     /// C♯ Minor
138 |     static let Csm = Key(root: NoteClass(.C, accidental: .sharp), scale: .minor)
    |                |- warning: static property 'Csm' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'Csm' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
139 |
140 |     /// G♯ Minor
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:141:16: warning: static property 'Gsm' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
139 |
140 |     /// G♯ Minor
141 |     static let Gsm = Key(root: NoteClass(.G, accidental: .sharp), scale: .minor)
    |                |- warning: static property 'Gsm' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'Gsm' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
142 |
143 |     /// D♯ Minor
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:144:16: warning: static property 'Dsm' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
142 |
143 |     /// D♯ Minor
144 |     static let Dsm = Key(root: NoteClass(.D, accidental: .sharp), scale: .minor)
    |                |- warning: static property 'Dsm' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'Dsm' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
145 |
146 |     /// A♯ Minor
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:147:16: warning: static property 'Asm' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
145 |
146 |     /// A♯ Minor
147 |     static let Asm = Key(root: NoteClass(.A, accidental: .sharp), scale: .minor)
    |                |- warning: static property 'Asm' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'Asm' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
148 | }
149 |
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/ChordTable.swift:7:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'ChordTable' may have shared mutable state; this is an error in the Swift 6 language mode
 4 |
 5 | /// A table of note sets so we can look up chord names.
 6 | public class ChordTable {
   |              `- note: class 'ChordTable' does not conform to the 'Sendable' protocol
 7 |     public static let shared = ChordTable()
   |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'ChordTable' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 8 |
 9 |     static func hash(_ noteClasses: [NoteClass]) -> Int {
[21/26] Compiling Tonic Chord.swift
/host/spi-builder-workspace/Sources/Tonic/ChordTable.swift:7:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'ChordTable' may have shared mutable state; this is an error in the Swift 6 language mode
 4 |
 5 | /// A table of note sets so we can look up chord names.
 6 | public class ChordTable {
   |              `- note: class 'ChordTable' does not conform to the 'Sendable' protocol
 7 |     public static let shared = ChordTable()
   |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'ChordTable' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 8 |
 9 |     static func hash(_ noteClasses: [NoteClass]) -> Int {
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:34:16: warning: static property 'C' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 32 |
 33 |     /// C Major
 34 |     static let C = Key(root: NoteClass(.C), scale: .major)
    |                |- warning: static property 'C' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'C' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 35 |
 36 |     /// G Major
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Chord.swift:292:49: warning: 'getAllChordsForNoteSet' is deprecated: Please use getRankedChords() for higher quality chord detection
290 |     /// want to list the notes C, E, G, A as C6 if the C is in the bass
291 |     public static func getRankedChords(from notes: [Note]) -> [Chord] {
292 |         let potentialChords = ChordTable.shared.getAllChordsForNoteSet(NoteSet(notes: notes))
    |                                                 |- warning: 'getAllChordsForNoteSet' is deprecated: Please use getRankedChords() for higher quality chord detection
    |                                                 `- note: use 'getRankedChords' instead
293 |         if potentialChords.isEmpty { return [] }
294 |         let orderedNotes = notes.sorted(by: { f, s in  f.noteNumber < s.noteNumber })
/host/spi-builder-workspace/Sources/Tonic/ChordTable.swift:71:62: warning: 'generateAllChordsIncludingEnharmonic()' is deprecated: Please use getRankedChords() for higher quality chord detection
69 |
70 |     /// All chords include enharmonic (same NoteSet) - Use "chords" alternative when enharmonic chords are not needed
71 |     lazy var chordsIncludingEnharmonic: [Chord] = ChordTable.generateAllChordsIncludingEnharmonic()
   |                                                              |- warning: 'generateAllChordsIncludingEnharmonic()' is deprecated: Please use getRankedChords() for higher quality chord detection
   |                                                              `- note: use 'getRankedChords()' instead
72 |
73 |     /// Returns all of the chord options (enharmonic chords) for a set a notes (slow but effective)
[22/26] Compiling Tonic ChordTable.swift
/host/spi-builder-workspace/Sources/Tonic/ChordTable.swift:7:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'ChordTable' may have shared mutable state; this is an error in the Swift 6 language mode
 4 |
 5 | /// A table of note sets so we can look up chord names.
 6 | public class ChordTable {
   |              `- note: class 'ChordTable' does not conform to the 'Sendable' protocol
 7 |     public static let shared = ChordTable()
   |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'ChordTable' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 8 |
 9 |     static func hash(_ noteClasses: [NoteClass]) -> Int {
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:34:16: warning: static property 'C' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 32 |
 33 |     /// C Major
 34 |     static let C = Key(root: NoteClass(.C), scale: .major)
    |                |- warning: static property 'C' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'C' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 35 |
 36 |     /// G Major
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Chord.swift:292:49: warning: 'getAllChordsForNoteSet' is deprecated: Please use getRankedChords() for higher quality chord detection
290 |     /// want to list the notes C, E, G, A as C6 if the C is in the bass
291 |     public static func getRankedChords(from notes: [Note]) -> [Chord] {
292 |         let potentialChords = ChordTable.shared.getAllChordsForNoteSet(NoteSet(notes: notes))
    |                                                 |- warning: 'getAllChordsForNoteSet' is deprecated: Please use getRankedChords() for higher quality chord detection
    |                                                 `- note: use 'getRankedChords' instead
293 |         if potentialChords.isEmpty { return [] }
294 |         let orderedNotes = notes.sorted(by: { f, s in  f.noteNumber < s.noteNumber })
/host/spi-builder-workspace/Sources/Tonic/ChordTable.swift:71:62: warning: 'generateAllChordsIncludingEnharmonic()' is deprecated: Please use getRankedChords() for higher quality chord detection
69 |
70 |     /// All chords include enharmonic (same NoteSet) - Use "chords" alternative when enharmonic chords are not needed
71 |     lazy var chordsIncludingEnharmonic: [Chord] = ChordTable.generateAllChordsIncludingEnharmonic()
   |                                                              |- warning: 'generateAllChordsIncludingEnharmonic()' is deprecated: Please use getRankedChords() for higher quality chord detection
   |                                                              `- note: use 'getRankedChords()' instead
72 |
73 |     /// Returns all of the chord options (enharmonic chords) for a set a notes (slow but effective)
[23/26] Compiling Tonic ChordType.swift
/host/spi-builder-workspace/Sources/Tonic/ChordTable.swift:7:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'ChordTable' may have shared mutable state; this is an error in the Swift 6 language mode
 4 |
 5 | /// A table of note sets so we can look up chord names.
 6 | public class ChordTable {
   |              `- note: class 'ChordTable' does not conform to the 'Sendable' protocol
 7 |     public static let shared = ChordTable()
   |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'ChordTable' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 8 |
 9 |     static func hash(_ noteClasses: [NoteClass]) -> Int {
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:34:16: warning: static property 'C' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 32 |
 33 |     /// C Major
 34 |     static let C = Key(root: NoteClass(.C), scale: .major)
    |                |- warning: static property 'C' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'C' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 35 |
 36 |     /// G Major
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/Chord.swift:292:49: warning: 'getAllChordsForNoteSet' is deprecated: Please use getRankedChords() for higher quality chord detection
290 |     /// want to list the notes C, E, G, A as C6 if the C is in the bass
291 |     public static func getRankedChords(from notes: [Note]) -> [Chord] {
292 |         let potentialChords = ChordTable.shared.getAllChordsForNoteSet(NoteSet(notes: notes))
    |                                                 |- warning: 'getAllChordsForNoteSet' is deprecated: Please use getRankedChords() for higher quality chord detection
    |                                                 `- note: use 'getRankedChords' instead
293 |         if potentialChords.isEmpty { return [] }
294 |         let orderedNotes = notes.sorted(by: { f, s in  f.noteNumber < s.noteNumber })
/host/spi-builder-workspace/Sources/Tonic/ChordTable.swift:71:62: warning: 'generateAllChordsIncludingEnharmonic()' is deprecated: Please use getRankedChords() for higher quality chord detection
69 |
70 |     /// All chords include enharmonic (same NoteSet) - Use "chords" alternative when enharmonic chords are not needed
71 |     lazy var chordsIncludingEnharmonic: [Chord] = ChordTable.generateAllChordsIncludingEnharmonic()
   |                                                              |- warning: 'generateAllChordsIncludingEnharmonic()' is deprecated: Please use getRankedChords() for higher quality chord detection
   |                                                              `- note: use 'getRankedChords()' instead
72 |
73 |     /// Returns all of the chord options (enharmonic chords) for a set a notes (slow but effective)
[24/26] Compiling Tonic Note.swift
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:34:16: warning: static property 'C' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 32 |
 33 |     /// C Major
 34 |     static let C = Key(root: NoteClass(.C), scale: .major)
    |                |- warning: static property 'C' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'C' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 35 |
 36 |     /// G Major
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:7:16: warning: static property 'Cb' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 5 | public extension NoteClass {
 6 |     /// C♭
 7 |     static var Cb = NoteClass(.C, accidental: .flat)
   |                |- warning: static property 'Cb' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'Cb' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'Cb' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 8 |     /// C
 9 |     static var C = NoteClass(.C)
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:25:16: warning: static property 'Es' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
23 |     static var E = NoteClass(.E)
24 |     /// E♯
25 |     static var Es = NoteClass(.E, accidental: .sharp)
   |                |- warning: static property 'Es' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'Es' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'Es' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
26 |
27 |     /// F♭
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:28:16: warning: static property 'Fb' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
26 |
27 |     /// F♭
28 |     static var Fb = NoteClass(.F, accidental: .flat)
   |                |- warning: static property 'Fb' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'Fb' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'Fb' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
29 |     /// F
30 |     static var F = NoteClass(.F)
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:53:16: warning: static property 'Bs' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
51 |     static var B = NoteClass(.B)
52 |     /// B♯
53 |     static var Bs = NoteClass(.B, accidental: .sharp)
   |                |- warning: static property 'Bs' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'Bs' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'Bs' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
54 | }
55 |
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:9:16: warning: static property 'C' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 7 |     static var Cb = NoteClass(.C, accidental: .flat)
 8 |     /// C
 9 |     static var C = NoteClass(.C)
   |                |- warning: static property 'C' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'C' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'C' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
10 |     /// C♯
11 |     static var Cs = NoteClass(.C, accidental: .sharp)
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:11:16: warning: static property 'Cs' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 9 |     static var C = NoteClass(.C)
10 |     /// C♯
11 |     static var Cs = NoteClass(.C, accidental: .sharp)
   |                |- warning: static property 'Cs' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'Cs' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'Cs' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
12 |
13 |     /// D♭
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:14:16: warning: static property 'Db' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
12 |
13 |     /// D♭
14 |     static var Db = NoteClass(.D, accidental: .flat)
   |                |- warning: static property 'Db' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'Db' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'Db' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |     /// D
16 |     static var D = NoteClass(.D)
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:16:16: warning: static property 'D' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
14 |     static var Db = NoteClass(.D, accidental: .flat)
15 |     /// D
16 |     static var D = NoteClass(.D)
   |                |- warning: static property 'D' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'D' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'D' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 |     /// D♯
18 |     static var Ds = NoteClass(.D, accidental: .sharp)
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:18:16: warning: static property 'Ds' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
16 |     static var D = NoteClass(.D)
17 |     /// D♯
18 |     static var Ds = NoteClass(.D, accidental: .sharp)
   |                |- warning: static property 'Ds' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'Ds' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'Ds' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
19 |
20 |     /// E♭
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:21:16: warning: static property 'Eb' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
19 |
20 |     /// E♭
21 |     static var Eb = NoteClass(.E, accidental: .flat)
   |                |- warning: static property 'Eb' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'Eb' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'Eb' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
22 |     /// E
23 |     static var E = NoteClass(.E)
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:23:16: warning: static property 'E' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
21 |     static var Eb = NoteClass(.E, accidental: .flat)
22 |     /// E
23 |     static var E = NoteClass(.E)
   |                |- warning: static property 'E' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'E' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'E' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
24 |     /// E♯
25 |     static var Es = NoteClass(.E, accidental: .sharp)
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:30:16: warning: static property 'F' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
28 |     static var Fb = NoteClass(.F, accidental: .flat)
29 |     /// F
30 |     static var F = NoteClass(.F)
   |                |- warning: static property 'F' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'F' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'F' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
31 |     /// F♯
32 |     static var Fs = NoteClass(.F, accidental: .sharp)
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:32:16: warning: static property 'Fs' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
30 |     static var F = NoteClass(.F)
31 |     /// F♯
32 |     static var Fs = NoteClass(.F, accidental: .sharp)
   |                |- warning: static property 'Fs' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'Fs' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'Fs' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
33 |
34 |     /// G♭
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:35:16: warning: static property 'Gb' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
33 |
34 |     /// G♭
35 |     static var Gb = NoteClass(.G, accidental: .flat)
   |                |- warning: static property 'Gb' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'Gb' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'Gb' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
36 |     /// G
37 |     static var G = NoteClass(.G)
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:37:16: warning: static property 'G' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
35 |     static var Gb = NoteClass(.G, accidental: .flat)
36 |     /// G
37 |     static var G = NoteClass(.G)
   |                |- warning: static property 'G' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'G' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'G' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
38 |     /// G♯
39 |     static var Gs = NoteClass(.G, accidental: .sharp)
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:39:16: warning: static property 'Gs' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
37 |     static var G = NoteClass(.G)
38 |     /// G♯
39 |     static var Gs = NoteClass(.G, accidental: .sharp)
   |                |- warning: static property 'Gs' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'Gs' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'Gs' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
40 |
41 |     /// A♭
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:42:16: warning: static property 'Ab' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
40 |
41 |     /// A♭
42 |     static var Ab = NoteClass(.A, accidental: .flat)
   |                |- warning: static property 'Ab' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'Ab' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'Ab' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
43 |     /// A
44 |     static var A = NoteClass(.A)
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:44:16: warning: static property 'A' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
42 |     static var Ab = NoteClass(.A, accidental: .flat)
43 |     /// A
44 |     static var A = NoteClass(.A)
   |                |- warning: static property 'A' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'A' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'A' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
45 |     /// A♯
46 |     static var As = NoteClass(.A, accidental: .sharp)
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:46:16: warning: static property 'As' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
44 |     static var A = NoteClass(.A)
45 |     /// A♯
46 |     static var As = NoteClass(.A, accidental: .sharp)
   |                |- warning: static property 'As' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'As' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'As' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
47 |
48 |     /// B♭
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:49:16: warning: static property 'Bb' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
47 |
48 |     /// B♭
49 |     static var Bb = NoteClass(.B, accidental: .flat)
   |                |- warning: static property 'Bb' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'Bb' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'Bb' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
50 |     /// B
51 |     static var B = NoteClass(.B)
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:51:16: warning: static property 'B' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
49 |     static var Bb = NoteClass(.B, accidental: .flat)
50 |     /// B
51 |     static var B = NoteClass(.B)
   |                |- warning: static property 'B' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'B' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'B' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
52 |     /// B♯
53 |     static var Bs = NoteClass(.B, accidental: .sharp)
[25/26] Compiling Tonic NoteClass+Shortcuts.swift
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:34:16: warning: static property 'C' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 32 |
 33 |     /// C Major
 34 |     static let C = Key(root: NoteClass(.C), scale: .major)
    |                |- warning: static property 'C' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'C' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 35 |
 36 |     /// G Major
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:7:16: warning: static property 'Cb' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 5 | public extension NoteClass {
 6 |     /// C♭
 7 |     static var Cb = NoteClass(.C, accidental: .flat)
   |                |- warning: static property 'Cb' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'Cb' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'Cb' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 8 |     /// C
 9 |     static var C = NoteClass(.C)
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:25:16: warning: static property 'Es' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
23 |     static var E = NoteClass(.E)
24 |     /// E♯
25 |     static var Es = NoteClass(.E, accidental: .sharp)
   |                |- warning: static property 'Es' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'Es' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'Es' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
26 |
27 |     /// F♭
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:28:16: warning: static property 'Fb' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
26 |
27 |     /// F♭
28 |     static var Fb = NoteClass(.F, accidental: .flat)
   |                |- warning: static property 'Fb' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'Fb' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'Fb' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
29 |     /// F
30 |     static var F = NoteClass(.F)
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:53:16: warning: static property 'Bs' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
51 |     static var B = NoteClass(.B)
52 |     /// B♯
53 |     static var Bs = NoteClass(.B, accidental: .sharp)
   |                |- warning: static property 'Bs' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'Bs' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'Bs' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
54 | }
55 |
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:9:16: warning: static property 'C' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 7 |     static var Cb = NoteClass(.C, accidental: .flat)
 8 |     /// C
 9 |     static var C = NoteClass(.C)
   |                |- warning: static property 'C' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'C' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'C' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
10 |     /// C♯
11 |     static var Cs = NoteClass(.C, accidental: .sharp)
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:11:16: warning: static property 'Cs' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 9 |     static var C = NoteClass(.C)
10 |     /// C♯
11 |     static var Cs = NoteClass(.C, accidental: .sharp)
   |                |- warning: static property 'Cs' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'Cs' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'Cs' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
12 |
13 |     /// D♭
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:14:16: warning: static property 'Db' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
12 |
13 |     /// D♭
14 |     static var Db = NoteClass(.D, accidental: .flat)
   |                |- warning: static property 'Db' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'Db' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'Db' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |     /// D
16 |     static var D = NoteClass(.D)
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:16:16: warning: static property 'D' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
14 |     static var Db = NoteClass(.D, accidental: .flat)
15 |     /// D
16 |     static var D = NoteClass(.D)
   |                |- warning: static property 'D' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'D' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'D' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 |     /// D♯
18 |     static var Ds = NoteClass(.D, accidental: .sharp)
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:18:16: warning: static property 'Ds' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
16 |     static var D = NoteClass(.D)
17 |     /// D♯
18 |     static var Ds = NoteClass(.D, accidental: .sharp)
   |                |- warning: static property 'Ds' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'Ds' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'Ds' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
19 |
20 |     /// E♭
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:21:16: warning: static property 'Eb' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
19 |
20 |     /// E♭
21 |     static var Eb = NoteClass(.E, accidental: .flat)
   |                |- warning: static property 'Eb' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'Eb' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'Eb' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
22 |     /// E
23 |     static var E = NoteClass(.E)
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:23:16: warning: static property 'E' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
21 |     static var Eb = NoteClass(.E, accidental: .flat)
22 |     /// E
23 |     static var E = NoteClass(.E)
   |                |- warning: static property 'E' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'E' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'E' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
24 |     /// E♯
25 |     static var Es = NoteClass(.E, accidental: .sharp)
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:30:16: warning: static property 'F' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
28 |     static var Fb = NoteClass(.F, accidental: .flat)
29 |     /// F
30 |     static var F = NoteClass(.F)
   |                |- warning: static property 'F' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'F' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'F' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
31 |     /// F♯
32 |     static var Fs = NoteClass(.F, accidental: .sharp)
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:32:16: warning: static property 'Fs' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
30 |     static var F = NoteClass(.F)
31 |     /// F♯
32 |     static var Fs = NoteClass(.F, accidental: .sharp)
   |                |- warning: static property 'Fs' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'Fs' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'Fs' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
33 |
34 |     /// G♭
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:35:16: warning: static property 'Gb' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
33 |
34 |     /// G♭
35 |     static var Gb = NoteClass(.G, accidental: .flat)
   |                |- warning: static property 'Gb' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'Gb' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'Gb' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
36 |     /// G
37 |     static var G = NoteClass(.G)
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:37:16: warning: static property 'G' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
35 |     static var Gb = NoteClass(.G, accidental: .flat)
36 |     /// G
37 |     static var G = NoteClass(.G)
   |                |- warning: static property 'G' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'G' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'G' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
38 |     /// G♯
39 |     static var Gs = NoteClass(.G, accidental: .sharp)
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:39:16: warning: static property 'Gs' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
37 |     static var G = NoteClass(.G)
38 |     /// G♯
39 |     static var Gs = NoteClass(.G, accidental: .sharp)
   |                |- warning: static property 'Gs' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'Gs' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'Gs' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
40 |
41 |     /// A♭
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:42:16: warning: static property 'Ab' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
40 |
41 |     /// A♭
42 |     static var Ab = NoteClass(.A, accidental: .flat)
   |                |- warning: static property 'Ab' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'Ab' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'Ab' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
43 |     /// A
44 |     static var A = NoteClass(.A)
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:44:16: warning: static property 'A' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
42 |     static var Ab = NoteClass(.A, accidental: .flat)
43 |     /// A
44 |     static var A = NoteClass(.A)
   |                |- warning: static property 'A' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'A' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'A' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
45 |     /// A♯
46 |     static var As = NoteClass(.A, accidental: .sharp)
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:46:16: warning: static property 'As' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
44 |     static var A = NoteClass(.A)
45 |     /// A♯
46 |     static var As = NoteClass(.A, accidental: .sharp)
   |                |- warning: static property 'As' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'As' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'As' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
47 |
48 |     /// B♭
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:49:16: warning: static property 'Bb' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
47 |
48 |     /// B♭
49 |     static var Bb = NoteClass(.B, accidental: .flat)
   |                |- warning: static property 'Bb' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'Bb' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'Bb' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
50 |     /// B
51 |     static var B = NoteClass(.B)
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:51:16: warning: static property 'B' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
49 |     static var Bb = NoteClass(.B, accidental: .flat)
50 |     /// B
51 |     static var B = NoteClass(.B)
   |                |- warning: static property 'B' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'B' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'B' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
52 |     /// B♯
53 |     static var Bs = NoteClass(.B, accidental: .sharp)
[26/26] Compiling Tonic NoteClass.swift
/host/spi-builder-workspace/Sources/Tonic/Key+Shortcuts.swift:34:16: warning: static property 'C' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
 32 |
 33 |     /// C Major
 34 |     static let C = Key(root: NoteClass(.C), scale: .major)
    |                |- warning: static property 'C' is not concurrency-safe because non-'Sendable' type 'Key' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'C' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 35 |
 36 |     /// G Major
/host/spi-builder-workspace/Sources/Tonic/Key.swift:8:15: note: consider making struct 'Key' conform to the 'Sendable' protocol
 6 | ///
 7 | /// A key is composed of a Root ``Note``, and a ``Scale``.
 8 | public struct Key: Equatable {
   |               `- note: consider making struct 'Key' conform to the 'Sendable' protocol
 9 |     /// The primary note class of the key, also known as the tonic
10 |     public let root: NoteClass
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:7:16: warning: static property 'Cb' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 5 | public extension NoteClass {
 6 |     /// C♭
 7 |     static var Cb = NoteClass(.C, accidental: .flat)
   |                |- warning: static property 'Cb' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'Cb' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'Cb' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 8 |     /// C
 9 |     static var C = NoteClass(.C)
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:25:16: warning: static property 'Es' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
23 |     static var E = NoteClass(.E)
24 |     /// E♯
25 |     static var Es = NoteClass(.E, accidental: .sharp)
   |                |- warning: static property 'Es' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'Es' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'Es' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
26 |
27 |     /// F♭
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:28:16: warning: static property 'Fb' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
26 |
27 |     /// F♭
28 |     static var Fb = NoteClass(.F, accidental: .flat)
   |                |- warning: static property 'Fb' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'Fb' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'Fb' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
29 |     /// F
30 |     static var F = NoteClass(.F)
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:53:16: warning: static property 'Bs' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
51 |     static var B = NoteClass(.B)
52 |     /// B♯
53 |     static var Bs = NoteClass(.B, accidental: .sharp)
   |                |- warning: static property 'Bs' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'Bs' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'Bs' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
54 | }
55 |
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:9:16: warning: static property 'C' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 7 |     static var Cb = NoteClass(.C, accidental: .flat)
 8 |     /// C
 9 |     static var C = NoteClass(.C)
   |                |- warning: static property 'C' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'C' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'C' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
10 |     /// C♯
11 |     static var Cs = NoteClass(.C, accidental: .sharp)
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:11:16: warning: static property 'Cs' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 9 |     static var C = NoteClass(.C)
10 |     /// C♯
11 |     static var Cs = NoteClass(.C, accidental: .sharp)
   |                |- warning: static property 'Cs' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'Cs' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'Cs' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
12 |
13 |     /// D♭
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:14:16: warning: static property 'Db' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
12 |
13 |     /// D♭
14 |     static var Db = NoteClass(.D, accidental: .flat)
   |                |- warning: static property 'Db' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'Db' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'Db' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |     /// D
16 |     static var D = NoteClass(.D)
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:16:16: warning: static property 'D' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
14 |     static var Db = NoteClass(.D, accidental: .flat)
15 |     /// D
16 |     static var D = NoteClass(.D)
   |                |- warning: static property 'D' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'D' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'D' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 |     /// D♯
18 |     static var Ds = NoteClass(.D, accidental: .sharp)
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:18:16: warning: static property 'Ds' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
16 |     static var D = NoteClass(.D)
17 |     /// D♯
18 |     static var Ds = NoteClass(.D, accidental: .sharp)
   |                |- warning: static property 'Ds' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'Ds' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'Ds' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
19 |
20 |     /// E♭
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:21:16: warning: static property 'Eb' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
19 |
20 |     /// E♭
21 |     static var Eb = NoteClass(.E, accidental: .flat)
   |                |- warning: static property 'Eb' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'Eb' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'Eb' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
22 |     /// E
23 |     static var E = NoteClass(.E)
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:23:16: warning: static property 'E' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
21 |     static var Eb = NoteClass(.E, accidental: .flat)
22 |     /// E
23 |     static var E = NoteClass(.E)
   |                |- warning: static property 'E' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'E' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'E' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
24 |     /// E♯
25 |     static var Es = NoteClass(.E, accidental: .sharp)
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:30:16: warning: static property 'F' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
28 |     static var Fb = NoteClass(.F, accidental: .flat)
29 |     /// F
30 |     static var F = NoteClass(.F)
   |                |- warning: static property 'F' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'F' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'F' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
31 |     /// F♯
32 |     static var Fs = NoteClass(.F, accidental: .sharp)
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:32:16: warning: static property 'Fs' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
30 |     static var F = NoteClass(.F)
31 |     /// F♯
32 |     static var Fs = NoteClass(.F, accidental: .sharp)
   |                |- warning: static property 'Fs' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'Fs' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'Fs' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
33 |
34 |     /// G♭
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:35:16: warning: static property 'Gb' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
33 |
34 |     /// G♭
35 |     static var Gb = NoteClass(.G, accidental: .flat)
   |                |- warning: static property 'Gb' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'Gb' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'Gb' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
36 |     /// G
37 |     static var G = NoteClass(.G)
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:37:16: warning: static property 'G' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
35 |     static var Gb = NoteClass(.G, accidental: .flat)
36 |     /// G
37 |     static var G = NoteClass(.G)
   |                |- warning: static property 'G' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'G' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'G' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
38 |     /// G♯
39 |     static var Gs = NoteClass(.G, accidental: .sharp)
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:39:16: warning: static property 'Gs' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
37 |     static var G = NoteClass(.G)
38 |     /// G♯
39 |     static var Gs = NoteClass(.G, accidental: .sharp)
   |                |- warning: static property 'Gs' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'Gs' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'Gs' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
40 |
41 |     /// A♭
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:42:16: warning: static property 'Ab' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
40 |
41 |     /// A♭
42 |     static var Ab = NoteClass(.A, accidental: .flat)
   |                |- warning: static property 'Ab' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'Ab' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'Ab' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
43 |     /// A
44 |     static var A = NoteClass(.A)
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:44:16: warning: static property 'A' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
42 |     static var Ab = NoteClass(.A, accidental: .flat)
43 |     /// A
44 |     static var A = NoteClass(.A)
   |                |- warning: static property 'A' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'A' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'A' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
45 |     /// A♯
46 |     static var As = NoteClass(.A, accidental: .sharp)
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:46:16: warning: static property 'As' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
44 |     static var A = NoteClass(.A)
45 |     /// A♯
46 |     static var As = NoteClass(.A, accidental: .sharp)
   |                |- warning: static property 'As' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'As' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'As' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
47 |
48 |     /// B♭
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:49:16: warning: static property 'Bb' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
47 |
48 |     /// B♭
49 |     static var Bb = NoteClass(.B, accidental: .flat)
   |                |- warning: static property 'Bb' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'Bb' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'Bb' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
50 |     /// B
51 |     static var B = NoteClass(.B)
/host/spi-builder-workspace/Sources/Tonic/NoteClass+Shortcuts.swift:51:16: warning: static property 'B' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
49 |     static var Bb = NoteClass(.B, accidental: .flat)
50 |     /// B
51 |     static var B = NoteClass(.B)
   |                |- warning: static property 'B' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'B' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'B' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
52 |     /// B♯
53 |     static var Bs = NoteClass(.B, accidental: .sharp)
Build complete! (14.32s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "Tonic",
  "name" : "Tonic",
  "path" : "/host/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "Tonic",
      "targets" : [
        "Tonic"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "TonicTests",
      "module_type" : "SwiftTarget",
      "name" : "TonicTests",
      "path" : "Tests/TonicTests",
      "sources" : [
        "BitSetTests.swift",
        "ChordTests.swift",
        "IntervalTests.swift",
        "KeyTests.swift",
        "NoteTests.swift",
        "PerformanceTests.swift",
        "ReadMeTests.swift",
        "ScaleTests.swift",
        "TonicTests.swift"
      ],
      "target_dependencies" : [
        "Tonic"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Tonic",
      "module_type" : "SwiftTarget",
      "name" : "Tonic",
      "path" : "Sources/Tonic",
      "product_memberships" : [
        "Tonic"
      ],
      "resources" : [
        {
          "path" : "/host/spi-builder-workspace/Sources/Tonic/Tonic.docc",
          "rule" : {
            "process" : {
            }
          }
        }
      ],
      "sources" : [
        "Accidental.swift",
        "BitSet.swift",
        "Chord+Shortcuts.swift",
        "Chord.swift",
        "ChordTable.swift",
        "ChordType.swift",
        "Interval.swift",
        "Key+Shortcuts.swift",
        "Key.swift",
        "Letter.swift",
        "Note+MiddleCStandard.swift",
        "Note+Shortcuts.swift",
        "Note.swift",
        "NoteClass+Shortcuts.swift",
        "NoteClass.swift",
        "NoteSet.swift",
        "Octave.swift",
        "Pitch.swift",
        "PitchColor.swift",
        "Scale+Shortcuts.swift",
        "Scale.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.6"
}
basic-6.0-latest: Pulling from finestructure/spi-images
Digest: sha256:47d26c99ca4f1ac0a332c85fd5b13ff4390e72115219984a57a68fe9d1063a05
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.0-latest
Done.