{
  "video": "raw/replay.webm",
  "viewport": {
    "width": 1920,
    "height": 1080
  },
  "fps_target": 30,
  "pace": "natural",
  "steps": [
    {
      "id": "step-01",
      "intent": "Navigate to TodoMVC demo",
      "narration": "Go to the TodoMVC demo page.",
      "action": "goto",
      "start_ms": 135,
      "post_action_ms": 385,
      "post_wait_ms": 385,
      "end_ms": 635,
      "wait_held_ms": 0,
      "screenshot": "shots/step-01.png"
    },
    {
      "id": "step-02",
      "intent": "Add a todo",
      "narration": "Click the new todo input field.",
      "action": "click",
      "start_ms": 742,
      "post_action_ms": 1589,
      "post_wait_ms": 1589,
      "end_ms": 1840,
      "wait_held_ms": 0,
      "screenshot": "shots/step-02.png"
    },
    {
      "id": "step-03",
      "intent": "Add a todo",
      "narration": "Type 'Buy milk' into the input.",
      "action": "fill",
      "start_ms": 1918,
      "post_action_ms": 3096,
      "post_wait_ms": 3096,
      "end_ms": 3347,
      "wait_held_ms": 0,
      "screenshot": "shots/step-03.png"
    },
    {
      "id": "step-04",
      "intent": "Add a todo",
      "narration": "Press Enter to add the todo.",
      "action": "click",
      "start_ms": 3417,
      "post_action_ms": 4146,
      "post_wait_ms": 4146,
      "end_ms": 4396,
      "wait_held_ms": 0,
      "screenshot": "shots/step-04.png"
    },
    {
      "id": "step-05",
      "intent": "Add another todo",
      "narration": "Click the new todo input again.",
      "action": "click",
      "start_ms": 4512,
      "post_action_ms": 5218,
      "post_wait_ms": 5218,
      "end_ms": 5468,
      "wait_held_ms": 0,
      "screenshot": "shots/step-05.png"
    },
    {
      "id": "step-06",
      "intent": "Add another todo",
      "narration": "Type 'Walk the dog' into the input.",
      "action": "fill",
      "start_ms": 5604,
      "post_action_ms": 7049,
      "post_wait_ms": 7049,
      "end_ms": 7299,
      "wait_held_ms": 0,
      "screenshot": "shots/step-06.png"
    },
    {
      "id": "step-07",
      "intent": "Add another todo",
      "narration": "Press Enter to add the second todo.",
      "action": "click",
      "start_ms": 7405,
      "post_action_ms": 8299,
      "post_wait_ms": 8299,
      "end_ms": 8549,
      "wait_held_ms": 0,
      "screenshot": "shots/step-07.png"
    },
    {
      "id": "step-08",
      "intent": "Complete a todo",
      "narration": "Click the checkbox on the 'Buy milk' item to complete it.",
      "action": "click",
      "start_ms": 8653,
      "post_action_ms": 9413,
      "post_wait_ms": 9413,
      "end_ms": 9664,
      "wait_held_ms": 0,
      "screenshot": "shots/step-08.png"
    },
    {
      "id": "step-09",
      "intent": "Filter active",
      "narration": "Click the 'Active' filter to show only incomplete todos.",
      "action": "click",
      "start_ms": 9915,
      "post_action_ms": 10643,
      "post_wait_ms": 10643,
      "end_ms": 10893,
      "wait_held_ms": 0,
      "screenshot": "shots/step-09.png"
    },
    {
      "id": "step-10",
      "intent": "Filter completed",
      "narration": "Click the 'Completed' filter to show only finished todos.",
      "action": "click",
      "start_ms": 10963,
      "post_action_ms": 11753,
      "post_wait_ms": 11753,
      "end_ms": 12003,
      "wait_held_ms": 0,
      "screenshot": "shots/step-10.png"
    },
    {
      "id": "step-11",
      "intent": "Show all",
      "narration": "Click the 'All' filter to see the full list again.",
      "action": "click",
      "start_ms": 12110,
      "post_action_ms": 12879,
      "post_wait_ms": 12879,
      "end_ms": 13129,
      "wait_held_ms": 0,
      "screenshot": "shots/step-11.png"
    },
    {
      "id": "step-12",
      "intent": "Clear completed",
      "narration": "Click the 'Clear completed' button to remove the finished todo.",
      "action": "click",
      "start_ms": 13203,
      "post_action_ms": 13909,
      "post_wait_ms": 13909,
      "end_ms": 14159,
      "wait_held_ms": 0,
      "screenshot": "shots/step-12.png"
    }
  ]
}
