{
  "title": "Planned Training Sessions",
  "subtitle": "Updated 28 Mar 2026 · half marathon + shin-splint-aware rebuild to May HYROX races",
  "weeks": [
    {
      "week": 1,
      "startDate": "2026-03-23",
      "phase": "Post-HYROX Recovery",
      "phaseClass": "rebuild",
      "focus": "Calm the shin, keep some aerobic touch, no hero sessions.",
      "notes": "Reflects current recovery direction after Bangkok HYROX. Pain has reportedly dropped from ~3/10 to ~1/10 with reduced running load, calf work, foot arch work, and cross-training.",
      "days": {
        "Monday": { "type": "rest", "title": "Rest / travel recovery", "detail": "Post-race downshift", "status": "completed", "minutes": 0, "km": 0 },
        "Tuesday": { "type": "easy-run", "title": "Light run-walk", "detail": "~2.1km easy reintroduction", "status": "completed", "minutes": 16, "km": 2.1 },
        "Wednesday": { "type": "easy-run", "title": "Run-walk", "detail": "5km easy with walk breaks", "status": "completed", "minutes": 36, "km": 5 },
        "Thursday": { "type": "gym", "title": "Calf + foot strength", "detail": "Inner calf / soleus / foot arch focus, plus general lower-leg strength", "status": "completed", "minutes": 40, "km": 0 },
        "Friday": { "type": "cross-train", "title": "Indoor bike Z2", "detail": "35min easy aerobic spin, minimal impact", "status": "completed", "minutes": 35, "km": 0 },
        "Saturday": { "type": "rest", "title": "Keep it easy", "detail": "No extra impact loading if shin is talking", "status": "planned", "minutes": 0, "km": 0 },
        "Sunday": { "type": "gym", "title": "Functional training", "detail": "1 hour session already scheduled. Keep jumps/plyos conservative if shin is irritated.", "status": "planned", "minutes": 60, "km": 0 }
      }
    },
    {
      "week": 2,
      "startDate": "2026-03-30",
      "phase": "Half Marathon Taper",
      "phaseClass": "taper",
      "isRaceWeek": true,
      "focus": "Arrive at the start line healthy. Fitness is already baked; don’t sabotage it chasing one more session.",
      "notes": "Key race: Half Marathon on Sunday 5 Apr 2026 at 4am. Priority is pain-controlled running and freshness. If shin pain rises above ~2-3/10 or changes from familiar soreness to sharper focal pain, cut the run and swap to bike.",
      "days": {
        "Monday": { "type": "recovery", "title": "Mobility + calf/foot work", "detail": "20-25min. Soleus raises, bent-knee calf raises, tib raises, short-foot/arch drills", "status": "planned", "minutes": 25, "km": 0 },
        "Tuesday": { "type": "easy-run", "title": "Easy run + strides", "detail": "5-6km easy. If fully settled, finish with 4 x 15-20s relaxed strides. No forcing pace.", "status": "planned", "minutes": 38, "km": 6 },
        "Wednesday": { "type": "cross-train", "title": "Z2 bike or rest", "detail": "30-40min easy spin if legs want movement; otherwise full rest", "status": "planned", "minutes": 35, "km": 0 },
        "Thursday": { "type": "easy-run", "title": "Short shakeout", "detail": "3-4km very easy. Stop if shin feels worse than Tuesday.", "status": "planned", "minutes": 22, "km": 4 },
        "Friday": { "type": "rest", "title": "Rest + race prep", "detail": "Sleep, hydrate, no hard gym, no junk mileage", "status": "planned", "minutes": 0, "km": 0 },
        "Saturday": { "type": "recovery", "title": "Pre-race primer", "detail": "10-15min walk, mobility, kit prep, early night because race starts at 4am Sunday", "status": "planned", "minutes": 15, "km": 0 },
        "Sunday": { "type": "race", "title": "Half Marathon Race", "detail": "Sunday 5 Apr 2026 at 4am. Start controlled, assess shin early, then build if calm.", "status": "planned", "minutes": 105, "km": 21.1 }
      }
    },
    {
      "week": 3,
      "startDate": "2026-04-06",
      "phase": "Post-HM Recovery",
      "phaseClass": "protective",
      "focus": "Recover from the half while keeping the shin quiet.",
      "notes": "Do not bounce straight back into volume because the race went well. First win is absorbing the race without reigniting symptoms.",
      "days": {
        "Monday": { "type": "rest", "title": "Full rest", "detail": "Walk only if it helps loosen up", "status": "planned", "minutes": 0, "km": 0 },
        "Tuesday": { "type": "cross-train", "title": "Easy bike", "detail": "30min easy aerobic flush", "status": "planned", "minutes": 30, "km": 0 },
        "Wednesday": { "type": "recovery", "title": "Calf + arch strength", "detail": "20-30min lower-leg rehab circuit", "status": "planned", "minutes": 25, "km": 0 },
        "Thursday": { "type": "easy-run", "title": "Easy test run", "detail": "4-5km easy only if shin settled after race", "status": "planned", "minutes": 30, "km": 5 },
        "Friday": { "type": "rest", "title": "Rest", "detail": "No need to force load", "status": "planned", "minutes": 0, "km": 0 },
        "Saturday": { "type": "gym", "title": "Strength", "detail": "Moderate lower body and calf strength. Keep soreness low.", "status": "planned", "minutes": 45, "km": 0 },
        "Sunday": { "type": "easy-run", "title": "Easy aerobic run", "detail": "6-8km easy if shin still calm", "status": "optional", "minutes": 45, "km": 8 }
      }
    },
    {
      "week": 4,
      "startDate": "2026-04-13",
      "phase": "HYROX Rebuild",
      "phaseClass": "rebuild",
      "focus": "Rebuild impact tolerance gradually while keeping HYROX-specific work in the mix.",
      "notes": "You’ve got enough time before the May races to rebuild sensibly. The dumb move would be trying to win back all the missed run volume in one week.",
      "days": {
        "Monday": { "type": "recovery", "title": "Mobility + calf strength", "detail": "20min rehab circuit", "status": "planned", "minutes": 20, "km": 0 },
        "Tuesday": { "type": "track", "title": "Controlled quality", "detail": "2km warm-up + 4 x 5min threshold / 2min easy + cool down. Keep total load modest.", "status": "planned", "minutes": 46, "km": 8 },
        "Wednesday": { "type": "cross-train", "title": "Bike Z2", "detail": "35-40min aerobic support", "status": "planned", "minutes": 40, "km": 0 },
        "Thursday": { "type": "gym", "title": "Strength", "detail": "Heavy-enough strength plus soleus/calf work, but no trashing yourself", "status": "planned", "minutes": 50, "km": 0 },
        "Friday": { "type": "rest", "title": "Rest", "detail": "Bank freshness", "status": "planned", "minutes": 0, "km": 0 },
        "Saturday": { "type": "hyrox", "title": "HYROX mixed session", "detail": "Stations + controlled running. Avoid reckless plyometric loading.", "status": "planned", "minutes": 50, "km": 3 },
        "Sunday": { "type": "long-run", "title": "Long easy run", "detail": "10-12km easy, flat route, stop if shin worsens during run", "status": "planned", "minutes": 65, "km": 12 }
      }
    },
    {
      "week": 5,
      "startDate": "2026-04-20",
      "phase": "HYROX Build",
      "phaseClass": "protective",
      "focus": "One quality run, one HYROX session, one longer easy run. Keep the rest supportive.",
      "notes": "This is where consistency matters more than bravado. If the shin stays at 0-2/10 and settles quickly after sessions, you can progress a bit. If not, hold load.",
      "days": {
        "Monday": { "type": "recovery", "title": "Rehab maintenance", "detail": "20min lower-leg work", "status": "planned", "minutes": 20, "km": 0 },
        "Tuesday": { "type": "tempo", "title": "Tempo / threshold", "detail": "8-10km total with 20-25min steady work", "status": "planned", "minutes": 50, "km": 10 },
        "Wednesday": { "type": "cross-train", "title": "Bike aerobic", "detail": "30-40min easy", "status": "planned", "minutes": 35, "km": 0 },
        "Thursday": { "type": "gym", "title": "Strength", "detail": "Posterior chain, calves, feet, trunk", "status": "planned", "minutes": 50, "km": 0 },
        "Friday": { "type": "rest", "title": "Rest", "detail": "Keep fatigue under control", "status": "planned", "minutes": 0, "km": 0 },
        "Saturday": { "type": "hyrox", "title": "HYROX race-specific", "detail": "Stations under fatigue with moderate run volume", "status": "planned", "minutes": 55, "km": 4 },
        "Sunday": { "type": "long-run", "title": "Long easy run", "detail": "12-14km easy if shin is still well behaved", "status": "planned", "minutes": 75, "km": 14 }
      }
    },
    {
      "week": 6,
      "startDate": "2026-04-27",
      "phase": "Final HYROX Taper",
      "phaseClass": "taper",
      "isRaceWeek": true,
      "focus": "Freshness over fitness. Protect the shin and arrive ready for back-to-back racing.",
      "notes": "Key races: HYROX Singles Men Open on Friday 8 May 2026 and Mixed HYROX on Saturday 9 May 2026. These dates are now explicitly in the dashboard.",
      "days": {
        "Monday": { "type": "recovery", "title": "Mobility + calf maintenance", "detail": "20min reset", "status": "planned", "minutes": 20, "km": 0 },
        "Tuesday": { "type": "easy-run", "title": "Easy run + strides", "detail": "5km easy with a few relaxed pickups if shin feels settled", "status": "planned", "minutes": 32, "km": 5 },
        "Wednesday": { "type": "hyrox", "title": "Sharpness session", "detail": "Short HYROX touchpoint, low volume, no soreness", "status": "planned", "minutes": 30, "km": 1 },
        "Thursday": { "type": "rest", "title": "Rest / travel / prep", "detail": "Do less, not more", "status": "planned", "minutes": 0, "km": 0 },
        "Friday": { "type": "race", "title": "HYROX Singles Men Open", "detail": "Friday 8 May 2026", "status": "planned", "minutes": 70, "km": 8 },
        "Saturday": { "type": "race", "title": "HYROX Mixed Race", "detail": "Saturday 9 May 2026, the day after singles", "status": "planned", "minutes": 80, "km": 8 },
        "Sunday": { "type": "rest", "title": "Recovery", "detail": "Full downshift after back-to-back racing", "status": "planned", "minutes": 0, "km": 0 }
      }
    }
  ]
}
