{
    "passed": true,
    "count": 58,
    "checks": [
        "Windows SQLite initializes an anonymous profile with Coach default",
        "Profile and mode survive a new database connection",
        "Duplicate shot checkpoint does not double-count a return",
        "Speed changes, focus loss and engine failure are excluded from skill rates",
        "Quarter speed and normal speed remain separate cohorts",
        "Synthetic input cannot train the human profile",
        "Validation mode does not create a player database",
        "An interrupted transaction rolls back its writes",
        "Committed aggregates survive close and reopen",
        "No observations leave Mint balanced",
        "Training evidence alone cannot promote a strategy",
        "Contradictory held-out sessions reject the selected strategy",
        "Independent evidence can promote harder placement in Competitive mode",
        "Coach selects practice nearer its target rather than maximizing misses",
        "Normal-speed evidence cannot promote a quarter-speed policy",
        "Many shots from one session cannot pass the multi-session gate",
        "A supported policy is versioned at the match boundary",
        "Adaptation preserves a normalized distribution and exploration",
        "Reset survives restart and holds the balanced baseline despite old supporting data",
        "Explicit re-enable allows evaluated evidence to be considered again",
        "Every fourth adapted match uses disclosed balanced calibration",
        "A calibration match does not erase the saved learned policy",
        "Fresh contradictory evaluation evidence automatically restores balanced play",
        "A locked database reports unavailable memory rather than a false success",
        "A temporarily blocked observation retries once without loss or duplication",
        "Drill outcome persists without duplicate follow-up records",
        "Zero successes still have nonzero uncertainty",
        "Report opening passes a real Unicode filename with literal spaces and percent signs",
        "Atomic replacement leaves a complete report and no temporary file",
        "A missing report is rejected before browser launch",
        "Learning report escapes all supplied text",
        "Tactical action 0 stays legal at height 0.4 and depth 2",
        "Tactical action 0 stays legal at height 0.4 and depth 8",
        "Tactical action 0 stays legal at height 0.4 and depth 12",
        "Tactical action 0 stays legal at height 1.3 and depth 2",
        "Tactical action 0 stays legal at height 1.3 and depth 8",
        "Tactical action 0 stays legal at height 1.3 and depth 12",
        "Tactical action 0 stays legal at height 2.5 and depth 2",
        "Tactical action 0 stays legal at height 2.5 and depth 8",
        "Tactical action 0 stays legal at height 2.5 and depth 12",
        "Tactical action 1 stays legal at height 0.4 and depth 2",
        "Tactical action 1 stays legal at height 0.4 and depth 8",
        "Tactical action 1 stays legal at height 0.4 and depth 12",
        "Tactical action 1 stays legal at height 1.3 and depth 2",
        "Tactical action 1 stays legal at height 1.3 and depth 8",
        "Tactical action 1 stays legal at height 1.3 and depth 12",
        "Tactical action 1 stays legal at height 2.5 and depth 2",
        "Tactical action 1 stays legal at height 2.5 and depth 8",
        "Tactical action 1 stays legal at height 2.5 and depth 12",
        "Tactical action 2 stays legal at height 0.4 and depth 2",
        "Tactical action 2 stays legal at height 0.4 and depth 8",
        "Tactical action 2 stays legal at height 0.4 and depth 12",
        "Tactical action 2 stays legal at height 1.3 and depth 2",
        "Tactical action 2 stays legal at height 1.3 and depth 8",
        "Tactical action 2 stays legal at height 1.3 and depth 12",
        "Tactical action 2 stays legal at height 2.5 and depth 2",
        "Tactical action 2 stays legal at height 2.5 and depth 8",
        "Tactical action 2 stays legal at height 2.5 and depth 12"
    ]
}