The Swift Package Index logo.Swift Package Index

Build Information

Successful build of TrainingPlanKit, reference main (892de8), with Swift 6.1 for Wasm on 21 Jul 2026 16:32:29 UTC.

Swift 6 data race errors: 66

Build Command

bash -c docker run --pull=always --rm -v "checkouts-54344849-2":/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:wasm-6.1-latest swift build --swift-sdk wasm32-unknown-wasi -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

/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
[12/34] Compiling TrainingPlanKit PlanRecalculator.swift
[13/34] Compiling TrainingPlanKit VDOT.swift
[14/34] Compiling TrainingPlanKit resource_bundle_accessor.swift
[15/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
[16/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
[17/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
[18/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
[19/34] Compiling TrainingPlanKit RaceWorkoutFactory.swift
[20/34] Compiling TrainingPlanKit Plan.swift
[21/34] Compiling TrainingPlanKit Workout.swift
[22/34] Compiling TrainingPlanKit WorkoutEvent.swift
[23/34] Compiling TrainingPlanKit CompetitivePlanGenerator.swift
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/CompetitivePlanGenerator.swift:663:69: warning: will never be executed
661 |                 } else {
662 |                     easyTargetLoad = targetLoad * ((isLongRace && isFirstFill) ? mlrLoadMult
663 |                                                     : isSecondMLR ? 0.29 : fillLoadMult)
    |                                                       |             `- warning: will never be executed
    |                                                       `- note: condition always evaluates to false
664 |                 }
665 |                 // Hard-cap easy duration when tapering so the selector can't pick a
[24/34] Compiling TrainingPlanKit DistanceClass.swift
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/CompetitivePlanGenerator.swift:663:69: warning: will never be executed
661 |                 } else {
662 |                     easyTargetLoad = targetLoad * ((isLongRace && isFirstFill) ? mlrLoadMult
663 |                                                     : isSecondMLR ? 0.29 : fillLoadMult)
    |                                                       |             `- warning: will never be executed
    |                                                       `- note: condition always evaluates to false
664 |                 }
665 |                 // Hard-cap easy duration when tapering so the selector can't pick a
[25/34] Compiling TrainingPlanKit IntermediatePlanGenerator.swift
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/CompetitivePlanGenerator.swift:663:69: warning: will never be executed
661 |                 } else {
662 |                     easyTargetLoad = targetLoad * ((isLongRace && isFirstFill) ? mlrLoadMult
663 |                                                     : isSecondMLR ? 0.29 : fillLoadMult)
    |                                                       |             `- warning: will never be executed
    |                                                       `- note: condition always evaluates to false
664 |                 }
665 |                 // Hard-cap easy duration when tapering so the selector can't pick a
[26/34] Compiling TrainingPlanKit MaintenancePlanGenerator.swift
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/CompetitivePlanGenerator.swift:663:69: warning: will never be executed
661 |                 } else {
662 |                     easyTargetLoad = targetLoad * ((isLongRace && isFirstFill) ? mlrLoadMult
663 |                                                     : isSecondMLR ? 0.29 : fillLoadMult)
    |                                                       |             `- warning: will never be executed
    |                                                       `- note: condition always evaluates to false
664 |                 }
665 |                 // Hard-cap easy duration when tapering so the selector can't pick a
[27/34] Compiling TrainingPlanKit PlanConfiguration.swift
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:247:23: warning: static property 'shipAccessibleTier' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
245 |     /// this one value to switch the whole app — both selectors resolve through
246 |     /// `raceConfig` below. Competitive/maintenance/VO2 are routed separately.
247 |     public static var shipAccessibleTier = true
    |                       |- warning: static property 'shipAccessibleTier' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'shipAccessibleTier' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: add '@MainActor' to make static property 'shipAccessibleTier' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
248 |
249 |     /// Resolve the non-competitive (5K / 10K / 21K / 42K) config for a runner
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanGeneratorV3.swift:756:16: warning: static property 'rehearsalSubtypes' 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
 754 |     // Every race-rehearsal subtype. eligibleDistances pins at most one of these to
 755 |     // a given plan, so "the plan's rehearsal" is well-defined.
 756 |     static let rehearsalSubtypes: Set<WorkoutSubtype> = [
     |                |- warning: static property 'rehearsalSubtypes' 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 'rehearsalSubtypes' part of global actor 'MainActor'
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 757 |         .raceRehearsalM, .raceRehearsalHM, .raceRehearsal10K,
 758 |     ]
/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
[28/34] Compiling TrainingPlanKit PlanDistribution.swift
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:247:23: warning: static property 'shipAccessibleTier' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
245 |     /// this one value to switch the whole app — both selectors resolve through
246 |     /// `raceConfig` below. Competitive/maintenance/VO2 are routed separately.
247 |     public static var shipAccessibleTier = true
    |                       |- warning: static property 'shipAccessibleTier' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'shipAccessibleTier' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: add '@MainActor' to make static property 'shipAccessibleTier' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
248 |
249 |     /// Resolve the non-competitive (5K / 10K / 21K / 42K) config for a runner
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanGeneratorV3.swift:756:16: warning: static property 'rehearsalSubtypes' 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
 754 |     // Every race-rehearsal subtype. eligibleDistances pins at most one of these to
 755 |     // a given plan, so "the plan's rehearsal" is well-defined.
 756 |     static let rehearsalSubtypes: Set<WorkoutSubtype> = [
     |                |- warning: static property 'rehearsalSubtypes' 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 'rehearsalSubtypes' part of global actor 'MainActor'
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 757 |         .raceRehearsalM, .raceRehearsalHM, .raceRehearsal10K,
 758 |     ]
/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
[29/34] Compiling TrainingPlanKit PlanGeneratorV3.swift
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:247:23: warning: static property 'shipAccessibleTier' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
245 |     /// this one value to switch the whole app — both selectors resolve through
246 |     /// `raceConfig` below. Competitive/maintenance/VO2 are routed separately.
247 |     public static var shipAccessibleTier = true
    |                       |- warning: static property 'shipAccessibleTier' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'shipAccessibleTier' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: add '@MainActor' to make static property 'shipAccessibleTier' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
248 |
249 |     /// Resolve the non-competitive (5K / 10K / 21K / 42K) config for a runner
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanGeneratorV3.swift:756:16: warning: static property 'rehearsalSubtypes' 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
 754 |     // Every race-rehearsal subtype. eligibleDistances pins at most one of these to
 755 |     // a given plan, so "the plan's rehearsal" is well-defined.
 756 |     static let rehearsalSubtypes: Set<WorkoutSubtype> = [
     |                |- warning: static property 'rehearsalSubtypes' 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 'rehearsalSubtypes' part of global actor 'MainActor'
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 757 |         .raceRehearsalM, .raceRehearsalHM, .raceRehearsal10K,
 758 |     ]
/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
[30/34] Compiling TrainingPlanKit PlanProfile.swift
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:247:23: warning: static property 'shipAccessibleTier' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
245 |     /// this one value to switch the whole app — both selectors resolve through
246 |     /// `raceConfig` below. Competitive/maintenance/VO2 are routed separately.
247 |     public static var shipAccessibleTier = true
    |                       |- warning: static property 'shipAccessibleTier' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'shipAccessibleTier' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: add '@MainActor' to make static property 'shipAccessibleTier' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
248 |
249 |     /// Resolve the non-competitive (5K / 10K / 21K / 42K) config for a runner
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanGeneratorV3.swift:756:16: warning: static property 'rehearsalSubtypes' 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
 754 |     // Every race-rehearsal subtype. eligibleDistances pins at most one of these to
 755 |     // a given plan, so "the plan's rehearsal" is well-defined.
 756 |     static let rehearsalSubtypes: Set<WorkoutSubtype> = [
     |                |- warning: static property 'rehearsalSubtypes' 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 'rehearsalSubtypes' part of global actor 'MainActor'
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 757 |         .raceRehearsalM, .raceRehearsalHM, .raceRehearsal10K,
 758 |     ]
/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
[31/34] Compiling TrainingPlanKit API.swift
[32/34] Compiling TrainingPlanKit AdvancedPlanGenerator.swift
[33/34] Compiling TrainingPlanKit BeginnerPlanGenerator.swift
[34/34] Compiling TrainingPlanKit C25KPlanGenerator.swift
Build complete! (7.80s)
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"
}
wasm-6.1-latest: Pulling from saguaro1/spi-images
Digest: sha256:1ad245dad3d2ae0004e1afbc92334bd39884ed9ca587cf04d0a8d5f640fb02e9
Status: Image is up to date for registry.gitlab.com/saguaro1/spi-images:wasm-6.1-latest
Done.