{
  "schemaVersion": 1,
  "note": "Landmark indices use MediaPipe's 33-point Pose model. Angle targets are GENERAL movement defaults for a healthy adult and are meant to be tuned per user. They are NOT medical or prescriptive guidance. See CLAUDE.md.",
  "exercises": [
    {
      "id": "dumbbell-bicep-curl",
      "name": "Bicep Curl",
      "primaryMuscles": ["biceps"],
      "tempo": 1.6,
      "trackedAngle": {
        "label": "elbow",
        "landmarks": [11, 13, 15],
        "mirrorLandmarks": [12, 14, 16]
      },
      "form": {
        "bottom": { "target": 165, "tolerance": 15, "cue": "Fully extend at the bottom" },
        "top": { "target": 45, "tolerance": 15, "cue": "Squeeze all the way up" },
        "constraints": [
          { "label": "elbow drift", "type": "keepStill", "landmark": 13, "mirrorLandmark": 14, "maxTravel": 0.10, "cue": "Keep elbows pinned to your sides" }
        ]
      },
      "repStateMachine": {
        "initial": "down",
        "states": [
          { "name": "down", "enterWhen": { "angle": "elbow", "op": ">", "value": 150 } },
          { "name": "up", "enterWhen": { "angle": "elbow", "op": "<", "value": 55 }, "countsRep": true }
        ]
      },
      "cues": ["Control the negative", "No swinging or momentum"]
    },
    {
      "id": "bodyweight-squat",
      "name": "Bodyweight Squat",
      "primaryMuscles": ["quads", "glutes"],
      "tempo": 2.0,
      "trackedAngle": {
        "label": "knee",
        "landmarks": [23, 25, 27],
        "mirrorLandmarks": [24, 26, 28]
      },
      "form": {
        "bottom": { "target": 90, "tolerance": 20, "cue": "Hit at least parallel — thighs level" },
        "top": { "target": 172, "tolerance": 12, "cue": "Stand tall and lock out the top" },
        "constraints": []
      },
      "repStateMachine": {
        "initial": "standing",
        "states": [
          { "name": "standing", "enterWhen": { "angle": "knee", "op": ">", "value": 160 } },
          { "name": "bottom", "enterWhen": { "angle": "knee", "op": "<", "value": 100 }, "countsRep": true }
        ]
      },
      "cues": ["Drive through your heels", "Knees track over toes", "Chest up"]
    },
    {
      "id": "push-up",
      "name": "Push-up",
      "primaryMuscles": ["chest", "triceps"],
      "tempo": 1.5,
      "trackedAngle": {
        "label": "elbow",
        "landmarks": [11, 13, 15],
        "mirrorLandmarks": [12, 14, 16]
      },
      "form": {
        "bottom": { "target": 90, "tolerance": 20, "cue": "Lower until elbows hit ~90°" },
        "top": { "target": 165, "tolerance": 12, "cue": "Press to a full lockout" },
        "constraints": []
      },
      "repStateMachine": {
        "initial": "top",
        "states": [
          { "name": "top", "enterWhen": { "angle": "elbow", "op": ">", "value": 155 } },
          { "name": "bottom", "enterWhen": { "angle": "elbow", "op": "<", "value": 100 }, "countsRep": true }
        ]
      },
      "cues": ["Keep a straight line head-to-heels", "Elbows ~45°, not flared"]
    },
    {
      "id": "pull-up",
      "name": "Pull-up",
      "primaryMuscles": ["lats", "biceps"],
      "tempo": 1.6,
      "trackedAngle": {
        "label": "elbow",
        "landmarks": [11, 13, 15],
        "mirrorLandmarks": [12, 14, 16]
      },
      "form": {
        "bottom": { "target": 165, "tolerance": 15, "cue": "Lower to a full dead hang — arms straight" },
        "top": { "target": 50, "tolerance": 20, "cue": "Pull until your chin clears the bar" },
        "constraints": []
      },
      "repStateMachine": {
        "initial": "hang",
        "states": [
          { "name": "hang", "enterWhen": { "angle": "elbow", "op": ">", "value": 150 } },
          { "name": "up", "enterWhen": { "angle": "elbow", "op": "<", "value": 65 }, "countsRep": true }
        ]
      },
      "cues": ["Drive your elbows down and back", "Lower under control — no dropping"]
    },
    {
      "id": "overhead-press",
      "name": "Overhead Press",
      "primaryMuscles": ["shoulders", "triceps"],
      "tempo": 1.7,
      "trackedAngle": {
        "label": "elbow",
        "landmarks": [11, 13, 15],
        "mirrorLandmarks": [12, 14, 16]
      },
      "form": {
        "bottom": { "target": 80, "tolerance": 20, "cue": "Rack to the shoulders between reps" },
        "top": { "target": 170, "tolerance": 12, "cue": "Press to a full overhead lockout" },
        "constraints": []
      },
      "repStateMachine": {
        "initial": "racked",
        "states": [
          { "name": "racked", "enterWhen": { "angle": "elbow", "op": "<", "value": 95 } },
          { "name": "locked", "enterWhen": { "angle": "elbow", "op": ">", "value": 160 }, "countsRep": true }
        ]
      },
      "cues": ["Brace your core", "Bar over mid-foot at lockout"]
    },
    {
      "id": "lateral-raise",
      "name": "Lateral Raise",
      "primaryMuscles": ["lateral deltoids"],
      "tempo": 1.5,
      "trackedAngle": {
        "label": "shoulder",
        "landmarks": [13, 11, 23],
        "mirrorLandmarks": [14, 12, 24]
      },
      "form": {
        "bottom": { "target": 15, "tolerance": 12, "cue": "Let arms hang fully at the bottom" },
        "top": { "target": 90, "tolerance": 15, "cue": "Raise to shoulder height — no higher" },
        "constraints": []
      },
      "repStateMachine": {
        "initial": "down",
        "states": [
          { "name": "down", "enterWhen": { "angle": "shoulder", "op": "<", "value": 30 } },
          { "name": "up", "enterWhen": { "angle": "shoulder", "op": ">", "value": 75 }, "countsRep": true }
        ]
      },
      "cues": ["Lead with the elbows", "No shrugging or swinging"]
    },
    {
      "id": "reverse-lunge",
      "name": "Reverse Lunge",
      "primaryMuscles": ["quads", "glutes"],
      "tempo": 2.0,
      "trackedAngle": {
        "label": "front knee",
        "landmarks": [23, 25, 27],
        "mirrorLandmarks": [24, 26, 28]
      },
      "form": {
        "bottom": { "target": 90, "tolerance": 20, "cue": "Drop the back knee toward the floor" },
        "top": { "target": 170, "tolerance": 12, "cue": "Return to a tall standing position" },
        "constraints": []
      },
      "repStateMachine": {
        "initial": "standing",
        "states": [
          { "name": "standing", "enterWhen": { "angle": "front knee", "op": ">", "value": 160 } },
          { "name": "lunge", "enterWhen": { "angle": "front knee", "op": "<", "value": 100 }, "countsRep": true }
        ]
      },
      "cues": ["Keep your torso upright", "Front shin near vertical"]
    }
  ]
}
