53 lines
3.4 KiB
Markdown
53 lines
3.4 KiB
Markdown
# PROCITY v4 — THE REAL MAP (epoch charter)
|
||
|
||
*Fable, 2026-07-16. John's pick (R17 kickoff). Grounded in the R17 scout: 5 real AU town caches
|
||
boot through the full gate matrix — deterministic, in-budget, districts place, `?noassets` silent.
|
||
The existing CityPlan contract eats real shop data. What it does NOT yet eat is real geography:
|
||
`plan_osm` marches real shops onto synthesized parallel avenues. v4 closes that gap.*
|
||
|
||
## The vision
|
||
|
||
**Walk the actual main street of a real Australian town.** Katoomba's real high street with its
|
||
real secondhand shops in their real order, PROCITY's stylized look (this is not photorealism —
|
||
the *town* is real, the *rendering* is PROCITY), the gig district, the citizens, the dig, the
|
||
weather — everything shipped, on real bones. The default boot stays the synthetic town; real
|
||
towns are a destination you pick.
|
||
|
||
## The stages
|
||
|
||
- **v4.0-alpha (R18): REAL ROADS, one town.** Real OSM street geometry (simplified to the
|
||
CityPlan edge schema — straight segments, real topology) for `katoomba_real`, shops seated
|
||
along their real streets, everything downstream unchanged by contract. Opt-in via the town
|
||
cache (schema v2 carries `roads[]`; caches without roads keep the marched fallback).
|
||
- **v4.0-beta: the district on real bones, five towns.** All scouted towns get roads; venues,
|
||
posters, queue, tram(?), citizens proven on irregular graphs; the town selector (B) so a player
|
||
can pick a town without URL surgery.
|
||
- **v4.0: the town pack + the tour.** A curated pack (~15–25 towns, E's bbox discipline), the
|
||
release tour shot on real streets, docs, tag. Default boot still synthetic; flag-flip for real
|
||
towns is a v4.x decision AFTER soak (the v3 pattern, proven twice).
|
||
|
||
## The laws (inherited, plus two new)
|
||
|
||
Classic covenant untouched (`?classic=1` byte-identical forever) · default boot untouched through
|
||
alpha/beta (real towns opt-in) · determinism from (town, citySeed) · budgets unchanged (≤300/200k
|
||
street, ≤350 interior) · asset law (cache fetch fail-soft; `?noassets` falls back to fixtures) ·
|
||
amendment law for goldens · atomic pathspec commits · measurement over brief.
|
||
|
||
**New — the bbox law (A's R17 risk #1):** a town cache is ONE compact town (span ≤ 5 km,
|
||
validator-enforced); town *selection* discipline lives in E's pipeline, because the generator
|
||
cannot rescue an over-broad query. **New — the ODbL law:** every cache ships
|
||
`license`/`attribution` + `SOURCES.md`; raw Overpass responses are committed so re-runs never
|
||
re-fetch; only public POI/way data, never private-individual data.
|
||
|
||
## The risk list (from the R17 scout, kept current)
|
||
|
||
1. Mega-strip / over-broad bbox — mitigated by the bbox law; watch per-town.
|
||
2. Sparse towns (< 6 shops) — curation floor; `MIN_TOWN_SHOPS` enforced.
|
||
3. **NEW, the alpha's real risk: irregular geometry downstream.** B's chunks/buildings/furniture
|
||
and D's sim have only ever seen A's synthetic graphs and the marched-avenue osm towns.
|
||
Non-grid intersections, acute angles, short edges, dead ends — the alpha exists to surface
|
||
exactly these. Every failure gets written down, fixed or fenced.
|
||
4. Road simplification fidelity — too coarse reads wrong, too fine costs edges; A owns the knob.
|
||
5. Settled non-risks: facade clearance on osm towns (R17), interior types (C proved 18 real
|
||
`shop=` values degrade cleanly), plan-side determinism (E's pipeline is byte-identical re-run).
|