{
  "gymsyncBlock": 2,
  "meta": {
    "id": "hybrid-base-2026",
    "title": "Hybrid Base — Strength + Zone 2 (sample)",
    "label": "Hybrid 1",
    "createdBy": "chatgpt",
    "created": "2026-07-10",
    "start": "2026-07-13",
    "weeks": 6,
    "units": "kg",
    "locale": "en"
  },
  "goals": [
    {
      "id": "squat-100x5",
      "kind": "liftRepMax",
      "exerciseId": "squat",
      "target": {
        "kg": 100,
        "reps": 5
      },
      "baseline": {
        "kg": 90,
        "reps": 5
      },
      "deadline": "2026-08-21",
      "testSessionId": "W6D1"
    },
    {
      "id": "easy-pace",
      "kind": "cardioTime",
      "target": {
        "minutes": 5.5
      },
      "baseline": {
        "minutes": 6.2
      },
      "hr": 140,
      "direction": "decrease",
      "notes": "Easy-run pace (min/km) at HR 140 by end of block"
    },
    {
      "id": "lean-mass",
      "kind": "measurement",
      "metric": "leanBodyMassKg",
      "target": 70,
      "baseline": 69.2,
      "direction": "increase",
      "notes": "Recomp: keep/gain lean mass while waist drops"
    },
    {
      "id": "waist",
      "kind": "measurement",
      "metric": "waistCm",
      "target": 88,
      "baseline": 91,
      "direction": "decrease"
    },
    {
      "id": "bf-tape-20",
      "kind": "measurement",
      "metric": "bodyFatTapePct",
      "baseline": 21.4,
      "target": 20.0,
      "direction": "decrease",
      "notes": "BF z taśmy (US Navy) — powtarzalny; bioimpedancja tylko poglądowo."
    }
  ],
  "nutrition": {
    "kcal": 2400,
    "proteinG": 170,
    "carbsG": 250,
    "fatG": 75,
    "trainingDayCarbsDelta": 40,
    "fastingWindow": "14:10, last meal 19:00"
  },
  "exercises": [
    {
      "id": "squat",
      "name": "Squat",
      "muscles": [
        "legs"
      ],
      "equipment": "barbell"
    },
    {
      "id": "bench-press",
      "name": "Bench Press",
      "muscles": [
        "chest",
        "triceps"
      ],
      "equipment": "barbell"
    },
    {
      "id": "row",
      "name": "Barbell Row",
      "muscles": [
        "back"
      ],
      "equipment": "barbell"
    },
    {
      "id": "pullup",
      "name": "Pull-Up",
      "muscles": [
        "back",
        "biceps"
      ],
      "equipment": "bodyweight",
      "bodyweight": true
    },
    {
      "id": "db-ohp",
      "name": "Seated DB OHP",
      "muscles": [
        "shoulders"
      ],
      "equipment": "dumbbell",
      "dualDB": true
    },
    {
      "id": "hammer-curl",
      "name": "Hammer Curl",
      "muscles": [
        "biceps"
      ],
      "equipment": "dumbbell",
      "dualDB": true
    },
    {
      "id": "plank",
      "name": "Plank",
      "muscles": [
        "core"
      ],
      "equipment": "bodyweight",
      "bodyweight": true
    }
  ],
  "phases": [
    {
      "weeks": [
        1,
        3
      ],
      "phase": "accumulation"
    },
    {
      "weeks": [
        4,
        5
      ],
      "phase": "intensification"
    },
    {
      "weeks": [
        6,
        6
      ],
      "phase": "test"
    }
  ],
  "sessions": [
    {
      "id": "W1D1",
      "week": 1,
      "day": 1,
      "type": "strength",
      "name": "Squat + Push",
      "scheduled": "2026-07-13",
      "warmup": [
        "Squat bar × 8",
        "Squat 60kg × 5"
      ],
      "work": [
        {
          "exerciseId": "squat",
          "sets": 4,
          "reps": "5",
          "load": {
            "kg": 90
          },
          "restSec": 180,
          "main": true
        },
        {
          "exerciseId": "bench-press",
          "sets": 3,
          "reps": "8",
          "load": {
            "percent1RM": 70
          },
          "restSec": 120
        },
        {
          "exerciseId": "db-ohp",
          "sets": 3,
          "reps": "10",
          "load": {
            "kg": 20
          },
          "restSec": 90
        },
        {
          "exerciseId": "hammer-curl",
          "sets": 2,
          "reps": "12",
          "load": {
            "stages": [
              14,
              12,
              10
            ],
            "style": "dropRounds"
          },
          "restSec": 60
        },
        {
          "exerciseId": "plank",
          "sets": 3,
          "reps": "max",
          "restSec": 60,
          "notes": "seconds, not reps — log duration as reps"
        }
      ]
    },
    {
      "id": "W1R1",
      "week": 1,
      "type": "run",
      "name": "Zone 2 base",
      "scheduled": "2026-07-14",
      "cardio": {
        "kind": "zone2",
        "durationMin": 35,
        "hr": [
          127,
          145
        ]
      }
    },
    {
      "id": "W1R2",
      "week": 1,
      "type": "run",
      "name": "Interwały 6×3 min",
      "cardio": {
        "kind": "interval",
        "hr": [
          150,
          172
        ],
        "intervals": [
          {
            "phase": "rozgrzewka",
            "sec": 600,
            "pace": "5:40"
          },
          {
            "repeat": 6,
            "work": {
              "sec": 180,
              "pace": "4:40"
            },
            "rest": {
              "sec": 120,
              "pace": "7:00"
            }
          },
          {
            "phase": "cooldown",
            "sec": 300,
            "pace": "6:30"
          }
        ]
      }
    },
    {
      "id": "W1D2",
      "week": 1,
      "day": 2,
      "type": "strength",
      "name": "Pull",
      "scheduled": "2026-07-15",
      "work": [
        {
          "exerciseId": "row",
          "sets": 4,
          "reps": "8-10",
          "load": {
            "kg": 60
          },
          "restSec": 120,
          "main": true
        },
        {
          "exerciseId": "pullup",
          "sets": 4,
          "reps": "max",
          "restSec": 120
        }
      ]
    },
    {
      "id": "W1H1",
      "week": 1,
      "type": "hiit",
      "name": "Bike intervals",
      "scheduled": "2026-07-17",
      "cardio": {
        "kind": "interval",
        "durationMin": 25,
        "structure": "8 × 40s hard / 80s easy",
        "hr": [
          150,
          175
        ]
      }
    },
    {
      "id": "W1S1",
      "week": 1,
      "type": "swim",
      "name": "Technique",
      "scheduled": "2026-07-19",
      "cardio": {
        "kind": "technique",
        "distanceKm": 1.0,
        "notes": "drills + easy laps"
      }
    },
    {
      "id": "W6D1",
      "week": 6,
      "day": 1,
      "type": "strength",
      "name": "TEST — Squat 100×5",
      "scheduled": "2026-08-17",
      "warmup": [
        "bar × 8",
        "60 × 5",
        "80 × 3",
        "90 × 1"
      ],
      "work": [
        {
          "exerciseId": "squat",
          "sets": 1,
          "reps": "5",
          "load": {
            "kg": 100
          },
          "restSec": 300,
          "main": true,
          "notes": "goal squat-100x5"
        }
      ]
    }
  ],
  "log": {
    "sessions": [
      {
        "planSessionId": "W1D1",
        "started": "2026-07-13T17:05:00+01:00",
        "finished": "2026-07-13T18:12:00+01:00",
        "feeling": 4,
        "bodyWeightKg": 92.5,
        "results": [
          {
            "exerciseId": "squat",
            "sets": [
              {
                "reps": 5,
                "kg": 90,
                "rpe": 7.5
              },
              {
                "reps": 5,
                "kg": 90,
                "rpe": 8
              },
              {
                "reps": 5,
                "kg": 90,
                "rpe": 8
              },
              {
                "reps": 5,
                "kg": 90,
                "rpe": 8.5
              }
            ]
          },
          {
            "exerciseId": "bench-press",
            "sets": [
              {
                "reps": 8,
                "kg": 65
              },
              {
                "reps": 8,
                "kg": 65
              },
              {
                "reps": 7,
                "kg": 65,
                "rpe": 9
              }
            ]
          },
          {
            "exerciseId": "hammer-curl",
            "sets": [
              {
                "reps": 12
              },
              {
                "reps": 10
              }
            ],
            "notes": "drop rounds 14→12→10"
          }
        ],
        "watch": {
          "durationMin": 66,
          "avgHR": 121,
          "maxHR": 158,
          "kcal": 495,
          "zoneMin": [
            22,
            30,
            10,
            4,
            0
          ]
        },
        "tonnageKg": 4212
      },
      {
        "planSessionId": "W1R1",
        "started": "2026-07-14T07:30:00+01:00",
        "finished": "2026-07-14T08:07:00+01:00",
        "cardioResult": {
          "distanceKm": 5.4,
          "durationMin": 36.5,
          "avgPaceMinKm": 6.76,
          "avgHR": 138,
          "maxHR": 149,
          "kcal": 380,
          "cadenceSpm": 158,
          "indoor": false,
          "zoneMin": [
            4,
            29,
            3,
            0,
            0
          ]
        }
      },
      {
        "planSessionId": "W1D2",
        "started": "2026-08-06",
        "skipped": true,
        "notes": "Wyjazd służbowy — do nadrobienia wg decyzji trenera."
      }
    ],
    "measurements": [
      {
        "date": "2026-07-13",
        "weightKg": 92.5,
        "waistCm": 91
      },
      {
        "date": "2026-08-08",
        "waistCm": 96.0,
        "neckCm": 41.0,
        "thighCm": 58.0,
        "bodyFatTapePct": 21.4,
        "notes": "Taśma, rano na czczo."
      }
    ]
  }
}