Ledger #5 pull-forward. Nothing here touches a golden until A absorbs in R22; F tags v4.0-beta with
or without it. selfcheck ALL GREEN 154141/154141, synthetic 0x3fa36874 unmoved, all 22 byte-identical
on re-run.
- Curated 18 candidates on secondhand density first (heroes are the game), a walkable 2-3.4km centre,
and a national spread; 17 survived -> 22 towns, 1192 shops, 298 heroes, all 8 states/territories.
fitzroy is the mecca (40 heroes/160 shops, 2x katoomba); thin tail toowoomba/darwin (3 heroes) left
in as honest data -- A/Fable may drop them in R22.
- FINDING: the 3x-hero cap is a CURATION FILTER, not just a density knob. Wollongong had ~62 real
shops but 1 hero -> capped to 4 -> dropped by the >=6 floor. A town without a secondhand strip
cannot inflate into a retail strip; John's SUBTLE directive does quality control for free.
- Newcastle: my centre was wrong, not the town (CBD held 2 heroes; the strip is Hamilton/Beaumont St).
Re-centred: 2 -> 9 heroes, 8 -> 36 shops.
- BUG (mine, shipped R18, caught here): fetch_roads_raw had no query-comparison while fetch_raw did,
so re-centring refetched shops but silently reused the OLD CBD roads -> Hamilton shops seated against
a graph 2.5km away -> the town marched out with ZERO shops (surfacing as 32 bogus 'open-late
invariant' failures; ten other no-video towns passing is what proved it wasn't the open-late rule).
Fixed: the roads path now compares its query too -- the bbox lives in the query, so a re-centre must
invalidate BOTH snapshots. Newcastle rebuilt: 34 shops seated, openLate=1.
- Discipline: bounded bboxes, raw snapshots committed (shops+roads), C's §6 mapping, SUBTLE guardrails
(heroes never subsampled, texture 3x, 2392 drops counted), ODbL. Overpass rate-limits hard at pack
scale (batch 1 died on a fatal 504 after 25 retries) -- courtesy sleep 4s, two polite batches.
-> Lane A (R22): 34 goldens to pin (17 new towns x base+gig); sizes 12->160 shops load-test your
capacity/overflow fences. -> Lane B: index.json now lists 22 towns (your selector already reads it).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>