[
  {
    "event_id": "e_001",
    "plan_id": "pl_0801",
    "set_no": 1,
    "action": "open_set",
    "value": null,
    "ts": "2026-08-01T19:02:11+09:00"
  },
  {
    "event_id": "e_002",
    "plan_id": "pl_0801",
    "set_no": 1,
    "action": "edit_weight",
    "value": 57.5,
    "ts": "2026-08-01T19:05:40+09:00"
  },
  {
    "event_id": "e_003",
    "plan_id": "pl_0801",
    "set_no": 1,
    "action": "complete_set",
    "value": null,
    "ts": "2026-08-01T19:05:52+09:00"
  },
  {
    "event_id": "e_004",
    "plan_id": "pl_0801",
    "set_no": 2,
    "action": "open_set",
    "value": null,
    "ts": "2026-08-01T19:08:03+09:00"
  },
  {
    "event_id": "e_005",
    "plan_id": "pl_0801",
    "set_no": 2,
    "action": "edit_reps",
    "value": 5,
    "ts": "2026-08-01T19:11:20+09:00"
  },
  {
    "event_id": "e_006",
    "plan_id": "pl_0801",
    "set_no": 2,
    "action": "complete_set",
    "value": null,
    "ts": "2026-08-01T19:11:31+09:00"
  },
  {
    "event_id": "e_007",
    "plan_id": "pl_0801",
    "set_no": 3,
    "action": "open_set",
    "value": null,
    "ts": "2026-08-01T19:14:02+09:00"
  },
  {
    "event_id": "e_008",
    "plan_id": "pl_0801",
    "set_no": 3,
    "action": "accept_suggestion",
    "value": 60,
    "ts": "2026-08-01T19:14:19+09:00"
  },
  {
    "event_id": "e_009",
    "plan_id": "pl_0801",
    "set_no": 3,
    "action": "complete_set",
    "value": null,
    "ts": "2026-08-01T19:17:44+09:00"
  },
  {
    "event_id": "e_010",
    "plan_id": "pl_0801",
    "set_no": 4,
    "action": "open_set",
    "value": null,
    "ts": "2026-08-01T19:20:12+09:00"
  },
  {
    "event_id": "e_011",
    "plan_id": "pl_0801",
    "set_no": 4,
    "action": "mark_pain",
    "value": "왼쪽 어깨",
    "ts": "2026-08-01T19:22:35+09:00"
  },
  {
    "event_id": "e_012",
    "plan_id": "pl_0801",
    "set_no": 5,
    "action": "open_set",
    "value": null,
    "ts": "2026-08-01T19:22:41+09:00"
  },
  {
    "event_id": "e_013",
    "plan_id": "pl_0801",
    "set_no": 4,
    "action": "accept_suggestion",
    "value": 35,
    "ts": "2026-08-01T19:23:10+09:00"
  },
  {
    "event_id": "e_014",
    "plan_id": "pl_0801",
    "set_no": 4,
    "action": "complete_set",
    "value": null,
    "ts": "2026-08-01T19:25:58+09:00"
  },
  {
    "event_id": "e_015",
    "plan_id": "pl_0801",
    "set_no": 6,
    "action": "request_substitute",
    "value": "기구 사용 중",
    "ts": "2026-08-01T19:33:04+09:00"
  },
  {
    "event_id": "e_016",
    "plan_id": "pl_0801",
    "set_no": 6,
    "action": "pick_substitute",
    "value": "assisted_pull_up",
    "ts": "2026-08-01T19:33:29+09:00"
  },
  {
    "event_id": "e_017",
    "plan_id": "pl_0801",
    "set_no": 6,
    "action": "complete_set",
    "value": null,
    "ts": "2026-08-01T19:36:12+09:00"
  },
  {
    "event_id": "e_018",
    "plan_id": "pl_0802",
    "set_no": 2,
    "action": "open_set",
    "value": null,
    "ts": "2026-08-02T07:41:05+09:00"
  },
  {
    "event_id": "e_019",
    "plan_id": "pl_0802",
    "set_no": 2,
    "action": "complete_set",
    "value": null,
    "ts": "2026-08-02T07:41:09+09:00"
  },
  {
    "event_id": "e_020",
    "plan_id": "pl_0802",
    "set_no": 2,
    "action": "undo",
    "value": null,
    "ts": "2026-08-02T07:41:22+09:00"
  },
  {
    "event_id": "e_021",
    "plan_id": "pl_0802",
    "set_no": 3,
    "action": "skip_set",
    "value": "시간 부족",
    "ts": "2026-08-02T07:52:40+09:00"
  }
]