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 swift-chess, reference 1.0.8 (14d9d9), with Swift 6.0 for macOS (SPM) on 27 Nov 2024 22:15:59 UTC.

Swift 6 data race errors: 28

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.1.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures

Build Log

76 |         static var startingPositionsForWhiteBishops: [Chess.Position] = [.c1, .f1]
77 |         static var startingPositionsForBlackRooks: [Chess.Position] = [.a8, .h8]
78 |         static var startingPositionsForWhiteRooks: [Chess.Position] = [.a1, .h1]
   |                    |- warning: static property 'startingPositionsForWhiteRooks' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: convert 'startingPositionsForWhiteRooks' to a 'let' constant to make 'Sendable' shared state immutable
   |                    |- note: annotate 'startingPositionsForWhiteRooks' 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 |         static func startingPositionForRook(side: Chess.Side, kingSide: Bool) -> Chess.Position {
80 |             if side == .white {
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Store/ChessEnvironment.swift:12:16: warning: static property 'defaults' is not concurrency-safe because non-'Sendable' type 'UserDefaults?' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | public struct ChessEnvironment {
12 |     static let defaults = UserDefaults(suiteName: "Chess")
   |                |- warning: static property 'defaults' is not concurrency-safe because non-'Sendable' type 'UserDefaults?' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'defaults' 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 |     public enum TargetEnvironment {
14 |         case production
Swift.Optional:1:21: note: generic enum 'Optional' does not conform to the 'Sendable' protocol
1 | @frozen public enum Optional<Wrapped> : ~Copyable where Wrapped : ~Copyable {
  |                     `- note: generic enum 'Optional' does not conform to the 'Sendable' protocol
2 |     case none
3 |     case some(Wrapped)
[63/84] Compiling Chess SingleMoveVariant.swift
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Chess.swift:14:23: warning: static property 'log' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
12 | // Our namespace
13 | public enum Chess {
14 |     public static var log: Logger = {
   |                       |- warning: static property 'log' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'log' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'log' 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 |         var log = Logger(label: "com.dpedley.swift-chess")
16 |         log.logLevel = Logger.Level.critical
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game+Rules.swift:71:20: warning: static property 'startingPositionsForBlackPawns' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
69 |             return false
70 |         }
71 |         static var startingPositionsForBlackPawns: [Chess.Position] = [.a7, .b7, .c7, .d7, .e7, .f7, .g7, .h7]
   |                    |- warning: static property 'startingPositionsForBlackPawns' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: convert 'startingPositionsForBlackPawns' to a 'let' constant to make 'Sendable' shared state immutable
   |                    |- note: annotate 'startingPositionsForBlackPawns' 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
72 |         static var startingPositionsForWhitePawns: [Chess.Position] = [.a2, .b2, .c2, .d2, .e2, .f2, .g2, .h2]
73 |         static var startingPositionsForBlackKnights: [Chess.Position] = [.b8, .g8]
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game+Rules.swift:72:20: warning: static property 'startingPositionsForWhitePawns' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
70 |         }
71 |         static var startingPositionsForBlackPawns: [Chess.Position] = [.a7, .b7, .c7, .d7, .e7, .f7, .g7, .h7]
72 |         static var startingPositionsForWhitePawns: [Chess.Position] = [.a2, .b2, .c2, .d2, .e2, .f2, .g2, .h2]
   |                    |- warning: static property 'startingPositionsForWhitePawns' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: convert 'startingPositionsForWhitePawns' to a 'let' constant to make 'Sendable' shared state immutable
   |                    |- note: annotate 'startingPositionsForWhitePawns' 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 |         static var startingPositionsForBlackKnights: [Chess.Position] = [.b8, .g8]
74 |         static var startingPositionsForWhiteKnights: [Chess.Position] = [.b1, .g1]
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game+Rules.swift:73:20: warning: static property 'startingPositionsForBlackKnights' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
71 |         static var startingPositionsForBlackPawns: [Chess.Position] = [.a7, .b7, .c7, .d7, .e7, .f7, .g7, .h7]
72 |         static var startingPositionsForWhitePawns: [Chess.Position] = [.a2, .b2, .c2, .d2, .e2, .f2, .g2, .h2]
73 |         static var startingPositionsForBlackKnights: [Chess.Position] = [.b8, .g8]
   |                    |- warning: static property 'startingPositionsForBlackKnights' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: convert 'startingPositionsForBlackKnights' to a 'let' constant to make 'Sendable' shared state immutable
   |                    |- note: annotate 'startingPositionsForBlackKnights' 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
74 |         static var startingPositionsForWhiteKnights: [Chess.Position] = [.b1, .g1]
75 |         static var startingPositionsForBlackBishops: [Chess.Position] = [.c8, .f8]
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game+Rules.swift:74:20: warning: static property 'startingPositionsForWhiteKnights' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
72 |         static var startingPositionsForWhitePawns: [Chess.Position] = [.a2, .b2, .c2, .d2, .e2, .f2, .g2, .h2]
73 |         static var startingPositionsForBlackKnights: [Chess.Position] = [.b8, .g8]
74 |         static var startingPositionsForWhiteKnights: [Chess.Position] = [.b1, .g1]
   |                    |- warning: static property 'startingPositionsForWhiteKnights' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: convert 'startingPositionsForWhiteKnights' to a 'let' constant to make 'Sendable' shared state immutable
   |                    |- note: annotate 'startingPositionsForWhiteKnights' 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
75 |         static var startingPositionsForBlackBishops: [Chess.Position] = [.c8, .f8]
76 |         static var startingPositionsForWhiteBishops: [Chess.Position] = [.c1, .f1]
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game+Rules.swift:75:20: warning: static property 'startingPositionsForBlackBishops' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
73 |         static var startingPositionsForBlackKnights: [Chess.Position] = [.b8, .g8]
74 |         static var startingPositionsForWhiteKnights: [Chess.Position] = [.b1, .g1]
75 |         static var startingPositionsForBlackBishops: [Chess.Position] = [.c8, .f8]
   |                    |- warning: static property 'startingPositionsForBlackBishops' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: convert 'startingPositionsForBlackBishops' to a 'let' constant to make 'Sendable' shared state immutable
   |                    |- note: annotate 'startingPositionsForBlackBishops' 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 |         static var startingPositionsForWhiteBishops: [Chess.Position] = [.c1, .f1]
77 |         static var startingPositionsForBlackRooks: [Chess.Position] = [.a8, .h8]
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game+Rules.swift:76:20: warning: static property 'startingPositionsForWhiteBishops' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
74 |         static var startingPositionsForWhiteKnights: [Chess.Position] = [.b1, .g1]
75 |         static var startingPositionsForBlackBishops: [Chess.Position] = [.c8, .f8]
76 |         static var startingPositionsForWhiteBishops: [Chess.Position] = [.c1, .f1]
   |                    |- warning: static property 'startingPositionsForWhiteBishops' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: convert 'startingPositionsForWhiteBishops' to a 'let' constant to make 'Sendable' shared state immutable
   |                    |- note: annotate 'startingPositionsForWhiteBishops' 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
77 |         static var startingPositionsForBlackRooks: [Chess.Position] = [.a8, .h8]
78 |         static var startingPositionsForWhiteRooks: [Chess.Position] = [.a1, .h1]
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game+Rules.swift:77:20: warning: static property 'startingPositionsForBlackRooks' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
75 |         static var startingPositionsForBlackBishops: [Chess.Position] = [.c8, .f8]
76 |         static var startingPositionsForWhiteBishops: [Chess.Position] = [.c1, .f1]
77 |         static var startingPositionsForBlackRooks: [Chess.Position] = [.a8, .h8]
   |                    |- warning: static property 'startingPositionsForBlackRooks' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: convert 'startingPositionsForBlackRooks' to a 'let' constant to make 'Sendable' shared state immutable
   |                    |- note: annotate 'startingPositionsForBlackRooks' 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
78 |         static var startingPositionsForWhiteRooks: [Chess.Position] = [.a1, .h1]
79 |         static func startingPositionForRook(side: Chess.Side, kingSide: Bool) -> Chess.Position {
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game+Rules.swift:78:20: warning: static property 'startingPositionsForWhiteRooks' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
76 |         static var startingPositionsForWhiteBishops: [Chess.Position] = [.c1, .f1]
77 |         static var startingPositionsForBlackRooks: [Chess.Position] = [.a8, .h8]
78 |         static var startingPositionsForWhiteRooks: [Chess.Position] = [.a1, .h1]
   |                    |- warning: static property 'startingPositionsForWhiteRooks' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: convert 'startingPositionsForWhiteRooks' to a 'let' constant to make 'Sendable' shared state immutable
   |                    |- note: annotate 'startingPositionsForWhiteRooks' 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 |         static func startingPositionForRook(side: Chess.Side, kingSide: Bool) -> Chess.Position {
80 |             if side == .white {
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Store/ChessEnvironment.swift:12:16: warning: static property 'defaults' is not concurrency-safe because non-'Sendable' type 'UserDefaults?' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | public struct ChessEnvironment {
12 |     static let defaults = UserDefaults(suiteName: "Chess")
   |                |- warning: static property 'defaults' is not concurrency-safe because non-'Sendable' type 'UserDefaults?' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'defaults' 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 |     public enum TargetEnvironment {
14 |         case production
Swift.Optional:1:21: note: generic enum 'Optional' does not conform to the 'Sendable' protocol
1 | @frozen public enum Optional<Wrapped> : ~Copyable where Wrapped : ~Copyable {
  |                     `- note: generic enum 'Optional' does not conform to the 'Sendable' protocol
2 |     case none
3 |     case some(Wrapped)
[64/84] Compiling Chess Square.swift
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Chess.swift:14:23: warning: static property 'log' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
12 | // Our namespace
13 | public enum Chess {
14 |     public static var log: Logger = {
   |                       |- warning: static property 'log' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'log' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'log' 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 |         var log = Logger(label: "com.dpedley.swift-chess")
16 |         log.logLevel = Logger.Level.critical
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game+Rules.swift:71:20: warning: static property 'startingPositionsForBlackPawns' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
69 |             return false
70 |         }
71 |         static var startingPositionsForBlackPawns: [Chess.Position] = [.a7, .b7, .c7, .d7, .e7, .f7, .g7, .h7]
   |                    |- warning: static property 'startingPositionsForBlackPawns' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: convert 'startingPositionsForBlackPawns' to a 'let' constant to make 'Sendable' shared state immutable
   |                    |- note: annotate 'startingPositionsForBlackPawns' 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
72 |         static var startingPositionsForWhitePawns: [Chess.Position] = [.a2, .b2, .c2, .d2, .e2, .f2, .g2, .h2]
73 |         static var startingPositionsForBlackKnights: [Chess.Position] = [.b8, .g8]
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game+Rules.swift:72:20: warning: static property 'startingPositionsForWhitePawns' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
70 |         }
71 |         static var startingPositionsForBlackPawns: [Chess.Position] = [.a7, .b7, .c7, .d7, .e7, .f7, .g7, .h7]
72 |         static var startingPositionsForWhitePawns: [Chess.Position] = [.a2, .b2, .c2, .d2, .e2, .f2, .g2, .h2]
   |                    |- warning: static property 'startingPositionsForWhitePawns' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: convert 'startingPositionsForWhitePawns' to a 'let' constant to make 'Sendable' shared state immutable
   |                    |- note: annotate 'startingPositionsForWhitePawns' 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 |         static var startingPositionsForBlackKnights: [Chess.Position] = [.b8, .g8]
74 |         static var startingPositionsForWhiteKnights: [Chess.Position] = [.b1, .g1]
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game+Rules.swift:73:20: warning: static property 'startingPositionsForBlackKnights' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
71 |         static var startingPositionsForBlackPawns: [Chess.Position] = [.a7, .b7, .c7, .d7, .e7, .f7, .g7, .h7]
72 |         static var startingPositionsForWhitePawns: [Chess.Position] = [.a2, .b2, .c2, .d2, .e2, .f2, .g2, .h2]
73 |         static var startingPositionsForBlackKnights: [Chess.Position] = [.b8, .g8]
   |                    |- warning: static property 'startingPositionsForBlackKnights' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: convert 'startingPositionsForBlackKnights' to a 'let' constant to make 'Sendable' shared state immutable
   |                    |- note: annotate 'startingPositionsForBlackKnights' 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
74 |         static var startingPositionsForWhiteKnights: [Chess.Position] = [.b1, .g1]
75 |         static var startingPositionsForBlackBishops: [Chess.Position] = [.c8, .f8]
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game+Rules.swift:74:20: warning: static property 'startingPositionsForWhiteKnights' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
72 |         static var startingPositionsForWhitePawns: [Chess.Position] = [.a2, .b2, .c2, .d2, .e2, .f2, .g2, .h2]
73 |         static var startingPositionsForBlackKnights: [Chess.Position] = [.b8, .g8]
74 |         static var startingPositionsForWhiteKnights: [Chess.Position] = [.b1, .g1]
   |                    |- warning: static property 'startingPositionsForWhiteKnights' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: convert 'startingPositionsForWhiteKnights' to a 'let' constant to make 'Sendable' shared state immutable
   |                    |- note: annotate 'startingPositionsForWhiteKnights' 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
75 |         static var startingPositionsForBlackBishops: [Chess.Position] = [.c8, .f8]
76 |         static var startingPositionsForWhiteBishops: [Chess.Position] = [.c1, .f1]
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game+Rules.swift:75:20: warning: static property 'startingPositionsForBlackBishops' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
73 |         static var startingPositionsForBlackKnights: [Chess.Position] = [.b8, .g8]
74 |         static var startingPositionsForWhiteKnights: [Chess.Position] = [.b1, .g1]
75 |         static var startingPositionsForBlackBishops: [Chess.Position] = [.c8, .f8]
   |                    |- warning: static property 'startingPositionsForBlackBishops' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: convert 'startingPositionsForBlackBishops' to a 'let' constant to make 'Sendable' shared state immutable
   |                    |- note: annotate 'startingPositionsForBlackBishops' 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 |         static var startingPositionsForWhiteBishops: [Chess.Position] = [.c1, .f1]
77 |         static var startingPositionsForBlackRooks: [Chess.Position] = [.a8, .h8]
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game+Rules.swift:76:20: warning: static property 'startingPositionsForWhiteBishops' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
74 |         static var startingPositionsForWhiteKnights: [Chess.Position] = [.b1, .g1]
75 |         static var startingPositionsForBlackBishops: [Chess.Position] = [.c8, .f8]
76 |         static var startingPositionsForWhiteBishops: [Chess.Position] = [.c1, .f1]
   |                    |- warning: static property 'startingPositionsForWhiteBishops' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: convert 'startingPositionsForWhiteBishops' to a 'let' constant to make 'Sendable' shared state immutable
   |                    |- note: annotate 'startingPositionsForWhiteBishops' 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
77 |         static var startingPositionsForBlackRooks: [Chess.Position] = [.a8, .h8]
78 |         static var startingPositionsForWhiteRooks: [Chess.Position] = [.a1, .h1]
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game+Rules.swift:77:20: warning: static property 'startingPositionsForBlackRooks' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
75 |         static var startingPositionsForBlackBishops: [Chess.Position] = [.c8, .f8]
76 |         static var startingPositionsForWhiteBishops: [Chess.Position] = [.c1, .f1]
77 |         static var startingPositionsForBlackRooks: [Chess.Position] = [.a8, .h8]
   |                    |- warning: static property 'startingPositionsForBlackRooks' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: convert 'startingPositionsForBlackRooks' to a 'let' constant to make 'Sendable' shared state immutable
   |                    |- note: annotate 'startingPositionsForBlackRooks' 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
78 |         static var startingPositionsForWhiteRooks: [Chess.Position] = [.a1, .h1]
79 |         static func startingPositionForRook(side: Chess.Side, kingSide: Bool) -> Chess.Position {
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game+Rules.swift:78:20: warning: static property 'startingPositionsForWhiteRooks' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
76 |         static var startingPositionsForWhiteBishops: [Chess.Position] = [.c1, .f1]
77 |         static var startingPositionsForBlackRooks: [Chess.Position] = [.a8, .h8]
78 |         static var startingPositionsForWhiteRooks: [Chess.Position] = [.a1, .h1]
   |                    |- warning: static property 'startingPositionsForWhiteRooks' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: convert 'startingPositionsForWhiteRooks' to a 'let' constant to make 'Sendable' shared state immutable
   |                    |- note: annotate 'startingPositionsForWhiteRooks' 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 |         static func startingPositionForRook(side: Chess.Side, kingSide: Bool) -> Chess.Position {
80 |             if side == .white {
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Store/ChessEnvironment.swift:12:16: warning: static property 'defaults' is not concurrency-safe because non-'Sendable' type 'UserDefaults?' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | public struct ChessEnvironment {
12 |     static let defaults = UserDefaults(suiteName: "Chess")
   |                |- warning: static property 'defaults' is not concurrency-safe because non-'Sendable' type 'UserDefaults?' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'defaults' 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 |     public enum TargetEnvironment {
14 |         case production
Swift.Optional:1:21: note: generic enum 'Optional' does not conform to the 'Sendable' protocol
1 | @frozen public enum Optional<Wrapped> : ~Copyable where Wrapped : ~Copyable {
  |                     `- note: generic enum 'Optional' does not conform to the 'Sendable' protocol
2 |     case none
3 |     case some(Wrapped)
[65/84] Compiling Chess Chess.swift
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Chess.swift:14:23: warning: static property 'log' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
12 | // Our namespace
13 | public enum Chess {
14 |     public static var log: Logger = {
   |                       |- warning: static property 'log' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'log' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'log' 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 |         var log = Logger(label: "com.dpedley.swift-chess")
16 |         log.logLevel = Logger.Level.critical
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game+Rules.swift:71:20: warning: static property 'startingPositionsForBlackPawns' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
69 |             return false
70 |         }
71 |         static var startingPositionsForBlackPawns: [Chess.Position] = [.a7, .b7, .c7, .d7, .e7, .f7, .g7, .h7]
   |                    |- warning: static property 'startingPositionsForBlackPawns' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: convert 'startingPositionsForBlackPawns' to a 'let' constant to make 'Sendable' shared state immutable
   |                    |- note: annotate 'startingPositionsForBlackPawns' 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
72 |         static var startingPositionsForWhitePawns: [Chess.Position] = [.a2, .b2, .c2, .d2, .e2, .f2, .g2, .h2]
73 |         static var startingPositionsForBlackKnights: [Chess.Position] = [.b8, .g8]
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game+Rules.swift:72:20: warning: static property 'startingPositionsForWhitePawns' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
70 |         }
71 |         static var startingPositionsForBlackPawns: [Chess.Position] = [.a7, .b7, .c7, .d7, .e7, .f7, .g7, .h7]
72 |         static var startingPositionsForWhitePawns: [Chess.Position] = [.a2, .b2, .c2, .d2, .e2, .f2, .g2, .h2]
   |                    |- warning: static property 'startingPositionsForWhitePawns' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: convert 'startingPositionsForWhitePawns' to a 'let' constant to make 'Sendable' shared state immutable
   |                    |- note: annotate 'startingPositionsForWhitePawns' 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 |         static var startingPositionsForBlackKnights: [Chess.Position] = [.b8, .g8]
74 |         static var startingPositionsForWhiteKnights: [Chess.Position] = [.b1, .g1]
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game+Rules.swift:73:20: warning: static property 'startingPositionsForBlackKnights' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
71 |         static var startingPositionsForBlackPawns: [Chess.Position] = [.a7, .b7, .c7, .d7, .e7, .f7, .g7, .h7]
72 |         static var startingPositionsForWhitePawns: [Chess.Position] = [.a2, .b2, .c2, .d2, .e2, .f2, .g2, .h2]
73 |         static var startingPositionsForBlackKnights: [Chess.Position] = [.b8, .g8]
   |                    |- warning: static property 'startingPositionsForBlackKnights' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: convert 'startingPositionsForBlackKnights' to a 'let' constant to make 'Sendable' shared state immutable
   |                    |- note: annotate 'startingPositionsForBlackKnights' 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
74 |         static var startingPositionsForWhiteKnights: [Chess.Position] = [.b1, .g1]
75 |         static var startingPositionsForBlackBishops: [Chess.Position] = [.c8, .f8]
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game+Rules.swift:74:20: warning: static property 'startingPositionsForWhiteKnights' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
72 |         static var startingPositionsForWhitePawns: [Chess.Position] = [.a2, .b2, .c2, .d2, .e2, .f2, .g2, .h2]
73 |         static var startingPositionsForBlackKnights: [Chess.Position] = [.b8, .g8]
74 |         static var startingPositionsForWhiteKnights: [Chess.Position] = [.b1, .g1]
   |                    |- warning: static property 'startingPositionsForWhiteKnights' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: convert 'startingPositionsForWhiteKnights' to a 'let' constant to make 'Sendable' shared state immutable
   |                    |- note: annotate 'startingPositionsForWhiteKnights' 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
75 |         static var startingPositionsForBlackBishops: [Chess.Position] = [.c8, .f8]
76 |         static var startingPositionsForWhiteBishops: [Chess.Position] = [.c1, .f1]
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game+Rules.swift:75:20: warning: static property 'startingPositionsForBlackBishops' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
73 |         static var startingPositionsForBlackKnights: [Chess.Position] = [.b8, .g8]
74 |         static var startingPositionsForWhiteKnights: [Chess.Position] = [.b1, .g1]
75 |         static var startingPositionsForBlackBishops: [Chess.Position] = [.c8, .f8]
   |                    |- warning: static property 'startingPositionsForBlackBishops' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: convert 'startingPositionsForBlackBishops' to a 'let' constant to make 'Sendable' shared state immutable
   |                    |- note: annotate 'startingPositionsForBlackBishops' 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 |         static var startingPositionsForWhiteBishops: [Chess.Position] = [.c1, .f1]
77 |         static var startingPositionsForBlackRooks: [Chess.Position] = [.a8, .h8]
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game+Rules.swift:76:20: warning: static property 'startingPositionsForWhiteBishops' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
74 |         static var startingPositionsForWhiteKnights: [Chess.Position] = [.b1, .g1]
75 |         static var startingPositionsForBlackBishops: [Chess.Position] = [.c8, .f8]
76 |         static var startingPositionsForWhiteBishops: [Chess.Position] = [.c1, .f1]
   |                    |- warning: static property 'startingPositionsForWhiteBishops' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: convert 'startingPositionsForWhiteBishops' to a 'let' constant to make 'Sendable' shared state immutable
   |                    |- note: annotate 'startingPositionsForWhiteBishops' 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
77 |         static var startingPositionsForBlackRooks: [Chess.Position] = [.a8, .h8]
78 |         static var startingPositionsForWhiteRooks: [Chess.Position] = [.a1, .h1]
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game+Rules.swift:77:20: warning: static property 'startingPositionsForBlackRooks' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
75 |         static var startingPositionsForBlackBishops: [Chess.Position] = [.c8, .f8]
76 |         static var startingPositionsForWhiteBishops: [Chess.Position] = [.c1, .f1]
77 |         static var startingPositionsForBlackRooks: [Chess.Position] = [.a8, .h8]
   |                    |- warning: static property 'startingPositionsForBlackRooks' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: convert 'startingPositionsForBlackRooks' to a 'let' constant to make 'Sendable' shared state immutable
   |                    |- note: annotate 'startingPositionsForBlackRooks' 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
78 |         static var startingPositionsForWhiteRooks: [Chess.Position] = [.a1, .h1]
79 |         static func startingPositionForRook(side: Chess.Side, kingSide: Bool) -> Chess.Position {
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game+Rules.swift:78:20: warning: static property 'startingPositionsForWhiteRooks' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
76 |         static var startingPositionsForWhiteBishops: [Chess.Position] = [.c1, .f1]
77 |         static var startingPositionsForBlackRooks: [Chess.Position] = [.a8, .h8]
78 |         static var startingPositionsForWhiteRooks: [Chess.Position] = [.a1, .h1]
   |                    |- warning: static property 'startingPositionsForWhiteRooks' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: convert 'startingPositionsForWhiteRooks' to a 'let' constant to make 'Sendable' shared state immutable
   |                    |- note: annotate 'startingPositionsForWhiteRooks' 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 |         static func startingPositionForRook(side: Chess.Side, kingSide: Bool) -> Chess.Position {
80 |             if side == .white {
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Store/ChessEnvironment.swift:12:16: warning: static property 'defaults' is not concurrency-safe because non-'Sendable' type 'UserDefaults?' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | public struct ChessEnvironment {
12 |     static let defaults = UserDefaults(suiteName: "Chess")
   |                |- warning: static property 'defaults' is not concurrency-safe because non-'Sendable' type 'UserDefaults?' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'defaults' 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 |     public enum TargetEnvironment {
14 |         case production
Swift.Optional:1:21: note: generic enum 'Optional' does not conform to the 'Sendable' protocol
1 | @frozen public enum Optional<Wrapped> : ~Copyable where Wrapped : ~Copyable {
  |                     `- note: generic enum 'Optional' does not conform to the 'Sendable' protocol
2 |     case none
3 |     case some(Wrapped)
[66/84] Compiling Chess Game+Notation.swift
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Chess.swift:14:23: warning: static property 'log' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
12 | // Our namespace
13 | public enum Chess {
14 |     public static var log: Logger = {
   |                       |- warning: static property 'log' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'log' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'log' 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 |         var log = Logger(label: "com.dpedley.swift-chess")
16 |         log.logLevel = Logger.Level.critical
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game+Rules.swift:71:20: warning: static property 'startingPositionsForBlackPawns' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
69 |             return false
70 |         }
71 |         static var startingPositionsForBlackPawns: [Chess.Position] = [.a7, .b7, .c7, .d7, .e7, .f7, .g7, .h7]
   |                    |- warning: static property 'startingPositionsForBlackPawns' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: convert 'startingPositionsForBlackPawns' to a 'let' constant to make 'Sendable' shared state immutable
   |                    |- note: annotate 'startingPositionsForBlackPawns' 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
72 |         static var startingPositionsForWhitePawns: [Chess.Position] = [.a2, .b2, .c2, .d2, .e2, .f2, .g2, .h2]
73 |         static var startingPositionsForBlackKnights: [Chess.Position] = [.b8, .g8]
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game+Rules.swift:72:20: warning: static property 'startingPositionsForWhitePawns' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
70 |         }
71 |         static var startingPositionsForBlackPawns: [Chess.Position] = [.a7, .b7, .c7, .d7, .e7, .f7, .g7, .h7]
72 |         static var startingPositionsForWhitePawns: [Chess.Position] = [.a2, .b2, .c2, .d2, .e2, .f2, .g2, .h2]
   |                    |- warning: static property 'startingPositionsForWhitePawns' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: convert 'startingPositionsForWhitePawns' to a 'let' constant to make 'Sendable' shared state immutable
   |                    |- note: annotate 'startingPositionsForWhitePawns' 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 |         static var startingPositionsForBlackKnights: [Chess.Position] = [.b8, .g8]
74 |         static var startingPositionsForWhiteKnights: [Chess.Position] = [.b1, .g1]
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game+Rules.swift:73:20: warning: static property 'startingPositionsForBlackKnights' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
71 |         static var startingPositionsForBlackPawns: [Chess.Position] = [.a7, .b7, .c7, .d7, .e7, .f7, .g7, .h7]
72 |         static var startingPositionsForWhitePawns: [Chess.Position] = [.a2, .b2, .c2, .d2, .e2, .f2, .g2, .h2]
73 |         static var startingPositionsForBlackKnights: [Chess.Position] = [.b8, .g8]
   |                    |- warning: static property 'startingPositionsForBlackKnights' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: convert 'startingPositionsForBlackKnights' to a 'let' constant to make 'Sendable' shared state immutable
   |                    |- note: annotate 'startingPositionsForBlackKnights' 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
74 |         static var startingPositionsForWhiteKnights: [Chess.Position] = [.b1, .g1]
75 |         static var startingPositionsForBlackBishops: [Chess.Position] = [.c8, .f8]
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game+Rules.swift:74:20: warning: static property 'startingPositionsForWhiteKnights' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
72 |         static var startingPositionsForWhitePawns: [Chess.Position] = [.a2, .b2, .c2, .d2, .e2, .f2, .g2, .h2]
73 |         static var startingPositionsForBlackKnights: [Chess.Position] = [.b8, .g8]
74 |         static var startingPositionsForWhiteKnights: [Chess.Position] = [.b1, .g1]
   |                    |- warning: static property 'startingPositionsForWhiteKnights' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: convert 'startingPositionsForWhiteKnights' to a 'let' constant to make 'Sendable' shared state immutable
   |                    |- note: annotate 'startingPositionsForWhiteKnights' 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
75 |         static var startingPositionsForBlackBishops: [Chess.Position] = [.c8, .f8]
76 |         static var startingPositionsForWhiteBishops: [Chess.Position] = [.c1, .f1]
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game+Rules.swift:75:20: warning: static property 'startingPositionsForBlackBishops' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
73 |         static var startingPositionsForBlackKnights: [Chess.Position] = [.b8, .g8]
74 |         static var startingPositionsForWhiteKnights: [Chess.Position] = [.b1, .g1]
75 |         static var startingPositionsForBlackBishops: [Chess.Position] = [.c8, .f8]
   |                    |- warning: static property 'startingPositionsForBlackBishops' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: convert 'startingPositionsForBlackBishops' to a 'let' constant to make 'Sendable' shared state immutable
   |                    |- note: annotate 'startingPositionsForBlackBishops' 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 |         static var startingPositionsForWhiteBishops: [Chess.Position] = [.c1, .f1]
77 |         static var startingPositionsForBlackRooks: [Chess.Position] = [.a8, .h8]
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game+Rules.swift:76:20: warning: static property 'startingPositionsForWhiteBishops' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
74 |         static var startingPositionsForWhiteKnights: [Chess.Position] = [.b1, .g1]
75 |         static var startingPositionsForBlackBishops: [Chess.Position] = [.c8, .f8]
76 |         static var startingPositionsForWhiteBishops: [Chess.Position] = [.c1, .f1]
   |                    |- warning: static property 'startingPositionsForWhiteBishops' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: convert 'startingPositionsForWhiteBishops' to a 'let' constant to make 'Sendable' shared state immutable
   |                    |- note: annotate 'startingPositionsForWhiteBishops' 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
77 |         static var startingPositionsForBlackRooks: [Chess.Position] = [.a8, .h8]
78 |         static var startingPositionsForWhiteRooks: [Chess.Position] = [.a1, .h1]
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game+Rules.swift:77:20: warning: static property 'startingPositionsForBlackRooks' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
75 |         static var startingPositionsForBlackBishops: [Chess.Position] = [.c8, .f8]
76 |         static var startingPositionsForWhiteBishops: [Chess.Position] = [.c1, .f1]
77 |         static var startingPositionsForBlackRooks: [Chess.Position] = [.a8, .h8]
   |                    |- warning: static property 'startingPositionsForBlackRooks' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: convert 'startingPositionsForBlackRooks' to a 'let' constant to make 'Sendable' shared state immutable
   |                    |- note: annotate 'startingPositionsForBlackRooks' 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
78 |         static var startingPositionsForWhiteRooks: [Chess.Position] = [.a1, .h1]
79 |         static func startingPositionForRook(side: Chess.Side, kingSide: Bool) -> Chess.Position {
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game+Rules.swift:78:20: warning: static property 'startingPositionsForWhiteRooks' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
76 |         static var startingPositionsForWhiteBishops: [Chess.Position] = [.c1, .f1]
77 |         static var startingPositionsForBlackRooks: [Chess.Position] = [.a8, .h8]
78 |         static var startingPositionsForWhiteRooks: [Chess.Position] = [.a1, .h1]
   |                    |- warning: static property 'startingPositionsForWhiteRooks' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: convert 'startingPositionsForWhiteRooks' to a 'let' constant to make 'Sendable' shared state immutable
   |                    |- note: annotate 'startingPositionsForWhiteRooks' 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 |         static func startingPositionForRook(side: Chess.Side, kingSide: Bool) -> Chess.Position {
80 |             if side == .white {
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Store/ChessEnvironment.swift:12:16: warning: static property 'defaults' is not concurrency-safe because non-'Sendable' type 'UserDefaults?' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | public struct ChessEnvironment {
12 |     static let defaults = UserDefaults(suiteName: "Chess")
   |                |- warning: static property 'defaults' is not concurrency-safe because non-'Sendable' type 'UserDefaults?' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'defaults' 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 |     public enum TargetEnvironment {
14 |         case production
Swift.Optional:1:21: note: generic enum 'Optional' does not conform to the 'Sendable' protocol
1 | @frozen public enum Optional<Wrapped> : ~Copyable where Wrapped : ~Copyable {
  |                     `- note: generic enum 'Optional' does not conform to the 'Sendable' protocol
2 |     case none
3 |     case some(Wrapped)
[67/84] Compiling Chess Game+Piece.swift
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Chess.swift:14:23: warning: static property 'log' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
12 | // Our namespace
13 | public enum Chess {
14 |     public static var log: Logger = {
   |                       |- warning: static property 'log' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'log' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'log' 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 |         var log = Logger(label: "com.dpedley.swift-chess")
16 |         log.logLevel = Logger.Level.critical
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game+Rules.swift:71:20: warning: static property 'startingPositionsForBlackPawns' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
69 |             return false
70 |         }
71 |         static var startingPositionsForBlackPawns: [Chess.Position] = [.a7, .b7, .c7, .d7, .e7, .f7, .g7, .h7]
   |                    |- warning: static property 'startingPositionsForBlackPawns' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: convert 'startingPositionsForBlackPawns' to a 'let' constant to make 'Sendable' shared state immutable
   |                    |- note: annotate 'startingPositionsForBlackPawns' 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
72 |         static var startingPositionsForWhitePawns: [Chess.Position] = [.a2, .b2, .c2, .d2, .e2, .f2, .g2, .h2]
73 |         static var startingPositionsForBlackKnights: [Chess.Position] = [.b8, .g8]
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game+Rules.swift:72:20: warning: static property 'startingPositionsForWhitePawns' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
70 |         }
71 |         static var startingPositionsForBlackPawns: [Chess.Position] = [.a7, .b7, .c7, .d7, .e7, .f7, .g7, .h7]
72 |         static var startingPositionsForWhitePawns: [Chess.Position] = [.a2, .b2, .c2, .d2, .e2, .f2, .g2, .h2]
   |                    |- warning: static property 'startingPositionsForWhitePawns' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: convert 'startingPositionsForWhitePawns' to a 'let' constant to make 'Sendable' shared state immutable
   |                    |- note: annotate 'startingPositionsForWhitePawns' 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 |         static var startingPositionsForBlackKnights: [Chess.Position] = [.b8, .g8]
74 |         static var startingPositionsForWhiteKnights: [Chess.Position] = [.b1, .g1]
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game+Rules.swift:73:20: warning: static property 'startingPositionsForBlackKnights' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
71 |         static var startingPositionsForBlackPawns: [Chess.Position] = [.a7, .b7, .c7, .d7, .e7, .f7, .g7, .h7]
72 |         static var startingPositionsForWhitePawns: [Chess.Position] = [.a2, .b2, .c2, .d2, .e2, .f2, .g2, .h2]
73 |         static var startingPositionsForBlackKnights: [Chess.Position] = [.b8, .g8]
   |                    |- warning: static property 'startingPositionsForBlackKnights' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: convert 'startingPositionsForBlackKnights' to a 'let' constant to make 'Sendable' shared state immutable
   |                    |- note: annotate 'startingPositionsForBlackKnights' 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
74 |         static var startingPositionsForWhiteKnights: [Chess.Position] = [.b1, .g1]
75 |         static var startingPositionsForBlackBishops: [Chess.Position] = [.c8, .f8]
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game+Rules.swift:74:20: warning: static property 'startingPositionsForWhiteKnights' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
72 |         static var startingPositionsForWhitePawns: [Chess.Position] = [.a2, .b2, .c2, .d2, .e2, .f2, .g2, .h2]
73 |         static var startingPositionsForBlackKnights: [Chess.Position] = [.b8, .g8]
74 |         static var startingPositionsForWhiteKnights: [Chess.Position] = [.b1, .g1]
   |                    |- warning: static property 'startingPositionsForWhiteKnights' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: convert 'startingPositionsForWhiteKnights' to a 'let' constant to make 'Sendable' shared state immutable
   |                    |- note: annotate 'startingPositionsForWhiteKnights' 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
75 |         static var startingPositionsForBlackBishops: [Chess.Position] = [.c8, .f8]
76 |         static var startingPositionsForWhiteBishops: [Chess.Position] = [.c1, .f1]
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game+Rules.swift:75:20: warning: static property 'startingPositionsForBlackBishops' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
73 |         static var startingPositionsForBlackKnights: [Chess.Position] = [.b8, .g8]
74 |         static var startingPositionsForWhiteKnights: [Chess.Position] = [.b1, .g1]
75 |         static var startingPositionsForBlackBishops: [Chess.Position] = [.c8, .f8]
   |                    |- warning: static property 'startingPositionsForBlackBishops' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: convert 'startingPositionsForBlackBishops' to a 'let' constant to make 'Sendable' shared state immutable
   |                    |- note: annotate 'startingPositionsForBlackBishops' 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 |         static var startingPositionsForWhiteBishops: [Chess.Position] = [.c1, .f1]
77 |         static var startingPositionsForBlackRooks: [Chess.Position] = [.a8, .h8]
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game+Rules.swift:76:20: warning: static property 'startingPositionsForWhiteBishops' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
74 |         static var startingPositionsForWhiteKnights: [Chess.Position] = [.b1, .g1]
75 |         static var startingPositionsForBlackBishops: [Chess.Position] = [.c8, .f8]
76 |         static var startingPositionsForWhiteBishops: [Chess.Position] = [.c1, .f1]
   |                    |- warning: static property 'startingPositionsForWhiteBishops' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: convert 'startingPositionsForWhiteBishops' to a 'let' constant to make 'Sendable' shared state immutable
   |                    |- note: annotate 'startingPositionsForWhiteBishops' 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
77 |         static var startingPositionsForBlackRooks: [Chess.Position] = [.a8, .h8]
78 |         static var startingPositionsForWhiteRooks: [Chess.Position] = [.a1, .h1]
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game+Rules.swift:77:20: warning: static property 'startingPositionsForBlackRooks' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
75 |         static var startingPositionsForBlackBishops: [Chess.Position] = [.c8, .f8]
76 |         static var startingPositionsForWhiteBishops: [Chess.Position] = [.c1, .f1]
77 |         static var startingPositionsForBlackRooks: [Chess.Position] = [.a8, .h8]
   |                    |- warning: static property 'startingPositionsForBlackRooks' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: convert 'startingPositionsForBlackRooks' to a 'let' constant to make 'Sendable' shared state immutable
   |                    |- note: annotate 'startingPositionsForBlackRooks' 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
78 |         static var startingPositionsForWhiteRooks: [Chess.Position] = [.a1, .h1]
79 |         static func startingPositionForRook(side: Chess.Side, kingSide: Bool) -> Chess.Position {
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game+Rules.swift:78:20: warning: static property 'startingPositionsForWhiteRooks' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
76 |         static var startingPositionsForWhiteBishops: [Chess.Position] = [.c1, .f1]
77 |         static var startingPositionsForBlackRooks: [Chess.Position] = [.a8, .h8]
78 |         static var startingPositionsForWhiteRooks: [Chess.Position] = [.a1, .h1]
   |                    |- warning: static property 'startingPositionsForWhiteRooks' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: convert 'startingPositionsForWhiteRooks' to a 'let' constant to make 'Sendable' shared state immutable
   |                    |- note: annotate 'startingPositionsForWhiteRooks' 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 |         static func startingPositionForRook(side: Chess.Side, kingSide: Bool) -> Chess.Position {
80 |             if side == .white {
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Store/ChessEnvironment.swift:12:16: warning: static property 'defaults' is not concurrency-safe because non-'Sendable' type 'UserDefaults?' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | public struct ChessEnvironment {
12 |     static let defaults = UserDefaults(suiteName: "Chess")
   |                |- warning: static property 'defaults' is not concurrency-safe because non-'Sendable' type 'UserDefaults?' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'defaults' 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 |     public enum TargetEnvironment {
14 |         case production
Swift.Optional:1:21: note: generic enum 'Optional' does not conform to the 'Sendable' protocol
1 | @frozen public enum Optional<Wrapped> : ~Copyable where Wrapped : ~Copyable {
  |                     `- note: generic enum 'Optional' does not conform to the 'Sendable' protocol
2 |     case none
3 |     case some(Wrapped)
[68/84] Compiling Chess Game+Rules.swift
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Chess.swift:14:23: warning: static property 'log' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
12 | // Our namespace
13 | public enum Chess {
14 |     public static var log: Logger = {
   |                       |- warning: static property 'log' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'log' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'log' 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 |         var log = Logger(label: "com.dpedley.swift-chess")
16 |         log.logLevel = Logger.Level.critical
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game+Rules.swift:71:20: warning: static property 'startingPositionsForBlackPawns' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
69 |             return false
70 |         }
71 |         static var startingPositionsForBlackPawns: [Chess.Position] = [.a7, .b7, .c7, .d7, .e7, .f7, .g7, .h7]
   |                    |- warning: static property 'startingPositionsForBlackPawns' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: convert 'startingPositionsForBlackPawns' to a 'let' constant to make 'Sendable' shared state immutable
   |                    |- note: annotate 'startingPositionsForBlackPawns' 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
72 |         static var startingPositionsForWhitePawns: [Chess.Position] = [.a2, .b2, .c2, .d2, .e2, .f2, .g2, .h2]
73 |         static var startingPositionsForBlackKnights: [Chess.Position] = [.b8, .g8]
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game+Rules.swift:72:20: warning: static property 'startingPositionsForWhitePawns' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
70 |         }
71 |         static var startingPositionsForBlackPawns: [Chess.Position] = [.a7, .b7, .c7, .d7, .e7, .f7, .g7, .h7]
72 |         static var startingPositionsForWhitePawns: [Chess.Position] = [.a2, .b2, .c2, .d2, .e2, .f2, .g2, .h2]
   |                    |- warning: static property 'startingPositionsForWhitePawns' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: convert 'startingPositionsForWhitePawns' to a 'let' constant to make 'Sendable' shared state immutable
   |                    |- note: annotate 'startingPositionsForWhitePawns' 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 |         static var startingPositionsForBlackKnights: [Chess.Position] = [.b8, .g8]
74 |         static var startingPositionsForWhiteKnights: [Chess.Position] = [.b1, .g1]
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game+Rules.swift:73:20: warning: static property 'startingPositionsForBlackKnights' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
71 |         static var startingPositionsForBlackPawns: [Chess.Position] = [.a7, .b7, .c7, .d7, .e7, .f7, .g7, .h7]
72 |         static var startingPositionsForWhitePawns: [Chess.Position] = [.a2, .b2, .c2, .d2, .e2, .f2, .g2, .h2]
73 |         static var startingPositionsForBlackKnights: [Chess.Position] = [.b8, .g8]
   |                    |- warning: static property 'startingPositionsForBlackKnights' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: convert 'startingPositionsForBlackKnights' to a 'let' constant to make 'Sendable' shared state immutable
   |                    |- note: annotate 'startingPositionsForBlackKnights' 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
74 |         static var startingPositionsForWhiteKnights: [Chess.Position] = [.b1, .g1]
75 |         static var startingPositionsForBlackBishops: [Chess.Position] = [.c8, .f8]
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game+Rules.swift:74:20: warning: static property 'startingPositionsForWhiteKnights' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
72 |         static var startingPositionsForWhitePawns: [Chess.Position] = [.a2, .b2, .c2, .d2, .e2, .f2, .g2, .h2]
73 |         static var startingPositionsForBlackKnights: [Chess.Position] = [.b8, .g8]
74 |         static var startingPositionsForWhiteKnights: [Chess.Position] = [.b1, .g1]
   |                    |- warning: static property 'startingPositionsForWhiteKnights' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: convert 'startingPositionsForWhiteKnights' to a 'let' constant to make 'Sendable' shared state immutable
   |                    |- note: annotate 'startingPositionsForWhiteKnights' 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
75 |         static var startingPositionsForBlackBishops: [Chess.Position] = [.c8, .f8]
76 |         static var startingPositionsForWhiteBishops: [Chess.Position] = [.c1, .f1]
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game+Rules.swift:75:20: warning: static property 'startingPositionsForBlackBishops' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
73 |         static var startingPositionsForBlackKnights: [Chess.Position] = [.b8, .g8]
74 |         static var startingPositionsForWhiteKnights: [Chess.Position] = [.b1, .g1]
75 |         static var startingPositionsForBlackBishops: [Chess.Position] = [.c8, .f8]
   |                    |- warning: static property 'startingPositionsForBlackBishops' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: convert 'startingPositionsForBlackBishops' to a 'let' constant to make 'Sendable' shared state immutable
   |                    |- note: annotate 'startingPositionsForBlackBishops' 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 |         static var startingPositionsForWhiteBishops: [Chess.Position] = [.c1, .f1]
77 |         static var startingPositionsForBlackRooks: [Chess.Position] = [.a8, .h8]
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game+Rules.swift:76:20: warning: static property 'startingPositionsForWhiteBishops' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
74 |         static var startingPositionsForWhiteKnights: [Chess.Position] = [.b1, .g1]
75 |         static var startingPositionsForBlackBishops: [Chess.Position] = [.c8, .f8]
76 |         static var startingPositionsForWhiteBishops: [Chess.Position] = [.c1, .f1]
   |                    |- warning: static property 'startingPositionsForWhiteBishops' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: convert 'startingPositionsForWhiteBishops' to a 'let' constant to make 'Sendable' shared state immutable
   |                    |- note: annotate 'startingPositionsForWhiteBishops' 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
77 |         static var startingPositionsForBlackRooks: [Chess.Position] = [.a8, .h8]
78 |         static var startingPositionsForWhiteRooks: [Chess.Position] = [.a1, .h1]
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game+Rules.swift:77:20: warning: static property 'startingPositionsForBlackRooks' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
75 |         static var startingPositionsForBlackBishops: [Chess.Position] = [.c8, .f8]
76 |         static var startingPositionsForWhiteBishops: [Chess.Position] = [.c1, .f1]
77 |         static var startingPositionsForBlackRooks: [Chess.Position] = [.a8, .h8]
   |                    |- warning: static property 'startingPositionsForBlackRooks' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: convert 'startingPositionsForBlackRooks' to a 'let' constant to make 'Sendable' shared state immutable
   |                    |- note: annotate 'startingPositionsForBlackRooks' 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
78 |         static var startingPositionsForWhiteRooks: [Chess.Position] = [.a1, .h1]
79 |         static func startingPositionForRook(side: Chess.Side, kingSide: Bool) -> Chess.Position {
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game+Rules.swift:78:20: warning: static property 'startingPositionsForWhiteRooks' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
76 |         static var startingPositionsForWhiteBishops: [Chess.Position] = [.c1, .f1]
77 |         static var startingPositionsForBlackRooks: [Chess.Position] = [.a8, .h8]
78 |         static var startingPositionsForWhiteRooks: [Chess.Position] = [.a1, .h1]
   |                    |- warning: static property 'startingPositionsForWhiteRooks' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: convert 'startingPositionsForWhiteRooks' to a 'let' constant to make 'Sendable' shared state immutable
   |                    |- note: annotate 'startingPositionsForWhiteRooks' 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 |         static func startingPositionForRook(side: Chess.Side, kingSide: Bool) -> Chess.Position {
80 |             if side == .white {
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Store/ChessEnvironment.swift:12:16: warning: static property 'defaults' is not concurrency-safe because non-'Sendable' type 'UserDefaults?' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | public struct ChessEnvironment {
12 |     static let defaults = UserDefaults(suiteName: "Chess")
   |                |- warning: static property 'defaults' is not concurrency-safe because non-'Sendable' type 'UserDefaults?' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'defaults' 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 |     public enum TargetEnvironment {
14 |         case production
Swift.Optional:1:21: note: generic enum 'Optional' does not conform to the 'Sendable' protocol
1 | @frozen public enum Optional<Wrapped> : ~Copyable where Wrapped : ~Copyable {
  |                     `- note: generic enum 'Optional' does not conform to the 'Sendable' protocol
2 |     case none
3 |     case some(Wrapped)
[69/84] Compiling Chess Game.swift
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Chess.swift:14:23: warning: static property 'log' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
12 | // Our namespace
13 | public enum Chess {
14 |     public static var log: Logger = {
   |                       |- warning: static property 'log' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'log' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'log' 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 |         var log = Logger(label: "com.dpedley.swift-chess")
16 |         log.logLevel = Logger.Level.critical
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game+Rules.swift:71:20: warning: static property 'startingPositionsForBlackPawns' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
69 |             return false
70 |         }
71 |         static var startingPositionsForBlackPawns: [Chess.Position] = [.a7, .b7, .c7, .d7, .e7, .f7, .g7, .h7]
   |                    |- warning: static property 'startingPositionsForBlackPawns' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: convert 'startingPositionsForBlackPawns' to a 'let' constant to make 'Sendable' shared state immutable
   |                    |- note: annotate 'startingPositionsForBlackPawns' 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
72 |         static var startingPositionsForWhitePawns: [Chess.Position] = [.a2, .b2, .c2, .d2, .e2, .f2, .g2, .h2]
73 |         static var startingPositionsForBlackKnights: [Chess.Position] = [.b8, .g8]
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game+Rules.swift:72:20: warning: static property 'startingPositionsForWhitePawns' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
70 |         }
71 |         static var startingPositionsForBlackPawns: [Chess.Position] = [.a7, .b7, .c7, .d7, .e7, .f7, .g7, .h7]
72 |         static var startingPositionsForWhitePawns: [Chess.Position] = [.a2, .b2, .c2, .d2, .e2, .f2, .g2, .h2]
   |                    |- warning: static property 'startingPositionsForWhitePawns' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: convert 'startingPositionsForWhitePawns' to a 'let' constant to make 'Sendable' shared state immutable
   |                    |- note: annotate 'startingPositionsForWhitePawns' 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 |         static var startingPositionsForBlackKnights: [Chess.Position] = [.b8, .g8]
74 |         static var startingPositionsForWhiteKnights: [Chess.Position] = [.b1, .g1]
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game+Rules.swift:73:20: warning: static property 'startingPositionsForBlackKnights' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
71 |         static var startingPositionsForBlackPawns: [Chess.Position] = [.a7, .b7, .c7, .d7, .e7, .f7, .g7, .h7]
72 |         static var startingPositionsForWhitePawns: [Chess.Position] = [.a2, .b2, .c2, .d2, .e2, .f2, .g2, .h2]
73 |         static var startingPositionsForBlackKnights: [Chess.Position] = [.b8, .g8]
   |                    |- warning: static property 'startingPositionsForBlackKnights' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: convert 'startingPositionsForBlackKnights' to a 'let' constant to make 'Sendable' shared state immutable
   |                    |- note: annotate 'startingPositionsForBlackKnights' 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
74 |         static var startingPositionsForWhiteKnights: [Chess.Position] = [.b1, .g1]
75 |         static var startingPositionsForBlackBishops: [Chess.Position] = [.c8, .f8]
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game+Rules.swift:74:20: warning: static property 'startingPositionsForWhiteKnights' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
72 |         static var startingPositionsForWhitePawns: [Chess.Position] = [.a2, .b2, .c2, .d2, .e2, .f2, .g2, .h2]
73 |         static var startingPositionsForBlackKnights: [Chess.Position] = [.b8, .g8]
74 |         static var startingPositionsForWhiteKnights: [Chess.Position] = [.b1, .g1]
   |                    |- warning: static property 'startingPositionsForWhiteKnights' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: convert 'startingPositionsForWhiteKnights' to a 'let' constant to make 'Sendable' shared state immutable
   |                    |- note: annotate 'startingPositionsForWhiteKnights' 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
75 |         static var startingPositionsForBlackBishops: [Chess.Position] = [.c8, .f8]
76 |         static var startingPositionsForWhiteBishops: [Chess.Position] = [.c1, .f1]
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game+Rules.swift:75:20: warning: static property 'startingPositionsForBlackBishops' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
73 |         static var startingPositionsForBlackKnights: [Chess.Position] = [.b8, .g8]
74 |         static var startingPositionsForWhiteKnights: [Chess.Position] = [.b1, .g1]
75 |         static var startingPositionsForBlackBishops: [Chess.Position] = [.c8, .f8]
   |                    |- warning: static property 'startingPositionsForBlackBishops' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: convert 'startingPositionsForBlackBishops' to a 'let' constant to make 'Sendable' shared state immutable
   |                    |- note: annotate 'startingPositionsForBlackBishops' 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 |         static var startingPositionsForWhiteBishops: [Chess.Position] = [.c1, .f1]
77 |         static var startingPositionsForBlackRooks: [Chess.Position] = [.a8, .h8]
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game+Rules.swift:76:20: warning: static property 'startingPositionsForWhiteBishops' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
74 |         static var startingPositionsForWhiteKnights: [Chess.Position] = [.b1, .g1]
75 |         static var startingPositionsForBlackBishops: [Chess.Position] = [.c8, .f8]
76 |         static var startingPositionsForWhiteBishops: [Chess.Position] = [.c1, .f1]
   |                    |- warning: static property 'startingPositionsForWhiteBishops' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: convert 'startingPositionsForWhiteBishops' to a 'let' constant to make 'Sendable' shared state immutable
   |                    |- note: annotate 'startingPositionsForWhiteBishops' 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
77 |         static var startingPositionsForBlackRooks: [Chess.Position] = [.a8, .h8]
78 |         static var startingPositionsForWhiteRooks: [Chess.Position] = [.a1, .h1]
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game+Rules.swift:77:20: warning: static property 'startingPositionsForBlackRooks' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
75 |         static var startingPositionsForBlackBishops: [Chess.Position] = [.c8, .f8]
76 |         static var startingPositionsForWhiteBishops: [Chess.Position] = [.c1, .f1]
77 |         static var startingPositionsForBlackRooks: [Chess.Position] = [.a8, .h8]
   |                    |- warning: static property 'startingPositionsForBlackRooks' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: convert 'startingPositionsForBlackRooks' to a 'let' constant to make 'Sendable' shared state immutable
   |                    |- note: annotate 'startingPositionsForBlackRooks' 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
78 |         static var startingPositionsForWhiteRooks: [Chess.Position] = [.a1, .h1]
79 |         static func startingPositionForRook(side: Chess.Side, kingSide: Bool) -> Chess.Position {
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game+Rules.swift:78:20: warning: static property 'startingPositionsForWhiteRooks' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
76 |         static var startingPositionsForWhiteBishops: [Chess.Position] = [.c1, .f1]
77 |         static var startingPositionsForBlackRooks: [Chess.Position] = [.a8, .h8]
78 |         static var startingPositionsForWhiteRooks: [Chess.Position] = [.a1, .h1]
   |                    |- warning: static property 'startingPositionsForWhiteRooks' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                    |- note: convert 'startingPositionsForWhiteRooks' to a 'let' constant to make 'Sendable' shared state immutable
   |                    |- note: annotate 'startingPositionsForWhiteRooks' 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 |         static func startingPositionForRook(side: Chess.Side, kingSide: Bool) -> Chess.Position {
80 |             if side == .white {
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Store/ChessEnvironment.swift:12:16: warning: static property 'defaults' is not concurrency-safe because non-'Sendable' type 'UserDefaults?' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | public struct ChessEnvironment {
12 |     static let defaults = UserDefaults(suiteName: "Chess")
   |                |- warning: static property 'defaults' is not concurrency-safe because non-'Sendable' type 'UserDefaults?' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'defaults' 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 |     public enum TargetEnvironment {
14 |         case production
Swift.Optional:1:21: note: generic enum 'Optional' does not conform to the 'Sendable' protocol
1 | @frozen public enum Optional<Wrapped> : ~Copyable where Wrapped : ~Copyable {
  |                     `- note: generic enum 'Optional' does not conform to the 'Sendable' protocol
2 |     case none
3 |     case some(Wrapped)
[70/84] Compiling Chess ChessThemes.swift
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Store/ChessEnvironment.swift:12:16: warning: static property 'defaults' is not concurrency-safe because non-'Sendable' type 'UserDefaults?' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | public struct ChessEnvironment {
12 |     static let defaults = UserDefaults(suiteName: "Chess")
   |                |- warning: static property 'defaults' is not concurrency-safe because non-'Sendable' type 'UserDefaults?' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'defaults' 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 |     public enum TargetEnvironment {
14 |         case production
Swift.Optional:1:21: note: generic enum 'Optional' does not conform to the 'Sendable' protocol
1 | @frozen public enum Optional<Wrapped> : ~Copyable where Wrapped : ~Copyable {
  |                     `- note: generic enum 'Optional' does not conform to the 'Sendable' protocol
2 |     case none
3 |     case some(Wrapped)
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/Extensions/GridItem+Chess.swift:11:16: warning: static property 'chessFile' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 9 |
10 | extension GridItem {
11 |     static var chessFile = GridItem(.flexible(minimum: 10, maximum: .infinity), spacing: 0, alignment: .center)
   |                |- warning: static property 'chessFile' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'chessFile' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'chessFile' 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 |
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/PieceArtwork/Bishop.swift:12:16: warning: static property 'bishop' is not concurrency-safe because non-'Sendable' type 'PieceArtwork' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | extension PieceArtwork {
12 |     static let bishop: PieceArtwork = {
   |                |- warning: static property 'bishop' is not concurrency-safe because non-'Sendable' type 'PieceArtwork' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'bishop' 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 |         // We start right on top
14 |         let start = CGPoint.xy(0, -0.6)
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/PieceArtwork/PieceArtwork.swift:11:15: note: consider making struct 'PieceArtwork' conform to the 'Sendable' protocol
 9 | import SwiftUI
10 |
11 | public struct PieceArtwork {
   |               `- note: consider making struct 'PieceArtwork' conform to the 'Sendable' protocol
12 |     let start: CGPoint
13 |     let strokes: [Stroke]
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/PieceArtwork/King.swift:12:16: warning: static property 'king' is not concurrency-safe because non-'Sendable' type 'PieceArtwork' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | extension PieceArtwork {
12 |     static let king: PieceArtwork = {
   |                |- warning: static property 'king' is not concurrency-safe because non-'Sendable' type 'PieceArtwork' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'king' 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 |         // We start right on top
14 |         let start = CGPoint.xy(0, -0.6)
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/PieceArtwork/PieceArtwork.swift:11:15: note: consider making struct 'PieceArtwork' conform to the 'Sendable' protocol
 9 | import SwiftUI
10 |
11 | public struct PieceArtwork {
   |               `- note: consider making struct 'PieceArtwork' conform to the 'Sendable' protocol
12 |     let start: CGPoint
13 |     let strokes: [Stroke]
[71/84] Compiling Chess Defaults.swift
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Store/ChessEnvironment.swift:12:16: warning: static property 'defaults' is not concurrency-safe because non-'Sendable' type 'UserDefaults?' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | public struct ChessEnvironment {
12 |     static let defaults = UserDefaults(suiteName: "Chess")
   |                |- warning: static property 'defaults' is not concurrency-safe because non-'Sendable' type 'UserDefaults?' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'defaults' 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 |     public enum TargetEnvironment {
14 |         case production
Swift.Optional:1:21: note: generic enum 'Optional' does not conform to the 'Sendable' protocol
1 | @frozen public enum Optional<Wrapped> : ~Copyable where Wrapped : ~Copyable {
  |                     `- note: generic enum 'Optional' does not conform to the 'Sendable' protocol
2 |     case none
3 |     case some(Wrapped)
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/Extensions/GridItem+Chess.swift:11:16: warning: static property 'chessFile' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 9 |
10 | extension GridItem {
11 |     static var chessFile = GridItem(.flexible(minimum: 10, maximum: .infinity), spacing: 0, alignment: .center)
   |                |- warning: static property 'chessFile' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'chessFile' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'chessFile' 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 |
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/PieceArtwork/Bishop.swift:12:16: warning: static property 'bishop' is not concurrency-safe because non-'Sendable' type 'PieceArtwork' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | extension PieceArtwork {
12 |     static let bishop: PieceArtwork = {
   |                |- warning: static property 'bishop' is not concurrency-safe because non-'Sendable' type 'PieceArtwork' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'bishop' 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 |         // We start right on top
14 |         let start = CGPoint.xy(0, -0.6)
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/PieceArtwork/PieceArtwork.swift:11:15: note: consider making struct 'PieceArtwork' conform to the 'Sendable' protocol
 9 | import SwiftUI
10 |
11 | public struct PieceArtwork {
   |               `- note: consider making struct 'PieceArtwork' conform to the 'Sendable' protocol
12 |     let start: CGPoint
13 |     let strokes: [Stroke]
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/PieceArtwork/King.swift:12:16: warning: static property 'king' is not concurrency-safe because non-'Sendable' type 'PieceArtwork' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | extension PieceArtwork {
12 |     static let king: PieceArtwork = {
   |                |- warning: static property 'king' is not concurrency-safe because non-'Sendable' type 'PieceArtwork' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'king' 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 |         // We start right on top
14 |         let start = CGPoint.xy(0, -0.6)
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/PieceArtwork/PieceArtwork.swift:11:15: note: consider making struct 'PieceArtwork' conform to the 'Sendable' protocol
 9 | import SwiftUI
10 |
11 | public struct PieceArtwork {
   |               `- note: consider making struct 'PieceArtwork' conform to the 'Sendable' protocol
12 |     let start: CGPoint
13 |     let strokes: [Stroke]
[72/84] Compiling Chess CoreGraphics+RelativeShape.swift
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Store/ChessEnvironment.swift:12:16: warning: static property 'defaults' is not concurrency-safe because non-'Sendable' type 'UserDefaults?' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | public struct ChessEnvironment {
12 |     static let defaults = UserDefaults(suiteName: "Chess")
   |                |- warning: static property 'defaults' is not concurrency-safe because non-'Sendable' type 'UserDefaults?' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'defaults' 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 |     public enum TargetEnvironment {
14 |         case production
Swift.Optional:1:21: note: generic enum 'Optional' does not conform to the 'Sendable' protocol
1 | @frozen public enum Optional<Wrapped> : ~Copyable where Wrapped : ~Copyable {
  |                     `- note: generic enum 'Optional' does not conform to the 'Sendable' protocol
2 |     case none
3 |     case some(Wrapped)
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/Extensions/GridItem+Chess.swift:11:16: warning: static property 'chessFile' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 9 |
10 | extension GridItem {
11 |     static var chessFile = GridItem(.flexible(minimum: 10, maximum: .infinity), spacing: 0, alignment: .center)
   |                |- warning: static property 'chessFile' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'chessFile' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'chessFile' 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 |
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/PieceArtwork/Bishop.swift:12:16: warning: static property 'bishop' is not concurrency-safe because non-'Sendable' type 'PieceArtwork' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | extension PieceArtwork {
12 |     static let bishop: PieceArtwork = {
   |                |- warning: static property 'bishop' is not concurrency-safe because non-'Sendable' type 'PieceArtwork' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'bishop' 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 |         // We start right on top
14 |         let start = CGPoint.xy(0, -0.6)
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/PieceArtwork/PieceArtwork.swift:11:15: note: consider making struct 'PieceArtwork' conform to the 'Sendable' protocol
 9 | import SwiftUI
10 |
11 | public struct PieceArtwork {
   |               `- note: consider making struct 'PieceArtwork' conform to the 'Sendable' protocol
12 |     let start: CGPoint
13 |     let strokes: [Stroke]
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/PieceArtwork/King.swift:12:16: warning: static property 'king' is not concurrency-safe because non-'Sendable' type 'PieceArtwork' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | extension PieceArtwork {
12 |     static let king: PieceArtwork = {
   |                |- warning: static property 'king' is not concurrency-safe because non-'Sendable' type 'PieceArtwork' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'king' 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 |         // We start right on top
14 |         let start = CGPoint.xy(0, -0.6)
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/PieceArtwork/PieceArtwork.swift:11:15: note: consider making struct 'PieceArtwork' conform to the 'Sendable' protocol
 9 | import SwiftUI
10 |
11 | public struct PieceArtwork {
   |               `- note: consider making struct 'PieceArtwork' conform to the 'Sendable' protocol
12 |     let start: CGPoint
13 |     let strokes: [Stroke]
[73/84] Compiling Chess GridItem+Chess.swift
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Store/ChessEnvironment.swift:12:16: warning: static property 'defaults' is not concurrency-safe because non-'Sendable' type 'UserDefaults?' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | public struct ChessEnvironment {
12 |     static let defaults = UserDefaults(suiteName: "Chess")
   |                |- warning: static property 'defaults' is not concurrency-safe because non-'Sendable' type 'UserDefaults?' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'defaults' 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 |     public enum TargetEnvironment {
14 |         case production
Swift.Optional:1:21: note: generic enum 'Optional' does not conform to the 'Sendable' protocol
1 | @frozen public enum Optional<Wrapped> : ~Copyable where Wrapped : ~Copyable {
  |                     `- note: generic enum 'Optional' does not conform to the 'Sendable' protocol
2 |     case none
3 |     case some(Wrapped)
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/Extensions/GridItem+Chess.swift:11:16: warning: static property 'chessFile' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 9 |
10 | extension GridItem {
11 |     static var chessFile = GridItem(.flexible(minimum: 10, maximum: .infinity), spacing: 0, alignment: .center)
   |                |- warning: static property 'chessFile' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'chessFile' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'chessFile' 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 |
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/PieceArtwork/Bishop.swift:12:16: warning: static property 'bishop' is not concurrency-safe because non-'Sendable' type 'PieceArtwork' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | extension PieceArtwork {
12 |     static let bishop: PieceArtwork = {
   |                |- warning: static property 'bishop' is not concurrency-safe because non-'Sendable' type 'PieceArtwork' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'bishop' 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 |         // We start right on top
14 |         let start = CGPoint.xy(0, -0.6)
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/PieceArtwork/PieceArtwork.swift:11:15: note: consider making struct 'PieceArtwork' conform to the 'Sendable' protocol
 9 | import SwiftUI
10 |
11 | public struct PieceArtwork {
   |               `- note: consider making struct 'PieceArtwork' conform to the 'Sendable' protocol
12 |     let start: CGPoint
13 |     let strokes: [Stroke]
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/PieceArtwork/King.swift:12:16: warning: static property 'king' is not concurrency-safe because non-'Sendable' type 'PieceArtwork' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | extension PieceArtwork {
12 |     static let king: PieceArtwork = {
   |                |- warning: static property 'king' is not concurrency-safe because non-'Sendable' type 'PieceArtwork' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'king' 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 |         // We start right on top
14 |         let start = CGPoint.xy(0, -0.6)
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/PieceArtwork/PieceArtwork.swift:11:15: note: consider making struct 'PieceArtwork' conform to the 'Sendable' protocol
 9 | import SwiftUI
10 |
11 | public struct PieceArtwork {
   |               `- note: consider making struct 'PieceArtwork' conform to the 'Sendable' protocol
12 |     let start: CGPoint
13 |     let strokes: [Stroke]
[74/84] Compiling Chess PieceDrag.swift
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Store/ChessEnvironment.swift:12:16: warning: static property 'defaults' is not concurrency-safe because non-'Sendable' type 'UserDefaults?' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | public struct ChessEnvironment {
12 |     static let defaults = UserDefaults(suiteName: "Chess")
   |                |- warning: static property 'defaults' is not concurrency-safe because non-'Sendable' type 'UserDefaults?' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'defaults' 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 |     public enum TargetEnvironment {
14 |         case production
Swift.Optional:1:21: note: generic enum 'Optional' does not conform to the 'Sendable' protocol
1 | @frozen public enum Optional<Wrapped> : ~Copyable where Wrapped : ~Copyable {
  |                     `- note: generic enum 'Optional' does not conform to the 'Sendable' protocol
2 |     case none
3 |     case some(Wrapped)
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/Extensions/GridItem+Chess.swift:11:16: warning: static property 'chessFile' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 9 |
10 | extension GridItem {
11 |     static var chessFile = GridItem(.flexible(minimum: 10, maximum: .infinity), spacing: 0, alignment: .center)
   |                |- warning: static property 'chessFile' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'chessFile' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'chessFile' 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 |
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/PieceArtwork/Bishop.swift:12:16: warning: static property 'bishop' is not concurrency-safe because non-'Sendable' type 'PieceArtwork' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | extension PieceArtwork {
12 |     static let bishop: PieceArtwork = {
   |                |- warning: static property 'bishop' is not concurrency-safe because non-'Sendable' type 'PieceArtwork' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'bishop' 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 |         // We start right on top
14 |         let start = CGPoint.xy(0, -0.6)
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/PieceArtwork/PieceArtwork.swift:11:15: note: consider making struct 'PieceArtwork' conform to the 'Sendable' protocol
 9 | import SwiftUI
10 |
11 | public struct PieceArtwork {
   |               `- note: consider making struct 'PieceArtwork' conform to the 'Sendable' protocol
12 |     let start: CGPoint
13 |     let strokes: [Stroke]
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/PieceArtwork/King.swift:12:16: warning: static property 'king' is not concurrency-safe because non-'Sendable' type 'PieceArtwork' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | extension PieceArtwork {
12 |     static let king: PieceArtwork = {
   |                |- warning: static property 'king' is not concurrency-safe because non-'Sendable' type 'PieceArtwork' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'king' 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 |         // We start right on top
14 |         let start = CGPoint.xy(0, -0.6)
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/PieceArtwork/PieceArtwork.swift:11:15: note: consider making struct 'PieceArtwork' conform to the 'Sendable' protocol
 9 | import SwiftUI
10 |
11 | public struct PieceArtwork {
   |               `- note: consider making struct 'PieceArtwork' conform to the 'Sendable' protocol
12 |     let start: CGPoint
13 |     let strokes: [Stroke]
[75/84] Compiling Chess Bishop.swift
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Store/ChessEnvironment.swift:12:16: warning: static property 'defaults' is not concurrency-safe because non-'Sendable' type 'UserDefaults?' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | public struct ChessEnvironment {
12 |     static let defaults = UserDefaults(suiteName: "Chess")
   |                |- warning: static property 'defaults' is not concurrency-safe because non-'Sendable' type 'UserDefaults?' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'defaults' 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 |     public enum TargetEnvironment {
14 |         case production
Swift.Optional:1:21: note: generic enum 'Optional' does not conform to the 'Sendable' protocol
1 | @frozen public enum Optional<Wrapped> : ~Copyable where Wrapped : ~Copyable {
  |                     `- note: generic enum 'Optional' does not conform to the 'Sendable' protocol
2 |     case none
3 |     case some(Wrapped)
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/Extensions/GridItem+Chess.swift:11:16: warning: static property 'chessFile' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 9 |
10 | extension GridItem {
11 |     static var chessFile = GridItem(.flexible(minimum: 10, maximum: .infinity), spacing: 0, alignment: .center)
   |                |- warning: static property 'chessFile' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'chessFile' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'chessFile' 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 |
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/PieceArtwork/Bishop.swift:12:16: warning: static property 'bishop' is not concurrency-safe because non-'Sendable' type 'PieceArtwork' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | extension PieceArtwork {
12 |     static let bishop: PieceArtwork = {
   |                |- warning: static property 'bishop' is not concurrency-safe because non-'Sendable' type 'PieceArtwork' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'bishop' 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 |         // We start right on top
14 |         let start = CGPoint.xy(0, -0.6)
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/PieceArtwork/PieceArtwork.swift:11:15: note: consider making struct 'PieceArtwork' conform to the 'Sendable' protocol
 9 | import SwiftUI
10 |
11 | public struct PieceArtwork {
   |               `- note: consider making struct 'PieceArtwork' conform to the 'Sendable' protocol
12 |     let start: CGPoint
13 |     let strokes: [Stroke]
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/PieceArtwork/King.swift:12:16: warning: static property 'king' is not concurrency-safe because non-'Sendable' type 'PieceArtwork' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | extension PieceArtwork {
12 |     static let king: PieceArtwork = {
   |                |- warning: static property 'king' is not concurrency-safe because non-'Sendable' type 'PieceArtwork' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'king' 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 |         // We start right on top
14 |         let start = CGPoint.xy(0, -0.6)
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/PieceArtwork/PieceArtwork.swift:11:15: note: consider making struct 'PieceArtwork' conform to the 'Sendable' protocol
 9 | import SwiftUI
10 |
11 | public struct PieceArtwork {
   |               `- note: consider making struct 'PieceArtwork' conform to the 'Sendable' protocol
12 |     let start: CGPoint
13 |     let strokes: [Stroke]
[76/84] Compiling Chess King.swift
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Store/ChessEnvironment.swift:12:16: warning: static property 'defaults' is not concurrency-safe because non-'Sendable' type 'UserDefaults?' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | public struct ChessEnvironment {
12 |     static let defaults = UserDefaults(suiteName: "Chess")
   |                |- warning: static property 'defaults' is not concurrency-safe because non-'Sendable' type 'UserDefaults?' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'defaults' 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 |     public enum TargetEnvironment {
14 |         case production
Swift.Optional:1:21: note: generic enum 'Optional' does not conform to the 'Sendable' protocol
1 | @frozen public enum Optional<Wrapped> : ~Copyable where Wrapped : ~Copyable {
  |                     `- note: generic enum 'Optional' does not conform to the 'Sendable' protocol
2 |     case none
3 |     case some(Wrapped)
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/Extensions/GridItem+Chess.swift:11:16: warning: static property 'chessFile' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 9 |
10 | extension GridItem {
11 |     static var chessFile = GridItem(.flexible(minimum: 10, maximum: .infinity), spacing: 0, alignment: .center)
   |                |- warning: static property 'chessFile' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'chessFile' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'chessFile' 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 |
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/PieceArtwork/Bishop.swift:12:16: warning: static property 'bishop' is not concurrency-safe because non-'Sendable' type 'PieceArtwork' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | extension PieceArtwork {
12 |     static let bishop: PieceArtwork = {
   |                |- warning: static property 'bishop' is not concurrency-safe because non-'Sendable' type 'PieceArtwork' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'bishop' 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 |         // We start right on top
14 |         let start = CGPoint.xy(0, -0.6)
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/PieceArtwork/PieceArtwork.swift:11:15: note: consider making struct 'PieceArtwork' conform to the 'Sendable' protocol
 9 | import SwiftUI
10 |
11 | public struct PieceArtwork {
   |               `- note: consider making struct 'PieceArtwork' conform to the 'Sendable' protocol
12 |     let start: CGPoint
13 |     let strokes: [Stroke]
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/PieceArtwork/King.swift:12:16: warning: static property 'king' is not concurrency-safe because non-'Sendable' type 'PieceArtwork' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | extension PieceArtwork {
12 |     static let king: PieceArtwork = {
   |                |- warning: static property 'king' is not concurrency-safe because non-'Sendable' type 'PieceArtwork' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'king' 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 |         // We start right on top
14 |         let start = CGPoint.xy(0, -0.6)
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/PieceArtwork/PieceArtwork.swift:11:15: note: consider making struct 'PieceArtwork' conform to the 'Sendable' protocol
 9 | import SwiftUI
10 |
11 | public struct PieceArtwork {
   |               `- note: consider making struct 'PieceArtwork' conform to the 'Sendable' protocol
12 |     let start: CGPoint
13 |     let strokes: [Stroke]
[77/84] Compiling Chess MontyCarlo.swift
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Chess.swift:14:23: warning: static property 'log' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
12 | // Our namespace
13 | public enum Chess {
14 |     public static var log: Logger = {
   |                       |- warning: static property 'log' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'log' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'log' 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 |         var log = Logger(label: "com.dpedley.swift-chess")
16 |         log.logLevel = Logger.Level.critical
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MontyCarlo.swift:50:34: warning: capture of 'weakSelf' with non-sendable type 'Chess.Robot.MontyCarloBot?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
11 | public extension Chess.Robot {
12 |     /// A monty carlo strategist using GKGameModel
13 |     class MontyCarloBot: Chess.Player {
   |           `- note: class 'MontyCarloBot' does not conform to the 'Sendable' protocol
14 |         var board = Chess.BoardVariant(originalFEN: Chess.Board.startingFEN)
15 |         let strategist: GKMonteCarloStrategist
   :
48 |             weak var weakDelegate = delegate
49 |             Thread.detachNewThread {
50 |                 guard let self = weakSelf, let delegate = weakDelegate else { return }
   |                                  `- warning: capture of 'weakSelf' with non-sendable type 'Chess.Robot.MontyCarloBot?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
51 |                 guard let strategy = self.strategist.bestMoveForActivePlayer() else {
52 |                     let square = game.board.squareForActiveKing
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MontyCarlo.swift:50:59: warning: capture of 'weakDelegate' with non-sendable type '(any ChessGameDelegate)?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
48 |             weak var weakDelegate = delegate
49 |             Thread.detachNewThread {
50 |                 guard let self = weakSelf, let delegate = weakDelegate else { return }
   |                                                           `- warning: capture of 'weakDelegate' with non-sendable type '(any ChessGameDelegate)?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
51 |                 guard let strategy = self.strategist.bestMoveForActivePlayer() else {
52 |                     let square = game.board.squareForActiveKing
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game.swift:10:17: note: protocol 'ChessGameDelegate' does not conform to the 'Sendable' protocol
  8 | import Combine
  9 |
 10 | public protocol ChessGameDelegate: AnyObject {
    |                 `- note: protocol 'ChessGameDelegate' does not conform to the 'Sendable' protocol
 11 |     func gameAction(_ action: Chess.GameAction)
 12 | }
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MontyCarlo.swift:52:34: warning: capture of 'game' with non-sendable type 'Chess.Game' in a `@Sendable` closure; this is an error in the Swift 6 language mode
50 |                 guard let self = weakSelf, let delegate = weakDelegate else { return }
51 |                 guard let strategy = self.strategist.bestMoveForActivePlayer() else {
52 |                     let square = game.board.squareForActiveKing
   |                                  `- warning: capture of 'game' with non-sendable type 'Chess.Game' in a `@Sendable` closure; this is an error in the Swift 6 language mode
53 |                     guard square.piece?.side == self.side else {
54 |                         Chess.log.critical("Misconfigured board, bot cannot find it's own king.")
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game.swift:15:12: note: consider making struct 'Game' conform to the 'Sendable' protocol
 13 |
 14 | public extension Chess {
 15 |     struct Game {
    |            `- note: consider making struct 'Game' conform to the 'Sendable' protocol
 16 |         private var botPausedMove: Chess.Move?
 17 |         weak var delegate: ChessGameDelegate?
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MontyCarlo.swift:50:34: warning: reference to captured var 'weakSelf' in concurrently-executing code; this is an error in the Swift 6 language mode
48 |             weak var weakDelegate = delegate
49 |             Thread.detachNewThread {
50 |                 guard let self = weakSelf, let delegate = weakDelegate else { return }
   |                                  `- warning: reference to captured var 'weakSelf' in concurrently-executing code; this is an error in the Swift 6 language mode
51 |                 guard let strategy = self.strategist.bestMoveForActivePlayer() else {
52 |                     let square = game.board.squareForActiveKing
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MontyCarlo.swift:50:59: warning: reference to captured var 'weakDelegate' in concurrently-executing code; this is an error in the Swift 6 language mode
48 |             weak var weakDelegate = delegate
49 |             Thread.detachNewThread {
50 |                 guard let self = weakSelf, let delegate = weakDelegate else { return }
   |                                                           `- warning: reference to captured var 'weakDelegate' in concurrently-executing code; this is an error in the Swift 6 language mode
51 |                 guard let strategy = self.strategist.bestMoveForActivePlayer() else {
52 |                     let square = game.board.squareForActiveKing
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Store/ChessEnvironment.swift:12:16: warning: static property 'defaults' is not concurrency-safe because non-'Sendable' type 'UserDefaults?' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | public struct ChessEnvironment {
12 |     static let defaults = UserDefaults(suiteName: "Chess")
   |                |- warning: static property 'defaults' is not concurrency-safe because non-'Sendable' type 'UserDefaults?' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'defaults' 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 |     public enum TargetEnvironment {
14 |         case production
Swift.Optional:1:21: note: generic enum 'Optional' does not conform to the 'Sendable' protocol
1 | @frozen public enum Optional<Wrapped> : ~Copyable where Wrapped : ~Copyable {
  |                     `- note: generic enum 'Optional' does not conform to the 'Sendable' protocol
2 |     case none
3 |     case some(Wrapped)
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Move+Names.swift:20:16: warning: static property 'black' is not concurrency-safe because non-'Sendable' type 'Chess.MoveStartSide' may have shared mutable state; this is an error in the Swift 6 language mode
 18 |
 19 | public extension Chess.Move {
 20 |     static let black = Chess.MoveStartSide(side: .black)
    |                |- warning: static property 'black' is not concurrency-safe because non-'Sendable' type 'Chess.MoveStartSide' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'black' 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
 21 |     static let white = Chess.MoveStartSide(side: .white)
 22 | }
    :
 28 |         public let position: Chess.Position
 29 |     }
 30 |     struct MoveStartSide {
    |            `- note: consider making struct 'MoveStartSide' conform to the 'Sendable' protocol
 31 |         public let side: Chess.Side
 32 |         public var O_O: Chess.Move { castleKingside }
[78/84] Compiling Chess PlaybackBot.swift
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Chess.swift:14:23: warning: static property 'log' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
12 | // Our namespace
13 | public enum Chess {
14 |     public static var log: Logger = {
   |                       |- warning: static property 'log' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'log' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'log' 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 |         var log = Logger(label: "com.dpedley.swift-chess")
16 |         log.logLevel = Logger.Level.critical
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MontyCarlo.swift:50:34: warning: capture of 'weakSelf' with non-sendable type 'Chess.Robot.MontyCarloBot?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
11 | public extension Chess.Robot {
12 |     /// A monty carlo strategist using GKGameModel
13 |     class MontyCarloBot: Chess.Player {
   |           `- note: class 'MontyCarloBot' does not conform to the 'Sendable' protocol
14 |         var board = Chess.BoardVariant(originalFEN: Chess.Board.startingFEN)
15 |         let strategist: GKMonteCarloStrategist
   :
48 |             weak var weakDelegate = delegate
49 |             Thread.detachNewThread {
50 |                 guard let self = weakSelf, let delegate = weakDelegate else { return }
   |                                  `- warning: capture of 'weakSelf' with non-sendable type 'Chess.Robot.MontyCarloBot?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
51 |                 guard let strategy = self.strategist.bestMoveForActivePlayer() else {
52 |                     let square = game.board.squareForActiveKing
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MontyCarlo.swift:50:59: warning: capture of 'weakDelegate' with non-sendable type '(any ChessGameDelegate)?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
48 |             weak var weakDelegate = delegate
49 |             Thread.detachNewThread {
50 |                 guard let self = weakSelf, let delegate = weakDelegate else { return }
   |                                                           `- warning: capture of 'weakDelegate' with non-sendable type '(any ChessGameDelegate)?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
51 |                 guard let strategy = self.strategist.bestMoveForActivePlayer() else {
52 |                     let square = game.board.squareForActiveKing
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game.swift:10:17: note: protocol 'ChessGameDelegate' does not conform to the 'Sendable' protocol
  8 | import Combine
  9 |
 10 | public protocol ChessGameDelegate: AnyObject {
    |                 `- note: protocol 'ChessGameDelegate' does not conform to the 'Sendable' protocol
 11 |     func gameAction(_ action: Chess.GameAction)
 12 | }
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MontyCarlo.swift:52:34: warning: capture of 'game' with non-sendable type 'Chess.Game' in a `@Sendable` closure; this is an error in the Swift 6 language mode
50 |                 guard let self = weakSelf, let delegate = weakDelegate else { return }
51 |                 guard let strategy = self.strategist.bestMoveForActivePlayer() else {
52 |                     let square = game.board.squareForActiveKing
   |                                  `- warning: capture of 'game' with non-sendable type 'Chess.Game' in a `@Sendable` closure; this is an error in the Swift 6 language mode
53 |                     guard square.piece?.side == self.side else {
54 |                         Chess.log.critical("Misconfigured board, bot cannot find it's own king.")
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game.swift:15:12: note: consider making struct 'Game' conform to the 'Sendable' protocol
 13 |
 14 | public extension Chess {
 15 |     struct Game {
    |            `- note: consider making struct 'Game' conform to the 'Sendable' protocol
 16 |         private var botPausedMove: Chess.Move?
 17 |         weak var delegate: ChessGameDelegate?
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MontyCarlo.swift:50:34: warning: reference to captured var 'weakSelf' in concurrently-executing code; this is an error in the Swift 6 language mode
48 |             weak var weakDelegate = delegate
49 |             Thread.detachNewThread {
50 |                 guard let self = weakSelf, let delegate = weakDelegate else { return }
   |                                  `- warning: reference to captured var 'weakSelf' in concurrently-executing code; this is an error in the Swift 6 language mode
51 |                 guard let strategy = self.strategist.bestMoveForActivePlayer() else {
52 |                     let square = game.board.squareForActiveKing
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MontyCarlo.swift:50:59: warning: reference to captured var 'weakDelegate' in concurrently-executing code; this is an error in the Swift 6 language mode
48 |             weak var weakDelegate = delegate
49 |             Thread.detachNewThread {
50 |                 guard let self = weakSelf, let delegate = weakDelegate else { return }
   |                                                           `- warning: reference to captured var 'weakDelegate' in concurrently-executing code; this is an error in the Swift 6 language mode
51 |                 guard let strategy = self.strategist.bestMoveForActivePlayer() else {
52 |                     let square = game.board.squareForActiveKing
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Store/ChessEnvironment.swift:12:16: warning: static property 'defaults' is not concurrency-safe because non-'Sendable' type 'UserDefaults?' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | public struct ChessEnvironment {
12 |     static let defaults = UserDefaults(suiteName: "Chess")
   |                |- warning: static property 'defaults' is not concurrency-safe because non-'Sendable' type 'UserDefaults?' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'defaults' 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 |     public enum TargetEnvironment {
14 |         case production
Swift.Optional:1:21: note: generic enum 'Optional' does not conform to the 'Sendable' protocol
1 | @frozen public enum Optional<Wrapped> : ~Copyable where Wrapped : ~Copyable {
  |                     `- note: generic enum 'Optional' does not conform to the 'Sendable' protocol
2 |     case none
3 |     case some(Wrapped)
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Move+Names.swift:20:16: warning: static property 'black' is not concurrency-safe because non-'Sendable' type 'Chess.MoveStartSide' may have shared mutable state; this is an error in the Swift 6 language mode
 18 |
 19 | public extension Chess.Move {
 20 |     static let black = Chess.MoveStartSide(side: .black)
    |                |- warning: static property 'black' is not concurrency-safe because non-'Sendable' type 'Chess.MoveStartSide' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'black' 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
 21 |     static let white = Chess.MoveStartSide(side: .white)
 22 | }
    :
 28 |         public let position: Chess.Position
 29 |     }
 30 |     struct MoveStartSide {
    |            `- note: consider making struct 'MoveStartSide' conform to the 'Sendable' protocol
 31 |         public let side: Chess.Side
 32 |         public var O_O: Chess.Move { castleKingside }
[79/84] Compiling Chess Robot+Choices.swift
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Chess.swift:14:23: warning: static property 'log' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
12 | // Our namespace
13 | public enum Chess {
14 |     public static var log: Logger = {
   |                       |- warning: static property 'log' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'log' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'log' 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 |         var log = Logger(label: "com.dpedley.swift-chess")
16 |         log.logLevel = Logger.Level.critical
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MontyCarlo.swift:50:34: warning: capture of 'weakSelf' with non-sendable type 'Chess.Robot.MontyCarloBot?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
11 | public extension Chess.Robot {
12 |     /// A monty carlo strategist using GKGameModel
13 |     class MontyCarloBot: Chess.Player {
   |           `- note: class 'MontyCarloBot' does not conform to the 'Sendable' protocol
14 |         var board = Chess.BoardVariant(originalFEN: Chess.Board.startingFEN)
15 |         let strategist: GKMonteCarloStrategist
   :
48 |             weak var weakDelegate = delegate
49 |             Thread.detachNewThread {
50 |                 guard let self = weakSelf, let delegate = weakDelegate else { return }
   |                                  `- warning: capture of 'weakSelf' with non-sendable type 'Chess.Robot.MontyCarloBot?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
51 |                 guard let strategy = self.strategist.bestMoveForActivePlayer() else {
52 |                     let square = game.board.squareForActiveKing
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MontyCarlo.swift:50:59: warning: capture of 'weakDelegate' with non-sendable type '(any ChessGameDelegate)?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
48 |             weak var weakDelegate = delegate
49 |             Thread.detachNewThread {
50 |                 guard let self = weakSelf, let delegate = weakDelegate else { return }
   |                                                           `- warning: capture of 'weakDelegate' with non-sendable type '(any ChessGameDelegate)?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
51 |                 guard let strategy = self.strategist.bestMoveForActivePlayer() else {
52 |                     let square = game.board.squareForActiveKing
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game.swift:10:17: note: protocol 'ChessGameDelegate' does not conform to the 'Sendable' protocol
  8 | import Combine
  9 |
 10 | public protocol ChessGameDelegate: AnyObject {
    |                 `- note: protocol 'ChessGameDelegate' does not conform to the 'Sendable' protocol
 11 |     func gameAction(_ action: Chess.GameAction)
 12 | }
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MontyCarlo.swift:52:34: warning: capture of 'game' with non-sendable type 'Chess.Game' in a `@Sendable` closure; this is an error in the Swift 6 language mode
50 |                 guard let self = weakSelf, let delegate = weakDelegate else { return }
51 |                 guard let strategy = self.strategist.bestMoveForActivePlayer() else {
52 |                     let square = game.board.squareForActiveKing
   |                                  `- warning: capture of 'game' with non-sendable type 'Chess.Game' in a `@Sendable` closure; this is an error in the Swift 6 language mode
53 |                     guard square.piece?.side == self.side else {
54 |                         Chess.log.critical("Misconfigured board, bot cannot find it's own king.")
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game.swift:15:12: note: consider making struct 'Game' conform to the 'Sendable' protocol
 13 |
 14 | public extension Chess {
 15 |     struct Game {
    |            `- note: consider making struct 'Game' conform to the 'Sendable' protocol
 16 |         private var botPausedMove: Chess.Move?
 17 |         weak var delegate: ChessGameDelegate?
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MontyCarlo.swift:50:34: warning: reference to captured var 'weakSelf' in concurrently-executing code; this is an error in the Swift 6 language mode
48 |             weak var weakDelegate = delegate
49 |             Thread.detachNewThread {
50 |                 guard let self = weakSelf, let delegate = weakDelegate else { return }
   |                                  `- warning: reference to captured var 'weakSelf' in concurrently-executing code; this is an error in the Swift 6 language mode
51 |                 guard let strategy = self.strategist.bestMoveForActivePlayer() else {
52 |                     let square = game.board.squareForActiveKing
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MontyCarlo.swift:50:59: warning: reference to captured var 'weakDelegate' in concurrently-executing code; this is an error in the Swift 6 language mode
48 |             weak var weakDelegate = delegate
49 |             Thread.detachNewThread {
50 |                 guard let self = weakSelf, let delegate = weakDelegate else { return }
   |                                                           `- warning: reference to captured var 'weakDelegate' in concurrently-executing code; this is an error in the Swift 6 language mode
51 |                 guard let strategy = self.strategist.bestMoveForActivePlayer() else {
52 |                     let square = game.board.squareForActiveKing
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Store/ChessEnvironment.swift:12:16: warning: static property 'defaults' is not concurrency-safe because non-'Sendable' type 'UserDefaults?' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | public struct ChessEnvironment {
12 |     static let defaults = UserDefaults(suiteName: "Chess")
   |                |- warning: static property 'defaults' is not concurrency-safe because non-'Sendable' type 'UserDefaults?' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'defaults' 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 |     public enum TargetEnvironment {
14 |         case production
Swift.Optional:1:21: note: generic enum 'Optional' does not conform to the 'Sendable' protocol
1 | @frozen public enum Optional<Wrapped> : ~Copyable where Wrapped : ~Copyable {
  |                     `- note: generic enum 'Optional' does not conform to the 'Sendable' protocol
2 |     case none
3 |     case some(Wrapped)
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Move+Names.swift:20:16: warning: static property 'black' is not concurrency-safe because non-'Sendable' type 'Chess.MoveStartSide' may have shared mutable state; this is an error in the Swift 6 language mode
 18 |
 19 | public extension Chess.Move {
 20 |     static let black = Chess.MoveStartSide(side: .black)
    |                |- warning: static property 'black' is not concurrency-safe because non-'Sendable' type 'Chess.MoveStartSide' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'black' 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
 21 |     static let white = Chess.MoveStartSide(side: .white)
 22 | }
    :
 28 |         public let position: Chess.Position
 29 |     }
 30 |     struct MoveStartSide {
    |            `- note: consider making struct 'MoveStartSide' conform to the 'Sendable' protocol
 31 |         public let side: Chess.Side
 32 |         public var O_O: Chess.Move { castleKingside }
[80/84] Compiling Chess Robot+Names.swift
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Chess.swift:14:23: warning: static property 'log' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
12 | // Our namespace
13 | public enum Chess {
14 |     public static var log: Logger = {
   |                       |- warning: static property 'log' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'log' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'log' 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 |         var log = Logger(label: "com.dpedley.swift-chess")
16 |         log.logLevel = Logger.Level.critical
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MontyCarlo.swift:50:34: warning: capture of 'weakSelf' with non-sendable type 'Chess.Robot.MontyCarloBot?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
11 | public extension Chess.Robot {
12 |     /// A monty carlo strategist using GKGameModel
13 |     class MontyCarloBot: Chess.Player {
   |           `- note: class 'MontyCarloBot' does not conform to the 'Sendable' protocol
14 |         var board = Chess.BoardVariant(originalFEN: Chess.Board.startingFEN)
15 |         let strategist: GKMonteCarloStrategist
   :
48 |             weak var weakDelegate = delegate
49 |             Thread.detachNewThread {
50 |                 guard let self = weakSelf, let delegate = weakDelegate else { return }
   |                                  `- warning: capture of 'weakSelf' with non-sendable type 'Chess.Robot.MontyCarloBot?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
51 |                 guard let strategy = self.strategist.bestMoveForActivePlayer() else {
52 |                     let square = game.board.squareForActiveKing
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MontyCarlo.swift:50:59: warning: capture of 'weakDelegate' with non-sendable type '(any ChessGameDelegate)?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
48 |             weak var weakDelegate = delegate
49 |             Thread.detachNewThread {
50 |                 guard let self = weakSelf, let delegate = weakDelegate else { return }
   |                                                           `- warning: capture of 'weakDelegate' with non-sendable type '(any ChessGameDelegate)?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
51 |                 guard let strategy = self.strategist.bestMoveForActivePlayer() else {
52 |                     let square = game.board.squareForActiveKing
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game.swift:10:17: note: protocol 'ChessGameDelegate' does not conform to the 'Sendable' protocol
  8 | import Combine
  9 |
 10 | public protocol ChessGameDelegate: AnyObject {
    |                 `- note: protocol 'ChessGameDelegate' does not conform to the 'Sendable' protocol
 11 |     func gameAction(_ action: Chess.GameAction)
 12 | }
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MontyCarlo.swift:52:34: warning: capture of 'game' with non-sendable type 'Chess.Game' in a `@Sendable` closure; this is an error in the Swift 6 language mode
50 |                 guard let self = weakSelf, let delegate = weakDelegate else { return }
51 |                 guard let strategy = self.strategist.bestMoveForActivePlayer() else {
52 |                     let square = game.board.squareForActiveKing
   |                                  `- warning: capture of 'game' with non-sendable type 'Chess.Game' in a `@Sendable` closure; this is an error in the Swift 6 language mode
53 |                     guard square.piece?.side == self.side else {
54 |                         Chess.log.critical("Misconfigured board, bot cannot find it's own king.")
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game.swift:15:12: note: consider making struct 'Game' conform to the 'Sendable' protocol
 13 |
 14 | public extension Chess {
 15 |     struct Game {
    |            `- note: consider making struct 'Game' conform to the 'Sendable' protocol
 16 |         private var botPausedMove: Chess.Move?
 17 |         weak var delegate: ChessGameDelegate?
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MontyCarlo.swift:50:34: warning: reference to captured var 'weakSelf' in concurrently-executing code; this is an error in the Swift 6 language mode
48 |             weak var weakDelegate = delegate
49 |             Thread.detachNewThread {
50 |                 guard let self = weakSelf, let delegate = weakDelegate else { return }
   |                                  `- warning: reference to captured var 'weakSelf' in concurrently-executing code; this is an error in the Swift 6 language mode
51 |                 guard let strategy = self.strategist.bestMoveForActivePlayer() else {
52 |                     let square = game.board.squareForActiveKing
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MontyCarlo.swift:50:59: warning: reference to captured var 'weakDelegate' in concurrently-executing code; this is an error in the Swift 6 language mode
48 |             weak var weakDelegate = delegate
49 |             Thread.detachNewThread {
50 |                 guard let self = weakSelf, let delegate = weakDelegate else { return }
   |                                                           `- warning: reference to captured var 'weakDelegate' in concurrently-executing code; this is an error in the Swift 6 language mode
51 |                 guard let strategy = self.strategist.bestMoveForActivePlayer() else {
52 |                     let square = game.board.squareForActiveKing
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Store/ChessEnvironment.swift:12:16: warning: static property 'defaults' is not concurrency-safe because non-'Sendable' type 'UserDefaults?' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | public struct ChessEnvironment {
12 |     static let defaults = UserDefaults(suiteName: "Chess")
   |                |- warning: static property 'defaults' is not concurrency-safe because non-'Sendable' type 'UserDefaults?' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'defaults' 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 |     public enum TargetEnvironment {
14 |         case production
Swift.Optional:1:21: note: generic enum 'Optional' does not conform to the 'Sendable' protocol
1 | @frozen public enum Optional<Wrapped> : ~Copyable where Wrapped : ~Copyable {
  |                     `- note: generic enum 'Optional' does not conform to the 'Sendable' protocol
2 |     case none
3 |     case some(Wrapped)
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Move+Names.swift:20:16: warning: static property 'black' is not concurrency-safe because non-'Sendable' type 'Chess.MoveStartSide' may have shared mutable state; this is an error in the Swift 6 language mode
 18 |
 19 | public extension Chess.Move {
 20 |     static let black = Chess.MoveStartSide(side: .black)
    |                |- warning: static property 'black' is not concurrency-safe because non-'Sendable' type 'Chess.MoveStartSide' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'black' 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
 21 |     static let white = Chess.MoveStartSide(side: .white)
 22 | }
    :
 28 |         public let position: Chess.Position
 29 |     }
 30 |     struct MoveStartSide {
    |            `- note: consider making struct 'MoveStartSide' conform to the 'Sendable' protocol
 31 |         public let side: Chess.Side
 32 |         public var O_O: Chess.Move { castleKingside }
[81/84] Compiling Chess Robot+Previews.swift
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Chess.swift:14:23: warning: static property 'log' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
12 | // Our namespace
13 | public enum Chess {
14 |     public static var log: Logger = {
   |                       |- warning: static property 'log' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'log' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'log' 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 |         var log = Logger(label: "com.dpedley.swift-chess")
16 |         log.logLevel = Logger.Level.critical
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MontyCarlo.swift:50:34: warning: capture of 'weakSelf' with non-sendable type 'Chess.Robot.MontyCarloBot?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
11 | public extension Chess.Robot {
12 |     /// A monty carlo strategist using GKGameModel
13 |     class MontyCarloBot: Chess.Player {
   |           `- note: class 'MontyCarloBot' does not conform to the 'Sendable' protocol
14 |         var board = Chess.BoardVariant(originalFEN: Chess.Board.startingFEN)
15 |         let strategist: GKMonteCarloStrategist
   :
48 |             weak var weakDelegate = delegate
49 |             Thread.detachNewThread {
50 |                 guard let self = weakSelf, let delegate = weakDelegate else { return }
   |                                  `- warning: capture of 'weakSelf' with non-sendable type 'Chess.Robot.MontyCarloBot?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
51 |                 guard let strategy = self.strategist.bestMoveForActivePlayer() else {
52 |                     let square = game.board.squareForActiveKing
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MontyCarlo.swift:50:59: warning: capture of 'weakDelegate' with non-sendable type '(any ChessGameDelegate)?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
48 |             weak var weakDelegate = delegate
49 |             Thread.detachNewThread {
50 |                 guard let self = weakSelf, let delegate = weakDelegate else { return }
   |                                                           `- warning: capture of 'weakDelegate' with non-sendable type '(any ChessGameDelegate)?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
51 |                 guard let strategy = self.strategist.bestMoveForActivePlayer() else {
52 |                     let square = game.board.squareForActiveKing
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game.swift:10:17: note: protocol 'ChessGameDelegate' does not conform to the 'Sendable' protocol
  8 | import Combine
  9 |
 10 | public protocol ChessGameDelegate: AnyObject {
    |                 `- note: protocol 'ChessGameDelegate' does not conform to the 'Sendable' protocol
 11 |     func gameAction(_ action: Chess.GameAction)
 12 | }
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MontyCarlo.swift:52:34: warning: capture of 'game' with non-sendable type 'Chess.Game' in a `@Sendable` closure; this is an error in the Swift 6 language mode
50 |                 guard let self = weakSelf, let delegate = weakDelegate else { return }
51 |                 guard let strategy = self.strategist.bestMoveForActivePlayer() else {
52 |                     let square = game.board.squareForActiveKing
   |                                  `- warning: capture of 'game' with non-sendable type 'Chess.Game' in a `@Sendable` closure; this is an error in the Swift 6 language mode
53 |                     guard square.piece?.side == self.side else {
54 |                         Chess.log.critical("Misconfigured board, bot cannot find it's own king.")
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game.swift:15:12: note: consider making struct 'Game' conform to the 'Sendable' protocol
 13 |
 14 | public extension Chess {
 15 |     struct Game {
    |            `- note: consider making struct 'Game' conform to the 'Sendable' protocol
 16 |         private var botPausedMove: Chess.Move?
 17 |         weak var delegate: ChessGameDelegate?
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MontyCarlo.swift:50:34: warning: reference to captured var 'weakSelf' in concurrently-executing code; this is an error in the Swift 6 language mode
48 |             weak var weakDelegate = delegate
49 |             Thread.detachNewThread {
50 |                 guard let self = weakSelf, let delegate = weakDelegate else { return }
   |                                  `- warning: reference to captured var 'weakSelf' in concurrently-executing code; this is an error in the Swift 6 language mode
51 |                 guard let strategy = self.strategist.bestMoveForActivePlayer() else {
52 |                     let square = game.board.squareForActiveKing
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MontyCarlo.swift:50:59: warning: reference to captured var 'weakDelegate' in concurrently-executing code; this is an error in the Swift 6 language mode
48 |             weak var weakDelegate = delegate
49 |             Thread.detachNewThread {
50 |                 guard let self = weakSelf, let delegate = weakDelegate else { return }
   |                                                           `- warning: reference to captured var 'weakDelegate' in concurrently-executing code; this is an error in the Swift 6 language mode
51 |                 guard let strategy = self.strategist.bestMoveForActivePlayer() else {
52 |                     let square = game.board.squareForActiveKing
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Store/ChessEnvironment.swift:12:16: warning: static property 'defaults' is not concurrency-safe because non-'Sendable' type 'UserDefaults?' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | public struct ChessEnvironment {
12 |     static let defaults = UserDefaults(suiteName: "Chess")
   |                |- warning: static property 'defaults' is not concurrency-safe because non-'Sendable' type 'UserDefaults?' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'defaults' 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 |     public enum TargetEnvironment {
14 |         case production
Swift.Optional:1:21: note: generic enum 'Optional' does not conform to the 'Sendable' protocol
1 | @frozen public enum Optional<Wrapped> : ~Copyable where Wrapped : ~Copyable {
  |                     `- note: generic enum 'Optional' does not conform to the 'Sendable' protocol
2 |     case none
3 |     case some(Wrapped)
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Move+Names.swift:20:16: warning: static property 'black' is not concurrency-safe because non-'Sendable' type 'Chess.MoveStartSide' may have shared mutable state; this is an error in the Swift 6 language mode
 18 |
 19 | public extension Chess.Move {
 20 |     static let black = Chess.MoveStartSide(side: .black)
    |                |- warning: static property 'black' is not concurrency-safe because non-'Sendable' type 'Chess.MoveStartSide' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'black' 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
 21 |     static let white = Chess.MoveStartSide(side: .white)
 22 | }
    :
 28 |         public let position: Chess.Position
 29 |     }
 30 |     struct MoveStartSide {
    |            `- note: consider making struct 'MoveStartSide' conform to the 'Sendable' protocol
 31 |         public let side: Chess.Side
 32 |         public var O_O: Chess.Move { castleKingside }
[82/84] Compiling Chess ChessPreferences.swift
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Chess.swift:14:23: warning: static property 'log' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
12 | // Our namespace
13 | public enum Chess {
14 |     public static var log: Logger = {
   |                       |- warning: static property 'log' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'log' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'log' 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 |         var log = Logger(label: "com.dpedley.swift-chess")
16 |         log.logLevel = Logger.Level.critical
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MontyCarlo.swift:50:34: warning: capture of 'weakSelf' with non-sendable type 'Chess.Robot.MontyCarloBot?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
11 | public extension Chess.Robot {
12 |     /// A monty carlo strategist using GKGameModel
13 |     class MontyCarloBot: Chess.Player {
   |           `- note: class 'MontyCarloBot' does not conform to the 'Sendable' protocol
14 |         var board = Chess.BoardVariant(originalFEN: Chess.Board.startingFEN)
15 |         let strategist: GKMonteCarloStrategist
   :
48 |             weak var weakDelegate = delegate
49 |             Thread.detachNewThread {
50 |                 guard let self = weakSelf, let delegate = weakDelegate else { return }
   |                                  `- warning: capture of 'weakSelf' with non-sendable type 'Chess.Robot.MontyCarloBot?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
51 |                 guard let strategy = self.strategist.bestMoveForActivePlayer() else {
52 |                     let square = game.board.squareForActiveKing
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MontyCarlo.swift:50:59: warning: capture of 'weakDelegate' with non-sendable type '(any ChessGameDelegate)?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
48 |             weak var weakDelegate = delegate
49 |             Thread.detachNewThread {
50 |                 guard let self = weakSelf, let delegate = weakDelegate else { return }
   |                                                           `- warning: capture of 'weakDelegate' with non-sendable type '(any ChessGameDelegate)?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
51 |                 guard let strategy = self.strategist.bestMoveForActivePlayer() else {
52 |                     let square = game.board.squareForActiveKing
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game.swift:10:17: note: protocol 'ChessGameDelegate' does not conform to the 'Sendable' protocol
  8 | import Combine
  9 |
 10 | public protocol ChessGameDelegate: AnyObject {
    |                 `- note: protocol 'ChessGameDelegate' does not conform to the 'Sendable' protocol
 11 |     func gameAction(_ action: Chess.GameAction)
 12 | }
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MontyCarlo.swift:52:34: warning: capture of 'game' with non-sendable type 'Chess.Game' in a `@Sendable` closure; this is an error in the Swift 6 language mode
50 |                 guard let self = weakSelf, let delegate = weakDelegate else { return }
51 |                 guard let strategy = self.strategist.bestMoveForActivePlayer() else {
52 |                     let square = game.board.squareForActiveKing
   |                                  `- warning: capture of 'game' with non-sendable type 'Chess.Game' in a `@Sendable` closure; this is an error in the Swift 6 language mode
53 |                     guard square.piece?.side == self.side else {
54 |                         Chess.log.critical("Misconfigured board, bot cannot find it's own king.")
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game.swift:15:12: note: consider making struct 'Game' conform to the 'Sendable' protocol
 13 |
 14 | public extension Chess {
 15 |     struct Game {
    |            `- note: consider making struct 'Game' conform to the 'Sendable' protocol
 16 |         private var botPausedMove: Chess.Move?
 17 |         weak var delegate: ChessGameDelegate?
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MontyCarlo.swift:50:34: warning: reference to captured var 'weakSelf' in concurrently-executing code; this is an error in the Swift 6 language mode
48 |             weak var weakDelegate = delegate
49 |             Thread.detachNewThread {
50 |                 guard let self = weakSelf, let delegate = weakDelegate else { return }
   |                                  `- warning: reference to captured var 'weakSelf' in concurrently-executing code; this is an error in the Swift 6 language mode
51 |                 guard let strategy = self.strategist.bestMoveForActivePlayer() else {
52 |                     let square = game.board.squareForActiveKing
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MontyCarlo.swift:50:59: warning: reference to captured var 'weakDelegate' in concurrently-executing code; this is an error in the Swift 6 language mode
48 |             weak var weakDelegate = delegate
49 |             Thread.detachNewThread {
50 |                 guard let self = weakSelf, let delegate = weakDelegate else { return }
   |                                                           `- warning: reference to captured var 'weakDelegate' in concurrently-executing code; this is an error in the Swift 6 language mode
51 |                 guard let strategy = self.strategist.bestMoveForActivePlayer() else {
52 |                     let square = game.board.squareForActiveKing
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Store/ChessEnvironment.swift:12:16: warning: static property 'defaults' is not concurrency-safe because non-'Sendable' type 'UserDefaults?' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | public struct ChessEnvironment {
12 |     static let defaults = UserDefaults(suiteName: "Chess")
   |                |- warning: static property 'defaults' is not concurrency-safe because non-'Sendable' type 'UserDefaults?' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'defaults' 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 |     public enum TargetEnvironment {
14 |         case production
Swift.Optional:1:21: note: generic enum 'Optional' does not conform to the 'Sendable' protocol
1 | @frozen public enum Optional<Wrapped> : ~Copyable where Wrapped : ~Copyable {
  |                     `- note: generic enum 'Optional' does not conform to the 'Sendable' protocol
2 |     case none
3 |     case some(Wrapped)
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Move+Names.swift:20:16: warning: static property 'black' is not concurrency-safe because non-'Sendable' type 'Chess.MoveStartSide' may have shared mutable state; this is an error in the Swift 6 language mode
 18 |
 19 | public extension Chess.Move {
 20 |     static let black = Chess.MoveStartSide(side: .black)
    |                |- warning: static property 'black' is not concurrency-safe because non-'Sendable' type 'Chess.MoveStartSide' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'black' 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
 21 |     static let white = Chess.MoveStartSide(side: .white)
 22 | }
    :
 28 |         public let position: Chess.Position
 29 |     }
 30 |     struct MoveStartSide {
    |            `- note: consider making struct 'MoveStartSide' conform to the 'Sendable' protocol
 31 |         public let side: Chess.Side
 32 |         public var O_O: Chess.Move { castleKingside }
[83/84] Compiling Chess ChessEnvironment.swift
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Chess.swift:14:23: warning: static property 'log' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
12 | // Our namespace
13 | public enum Chess {
14 |     public static var log: Logger = {
   |                       |- warning: static property 'log' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'log' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'log' 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 |         var log = Logger(label: "com.dpedley.swift-chess")
16 |         log.logLevel = Logger.Level.critical
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MontyCarlo.swift:50:34: warning: capture of 'weakSelf' with non-sendable type 'Chess.Robot.MontyCarloBot?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
11 | public extension Chess.Robot {
12 |     /// A monty carlo strategist using GKGameModel
13 |     class MontyCarloBot: Chess.Player {
   |           `- note: class 'MontyCarloBot' does not conform to the 'Sendable' protocol
14 |         var board = Chess.BoardVariant(originalFEN: Chess.Board.startingFEN)
15 |         let strategist: GKMonteCarloStrategist
   :
48 |             weak var weakDelegate = delegate
49 |             Thread.detachNewThread {
50 |                 guard let self = weakSelf, let delegate = weakDelegate else { return }
   |                                  `- warning: capture of 'weakSelf' with non-sendable type 'Chess.Robot.MontyCarloBot?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
51 |                 guard let strategy = self.strategist.bestMoveForActivePlayer() else {
52 |                     let square = game.board.squareForActiveKing
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MontyCarlo.swift:50:59: warning: capture of 'weakDelegate' with non-sendable type '(any ChessGameDelegate)?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
48 |             weak var weakDelegate = delegate
49 |             Thread.detachNewThread {
50 |                 guard let self = weakSelf, let delegate = weakDelegate else { return }
   |                                                           `- warning: capture of 'weakDelegate' with non-sendable type '(any ChessGameDelegate)?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
51 |                 guard let strategy = self.strategist.bestMoveForActivePlayer() else {
52 |                     let square = game.board.squareForActiveKing
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game.swift:10:17: note: protocol 'ChessGameDelegate' does not conform to the 'Sendable' protocol
  8 | import Combine
  9 |
 10 | public protocol ChessGameDelegate: AnyObject {
    |                 `- note: protocol 'ChessGameDelegate' does not conform to the 'Sendable' protocol
 11 |     func gameAction(_ action: Chess.GameAction)
 12 | }
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MontyCarlo.swift:52:34: warning: capture of 'game' with non-sendable type 'Chess.Game' in a `@Sendable` closure; this is an error in the Swift 6 language mode
50 |                 guard let self = weakSelf, let delegate = weakDelegate else { return }
51 |                 guard let strategy = self.strategist.bestMoveForActivePlayer() else {
52 |                     let square = game.board.squareForActiveKing
   |                                  `- warning: capture of 'game' with non-sendable type 'Chess.Game' in a `@Sendable` closure; this is an error in the Swift 6 language mode
53 |                     guard square.piece?.side == self.side else {
54 |                         Chess.log.critical("Misconfigured board, bot cannot find it's own king.")
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game.swift:15:12: note: consider making struct 'Game' conform to the 'Sendable' protocol
 13 |
 14 | public extension Chess {
 15 |     struct Game {
    |            `- note: consider making struct 'Game' conform to the 'Sendable' protocol
 16 |         private var botPausedMove: Chess.Move?
 17 |         weak var delegate: ChessGameDelegate?
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MontyCarlo.swift:50:34: warning: reference to captured var 'weakSelf' in concurrently-executing code; this is an error in the Swift 6 language mode
48 |             weak var weakDelegate = delegate
49 |             Thread.detachNewThread {
50 |                 guard let self = weakSelf, let delegate = weakDelegate else { return }
   |                                  `- warning: reference to captured var 'weakSelf' in concurrently-executing code; this is an error in the Swift 6 language mode
51 |                 guard let strategy = self.strategist.bestMoveForActivePlayer() else {
52 |                     let square = game.board.squareForActiveKing
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MontyCarlo.swift:50:59: warning: reference to captured var 'weakDelegate' in concurrently-executing code; this is an error in the Swift 6 language mode
48 |             weak var weakDelegate = delegate
49 |             Thread.detachNewThread {
50 |                 guard let self = weakSelf, let delegate = weakDelegate else { return }
   |                                                           `- warning: reference to captured var 'weakDelegate' in concurrently-executing code; this is an error in the Swift 6 language mode
51 |                 guard let strategy = self.strategist.bestMoveForActivePlayer() else {
52 |                     let square = game.board.squareForActiveKing
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Store/ChessEnvironment.swift:12:16: warning: static property 'defaults' is not concurrency-safe because non-'Sendable' type 'UserDefaults?' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | public struct ChessEnvironment {
12 |     static let defaults = UserDefaults(suiteName: "Chess")
   |                |- warning: static property 'defaults' is not concurrency-safe because non-'Sendable' type 'UserDefaults?' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'defaults' 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 |     public enum TargetEnvironment {
14 |         case production
Swift.Optional:1:21: note: generic enum 'Optional' does not conform to the 'Sendable' protocol
1 | @frozen public enum Optional<Wrapped> : ~Copyable where Wrapped : ~Copyable {
  |                     `- note: generic enum 'Optional' does not conform to the 'Sendable' protocol
2 |     case none
3 |     case some(Wrapped)
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Move+Names.swift:20:16: warning: static property 'black' is not concurrency-safe because non-'Sendable' type 'Chess.MoveStartSide' may have shared mutable state; this is an error in the Swift 6 language mode
 18 |
 19 | public extension Chess.Move {
 20 |     static let black = Chess.MoveStartSide(side: .black)
    |                |- warning: static property 'black' is not concurrency-safe because non-'Sendable' type 'Chess.MoveStartSide' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'black' 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
 21 |     static let white = Chess.MoveStartSide(side: .white)
 22 | }
    :
 28 |         public let position: Chess.Position
 29 |     }
 30 |     struct MoveStartSide {
    |            `- note: consider making struct 'MoveStartSide' conform to the 'Sendable' protocol
 31 |         public let side: Chess.Side
 32 |         public var O_O: Chess.Move { castleKingside }
[84/84] Compiling Chess ChessStore+Preview.swift
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Chess.swift:14:23: warning: static property 'log' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
12 | // Our namespace
13 | public enum Chess {
14 |     public static var log: Logger = {
   |                       |- warning: static property 'log' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'log' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'log' 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 |         var log = Logger(label: "com.dpedley.swift-chess")
16 |         log.logLevel = Logger.Level.critical
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MontyCarlo.swift:50:34: warning: capture of 'weakSelf' with non-sendable type 'Chess.Robot.MontyCarloBot?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
11 | public extension Chess.Robot {
12 |     /// A monty carlo strategist using GKGameModel
13 |     class MontyCarloBot: Chess.Player {
   |           `- note: class 'MontyCarloBot' does not conform to the 'Sendable' protocol
14 |         var board = Chess.BoardVariant(originalFEN: Chess.Board.startingFEN)
15 |         let strategist: GKMonteCarloStrategist
   :
48 |             weak var weakDelegate = delegate
49 |             Thread.detachNewThread {
50 |                 guard let self = weakSelf, let delegate = weakDelegate else { return }
   |                                  `- warning: capture of 'weakSelf' with non-sendable type 'Chess.Robot.MontyCarloBot?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
51 |                 guard let strategy = self.strategist.bestMoveForActivePlayer() else {
52 |                     let square = game.board.squareForActiveKing
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MontyCarlo.swift:50:59: warning: capture of 'weakDelegate' with non-sendable type '(any ChessGameDelegate)?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
48 |             weak var weakDelegate = delegate
49 |             Thread.detachNewThread {
50 |                 guard let self = weakSelf, let delegate = weakDelegate else { return }
   |                                                           `- warning: capture of 'weakDelegate' with non-sendable type '(any ChessGameDelegate)?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
51 |                 guard let strategy = self.strategist.bestMoveForActivePlayer() else {
52 |                     let square = game.board.squareForActiveKing
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game.swift:10:17: note: protocol 'ChessGameDelegate' does not conform to the 'Sendable' protocol
  8 | import Combine
  9 |
 10 | public protocol ChessGameDelegate: AnyObject {
    |                 `- note: protocol 'ChessGameDelegate' does not conform to the 'Sendable' protocol
 11 |     func gameAction(_ action: Chess.GameAction)
 12 | }
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MontyCarlo.swift:52:34: warning: capture of 'game' with non-sendable type 'Chess.Game' in a `@Sendable` closure; this is an error in the Swift 6 language mode
50 |                 guard let self = weakSelf, let delegate = weakDelegate else { return }
51 |                 guard let strategy = self.strategist.bestMoveForActivePlayer() else {
52 |                     let square = game.board.squareForActiveKing
   |                                  `- warning: capture of 'game' with non-sendable type 'Chess.Game' in a `@Sendable` closure; this is an error in the Swift 6 language mode
53 |                     guard square.piece?.side == self.side else {
54 |                         Chess.log.critical("Misconfigured board, bot cannot find it's own king.")
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Game.swift:15:12: note: consider making struct 'Game' conform to the 'Sendable' protocol
 13 |
 14 | public extension Chess {
 15 |     struct Game {
    |            `- note: consider making struct 'Game' conform to the 'Sendable' protocol
 16 |         private var botPausedMove: Chess.Move?
 17 |         weak var delegate: ChessGameDelegate?
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MontyCarlo.swift:50:34: warning: reference to captured var 'weakSelf' in concurrently-executing code; this is an error in the Swift 6 language mode
48 |             weak var weakDelegate = delegate
49 |             Thread.detachNewThread {
50 |                 guard let self = weakSelf, let delegate = weakDelegate else { return }
   |                                  `- warning: reference to captured var 'weakSelf' in concurrently-executing code; this is an error in the Swift 6 language mode
51 |                 guard let strategy = self.strategist.bestMoveForActivePlayer() else {
52 |                     let square = game.board.squareForActiveKing
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MontyCarlo.swift:50:59: warning: reference to captured var 'weakDelegate' in concurrently-executing code; this is an error in the Swift 6 language mode
48 |             weak var weakDelegate = delegate
49 |             Thread.detachNewThread {
50 |                 guard let self = weakSelf, let delegate = weakDelegate else { return }
   |                                                           `- warning: reference to captured var 'weakDelegate' in concurrently-executing code; this is an error in the Swift 6 language mode
51 |                 guard let strategy = self.strategist.bestMoveForActivePlayer() else {
52 |                     let square = game.board.squareForActiveKing
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Store/ChessEnvironment.swift:12:16: warning: static property 'defaults' is not concurrency-safe because non-'Sendable' type 'UserDefaults?' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | public struct ChessEnvironment {
12 |     static let defaults = UserDefaults(suiteName: "Chess")
   |                |- warning: static property 'defaults' is not concurrency-safe because non-'Sendable' type 'UserDefaults?' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'defaults' 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 |     public enum TargetEnvironment {
14 |         case production
Swift.Optional:1:21: note: generic enum 'Optional' does not conform to the 'Sendable' protocol
1 | @frozen public enum Optional<Wrapped> : ~Copyable where Wrapped : ~Copyable {
  |                     `- note: generic enum 'Optional' does not conform to the 'Sendable' protocol
2 |     case none
3 |     case some(Wrapped)
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Game/Move+Names.swift:20:16: warning: static property 'black' is not concurrency-safe because non-'Sendable' type 'Chess.MoveStartSide' may have shared mutable state; this is an error in the Swift 6 language mode
 18 |
 19 | public extension Chess.Move {
 20 |     static let black = Chess.MoveStartSide(side: .black)
    |                |- warning: static property 'black' is not concurrency-safe because non-'Sendable' type 'Chess.MoveStartSide' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'black' 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
 21 |     static let white = Chess.MoveStartSide(side: .white)
 22 | }
    :
 28 |         public let position: Chess.Position
 29 |     }
 30 |     struct MoveStartSide {
    |            `- note: consider making struct 'MoveStartSide' conform to the 'Sendable' protocol
 31 |         public let side: Chess.Side
 32 |         public var O_O: Chess.Move { castleKingside }
Build complete! (21.98s)
warning: 'spi-builder-workspace': Invalid Exclude '/Users/admin/builder/spi-builder-workspace/Sources/Chess/PlayChess': File not found.
Build complete.
{
  "dependencies" : [
    {
      "identity" : "swift-log",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.4.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-log.git"
    }
  ],
  "manifest_display_name" : "swift-chess",
  "name" : "swift-chess",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "11.0"
    },
    {
      "name" : "ios",
      "version" : "14.0"
    }
  ],
  "products" : [
    {
      "name" : "Chess",
      "targets" : [
        "Chess"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "ChessTests",
      "module_type" : "SwiftTarget",
      "name" : "ChessTests",
      "path" : "Tests/ChessTests",
      "sources" : [
        "BoardAnalysisTests.swift",
        "BoardFenTests.swift",
        "ChessRobotTests.swift",
        "ChessTests.swift",
        "GameTests.swift",
        "GameplayKitTests.swift",
        "MoveTests.swift",
        "NamedPositionTests.swift",
        "PieceMoveTests.swift",
        "PieceWeightTests.swift",
        "PositionTests.swift",
        "PromotionTests.swift",
        "RankAndFileTests.swift",
        "XCTestManifests.swift"
      ],
      "target_dependencies" : [
        "Chess"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Chess",
      "module_type" : "SwiftTarget",
      "name" : "Chess",
      "path" : "Sources/Chess",
      "product_dependencies" : [
        "Logging"
      ],
      "product_memberships" : [
        "Chess"
      ],
      "sources" : [
        "Board/Board+Analysis.swift",
        "Board/Board+FEN.swift",
        "Board/Board+Game.swift",
        "Board/Board+Moves.swift",
        "Board/Board.swift",
        "Board/BoardVariant+GameplayKit.swift",
        "Board/BoardVariant.swift",
        "Board/Position+Names.swift",
        "Board/Position.swift",
        "Board/SingleMoveVariant.swift",
        "Board/Square.swift",
        "Chess.swift",
        "Game/Game+Notation.swift",
        "Game/Game+Piece.swift",
        "Game/Game+Rules.swift",
        "Game/Game.swift",
        "Game/GameStatus.swift",
        "Game/Move+Names.swift",
        "Game/Move.swift",
        "Game/Piece.swift",
        "Game/PieceType.swift",
        "Game/Side+Move.swift",
        "Game/Side.swift",
        "Game/SideEffect.swift",
        "Online/Chess+URL.swift",
        "Player/ChessRobot.swift",
        "Player/HumanPlayer.swift",
        "Player/Player.swift",
        "Player/PlayerFactory.swift",
        "Robots/CautiousBot.swift",
        "Robots/GreedyBot.swift",
        "Robots/MindyMaxBot.swift",
        "Robots/MontyCarlo.swift",
        "Robots/PlaybackBot.swift",
        "Robots/Robot+Choices.swift",
        "Robots/Robot+Names.swift",
        "Robots/Robot+Previews.swift",
        "Settings/ChessPreferences.swift",
        "Store/ChessEnvironment.swift",
        "Store/ChessStore+Preview.swift",
        "Store/ChessStore.swift",
        "Store/EnvironmentReducer.swift",
        "Store/GameActions.swift",
        "Store/GameReducer.swift",
        "UI/BoardIconView.swift",
        "UI/BoardView.swift",
        "UI/ChessSettingsView.swift",
        "UI/ChessThemes.swift",
        "UI/Defaults.swift",
        "UI/Extensions/CoreGraphics+RelativeShape.swift",
        "UI/Extensions/GridItem+Chess.swift",
        "UI/Interactions/PieceDrag.swift",
        "UI/PieceArtwork/Bishop.swift",
        "UI/PieceArtwork/King.swift",
        "UI/PieceArtwork/Knight.swift",
        "UI/PieceArtwork/Pawn.swift",
        "UI/PieceArtwork/PieceArtwork+Drawing.swift",
        "UI/PieceArtwork/PieceArtwork.swift",
        "UI/PieceArtwork/Queen.swift",
        "UI/PieceArtwork/Rook.swift",
        "UI/PieceGlyph.swift",
        "UI/PieceShape+Details.swift",
        "UI/PieceShape.swift",
        "UI/PieceStyle.swift",
        "UI/PieceView.swift",
        "UI/PlayAsButton.swift",
        "UI/PlayPauseButton.swift",
        "UI/PlayerTitleView.swift",
        "UI/ResetBoardButton.swift",
        "UI/Sound.swift",
        "UI/SquareBackground.swift",
        "UI/SquareMoveHighlight.swift",
        "UI/SquareSelected.swift",
        "UI/SquareTargeted.swift",
        "UI/UI.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.3"
}
warning: 'spi-builder-workspace': Invalid Exclude '/Users/admin/builder/spi-builder-workspace/Sources/Chess/PlayChess': File not found.
Done.