{
  "scope": "Release runtime after right-edge camera correction. Documentation-only final pass left index.html and nadir.js unchanged.",
  "method": "Supervisor AI under user direction; continuous known route using real keyboard events and screenshots, not a game-state query, physics simulator or forced victory. Static rendering/camera inspection was separately used for diagnosis.",
  "author": "anthropic/claude-haiku-5-5",
  "runs": [
    {
      "viewport": {
        "width": 390,
        "height": 844
      },
      "hudTimer": "00:46",
      "gravityInversions": 22,
      "inputSeconds": 47.084,
      "recordingDurationMs": 51798,
      "browserErrors": [],
      "publicScreenshot": "final-mobile.png"
    },
    {
      "viewport": {
        "width": 1280,
        "height": 800
      },
      "hudTimer": "00:46",
      "gravityInversions": 22,
      "inputSeconds": 47.06,
      "recordingDurationMs": 51884,
      "browserErrors": [],
      "publicScreenshot": "final-desktop.png"
    }
  ],
  "checks": {
    "rightBoundary": "Robot remained fully visible at maximum right at both tested widths.",
    "unpoweredExit": "Portal physically reachable with K/J incomplete, but no victory; HUD still requested K.",
    "restart": "Enter after victory and during play passed; M changed the indicator.",
    "earlierAcceptance": "Q and K reject robot alone; R resets the current sector while retaining earlier progress. Checked immediately before the camera-only correction.",
    "ending": "Gray rectangle absent; station hull, deployed blue panels, hatches, antennas and robot visible at both release viewport sizes."
  },
  "limits": [
    "Narrow Chromium viewport, not a physical phone or Safari certification.",
    "Keyboard required; no touch controls.",
    "Audio not acoustically verified; published recordings have no audio stream.",
    "Known-route reproduction is not a first-play duration, a speed record or a theoretical minimum.",
    "Final animation is additional to the displayed solve time."
  ],
  "publicVideo": {
    "file": "nadir-gameplay.mp4",
    "probe": {
      "programs": [],
      "stream_groups": [],
      "streams": [
        {
          "codec_name": "h264",
          "codec_type": "video",
          "width": 1280,
          "height": 800,
          "pix_fmt": "yuvj420p",
          "color_range": "pc",
          "r_frame_rate": "30/1",
          "nb_frames": "1558"
        }
      ],
      "format": {
        "duration": "51.933008",
        "size": "16855349"
      }
    }
  },
  "realKeyboardRoute": [
    [
      "ArrowRight",
      1000
    ],
    [
      "Space",
      0,
      900
    ],
    [
      "ArrowRight",
      650
    ],
    [
      "Space",
      0,
      900
    ],
    [
      "ArrowRight",
      1800
    ],
    [
      "Space",
      0,
      900
    ],
    [
      "ArrowRight",
      650
    ],
    [
      "KeyW",
      0
    ],
    [
      "ArrowRight",
      330,
      700
    ],
    [
      "Space",
      0,
      1200
    ],
    [
      "ArrowLeft",
      650
    ],
    [
      "KeyW",
      0
    ],
    [
      "ArrowLeft",
      330,
      800
    ],
    [
      "ArrowRight",
      1700,
      900
    ],
    [
      "ArrowRight",
      350
    ],
    [
      "Space",
      0,
      1100
    ],
    [
      "ArrowRight",
      950
    ],
    [
      "Space",
      0,
      1400
    ],
    [
      "Space",
      0,
      1000
    ],
    [
      "ArrowRight",
      450
    ],
    [
      "Space",
      0,
      1000
    ],
    [
      "ArrowRight",
      750
    ],
    [
      "Space",
      0,
      1000
    ],
    [
      "ArrowRight",
      700
    ],
    [
      "ArrowLeft",
      600
    ],
    [
      "Space",
      0,
      1000
    ],
    [
      "ArrowLeft",
      1000
    ],
    [
      "KeyW",
      0
    ],
    [
      "ArrowLeft",
      450,
      700
    ],
    [
      "ArrowRight",
      2150
    ],
    [
      "Space",
      0,
      1100
    ],
    [
      "ArrowRight",
      500
    ],
    [
      "Space",
      0,
      1200
    ],
    [
      "Space",
      0,
      900
    ],
    [
      "ArrowLeft",
      500
    ],
    [
      "Space",
      0,
      1000
    ],
    [
      "ArrowLeft",
      650
    ],
    [
      "Space",
      0,
      1000
    ],
    [
      "ArrowLeft",
      1550
    ],
    [
      "Space",
      0,
      1200
    ],
    [
      "ArrowRight",
      350
    ],
    [
      "Space",
      0,
      1000
    ],
    [
      "ArrowRight",
      1600
    ],
    [
      "Space",
      0,
      1000
    ],
    [
      "ArrowRight",
      750
    ],
    [
      "Space",
      0,
      1000
    ],
    [
      "ArrowRight",
      600
    ],
    [
      "Space",
      0,
      1100
    ],
    [
      "ArrowRight",
      1800
    ]
  ],
  "routeTuple": "key, hold milliseconds (0 = press), optional settle milliseconds",
  "sha256": {
    "index.html": "10a9f428fee5e43391cd7040daaffebcf4db5fc774f884477aef3a8f0f65ae32",
    "nadir.js": "15acba2cffee0bd0a7dc884382707310fe1268704686946789e7ec878bdf62d1",
    "CHANGELOG.md": "de1277ba1d487d87045a31a150dd0d3c452fcb339c83b1c7ad093bdd38cba1ea",
    "vendor/three.min.js": "170c6789f43217c96b3170f4b42fafe135de7f7cd48497a4218f9757ee1d49fa",
    "vendor/THREE-LICENSE.txt": "852e0e8699169bf9f6fdc6bda3e682d078dcbc738b5d33e74df594721bff271d"
  }
}