# R42 §42.6 — the proof shots (Lane F) R42 is a **look** round. Three faults were visible in R41's own committed proof shots and John said fix them, so the deliverable is those frames taken again on the integrated tree, **paired against the committed originals in `../laneF_r41/`**. Those files are in git, nobody can re-shoot them, and that is exactly what makes them the BEFORE arm. Regenerate: `tools/.venv/bin/python tools/qa/r42_tour.py` (seed 20261990, fresh headless context per frame, own no-store server, 1280×720). `bash tools/qa.sh --tour` runs it to a scratch outdir; `PROCITY_SHOT_OUT=docs/shots/laneF_r42 bash tools/qa.sh --tour` rewrites these deliberately. ## The pairs | file | the pair, and what moved between the halves | |---|---| | `pub_furnished_ab.jpg` | **THE PUB.** Before: white plastic-looking props, **two** purple `EL CHUPACABRA` luchadors, and `dj_phrtt_01` — an unclothed body — at the stage edge. After: brown vinyl, beer-carpet red, laminex; 13 figures wearing 11 bodies, none of them retired. Same room (The Exchange Hotel), same seed, same segment, same camera recipe: **71 → 72 draws, 222,526 → 222,250 tris.** (Fittings read 13 → 12: Lane C recomposed the booth in §42.2b, so a spec count either side of the pair is not a like-for-like — the draws and tris are.) | | `record_dj_booth_ab.jpg` | **THE BOOTH.** Before: a black box you cannot read as a turntable. After: a Technics-silver chassis (E §42.2a, contrast 1.21:1 → 6.74:1) in a composed booth (C §42.2b — bench 3 → 7 boxes, record bay, headphones). R41's exact camera. **40 → 43 draws, 36,252 → 41,719 tris** — C's "+4 at most, anywhere". | | `street_postures_ab.jpg` | **THE STREET.** The AFTER stands on **R41's own published camera**, parsed out of `../laneF_r41/street_postures.txt` at run time. (Re-running R41's live-crowd cluster search landed 40 cm away on one run and 30 m away behind a wall on the next — re-rolling until it looks right is not a method.) Five bodies recast; the bench + streetlight yaw fixed. **173 → 174 draws** — the ±1 a single bookmark moves run to run; the 802-station pin is 0/0. | ## The single frames | file | what it proves | |---|---| | `record_dj_booth_door.jpg` | the frame R41 never took: the booth **from where a player actually stands** — Lane C's own `room.spawn`, eye 1.62 m, 7.76 m out. The reported fault was about the entry view, so this is the frame that answers it. | | `street_bench.jpg` | Lane B's §42.5-A, **measured in the frame and not read back off B's rule**: instances identified by position only (a `benchStops()` station within 2 cm; CONTROL — the same stations offset 3 m match **0 of 61**), then the angle taken between the instance's own world +Z and the foot of the perpendicular onto Lane A's road centreline. **61 of 254 stations in the streamed window · front-vs-road min = median = max = 0.0° · front-vs-street 90°.** In R41 those were 90° and 0°. | | `credits_panel.jpg` | ruling 3 on screen: the roster row with its per-asset Mixamo evidence, and the row recording the bodies **withdrawn** on ruling 1. No ped row reads `unverified`. (`unverified` still appears twice in the panel — on the house-props row, a different and still-open debt, deliberately not hidden.) | | `pub_furnished.jpg` · `record_dj_booth.jpg` · `street_postures.jpg` | the AFTER halves as full-size frames, with their sidecars. | ## The two lines on every humanoid frame * **R10 human-sized line** — stature (feet→crown) off the **posed** skeleton for every figure, as a ratio of that figure's own nominal height. Fails on a giant (>2.0 m) or a fold (<55% of nominal), never on an absolute seated band. * **CAST line** — Lane D's §42.4 idea, adopted. Every figure resolved back to the ped GLB it is wearing (`fleet.all[pedIndex].pedName`) plus an explicit assertion that none of the five retired bodies is in the picture. *"The luchador is gone"* is a claim about the cast, and a JPEG cannot carry it alone. R41's pub sidecar listed **one** figure (its measure read keepers only); this one reads the gig crew too, which is why the pub cast is 13 names. ## `shot_goldens.json` — and the ruling that made it legal R41 ruled **no gate may pin a screenshot byte-hash**, blaming a sign-atlas font race. That diagnosis was wrong (Lane B §42.5-C: the atlas is byte-identical across boots and `document.fonts` is an empty set in this game). **The ruling is reversed.** The condition is *"nothing in frame runs on wall-clock time"*, and it is assertable: `?classic=1&dbg=1&weather=0&tram=0&magpie=0&washing=0` + `DBG.freeze()` + `freeze().stillLive` all-false. Measured here: **5 of 5 bookmarks pin to one sha256 over 3 fresh boots**, and these hashes, written in one run, re-measured green in a second independent run. Two things had to be found first, and both are in `tools/qa/r42_repro.py`'s comments: settle until `DBG.info()` **stops changing** rather than for a number someone picked (the chunk streamer is the wall-clock process nobody had named), and **pin the render, not the instrument** — with everything else frozen, the last thing moving was 53–62 px at (1252, 82): `#pc-fps` reading `fps 20` on one boot and `fps 21` on the next. These are **evidence, not goldens**: `shot_goldens.json` is not wired into `qa.sh`, because five lanes change the art every round and a committed pixel value would go red on every legitimate repaint while telling us nothing. The gate pins the *stability*; the file is there for anyone who wants the value.