The Swift Package Index logo.Swift Package Index

Build Information

Successful build of TrainingPlanKit, reference v0.7.0 (0e7711), with Swift 6.1 for Android on 21 Jul 2026 20:05:47 UTC.

Swift 6 data race errors: 66

Build Command

bash -c docker run --pull=always --rm -v "checkouts-54344849-1":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/saguaro1/spi-images:android-6.1-latest swift build --swift-sdk aarch64-unknown-linux-android24 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures 2>&1

Build Log

 50 |     public static let intervalRun = WorkoutType(name: "Intervals")
    |                       |- warning: static property 'intervalRun' is not concurrency-safe because non-'Sendable' type 'WorkoutType' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'intervalRun' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 51 |     public static let speedRun = WorkoutType(name: "Speed Run")
 52 |     public static let thresholdRun = WorkoutType(name: "Threshold")
/host/spi-builder-workspace/Sources/TrainingPlanKit/Models/WorkoutTypes.swift:51:23: warning: static property 'speedRun' is not concurrency-safe because non-'Sendable' type 'WorkoutType' may have shared mutable state; this is an error in the Swift 6 language mode
 35 | }
 36 |
 37 | public struct WorkoutType: Identifiable, Codable, Equatable, Hashable {
    |               `- note: consider making struct 'WorkoutType' conform to the 'Sendable' protocol
 38 |     public var name: String
 39 |
    :
 49 |     public static let progressionRun = WorkoutType(name: "Progression Run")
 50 |     public static let intervalRun = WorkoutType(name: "Intervals")
 51 |     public static let speedRun = WorkoutType(name: "Speed Run")
    |                       |- warning: static property 'speedRun' is not concurrency-safe because non-'Sendable' type 'WorkoutType' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'speedRun' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 52 |     public static let thresholdRun = WorkoutType(name: "Threshold")
 53 |     public static let fartlekRun = WorkoutType(name: "Fartlek Run")
/host/spi-builder-workspace/Sources/TrainingPlanKit/Models/WorkoutTypes.swift:52:23: warning: static property 'thresholdRun' is not concurrency-safe because non-'Sendable' type 'WorkoutType' may have shared mutable state; this is an error in the Swift 6 language mode
 35 | }
 36 |
 37 | public struct WorkoutType: Identifiable, Codable, Equatable, Hashable {
    |               `- note: consider making struct 'WorkoutType' conform to the 'Sendable' protocol
 38 |     public var name: String
 39 |
    :
 50 |     public static let intervalRun = WorkoutType(name: "Intervals")
 51 |     public static let speedRun = WorkoutType(name: "Speed Run")
 52 |     public static let thresholdRun = WorkoutType(name: "Threshold")
    |                       |- warning: static property 'thresholdRun' is not concurrency-safe because non-'Sendable' type 'WorkoutType' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'thresholdRun' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 53 |     public static let fartlekRun = WorkoutType(name: "Fartlek Run")
 54 |     public static let recoveryRun = WorkoutType(name: "Recovery Run")
/host/spi-builder-workspace/Sources/TrainingPlanKit/Models/WorkoutTypes.swift:53:23: warning: static property 'fartlekRun' is not concurrency-safe because non-'Sendable' type 'WorkoutType' may have shared mutable state; this is an error in the Swift 6 language mode
 35 | }
 36 |
 37 | public struct WorkoutType: Identifiable, Codable, Equatable, Hashable {
    |               `- note: consider making struct 'WorkoutType' conform to the 'Sendable' protocol
 38 |     public var name: String
 39 |
    :
 51 |     public static let speedRun = WorkoutType(name: "Speed Run")
 52 |     public static let thresholdRun = WorkoutType(name: "Threshold")
 53 |     public static let fartlekRun = WorkoutType(name: "Fartlek Run")
    |                       |- warning: static property 'fartlekRun' is not concurrency-safe because non-'Sendable' type 'WorkoutType' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'fartlekRun' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 54 |     public static let recoveryRun = WorkoutType(name: "Recovery Run")
 55 |     public static let freeRun = WorkoutType(name: "Free Run")
/host/spi-builder-workspace/Sources/TrainingPlanKit/Models/WorkoutTypes.swift:54:23: warning: static property 'recoveryRun' is not concurrency-safe because non-'Sendable' type 'WorkoutType' may have shared mutable state; this is an error in the Swift 6 language mode
 35 | }
 36 |
 37 | public struct WorkoutType: Identifiable, Codable, Equatable, Hashable {
    |               `- note: consider making struct 'WorkoutType' conform to the 'Sendable' protocol
 38 |     public var name: String
 39 |
    :
 52 |     public static let thresholdRun = WorkoutType(name: "Threshold")
 53 |     public static let fartlekRun = WorkoutType(name: "Fartlek Run")
 54 |     public static let recoveryRun = WorkoutType(name: "Recovery Run")
    |                       |- warning: static property 'recoveryRun' is not concurrency-safe because non-'Sendable' type 'WorkoutType' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'recoveryRun' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 55 |     public static let freeRun = WorkoutType(name: "Free Run")
 56 |     public static let race = WorkoutType(name: "Race")
/host/spi-builder-workspace/Sources/TrainingPlanKit/Models/WorkoutTypes.swift:55:23: warning: static property 'freeRun' is not concurrency-safe because non-'Sendable' type 'WorkoutType' may have shared mutable state; this is an error in the Swift 6 language mode
 35 | }
 36 |
 37 | public struct WorkoutType: Identifiable, Codable, Equatable, Hashable {
    |               `- note: consider making struct 'WorkoutType' conform to the 'Sendable' protocol
 38 |     public var name: String
 39 |
    :
 53 |     public static let fartlekRun = WorkoutType(name: "Fartlek Run")
 54 |     public static let recoveryRun = WorkoutType(name: "Recovery Run")
 55 |     public static let freeRun = WorkoutType(name: "Free Run")
    |                       |- warning: static property 'freeRun' is not concurrency-safe because non-'Sendable' type 'WorkoutType' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'freeRun' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 56 |     public static let race = WorkoutType(name: "Race")
 57 |     public static let cycling = WorkoutType(name: "Cycling")
/host/spi-builder-workspace/Sources/TrainingPlanKit/Models/WorkoutTypes.swift:56:23: warning: static property 'race' is not concurrency-safe because non-'Sendable' type 'WorkoutType' may have shared mutable state; this is an error in the Swift 6 language mode
 35 | }
 36 |
 37 | public struct WorkoutType: Identifiable, Codable, Equatable, Hashable {
    |               `- note: consider making struct 'WorkoutType' conform to the 'Sendable' protocol
 38 |     public var name: String
 39 |
    :
 54 |     public static let recoveryRun = WorkoutType(name: "Recovery Run")
 55 |     public static let freeRun = WorkoutType(name: "Free Run")
 56 |     public static let race = WorkoutType(name: "Race")
    |                       |- warning: static property 'race' is not concurrency-safe because non-'Sendable' type 'WorkoutType' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'race' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 57 |     public static let cycling = WorkoutType(name: "Cycling")
 58 |     public static let yoga = WorkoutType(name: "Yoga")
/host/spi-builder-workspace/Sources/TrainingPlanKit/Models/WorkoutTypes.swift:57:23: warning: static property 'cycling' is not concurrency-safe because non-'Sendable' type 'WorkoutType' may have shared mutable state; this is an error in the Swift 6 language mode
 35 | }
 36 |
 37 | public struct WorkoutType: Identifiable, Codable, Equatable, Hashable {
    |               `- note: consider making struct 'WorkoutType' conform to the 'Sendable' protocol
 38 |     public var name: String
 39 |
    :
 55 |     public static let freeRun = WorkoutType(name: "Free Run")
 56 |     public static let race = WorkoutType(name: "Race")
 57 |     public static let cycling = WorkoutType(name: "Cycling")
    |                       |- warning: static property 'cycling' is not concurrency-safe because non-'Sendable' type 'WorkoutType' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'cycling' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 58 |     public static let yoga = WorkoutType(name: "Yoga")
 59 |
/host/spi-builder-workspace/Sources/TrainingPlanKit/Models/WorkoutTypes.swift:58:23: warning: static property 'yoga' is not concurrency-safe because non-'Sendable' type 'WorkoutType' may have shared mutable state; this is an error in the Swift 6 language mode
 35 | }
 36 |
 37 | public struct WorkoutType: Identifiable, Codable, Equatable, Hashable {
    |               `- note: consider making struct 'WorkoutType' conform to the 'Sendable' protocol
 38 |     public var name: String
 39 |
    :
 56 |     public static let race = WorkoutType(name: "Race")
 57 |     public static let cycling = WorkoutType(name: "Cycling")
 58 |     public static let yoga = WorkoutType(name: "Yoga")
    |                       |- warning: static property 'yoga' is not concurrency-safe because non-'Sendable' type 'WorkoutType' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'yoga' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 59 |
 60 |     // Static array for default types
/host/spi-builder-workspace/Sources/TrainingPlanKit/Pacing/PaceZoneConverter.swift:55:23: warning: static property 'beginner' is not concurrency-safe because non-'Sendable' type 'PaceProgressionConfig' may have shared mutable state; this is an error in the Swift 6 language mode
  22 | /// Different runner levels get different progression curves.
  23 | /// All values are easily tweakable.
  24 | public struct PaceProgressionConfig {
     |               `- note: consider making struct 'PaceProgressionConfig' conform to the 'Sendable' protocol
  25 |     /// How much to blend toward conservativeTarget at plan START (1.0 = fully conservative, 0.0 = use base zone multiplier)
  26 |     public let initialAdjustment: Double
     :
  53 |     // MARK: - Presets per runner level
  54 |
  55 |     public static let beginner = PaceProgressionConfig(
     |                       |- warning: static property 'beginner' is not concurrency-safe because non-'Sendable' type 'PaceProgressionConfig' may have shared mutable state; this is an error in the Swift 6 language mode
     |                       |- note: add '@MainActor' to make static property 'beginner' part of global actor 'MainActor'
     |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
  56 |         initialAdjustment: 1.0,     // Start fully conservative
  57 |         finalAdjustment: 0.0,       // Reach true zones by race week (0.5 kept beginner
/host/spi-builder-workspace/Sources/TrainingPlanKit/Pacing/PaceZoneConverter.swift:63:23: warning: static property 'intermediate' is not concurrency-safe because non-'Sendable' type 'PaceProgressionConfig' may have shared mutable state; this is an error in the Swift 6 language mode
  22 | /// Different runner levels get different progression curves.
  23 | /// All values are easily tweakable.
  24 | public struct PaceProgressionConfig {
     |               `- note: consider making struct 'PaceProgressionConfig' conform to the 'Sendable' protocol
  25 |     /// How much to blend toward conservativeTarget at plan START (1.0 = fully conservative, 0.0 = use base zone multiplier)
  26 |     public let initialAdjustment: Double
     :
  61 |     )
  62 |
  63 |     public static let intermediate = PaceProgressionConfig(
     |                       |- warning: static property 'intermediate' is not concurrency-safe because non-'Sendable' type 'PaceProgressionConfig' may have shared mutable state; this is an error in the Swift 6 language mode
     |                       |- note: add '@MainActor' to make static property 'intermediate' part of global actor 'MainActor'
     |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
  64 |         // Quality easing matched to .advanced (0.5 → 0.0). The previous
  65 |         // 0.8 → 0.2 ramp held quality so conservative that a "10K Pace" or
/host/spi-builder-workspace/Sources/TrainingPlanKit/Pacing/PaceZoneConverter.swift:77:23: warning: static property 'advanced' is not concurrency-safe because non-'Sendable' type 'PaceProgressionConfig' may have shared mutable state; this is an error in the Swift 6 language mode
  22 | /// Different runner levels get different progression curves.
  23 | /// All values are easily tweakable.
  24 | public struct PaceProgressionConfig {
     |               `- note: consider making struct 'PaceProgressionConfig' conform to the 'Sendable' protocol
  25 |     /// How much to blend toward conservativeTarget at plan START (1.0 = fully conservative, 0.0 = use base zone multiplier)
  26 |     public let initialAdjustment: Double
     :
  75 |     )
  76 |
  77 |     public static let advanced = PaceProgressionConfig(
     |                       |- warning: static property 'advanced' is not concurrency-safe because non-'Sendable' type 'PaceProgressionConfig' may have shared mutable state; this is an error in the Swift 6 language mode
     |                       |- note: add '@MainActor' to make static property 'advanced' part of global actor 'MainActor'
     |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
  78 |         initialAdjustment: 0.5,     // Start moderate
  79 |         finalAdjustment: 0.0,       // End at full standard multipliers
/host/spi-builder-workspace/Sources/TrainingPlanKit/Pacing/PaceZoneConverter.swift:87:23: warning: static property 'competitive' is not concurrency-safe because non-'Sendable' type 'PaceProgressionConfig' may have shared mutable state; this is an error in the Swift 6 language mode
  22 | /// Different runner levels get different progression curves.
  23 | /// All values are easily tweakable.
  24 | public struct PaceProgressionConfig {
     |               `- note: consider making struct 'PaceProgressionConfig' conform to the 'Sendable' protocol
  25 |     /// How much to blend toward conservativeTarget at plan START (1.0 = fully conservative, 0.0 = use base zone multiplier)
  26 |     public let initialAdjustment: Double
     :
  85 |     /// via a recent race result (gate requires VDOT ≥ 58). All zones flat
  86 |     /// at goal target paces from day 1.
  87 |     public static let competitive = PaceProgressionConfig(
     |                       |- warning: static property 'competitive' is not concurrency-safe because non-'Sendable' type 'PaceProgressionConfig' may have shared mutable state; this is an error in the Swift 6 language mode
     |                       |- note: add '@MainActor' to make static property 'competitive' part of global actor 'MainActor'
     |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
  88 |         initialAdjustment: 0.0,
  89 |         finalAdjustment: 0.0,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Pacing/PaceZoneConverter.swift:101:23: warning: static property 'competitiveBuildBand' is not concurrency-safe because non-'Sendable' type 'PaceProgressionConfig' may have shared mutable state; this is an error in the Swift 6 language mode
  22 | /// Different runner levels get different progression curves.
  23 | /// All values are easily tweakable.
  24 | public struct PaceProgressionConfig {
     |               `- note: consider making struct 'PaceProgressionConfig' conform to the 'Sendable' protocol
  25 |     /// How much to blend toward conservativeTarget at plan START (1.0 = fully conservative, 0.0 = use base zone multiplier)
  26 |     public let initialAdjustment: Double
     :
  99 |     /// at the runner's VDOT-derived easy pace (floored at race), not the
 100 |     /// generic 1.15×race which is too slow at elite goal paces.
 101 |     public static let competitiveBuildBand = PaceProgressionConfig(
     |                       |- warning: static property 'competitiveBuildBand' is not concurrency-safe because non-'Sendable' type 'PaceProgressionConfig' may have shared mutable state; this is an error in the Swift 6 language mode
     |                       |- note: add '@MainActor' to make static property 'competitiveBuildBand' part of global actor 'MainActor'
     |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 102 |         initialAdjustment: 0.5,
 103 |         finalAdjustment: 0.0,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Pacing/PaceZoneConverter.swift:111:23: warning: static property 'maintenanceBeginner' is not concurrency-safe because non-'Sendable' type 'PaceProgressionConfig' may have shared mutable state; this is an error in the Swift 6 language mode
  22 | /// Different runner levels get different progression curves.
  23 | /// All values are easily tweakable.
  24 | public struct PaceProgressionConfig {
     |               `- note: consider making struct 'PaceProgressionConfig' conform to the 'Sendable' protocol
  25 |     /// How much to blend toward conservativeTarget at plan START (1.0 = fully conservative, 0.0 = use base zone multiplier)
  26 |     public let initialAdjustment: Double
     :
 109 |     // MARK: - Maintenance presets (very slow progression, stays conservative)
 110 |
 111 |     public static let maintenanceBeginner = PaceProgressionConfig(
     |                       |- warning: static property 'maintenanceBeginner' is not concurrency-safe because non-'Sendable' type 'PaceProgressionConfig' may have shared mutable state; this is an error in the Swift 6 language mode
     |                       |- note: add '@MainActor' to make static property 'maintenanceBeginner' part of global actor 'MainActor'
     |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 112 |         initialAdjustment: 1.0,     // Start fully conservative
 113 |         finalAdjustment: 0.8,       // Stay very conservative even at end
/host/spi-builder-workspace/Sources/TrainingPlanKit/Pacing/PaceZoneConverter.swift:118:23: warning: static property 'maintenanceIntermediate' is not concurrency-safe because non-'Sendable' type 'PaceProgressionConfig' may have shared mutable state; this is an error in the Swift 6 language mode
  22 | /// Different runner levels get different progression curves.
  23 | /// All values are easily tweakable.
  24 | public struct PaceProgressionConfig {
     |               `- note: consider making struct 'PaceProgressionConfig' conform to the 'Sendable' protocol
  25 |     /// How much to blend toward conservativeTarget at plan START (1.0 = fully conservative, 0.0 = use base zone multiplier)
  26 |     public let initialAdjustment: Double
     :
 116 |     )
 117 |
 118 |     public static let maintenanceIntermediate = PaceProgressionConfig(
     |                       |- warning: static property 'maintenanceIntermediate' is not concurrency-safe because non-'Sendable' type 'PaceProgressionConfig' may have shared mutable state; this is an error in the Swift 6 language mode
     |                       |- note: add '@MainActor' to make static property 'maintenanceIntermediate' part of global actor 'MainActor'
     |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 119 |         initialAdjustment: 0.9,     // Start very conservative
 120 |         finalAdjustment: 0.6,       // Stay mostly conservative
/host/spi-builder-workspace/Sources/TrainingPlanKit/Pacing/PaceZoneConverter.swift:125:23: warning: static property 'maintenanceAdvanced' is not concurrency-safe because non-'Sendable' type 'PaceProgressionConfig' may have shared mutable state; this is an error in the Swift 6 language mode
  22 | /// Different runner levels get different progression curves.
  23 | /// All values are easily tweakable.
  24 | public struct PaceProgressionConfig {
     |               `- note: consider making struct 'PaceProgressionConfig' conform to the 'Sendable' protocol
  25 |     /// How much to blend toward conservativeTarget at plan START (1.0 = fully conservative, 0.0 = use base zone multiplier)
  26 |     public let initialAdjustment: Double
     :
 123 |     )
 124 |
 125 |     public static let maintenanceAdvanced = PaceProgressionConfig(
     |                       |- warning: static property 'maintenanceAdvanced' is not concurrency-safe because non-'Sendable' type 'PaceProgressionConfig' may have shared mutable state; this is an error in the Swift 6 language mode
     |                       |- note: add '@MainActor' to make static property 'maintenanceAdvanced' part of global actor 'MainActor'
     |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 126 |         initialAdjustment: 0.7,     // Start conservative
 127 |         finalAdjustment: 0.4,       // Moderate by end
/host/spi-builder-workspace/Sources/TrainingPlanKit/Pacing/PaceZoneConverter.swift:576:24: warning: static property 'segmentTickSubtypes' is not concurrency-safe because non-'Sendable' type 'Set<WorkoutSubtype>' may have shared mutable state; this is an error in the Swift 6 language mode
 574 |     /// major segment (≥10min) to the 5-min tick and rebuild the total from the
 575 |     /// segments, so warmup, work block and cooldown all read as prescriptions.
 576 |     private static let segmentTickSubtypes: Set<WorkoutSubtype> = [
     |                        |- warning: static property 'segmentTickSubtypes' is not concurrency-safe because non-'Sendable' type 'Set<WorkoutSubtype>' may have shared mutable state; this is an error in the Swift 6 language mode
     |                        |- note: add '@MainActor' to make static property 'segmentTickSubtypes' part of global actor 'MainActor'
     |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 577 |         .raceRehearsalM, .raceRehearsalHM, .raceRehearsal10K, .fastFinish
 578 |     ]
/host/spi-builder-workspace/Sources/TrainingPlanKit/Models/WorkoutTypes.swift:88:13: note: consider making enum 'WorkoutSubtype' conform to the 'Sendable' protocol
 86 | }
 87 |
 88 | public enum WorkoutSubtype: String, CaseIterable, Identifiable, Codable {
    |             `- note: consider making enum 'WorkoutSubtype' conform to the 'Sendable' protocol
 89 |     case intervals
 90 |     case pyramidIntervals
/host/spi-builder-workspace/Sources/TrainingPlanKit/Pacing/PaceZoneConverter.swift:637:24: warning: static property 'fiveMinTickSubtypes' is not concurrency-safe because non-'Sendable' type 'Set<WorkoutSubtype>' may have shared mutable state; this is an error in the Swift 6 language mode
 635 |     /// jitter that pace-easing + clamp scaling produce. Excludes structured work
 636 |     /// (intervals, threshold, race rehearsals) whose minutes are dose-driven.
 637 |     private static let fiveMinTickSubtypes: Set<WorkoutSubtype> = [
     |                        |- warning: static property 'fiveMinTickSubtypes' is not concurrency-safe because non-'Sendable' type 'Set<WorkoutSubtype>' may have shared mutable state; this is an error in the Swift 6 language mode
     |                        |- note: add '@MainActor' to make static property 'fiveMinTickSubtypes' part of global actor 'MainActor'
     |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 638 |         .easy, .recovery, .long, .steadyLong, .mediumLong, .progressiveLong, .progression
 639 |     ]
/host/spi-builder-workspace/Sources/TrainingPlanKit/Models/WorkoutTypes.swift:88:13: note: consider making enum 'WorkoutSubtype' conform to the 'Sendable' protocol
 86 | }
 87 |
 88 | public enum WorkoutSubtype: String, CaseIterable, Identifiable, Codable {
    |             `- note: consider making enum 'WorkoutSubtype' conform to the 'Sendable' protocol
 89 |     case intervals
 90 |     case pyramidIntervals
/host/spi-builder-workspace/Sources/TrainingPlanKit/Pacing/PaceZoneConverter.swift:692:24: warning: static property 'longRunSubtypes' is not concurrency-safe because non-'Sendable' type 'Set<WorkoutSubtype>' may have shared mutable state; this is an error in the Swift 6 language mode
 690 |     /// runner's marathon long run doesn't balloon to 45+ km and a slow runner's
 691 |     /// doesn't shrink below the aerobic-development floor.
 692 |     private static let longRunSubtypes: Set<WorkoutSubtype> = [
     |                        |- warning: static property 'longRunSubtypes' is not concurrency-safe because non-'Sendable' type 'Set<WorkoutSubtype>' may have shared mutable state; this is an error in the Swift 6 language mode
     |                        |- note: add '@MainActor' to make static property 'longRunSubtypes' part of global actor 'MainActor'
     |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 693 |         .long, .steadyLong, .progressiveLong,
 694 |         .raceRehearsalM, .raceRehearsalHM, .raceRehearsal10K, .fastFinish
/host/spi-builder-workspace/Sources/TrainingPlanKit/Models/WorkoutTypes.swift:88:13: note: consider making enum 'WorkoutSubtype' conform to the 'Sendable' protocol
 86 | }
 87 |
 88 | public enum WorkoutSubtype: String, CaseIterable, Identifiable, Codable {
    |             `- note: consider making enum 'WorkoutSubtype' conform to the 'Sendable' protocol
 89 |     case intervals
 90 |     case pyramidIntervals
[24/34] Compiling TrainingPlanKit PlanRecalculator.swift
[25/34] Compiling TrainingPlanKit VDOT.swift
[26/34] Compiling TrainingPlanKit resource_bundle_accessor.swift
[27/34] Compiling TrainingPlanKit PlanConfiguration+Accessible.swift
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:16:23: warning: static property 'accessibleBeginner5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
 14 | extension PlanConfiguration {
 15 |
 16 |     public static let accessibleBeginner5Default = PlanConfiguration(
    |                       |- warning: static property 'accessibleBeginner5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'accessibleBeginner5Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 17 |         raceDate: Date(),
 18 |         runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:44:23: warning: static property 'accessibleIntermediate5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
 42 |     )
 43 |
 44 |     public static let accessibleIntermediate5Default = PlanConfiguration(
    |                       |- warning: static property 'accessibleIntermediate5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'accessibleIntermediate5Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 45 |         raceDate: Date(),
 46 |         runnerLevel: .intermediate,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:72:23: warning: static property 'accessibleAdvanced5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
 70 |     )
 71 |
 72 |     public static let accessibleAdvanced5Default = PlanConfiguration(
    |                       |- warning: static property 'accessibleAdvanced5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'accessibleAdvanced5Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 73 |         raceDate: Date(),
 74 |         runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:100:23: warning: static property 'accessibleBeginner10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
 98 |     )
 99 |
100 |     public static let accessibleBeginner10Default = PlanConfiguration(
    |                       |- warning: static property 'accessibleBeginner10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'accessibleBeginner10Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
101 |         raceDate: Date(),
102 |         runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:128:23: warning: static property 'accessibleIntermediate10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
126 |     )
127 |
128 |     public static let accessibleIntermediate10Default = PlanConfiguration(
    |                       |- warning: static property 'accessibleIntermediate10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'accessibleIntermediate10Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
129 |         raceDate: Date(),
130 |         runnerLevel: .intermediate,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:156:23: warning: static property 'accessibleAdvanced10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
154 |     )
155 |
156 |     public static let accessibleAdvanced10Default = PlanConfiguration(
    |                       |- warning: static property 'accessibleAdvanced10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'accessibleAdvanced10Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
157 |         raceDate: Date(),
158 |         runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:184:23: warning: static property 'accessibleBeginner21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
182 |     )
183 |
184 |     public static let accessibleBeginner21Default = PlanConfiguration(
    |                       |- warning: static property 'accessibleBeginner21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'accessibleBeginner21Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
185 |         raceDate: Date(),
186 |         runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:212:23: warning: static property 'accessibleIntermediate21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
210 |     )
211 |
212 |     public static let accessibleIntermediate21Default = PlanConfiguration(
    |                       |- warning: static property 'accessibleIntermediate21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'accessibleIntermediate21Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
213 |         raceDate: Date(),
214 |         runnerLevel: .intermediate,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:240:23: warning: static property 'accessibleAdvanced21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
238 |     )
239 |
240 |     public static let accessibleAdvanced21Default = PlanConfiguration(
    |                       |- warning: static property 'accessibleAdvanced21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'accessibleAdvanced21Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
241 |         raceDate: Date(),
242 |         runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:268:23: warning: static property 'accessibleBeginner42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
266 |     )
267 |
268 |     public static let accessibleBeginner42Default = PlanConfiguration(
    |                       |- warning: static property 'accessibleBeginner42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'accessibleBeginner42Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
269 |         raceDate: Date(),
270 |         runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:295:23: warning: static property 'accessibleIntermediate42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
293 |     )
294 |
295 |     public static let accessibleIntermediate42Default = PlanConfiguration(
    |                       |- warning: static property 'accessibleIntermediate42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'accessibleIntermediate42Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
296 |         raceDate: Date(),
297 |         runnerLevel: .intermediate,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:322:23: warning: static property 'accessibleAdvanced42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
320 |     )
321 |
322 |     public static let accessibleAdvanced42Default = PlanConfiguration(
    |                       |- warning: static property 'accessibleAdvanced42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'accessibleAdvanced42Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
323 |         raceDate: Date(),
324 |         runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:14:23: warning: static property 'advanced5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
 12 | extension PlanConfiguration {
 13 |
 14 |     public static let advanced5Default = PlanConfiguration(
    |                       |- warning: static property 'advanced5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'advanced5Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 15 |         raceDate: Date(),
 16 |         runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:41:23: warning: static property 'advanced10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
 39 |     )
 40 |
 41 |     public static let advanced10Default = PlanConfiguration(
    |                       |- warning: static property 'advanced10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'advanced10Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 42 |         raceDate: Date(),
 43 |         runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:73:23: warning: static property 'advanced21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
 71 |     )
 72 |
 73 |     public static let advanced21Default = PlanConfiguration(
    |                       |- warning: static property 'advanced21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'advanced21Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 74 |         raceDate: Date(),
 75 |         runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:101:23: warning: static property 'advanced42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
 99 |
100 |     // Default configuration for advanced runner with flexible durations
101 |     public static let advanced42Default = PlanConfiguration(
    |                       |- warning: static property 'advanced42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'advanced42Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
102 |         raceDate: Date(),
103 |         runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:132:23: warning: static property 'advanced15Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
130 |
131 |     // 15K — HM-lite: advanced 21K shape at ~0.85 volume.
132 |     public static let advanced15Default = PlanConfiguration(
    |                       |- warning: static property 'advanced15Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'advanced15Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
133 |         raceDate: Date(),
134 |         runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:160:23: warning: static property 'advanced10MiDefault' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
158 |
159 |     // 10 mile — same band as 15K, slightly longer.
160 |     public static let advanced10MiDefault = PlanConfiguration(
    |                       |- warning: static property 'advanced10MiDefault' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'advanced10MiDefault' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
161 |         raceDate: Date(),
162 |         runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:188:23: warning: static property 'advanced30Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
186 |
187 |     // 30K — marathon-lite: 42K shape at ~0.88 volume.
188 |     public static let advanced30Default = PlanConfiguration(
    |                       |- warning: static property 'advanced30Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'advanced30Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
189 |         raceDate: Date(),
190 |         runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:216:23: warning: static property 'advanced50Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
214 |
215 |     // 50K — ultra entry: 42K + time-on-feet, gentler ramp, 3-week taper.
216 |     public static let advanced50Default = PlanConfiguration(
    |                       |- warning: static property 'advanced50Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'advanced50Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
217 |         raceDate: Date(),
218 |         runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Beginner.swift:16:23: warning: static property 'beginner5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
 14 |
 15 |     // Default configuration for a beginner with flexible durations
 16 |     public static let beginner5Default = PlanConfiguration(
    |                       |- warning: static property 'beginner5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'beginner5Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 17 |         raceDate: Date(), // This should be set by the caller
 18 |         runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Beginner.swift:46:23: warning: static property 'beginner10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
 44 |
 45 |     // 10K configurations
 46 |     public static let beginner10Default = PlanConfiguration(
    |                       |- warning: static property 'beginner10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'beginner10Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 47 |         raceDate: Date(),
 48 |         runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Beginner.swift:74:23: warning: static property 'beginner21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
 72 |
 73 |     // 21K (Half Marathon) configurations
 74 |     public static let beginner21Default = PlanConfiguration(
    |                       |- warning: static property 'beginner21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'beginner21Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 75 |         raceDate: Date(),
 76 |         runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Beginner.swift:108:23: warning: static property 'beginner42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
106 |
107 |     // Default configuration for a beginner with flexible durations
108 |     public static let beginner42Default = PlanConfiguration(
    |                       |- warning: static property 'beginner42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'beginner42Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
109 |         raceDate: Date(), // This should be set by the caller
110 |         runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Beginner.swift:140:23: warning: static property 'beginner15Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
138 |
139 |     // 15K — HM-lite (Daniels 15K-to-half band): 21K shape at ~0.85 volume.
140 |     public static let beginner15Default = PlanConfiguration(
    |                       |- warning: static property 'beginner15Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'beginner15Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
141 |         raceDate: Date(),
142 |         runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Beginner.swift:168:23: warning: static property 'beginner10MiDefault' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
166 |
167 |     // 10 mile — a hair over 15K; same band, slightly longer LR ladder.
168 |     public static let beginner10MiDefault = PlanConfiguration(
    |                       |- warning: static property 'beginner10MiDefault' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'beginner10MiDefault' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
169 |         raceDate: Date(),
170 |         runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Competitive.swift:18:23: warning: static property 'competitive5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
 16 |     // the generator's 5K branch drops the LR slot; endurance comes from easy
 17 |     // frequency. Volume ~70-90 km/wk peak, per Daniels Phase III-IV 5K.
 18 |     public static let competitive5Default = PlanConfiguration(
    |                       |- warning: static property 'competitive5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'competitive5Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 19 |         raceDate: Date(),
 20 |         runnerLevel: .competitive,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Competitive.swift:54:23: warning: static property 'competitive10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
 52 |     // (unlike 5K) but shorter than half: peak LR ~105min ≈ 22-24km.
 53 |     // Daniels Adv 10K sits 70-90 km/wk; competitive lands just above.
 54 |     public static let competitive10Default = PlanConfiguration(
    |                       |- warning: static property 'competitive10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'competitive10Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 55 |         raceDate: Date(),
 56 |         runnerLevel: .competitive,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Competitive.swift:91:23: warning: static property 'competitive21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
 89 |     // fatigue. Pfitz/Daniels advanced half plans use 3-week tapers for
 90 |     // 16-18w cycles. minTaperPhaseWeeks 3 ≈ a real 3-week ramp-down.
 91 |     public static let competitive21Default = PlanConfiguration(
    |                       |- warning: static property 'competitive21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'competitive21Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 92 |         raceDate: Date(),
 93 |         runnerLevel: .competitive,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Competitive.swift:130:23: warning: static property 'competitive42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
128 |     // sub-3h athlete after 60-90 km/wk peak leaves lingering fatigue
129 |     // that wrecks race day. taperPhaseRatio 0.15 ≈ 3 weeks of an 18w plan.
130 |     public static let competitive42Default = PlanConfiguration(
    |                       |- warning: static property 'competitive42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'competitive42Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
131 |         raceDate: Date(),
132 |         runnerLevel: .competitive,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
[28/34] Compiling TrainingPlanKit PlanConfiguration+Advanced.swift
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:16:23: warning: static property 'accessibleBeginner5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
 14 | extension PlanConfiguration {
 15 |
 16 |     public static let accessibleBeginner5Default = PlanConfiguration(
    |                       |- warning: static property 'accessibleBeginner5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'accessibleBeginner5Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 17 |         raceDate: Date(),
 18 |         runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:44:23: warning: static property 'accessibleIntermediate5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
 42 |     )
 43 |
 44 |     public static let accessibleIntermediate5Default = PlanConfiguration(
    |                       |- warning: static property 'accessibleIntermediate5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'accessibleIntermediate5Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 45 |         raceDate: Date(),
 46 |         runnerLevel: .intermediate,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:72:23: warning: static property 'accessibleAdvanced5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
 70 |     )
 71 |
 72 |     public static let accessibleAdvanced5Default = PlanConfiguration(
    |                       |- warning: static property 'accessibleAdvanced5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'accessibleAdvanced5Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 73 |         raceDate: Date(),
 74 |         runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:100:23: warning: static property 'accessibleBeginner10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
 98 |     )
 99 |
100 |     public static let accessibleBeginner10Default = PlanConfiguration(
    |                       |- warning: static property 'accessibleBeginner10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'accessibleBeginner10Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
101 |         raceDate: Date(),
102 |         runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:128:23: warning: static property 'accessibleIntermediate10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
126 |     )
127 |
128 |     public static let accessibleIntermediate10Default = PlanConfiguration(
    |                       |- warning: static property 'accessibleIntermediate10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'accessibleIntermediate10Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
129 |         raceDate: Date(),
130 |         runnerLevel: .intermediate,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:156:23: warning: static property 'accessibleAdvanced10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
154 |     )
155 |
156 |     public static let accessibleAdvanced10Default = PlanConfiguration(
    |                       |- warning: static property 'accessibleAdvanced10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'accessibleAdvanced10Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
157 |         raceDate: Date(),
158 |         runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:184:23: warning: static property 'accessibleBeginner21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
182 |     )
183 |
184 |     public static let accessibleBeginner21Default = PlanConfiguration(
    |                       |- warning: static property 'accessibleBeginner21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'accessibleBeginner21Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
185 |         raceDate: Date(),
186 |         runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:212:23: warning: static property 'accessibleIntermediate21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
210 |     )
211 |
212 |     public static let accessibleIntermediate21Default = PlanConfiguration(
    |                       |- warning: static property 'accessibleIntermediate21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'accessibleIntermediate21Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
213 |         raceDate: Date(),
214 |         runnerLevel: .intermediate,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:240:23: warning: static property 'accessibleAdvanced21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
238 |     )
239 |
240 |     public static let accessibleAdvanced21Default = PlanConfiguration(
    |                       |- warning: static property 'accessibleAdvanced21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'accessibleAdvanced21Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
241 |         raceDate: Date(),
242 |         runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:268:23: warning: static property 'accessibleBeginner42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
266 |     )
267 |
268 |     public static let accessibleBeginner42Default = PlanConfiguration(
    |                       |- warning: static property 'accessibleBeginner42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'accessibleBeginner42Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
269 |         raceDate: Date(),
270 |         runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:295:23: warning: static property 'accessibleIntermediate42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
293 |     )
294 |
295 |     public static let accessibleIntermediate42Default = PlanConfiguration(
    |                       |- warning: static property 'accessibleIntermediate42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'accessibleIntermediate42Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
296 |         raceDate: Date(),
297 |         runnerLevel: .intermediate,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:322:23: warning: static property 'accessibleAdvanced42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
320 |     )
321 |
322 |     public static let accessibleAdvanced42Default = PlanConfiguration(
    |                       |- warning: static property 'accessibleAdvanced42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'accessibleAdvanced42Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
323 |         raceDate: Date(),
324 |         runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:14:23: warning: static property 'advanced5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
 12 | extension PlanConfiguration {
 13 |
 14 |     public static let advanced5Default = PlanConfiguration(
    |                       |- warning: static property 'advanced5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'advanced5Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 15 |         raceDate: Date(),
 16 |         runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:41:23: warning: static property 'advanced10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
 39 |     )
 40 |
 41 |     public static let advanced10Default = PlanConfiguration(
    |                       |- warning: static property 'advanced10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'advanced10Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 42 |         raceDate: Date(),
 43 |         runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:73:23: warning: static property 'advanced21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
 71 |     )
 72 |
 73 |     public static let advanced21Default = PlanConfiguration(
    |                       |- warning: static property 'advanced21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'advanced21Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 74 |         raceDate: Date(),
 75 |         runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:101:23: warning: static property 'advanced42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
 99 |
100 |     // Default configuration for advanced runner with flexible durations
101 |     public static let advanced42Default = PlanConfiguration(
    |                       |- warning: static property 'advanced42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'advanced42Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
102 |         raceDate: Date(),
103 |         runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:132:23: warning: static property 'advanced15Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
130 |
131 |     // 15K — HM-lite: advanced 21K shape at ~0.85 volume.
132 |     public static let advanced15Default = PlanConfiguration(
    |                       |- warning: static property 'advanced15Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'advanced15Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
133 |         raceDate: Date(),
134 |         runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:160:23: warning: static property 'advanced10MiDefault' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
158 |
159 |     // 10 mile — same band as 15K, slightly longer.
160 |     public static let advanced10MiDefault = PlanConfiguration(
    |                       |- warning: static property 'advanced10MiDefault' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'advanced10MiDefault' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
161 |         raceDate: Date(),
162 |         runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:188:23: warning: static property 'advanced30Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
186 |
187 |     // 30K — marathon-lite: 42K shape at ~0.88 volume.
188 |     public static let advanced30Default = PlanConfiguration(
    |                       |- warning: static property 'advanced30Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'advanced30Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
189 |         raceDate: Date(),
190 |         runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:216:23: warning: static property 'advanced50Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
214 |
215 |     // 50K — ultra entry: 42K + time-on-feet, gentler ramp, 3-week taper.
216 |     public static let advanced50Default = PlanConfiguration(
    |                       |- warning: static property 'advanced50Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'advanced50Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
217 |         raceDate: Date(),
218 |         runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Beginner.swift:16:23: warning: static property 'beginner5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
 14 |
 15 |     // Default configuration for a beginner with flexible durations
 16 |     public static let beginner5Default = PlanConfiguration(
    |                       |- warning: static property 'beginner5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'beginner5Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 17 |         raceDate: Date(), // This should be set by the caller
 18 |         runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Beginner.swift:46:23: warning: static property 'beginner10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
 44 |
 45 |     // 10K configurations
 46 |     public static let beginner10Default = PlanConfiguration(
    |                       |- warning: static property 'beginner10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'beginner10Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 47 |         raceDate: Date(),
 48 |         runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Beginner.swift:74:23: warning: static property 'beginner21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
 72 |
 73 |     // 21K (Half Marathon) configurations
 74 |     public static let beginner21Default = PlanConfiguration(
    |                       |- warning: static property 'beginner21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'beginner21Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 75 |         raceDate: Date(),
 76 |         runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Beginner.swift:108:23: warning: static property 'beginner42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
106 |
107 |     // Default configuration for a beginner with flexible durations
108 |     public static let beginner42Default = PlanConfiguration(
    |                       |- warning: static property 'beginner42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'beginner42Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
109 |         raceDate: Date(), // This should be set by the caller
110 |         runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Beginner.swift:140:23: warning: static property 'beginner15Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
138 |
139 |     // 15K — HM-lite (Daniels 15K-to-half band): 21K shape at ~0.85 volume.
140 |     public static let beginner15Default = PlanConfiguration(
    |                       |- warning: static property 'beginner15Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'beginner15Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
141 |         raceDate: Date(),
142 |         runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Beginner.swift:168:23: warning: static property 'beginner10MiDefault' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
166 |
167 |     // 10 mile — a hair over 15K; same band, slightly longer LR ladder.
168 |     public static let beginner10MiDefault = PlanConfiguration(
    |                       |- warning: static property 'beginner10MiDefault' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'beginner10MiDefault' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
169 |         raceDate: Date(),
170 |         runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Competitive.swift:18:23: warning: static property 'competitive5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
 16 |     // the generator's 5K branch drops the LR slot; endurance comes from easy
 17 |     // frequency. Volume ~70-90 km/wk peak, per Daniels Phase III-IV 5K.
 18 |     public static let competitive5Default = PlanConfiguration(
    |                       |- warning: static property 'competitive5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'competitive5Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 19 |         raceDate: Date(),
 20 |         runnerLevel: .competitive,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Competitive.swift:54:23: warning: static property 'competitive10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
 52 |     // (unlike 5K) but shorter than half: peak LR ~105min ≈ 22-24km.
 53 |     // Daniels Adv 10K sits 70-90 km/wk; competitive lands just above.
 54 |     public static let competitive10Default = PlanConfiguration(
    |                       |- warning: static property 'competitive10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'competitive10Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 55 |         raceDate: Date(),
 56 |         runnerLevel: .competitive,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Competitive.swift:91:23: warning: static property 'competitive21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
 89 |     // fatigue. Pfitz/Daniels advanced half plans use 3-week tapers for
 90 |     // 16-18w cycles. minTaperPhaseWeeks 3 ≈ a real 3-week ramp-down.
 91 |     public static let competitive21Default = PlanConfiguration(
    |                       |- warning: static property 'competitive21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'competitive21Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 92 |         raceDate: Date(),
 93 |         runnerLevel: .competitive,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Competitive.swift:130:23: warning: static property 'competitive42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
128 |     // sub-3h athlete after 60-90 km/wk peak leaves lingering fatigue
129 |     // that wrecks race day. taperPhaseRatio 0.15 ≈ 3 weeks of an 18w plan.
130 |     public static let competitive42Default = PlanConfiguration(
    |                       |- warning: static property 'competitive42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'competitive42Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
131 |         raceDate: Date(),
132 |         runnerLevel: .competitive,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
[29/34] Compiling TrainingPlanKit PlanConfiguration+Beginner.swift
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:16:23: warning: static property 'accessibleBeginner5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
 14 | extension PlanConfiguration {
 15 |
 16 |     public static let accessibleBeginner5Default = PlanConfiguration(
    |                       |- warning: static property 'accessibleBeginner5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'accessibleBeginner5Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 17 |         raceDate: Date(),
 18 |         runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:44:23: warning: static property 'accessibleIntermediate5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
 42 |     )
 43 |
 44 |     public static let accessibleIntermediate5Default = PlanConfiguration(
    |                       |- warning: static property 'accessibleIntermediate5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'accessibleIntermediate5Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 45 |         raceDate: Date(),
 46 |         runnerLevel: .intermediate,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:72:23: warning: static property 'accessibleAdvanced5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
 70 |     )
 71 |
 72 |     public static let accessibleAdvanced5Default = PlanConfiguration(
    |                       |- warning: static property 'accessibleAdvanced5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'accessibleAdvanced5Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 73 |         raceDate: Date(),
 74 |         runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:100:23: warning: static property 'accessibleBeginner10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
 98 |     )
 99 |
100 |     public static let accessibleBeginner10Default = PlanConfiguration(
    |                       |- warning: static property 'accessibleBeginner10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'accessibleBeginner10Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
101 |         raceDate: Date(),
102 |         runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:128:23: warning: static property 'accessibleIntermediate10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
126 |     )
127 |
128 |     public static let accessibleIntermediate10Default = PlanConfiguration(
    |                       |- warning: static property 'accessibleIntermediate10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'accessibleIntermediate10Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
129 |         raceDate: Date(),
130 |         runnerLevel: .intermediate,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:156:23: warning: static property 'accessibleAdvanced10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
154 |     )
155 |
156 |     public static let accessibleAdvanced10Default = PlanConfiguration(
    |                       |- warning: static property 'accessibleAdvanced10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'accessibleAdvanced10Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
157 |         raceDate: Date(),
158 |         runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:184:23: warning: static property 'accessibleBeginner21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
182 |     )
183 |
184 |     public static let accessibleBeginner21Default = PlanConfiguration(
    |                       |- warning: static property 'accessibleBeginner21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'accessibleBeginner21Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
185 |         raceDate: Date(),
186 |         runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:212:23: warning: static property 'accessibleIntermediate21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
210 |     )
211 |
212 |     public static let accessibleIntermediate21Default = PlanConfiguration(
    |                       |- warning: static property 'accessibleIntermediate21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'accessibleIntermediate21Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
213 |         raceDate: Date(),
214 |         runnerLevel: .intermediate,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:240:23: warning: static property 'accessibleAdvanced21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
238 |     )
239 |
240 |     public static let accessibleAdvanced21Default = PlanConfiguration(
    |                       |- warning: static property 'accessibleAdvanced21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'accessibleAdvanced21Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
241 |         raceDate: Date(),
242 |         runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:268:23: warning: static property 'accessibleBeginner42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
266 |     )
267 |
268 |     public static let accessibleBeginner42Default = PlanConfiguration(
    |                       |- warning: static property 'accessibleBeginner42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'accessibleBeginner42Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
269 |         raceDate: Date(),
270 |         runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:295:23: warning: static property 'accessibleIntermediate42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
293 |     )
294 |
295 |     public static let accessibleIntermediate42Default = PlanConfiguration(
    |                       |- warning: static property 'accessibleIntermediate42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'accessibleIntermediate42Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
296 |         raceDate: Date(),
297 |         runnerLevel: .intermediate,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:322:23: warning: static property 'accessibleAdvanced42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
320 |     )
321 |
322 |     public static let accessibleAdvanced42Default = PlanConfiguration(
    |                       |- warning: static property 'accessibleAdvanced42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'accessibleAdvanced42Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
323 |         raceDate: Date(),
324 |         runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:14:23: warning: static property 'advanced5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
 12 | extension PlanConfiguration {
 13 |
 14 |     public static let advanced5Default = PlanConfiguration(
    |                       |- warning: static property 'advanced5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'advanced5Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 15 |         raceDate: Date(),
 16 |         runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:41:23: warning: static property 'advanced10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
 39 |     )
 40 |
 41 |     public static let advanced10Default = PlanConfiguration(
    |                       |- warning: static property 'advanced10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'advanced10Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 42 |         raceDate: Date(),
 43 |         runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:73:23: warning: static property 'advanced21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
 71 |     )
 72 |
 73 |     public static let advanced21Default = PlanConfiguration(
    |                       |- warning: static property 'advanced21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'advanced21Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 74 |         raceDate: Date(),
 75 |         runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:101:23: warning: static property 'advanced42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
 99 |
100 |     // Default configuration for advanced runner with flexible durations
101 |     public static let advanced42Default = PlanConfiguration(
    |                       |- warning: static property 'advanced42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'advanced42Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
102 |         raceDate: Date(),
103 |         runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:132:23: warning: static property 'advanced15Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
130 |
131 |     // 15K — HM-lite: advanced 21K shape at ~0.85 volume.
132 |     public static let advanced15Default = PlanConfiguration(
    |                       |- warning: static property 'advanced15Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'advanced15Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
133 |         raceDate: Date(),
134 |         runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:160:23: warning: static property 'advanced10MiDefault' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
158 |
159 |     // 10 mile — same band as 15K, slightly longer.
160 |     public static let advanced10MiDefault = PlanConfiguration(
    |                       |- warning: static property 'advanced10MiDefault' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'advanced10MiDefault' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
161 |         raceDate: Date(),
162 |         runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:188:23: warning: static property 'advanced30Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
186 |
187 |     // 30K — marathon-lite: 42K shape at ~0.88 volume.
188 |     public static let advanced30Default = PlanConfiguration(
    |                       |- warning: static property 'advanced30Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'advanced30Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
189 |         raceDate: Date(),
190 |         runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:216:23: warning: static property 'advanced50Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
214 |
215 |     // 50K — ultra entry: 42K + time-on-feet, gentler ramp, 3-week taper.
216 |     public static let advanced50Default = PlanConfiguration(
    |                       |- warning: static property 'advanced50Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'advanced50Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
217 |         raceDate: Date(),
218 |         runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Beginner.swift:16:23: warning: static property 'beginner5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
 14 |
 15 |     // Default configuration for a beginner with flexible durations
 16 |     public static let beginner5Default = PlanConfiguration(
    |                       |- warning: static property 'beginner5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'beginner5Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 17 |         raceDate: Date(), // This should be set by the caller
 18 |         runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Beginner.swift:46:23: warning: static property 'beginner10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
 44 |
 45 |     // 10K configurations
 46 |     public static let beginner10Default = PlanConfiguration(
    |                       |- warning: static property 'beginner10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'beginner10Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 47 |         raceDate: Date(),
 48 |         runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Beginner.swift:74:23: warning: static property 'beginner21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
 72 |
 73 |     // 21K (Half Marathon) configurations
 74 |     public static let beginner21Default = PlanConfiguration(
    |                       |- warning: static property 'beginner21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'beginner21Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 75 |         raceDate: Date(),
 76 |         runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Beginner.swift:108:23: warning: static property 'beginner42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
106 |
107 |     // Default configuration for a beginner with flexible durations
108 |     public static let beginner42Default = PlanConfiguration(
    |                       |- warning: static property 'beginner42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'beginner42Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
109 |         raceDate: Date(), // This should be set by the caller
110 |         runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Beginner.swift:140:23: warning: static property 'beginner15Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
138 |
139 |     // 15K — HM-lite (Daniels 15K-to-half band): 21K shape at ~0.85 volume.
140 |     public static let beginner15Default = PlanConfiguration(
    |                       |- warning: static property 'beginner15Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'beginner15Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
141 |         raceDate: Date(),
142 |         runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Beginner.swift:168:23: warning: static property 'beginner10MiDefault' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
166 |
167 |     // 10 mile — a hair over 15K; same band, slightly longer LR ladder.
168 |     public static let beginner10MiDefault = PlanConfiguration(
    |                       |- warning: static property 'beginner10MiDefault' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'beginner10MiDefault' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
169 |         raceDate: Date(),
170 |         runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Competitive.swift:18:23: warning: static property 'competitive5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
 16 |     // the generator's 5K branch drops the LR slot; endurance comes from easy
 17 |     // frequency. Volume ~70-90 km/wk peak, per Daniels Phase III-IV 5K.
 18 |     public static let competitive5Default = PlanConfiguration(
    |                       |- warning: static property 'competitive5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'competitive5Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 19 |         raceDate: Date(),
 20 |         runnerLevel: .competitive,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Competitive.swift:54:23: warning: static property 'competitive10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
 52 |     // (unlike 5K) but shorter than half: peak LR ~105min ≈ 22-24km.
 53 |     // Daniels Adv 10K sits 70-90 km/wk; competitive lands just above.
 54 |     public static let competitive10Default = PlanConfiguration(
    |                       |- warning: static property 'competitive10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'competitive10Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 55 |         raceDate: Date(),
 56 |         runnerLevel: .competitive,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Competitive.swift:91:23: warning: static property 'competitive21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
 89 |     // fatigue. Pfitz/Daniels advanced half plans use 3-week tapers for
 90 |     // 16-18w cycles. minTaperPhaseWeeks 3 ≈ a real 3-week ramp-down.
 91 |     public static let competitive21Default = PlanConfiguration(
    |                       |- warning: static property 'competitive21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'competitive21Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 92 |         raceDate: Date(),
 93 |         runnerLevel: .competitive,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Competitive.swift:130:23: warning: static property 'competitive42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
128 |     // sub-3h athlete after 60-90 km/wk peak leaves lingering fatigue
129 |     // that wrecks race day. taperPhaseRatio 0.15 ≈ 3 weeks of an 18w plan.
130 |     public static let competitive42Default = PlanConfiguration(
    |                       |- warning: static property 'competitive42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'competitive42Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
131 |         raceDate: Date(),
132 |         runnerLevel: .competitive,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
[30/34] Compiling TrainingPlanKit PlanConfiguration+Competitive.swift
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:16:23: warning: static property 'accessibleBeginner5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
 14 | extension PlanConfiguration {
 15 |
 16 |     public static let accessibleBeginner5Default = PlanConfiguration(
    |                       |- warning: static property 'accessibleBeginner5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'accessibleBeginner5Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 17 |         raceDate: Date(),
 18 |         runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:44:23: warning: static property 'accessibleIntermediate5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
 42 |     )
 43 |
 44 |     public static let accessibleIntermediate5Default = PlanConfiguration(
    |                       |- warning: static property 'accessibleIntermediate5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'accessibleIntermediate5Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 45 |         raceDate: Date(),
 46 |         runnerLevel: .intermediate,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:72:23: warning: static property 'accessibleAdvanced5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
 70 |     )
 71 |
 72 |     public static let accessibleAdvanced5Default = PlanConfiguration(
    |                       |- warning: static property 'accessibleAdvanced5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'accessibleAdvanced5Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 73 |         raceDate: Date(),
 74 |         runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:100:23: warning: static property 'accessibleBeginner10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
 98 |     )
 99 |
100 |     public static let accessibleBeginner10Default = PlanConfiguration(
    |                       |- warning: static property 'accessibleBeginner10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'accessibleBeginner10Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
101 |         raceDate: Date(),
102 |         runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:128:23: warning: static property 'accessibleIntermediate10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
126 |     )
127 |
128 |     public static let accessibleIntermediate10Default = PlanConfiguration(
    |                       |- warning: static property 'accessibleIntermediate10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'accessibleIntermediate10Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
129 |         raceDate: Date(),
130 |         runnerLevel: .intermediate,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:156:23: warning: static property 'accessibleAdvanced10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
154 |     )
155 |
156 |     public static let accessibleAdvanced10Default = PlanConfiguration(
    |                       |- warning: static property 'accessibleAdvanced10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'accessibleAdvanced10Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
157 |         raceDate: Date(),
158 |         runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:184:23: warning: static property 'accessibleBeginner21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
182 |     )
183 |
184 |     public static let accessibleBeginner21Default = PlanConfiguration(
    |                       |- warning: static property 'accessibleBeginner21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'accessibleBeginner21Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
185 |         raceDate: Date(),
186 |         runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:212:23: warning: static property 'accessibleIntermediate21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
210 |     )
211 |
212 |     public static let accessibleIntermediate21Default = PlanConfiguration(
    |                       |- warning: static property 'accessibleIntermediate21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'accessibleIntermediate21Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
213 |         raceDate: Date(),
214 |         runnerLevel: .intermediate,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:240:23: warning: static property 'accessibleAdvanced21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
238 |     )
239 |
240 |     public static let accessibleAdvanced21Default = PlanConfiguration(
    |                       |- warning: static property 'accessibleAdvanced21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'accessibleAdvanced21Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
241 |         raceDate: Date(),
242 |         runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:268:23: warning: static property 'accessibleBeginner42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
266 |     )
267 |
268 |     public static let accessibleBeginner42Default = PlanConfiguration(
    |                       |- warning: static property 'accessibleBeginner42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'accessibleBeginner42Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
269 |         raceDate: Date(),
270 |         runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:295:23: warning: static property 'accessibleIntermediate42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
293 |     )
294 |
295 |     public static let accessibleIntermediate42Default = PlanConfiguration(
    |                       |- warning: static property 'accessibleIntermediate42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'accessibleIntermediate42Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
296 |         raceDate: Date(),
297 |         runnerLevel: .intermediate,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:322:23: warning: static property 'accessibleAdvanced42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
320 |     )
321 |
322 |     public static let accessibleAdvanced42Default = PlanConfiguration(
    |                       |- warning: static property 'accessibleAdvanced42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'accessibleAdvanced42Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
323 |         raceDate: Date(),
324 |         runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:14:23: warning: static property 'advanced5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
 12 | extension PlanConfiguration {
 13 |
 14 |     public static let advanced5Default = PlanConfiguration(
    |                       |- warning: static property 'advanced5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'advanced5Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 15 |         raceDate: Date(),
 16 |         runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:41:23: warning: static property 'advanced10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
 39 |     )
 40 |
 41 |     public static let advanced10Default = PlanConfiguration(
    |                       |- warning: static property 'advanced10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'advanced10Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 42 |         raceDate: Date(),
 43 |         runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:73:23: warning: static property 'advanced21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
 71 |     )
 72 |
 73 |     public static let advanced21Default = PlanConfiguration(
    |                       |- warning: static property 'advanced21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'advanced21Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 74 |         raceDate: Date(),
 75 |         runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:101:23: warning: static property 'advanced42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
 99 |
100 |     // Default configuration for advanced runner with flexible durations
101 |     public static let advanced42Default = PlanConfiguration(
    |                       |- warning: static property 'advanced42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'advanced42Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
102 |         raceDate: Date(),
103 |         runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:132:23: warning: static property 'advanced15Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
130 |
131 |     // 15K — HM-lite: advanced 21K shape at ~0.85 volume.
132 |     public static let advanced15Default = PlanConfiguration(
    |                       |- warning: static property 'advanced15Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'advanced15Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
133 |         raceDate: Date(),
134 |         runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:160:23: warning: static property 'advanced10MiDefault' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
158 |
159 |     // 10 mile — same band as 15K, slightly longer.
160 |     public static let advanced10MiDefault = PlanConfiguration(
    |                       |- warning: static property 'advanced10MiDefault' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'advanced10MiDefault' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
161 |         raceDate: Date(),
162 |         runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:188:23: warning: static property 'advanced30Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
186 |
187 |     // 30K — marathon-lite: 42K shape at ~0.88 volume.
188 |     public static let advanced30Default = PlanConfiguration(
    |                       |- warning: static property 'advanced30Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'advanced30Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
189 |         raceDate: Date(),
190 |         runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:216:23: warning: static property 'advanced50Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
214 |
215 |     // 50K — ultra entry: 42K + time-on-feet, gentler ramp, 3-week taper.
216 |     public static let advanced50Default = PlanConfiguration(
    |                       |- warning: static property 'advanced50Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'advanced50Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
217 |         raceDate: Date(),
218 |         runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Beginner.swift:16:23: warning: static property 'beginner5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
 14 |
 15 |     // Default configuration for a beginner with flexible durations
 16 |     public static let beginner5Default = PlanConfiguration(
    |                       |- warning: static property 'beginner5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'beginner5Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 17 |         raceDate: Date(), // This should be set by the caller
 18 |         runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Beginner.swift:46:23: warning: static property 'beginner10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
 44 |
 45 |     // 10K configurations
 46 |     public static let beginner10Default = PlanConfiguration(
    |                       |- warning: static property 'beginner10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'beginner10Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 47 |         raceDate: Date(),
 48 |         runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Beginner.swift:74:23: warning: static property 'beginner21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
 72 |
 73 |     // 21K (Half Marathon) configurations
 74 |     public static let beginner21Default = PlanConfiguration(
    |                       |- warning: static property 'beginner21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'beginner21Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 75 |         raceDate: Date(),
 76 |         runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Beginner.swift:108:23: warning: static property 'beginner42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
106 |
107 |     // Default configuration for a beginner with flexible durations
108 |     public static let beginner42Default = PlanConfiguration(
    |                       |- warning: static property 'beginner42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'beginner42Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
109 |         raceDate: Date(), // This should be set by the caller
110 |         runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Beginner.swift:140:23: warning: static property 'beginner15Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
138 |
139 |     // 15K — HM-lite (Daniels 15K-to-half band): 21K shape at ~0.85 volume.
140 |     public static let beginner15Default = PlanConfiguration(
    |                       |- warning: static property 'beginner15Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'beginner15Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
141 |         raceDate: Date(),
142 |         runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Beginner.swift:168:23: warning: static property 'beginner10MiDefault' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
166 |
167 |     // 10 mile — a hair over 15K; same band, slightly longer LR ladder.
168 |     public static let beginner10MiDefault = PlanConfiguration(
    |                       |- warning: static property 'beginner10MiDefault' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'beginner10MiDefault' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
169 |         raceDate: Date(),
170 |         runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Competitive.swift:18:23: warning: static property 'competitive5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
 16 |     // the generator's 5K branch drops the LR slot; endurance comes from easy
 17 |     // frequency. Volume ~70-90 km/wk peak, per Daniels Phase III-IV 5K.
 18 |     public static let competitive5Default = PlanConfiguration(
    |                       |- warning: static property 'competitive5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'competitive5Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 19 |         raceDate: Date(),
 20 |         runnerLevel: .competitive,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Competitive.swift:54:23: warning: static property 'competitive10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
 52 |     // (unlike 5K) but shorter than half: peak LR ~105min ≈ 22-24km.
 53 |     // Daniels Adv 10K sits 70-90 km/wk; competitive lands just above.
 54 |     public static let competitive10Default = PlanConfiguration(
    |                       |- warning: static property 'competitive10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'competitive10Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 55 |         raceDate: Date(),
 56 |         runnerLevel: .competitive,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Competitive.swift:91:23: warning: static property 'competitive21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
 89 |     // fatigue. Pfitz/Daniels advanced half plans use 3-week tapers for
 90 |     // 16-18w cycles. minTaperPhaseWeeks 3 ≈ a real 3-week ramp-down.
 91 |     public static let competitive21Default = PlanConfiguration(
    |                       |- warning: static property 'competitive21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'competitive21Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 92 |         raceDate: Date(),
 93 |         runnerLevel: .competitive,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Competitive.swift:130:23: warning: static property 'competitive42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
128 |     // sub-3h athlete after 60-90 km/wk peak leaves lingering fatigue
129 |     // that wrecks race day. taperPhaseRatio 0.15 ≈ 3 weeks of an 18w plan.
130 |     public static let competitive42Default = PlanConfiguration(
    |                       |- warning: static property 'competitive42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'competitive42Default' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
131 |         raceDate: Date(),
132 |         runnerLevel: .competitive,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 83 | }
 84 |
 85 | public struct PlanConfiguration {
    |               `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
 86 |     // Race details
 87 |     public let raceDate: Date
[31/34] Compiling TrainingPlanKit RaceWorkoutFactory.swift
[32/34] Compiling TrainingPlanKit Plan.swift
[33/34] Compiling TrainingPlanKit Workout.swift
[34/34] Compiling TrainingPlanKit WorkoutEvent.swift
Build complete! (5.04s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "TrainingPlanKit",
  "name" : "TrainingPlanKit",
  "path" : "/host/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "13.0"
    },
    {
      "name" : "ios",
      "version" : "16.0"
    }
  ],
  "products" : [
    {
      "name" : "TrainingPlanKit",
      "targets" : [
        "TrainingPlanKit"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "TrainingPlanKitTests",
      "module_type" : "SwiftTarget",
      "name" : "TrainingPlanKitTests",
      "path" : "Tests/TrainingPlanKitTests",
      "sources" : [
        "PaceRenderInvariantTests.swift",
        "PaceZoneConverterTests.swift",
        "PlanRecalculatorTests.swift",
        "TrainingPlanKitTests.swift",
        "VDOTTests.swift"
      ],
      "target_dependencies" : [
        "TrainingPlanKit"
      ],
      "type" : "test"
    },
    {
      "c99name" : "TrainingPlanKit",
      "module_type" : "SwiftTarget",
      "name" : "TrainingPlanKit",
      "path" : "Sources/TrainingPlanKit",
      "product_memberships" : [
        "TrainingPlanKit"
      ],
      "resources" : [
        {
          "path" : "/host/spi-builder-workspace/Sources/TrainingPlanKit/Catalog/sample_catalog.json",
          "rule" : {
            "copy" : {
            }
          }
        }
      ],
      "sources" : [
        "API.swift",
        "Engine/AdvancedPlanGenerator.swift",
        "Engine/BeginnerPlanGenerator.swift",
        "Engine/C25KPlanGenerator.swift",
        "Engine/CompetitivePlanGenerator.swift",
        "Engine/DistanceClass.swift",
        "Engine/IntermediatePlanGenerator.swift",
        "Engine/MaintenancePlanGenerator.swift",
        "Engine/PlanConfiguration+Accessible.swift",
        "Engine/PlanConfiguration+Advanced.swift",
        "Engine/PlanConfiguration+Beginner.swift",
        "Engine/PlanConfiguration+Competitive.swift",
        "Engine/PlanConfiguration+CouchTo5K.swift",
        "Engine/PlanConfiguration+Intermediate.swift",
        "Engine/PlanConfiguration+Maintenance.swift",
        "Engine/PlanConfiguration+VO2.swift",
        "Engine/PlanConfiguration.swift",
        "Engine/PlanDistribution.swift",
        "Engine/PlanGeneratorV3.swift",
        "Engine/PlanProfile.swift",
        "Engine/RaceWorkoutFactory.swift",
        "Models/Plan.swift",
        "Models/Workout.swift",
        "Models/WorkoutEvent.swift",
        "Models/WorkoutTypes.swift",
        "Pacing/CompetitiveGate.swift",
        "Pacing/PaceZoneConverter.swift",
        "Pacing/PlanRecalculator.swift",
        "Pacing/VDOT.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.9"
}
android-6.1-latest: Pulling from saguaro1/spi-images
Digest: sha256:365d9b14669f92fea0572234887def10439445c91d7e524c78a6579ad7294f11
Status: Image is up to date for registry.gitlab.com/saguaro1/spi-images:android-6.1-latest
Done.