{
  "id": "sample-dark-mode-toggle",
  "name": "Dark mode toggle (sample)",
  "status": "active",
  "created_at": "2026-04-08T11:30:00Z",
  "sample": true,
  "waves": [
    {
      "id": "w1",
      "name": "Wave 1 — Token foundation",
      "duration_hours": 8,
      "epics": [
        {
          "id": "e1",
          "name": "Light-mode CSS tokens",
          "blocked_by": [],
          "stories": [
            { "id": "s1", "name": "Define :root[data-theme=\"light\"] override block", "hours": 2, "assignee": "" },
            { "id": "s2", "name": "Audit contrast with axe-core", "hours": 3, "assignee": "" },
            { "id": "s3", "name": "Snapshot test for token overrides", "hours": 2, "assignee": "" }
          ]
        }
      ]
    },
    {
      "id": "w2",
      "name": "Wave 2 — Toggle UI",
      "duration_hours": 9,
      "epics": [
        {
          "id": "e2",
          "name": "Nav toggle button",
          "blocked_by": ["e1"],
          "stories": [
            { "id": "s4", "name": "Add icon button to Base.astro nav", "hours": 2, "assignee": "" },
            { "id": "s5", "name": "Click handler + localStorage write", "hours": 3, "assignee": "" }
          ]
        },
        {
          "id": "e3",
          "name": "Pre-paint inline script",
          "blocked_by": [],
          "stories": [
            { "id": "s6", "name": "Read storage + system pref before CSS loads", "hours": 2, "assignee": "" },
            { "id": "s7", "name": "Playwright FOUC test", "hours": 2, "assignee": "" }
          ]
        }
      ]
    },
    {
      "id": "w3",
      "name": "Wave 3 — Polish",
      "duration_hours": 4,
      "epics": [
        {
          "id": "e4",
          "name": "Docs + announcement",
          "blocked_by": ["e2", "e3"],
          "stories": [
            { "id": "s8", "name": "Update README screenshots in both themes", "hours": 2, "assignee": "" },
            { "id": "s9", "name": "Changelog entry", "hours": 1, "assignee": "" }
          ]
        }
      ]
    }
  ]
}
