{
  "schema_version": 1,
  "title": "Half-marathon base — week 1",
  "sport_focus": "run",
  "start_date": "2026-08-03",
  "end_date": "2026-08-09",
  "phases": [
    { "id": "p1", "label": "base", "start_week": 1, "end_week": 4, "target_weekly_hours": 5, "focus": "aerobic volume" }
  ],
  "guidance": "Pain that changes your gait = stop. Discomfort lasting > 24-48 h = ease off. Sleep 7-9 h.",
  "workouts": [
    {
      "workout_uid": "wk1-tue-easy",
      "week_index": 1,
      "phase_id": "p1",
      "date": "2026-08-04",
      "sport": "run",
      "title": "Easy run",
      "description": "Conversational pace, nose-breathing.",
      "structure": {
        "steps": [
          { "kind": "step", "label": "warmup", "duration": { "type": "time", "value_sec": 600 },
            "targets": [{ "metric": "hr", "mode": "zone", "zone": 1 }] },
          { "kind": "step", "label": "work", "duration": { "type": "time", "value_sec": 2400 },
            "targets": [{ "metric": "hr", "mode": "zone", "zone": 2 }] },
          { "kind": "step", "label": "cooldown", "duration": { "type": "distance", "value_m": 1000 },
            "targets": [{ "metric": "hr", "mode": "zone", "zone": 1 }] }
        ]
      },
      "planned_duration_sec": 3000,
      "planned_distance_m": 7000
    },
    {
      "workout_uid": "wk1-thu-intervals",
      "week_index": 1,
      "phase_id": "p1",
      "date": "2026-08-06",
      "sport": "run",
      "title": "5 x 3min threshold",
      "structure": {
        "steps": [
          { "kind": "step", "label": "warmup", "duration": { "type": "time", "value_sec": 900 },
            "targets": [{ "metric": "hr", "mode": "zone", "zone": 2 }] },
          { "kind": "repeat", "count": 5, "steps": [
            { "kind": "step", "label": "work", "duration": { "type": "time", "value_sec": 180 },
              "targets": [{ "metric": "pace", "mode": "range", "low": 255, "high": 270 },
                          { "metric": "hr", "mode": "zone", "zone": 4 }] },
            { "kind": "step", "label": "recovery", "duration": { "type": "time", "value_sec": 90 },
              "targets": [{ "metric": "rpe", "mode": "value", "value": 2 }] }
          ] },
          { "kind": "step", "label": "cooldown", "duration": { "type": "time", "value_sec": 600 },
            "targets": [{ "metric": "hr", "mode": "zone", "zone": 1 }] }
        ]
      },
      "planned_duration_sec": 2850,
      "difficulty": 7
    },
    {
      "workout_uid": "wk1-sat-long",
      "week_index": 1,
      "phase_id": "p1",
      "date": "2026-08-08",
      "sport": "run",
      "title": "Long run",
      "structure": {
        "steps": [
          { "kind": "step", "label": "work", "duration": { "type": "distance", "value_m": 14000 },
            "targets": [{ "metric": "hr", "mode": "zone", "zone": 2 }],
            "note": "Steady, fuel at 45min." }
        ]
      },
      "planned_duration_sec": 4800,
      "planned_distance_m": 14000
    },
    {
      "workout_uid": "wk1-sun-rest",
      "week_index": 1,
      "date": "2026-08-09",
      "sport": "rest",
      "title": "Rest day",
      "structure": { "steps": [] }
    }
  ]
}
