{
  "status": "passed",
  "url": "http://127.0.0.1:8765/demo.html",
  "viewport": {
    "width": 1920,
    "height": 1080
  },
  "events": [
    {
      "kind": "navigation-complete",
      "wallSeconds": 0.521231663
    },
    {
      "kind": "wait",
      "milliseconds": 1200,
      "beforeWallSeconds": 0.521244276,
      "afterWallSeconds": 1.721760489
    },
    {
      "kind": "select",
      "selector": "#route",
      "value": "ridge",
      "beforeWallSeconds": 1.7217661700000002,
      "afterWallSeconds": 1.741777909
    },
    {
      "kind": "wait",
      "milliseconds": 800,
      "beforeWallSeconds": 1.741780383,
      "afterWallSeconds": 2.5418371289999997
    },
    {
      "kind": "click",
      "selector": "#build",
      "beforeWallSeconds": 2.5418415569999997,
      "afterWallSeconds": 2.55438907
    },
    {
      "kind": "assert-text",
      "text": "Checking the selected route…",
      "exact": true,
      "beforeWallSeconds": 2.5543908330000002,
      "afterWallSeconds": 2.5568407209999995
    },
    {
      "kind": "assert-text",
      "text": "Ridge loop · Summary complete",
      "exact": true,
      "beforeWallSeconds": 2.5568422739999996,
      "afterWallSeconds": 9.867140796
    },
    {
      "kind": "wait",
      "milliseconds": 4500,
      "beforeWallSeconds": 9.867144953999999,
      "afterWallSeconds": 14.36848311
    }
  ],
  "actualBehavior": "Moss Ledger\nFIELD NOTES / ROUTE SUMMARY\nSYNTHETIC FIXTURE · NO EXTERNAL SERVICE\nChoose a route.\nCheck what comes back.\nRoute to summarize\nSelect a route\nRidge loop\nShore path\nBuild route summary\n\nSummary complete. Keep this route in view.\n\nRidge loop\n9\nstops\n2\nclosures\n\nRidge loop · Summary complete\n\nOriginal test data and interface. Not a real product demonstration.",
  "scope": "Actual local browser capture; not a Poe/meeting pass. Wall event times have recording-start uncertainty.",
  "captureFile": "capture.webm",
  "encodedTimeMapping": "Inspect imported decoded frames/PTS to map action/result times. Wall timestamps are not exact encoded PTS."
}
