# PROCITY — V2 IDEAS (the parking lot) *Written by Lane F. Everything discovered during v1 but deliberately **not** built, so v1 stays "the system: plan → streets → doors that open → themed interiors → NPCs." Each item notes where the seam already exists so v2 is wiring, not rework. Ordered roughly by leverage.* --- ## Content firehose (the reason the system exists) - **dig.js wiring + BaseGod real-item stock.** v1 interiors show *visual* stock only (canvas cardboard sleeves/spines via Lane C's `stock.js`). The seam is Lane C's `stockAdapter(shop, slotKind) => texture/mesh` hook — leave it, then in v2 feed it from GODVERSE (recordgod/toygod/ bookgod/mediagod: 44k solid-object 3D candidates, 185k vinyl w/ images — `~/Documents/dealgod/GODVERSE.md`). Port `90sDJsim/web/world/dig.js` (self-contained crate-riffle, `onBuy/getCash/spawnClerk/spawnFittings` callback API, already ported across 3 games) into a shop when you walk to a bin. Real economy = thriftgod `mint()` (`server.py:792`) — per-shop-type profiles, gem bands, CBD-distance curation, `TABLESAMPLE` over real listings. - **Real-OSM plan import (thriftgod `build_city()` route).** Swap the synthetic `generatePlan(seed)` for real geography: thriftgod `server.py:433` runs an Overpass query for AU secondhand/charity/music/book/toy shops → `city_source.json` cache → dedupe → nearest-capital → suburb inference → parody names → seeded hours (~2,918 real shops). PROCITY's Layer-1 schema was built to accept this — `generatePlan` becomes one of two plan *sources* behind the same CityPlan contract, so Lanes B–F never change. ## Authoring / override layer (the thriftgod "big idea") - **In-game layout editor + override tables.** Every interior is deterministic from `shop.seed`; thriftgod's Postgres `layout_shop`/`layout_area`/`layout_asset` tables hold optional hand-authored overrides (NULL = procedural). The E1–E4 in-game editor writes them (`thriftgod/EDITOR_PLAN.md`). v2: add an override store (localStorage → later a tiny backend) and a `?edit=1` mode. The seeded-everything law (CITY_SPEC) is exactly what makes this possible — don't break it. ## World depth - **Interior-mapping window shader.** v1 fakes shop windows two ways: Lane B tints glass + warm emissive at night; Lane C puts a backdrop plane inside. v2: the real Vuntra trick — a parallax interior-mapping shader so a passing pedestrian sees a plausible room through the glass without building it. Stretch goal already flagged in CITY_SPEC §Layer 3. - **Weather + seasons.** Sky dome already seed-picks from `sky-*.jpg` (summer storm, monsoon, grey drizzle, heat haze already in `web/assets/gen/`). v2: rain particles + wet-ground roughness, wind on awnings/trees, seasonal palette shift. Cheap, high vibe-per-byte. - **Trams / buses on a loop.** A scripted vehicle following main-street edges from the CityPlan graph; a bus-stop shelter prop is already on Lane E's MeshGod shortlist. Instanced, one path, no traffic sim in v2 — just life on the street. - **Venue district + gig system (90sDJsim crossover).** The warehouse fringe (Lane A seeds it as future flea-market/venue territory) becomes a live-music block; port 90sDJsim `buildVenue()` (~line 1094) + its rigged-front-row/bobbing-box crowd. Natural bridge back to the parent game. ## Simulation & NPCs - **Deeper citizen sim.** v1 is layered LOD (rigged near / impostor mid / culled far) walking footpath lanes with seeded identity. v2: needs/schedules (home→shop→square by time of day), shop patronage that reads `hours`, queues at the open late-night shop, buskers in the arcade. Vuntra's million-NPC layering at hamlet scale — the tier machinery is already there to lean on. - **Multiplayer presence.** Other players as citizens (the fleet impostor path already renders cheap remote avatars). Presence-only first (see who's in town / same shop), no shared economy — that rides on the content/override backend above. ## Assets & polish - **Corner-building second facade.** Lane E flags the `-side` variant question; v2 gives corner lots a proper second face + wrap-around verandah instead of reusing the front skin. - **GLB depot expansion.** v1 ships the audit-normalized shortlist + primitive fallbacks. v2: the full `~/Documents/3D=models/` library normalized to house GLB law, MeshGod hero props batch (listening booth, till, VHS rewinder, spinner rack, milkshake mixer, arcade cabinet, band-poster easel, giant novelty record, bus shelter — `pipeline/MESHGOD_BATCH.md`, John's go required). - **Audio.** Street ambience by district, muffled shop music that swells through an open door, the milk-bar bell. No audio in v1 at all — greenfield. ## Tech / QA carryover - **GFX tiers.** 90sDJsim's era-tiered `GFX_TIERS` (`~line 167`) — adopt only if a real device misses budget; CITY_SPEC says don't gold-plate now. - **Determinism across engines.** If real-OSM or an authored backend enters, extend Lane F's determinism gate to pin plan + first-interior hashes per seed in CI. - **Shadow/GI.** v1 = one 2048 directional map following the player (or none — measured). v2: cascaded shadows or baked/faked GI for the arcade + interiors. --- *Seam summary: `stockAdapter` (Lane C), plan-source behind the CityPlan contract (Lane A), the `shop.seed` determinism law (core), and Lane B's mode state machine are the four hinges every item above swings on. They exist in v1 specifically so none of this is a rewrite.*