{
  "_meta": {
    "version": "1.0.0",
    "source": "Karvonen formula (Karvonen, Kentala & Mustala, 1957) using HRR (heart-rate reserve)",
    "lastUpdated": "2026-05-17",
    "formula": "TargetHR = ((HRmax - HRrest) * intensity) + HRrest, where HRmax = 220 - age",
    "notes": "Percentages below are of HRmax for quick reference. For personalized zones, use the Karvonen formula with the user's resting HR."
  },
  "zones": [
    {
      "id": "recovery",
      "name": "Recovery / Very Light",
      "minPercentHRmax": 50,
      "maxPercentHRmax": 60,
      "intent": "Warm-up, cool-down, active recovery",
      "perceivedEffort": "Very easy, can sing",
      "fuelSource": "Mostly fat"
    },
    {
      "id": "fat-burn",
      "name": "Fat Burn / Light",
      "minPercentHRmax": 60,
      "maxPercentHRmax": 70,
      "intent": "Build endurance base, burn fat",
      "perceivedEffort": "Comfortable, can hold a conversation",
      "fuelSource": "Fat (majority) + carbs"
    },
    {
      "id": "aerobic",
      "name": "Aerobic / Moderate",
      "minPercentHRmax": 70,
      "maxPercentHRmax": 80,
      "intent": "Improve cardiovascular fitness and stamina",
      "perceivedEffort": "Breathing harder, short sentences",
      "fuelSource": "Carbs (majority) + fat"
    },
    {
      "id": "anaerobic",
      "name": "Anaerobic / Hard",
      "minPercentHRmax": 80,
      "maxPercentHRmax": 90,
      "intent": "Boost lactate threshold and speed",
      "perceivedEffort": "Heavy breathing, one-word answers",
      "fuelSource": "Mostly carbs"
    },
    {
      "id": "max",
      "name": "Maximum Effort",
      "minPercentHRmax": 90,
      "maxPercentHRmax": 100,
      "intent": "Short sprints, VO2max intervals",
      "perceivedEffort": "All-out, cannot sustain >1-2 min",
      "fuelSource": "Anaerobic glycolysis"
    }
  ]
}
