// PROCITY citygen — canonical Lane A public entry point (barrel). // // Consumers import the whole CityGen API from here (not from plan.js directly), e.g. Lane B's shell: // const citygen = await import('./js/citygen/index.js'); citygen.generatePlan(seed) → CityPlan // Keep this the stable import surface for the lane; internals may move between files behind it. // // (Originated as a Lane F integration shim because the shell imports ./js/citygen/index.js while the // generator ships as plan.js; adopted here as the real Lane A entry point, per the shim's own note.) export { generatePlan, chunkIndex, chunkKey, CHUNK, lotCorners, obbOverlap } from './plan.js'; export { shopName, townName } from './names.js'; export { generatePlanOSM, osmTownKeys } from './plan_osm.js'; // planSource selector (round 6; multi-town round 8). Default 'synthetic' → the byte-identical // golden-hash generator; 'osm' → the real-data fixture importer. Lane F wires ?plansrc=osm (+ optional // &town=) to these args so the shell bootstrap picks the producer/town without B–F caring which // ran. Unknown source → synthetic; unknown town → the default town. import { generatePlan as _synth } from './plan.js'; import { generatePlanOSM as _osm } from './plan_osm.js'; export function generatePlanFor(seed, source = 'synthetic', opts = {}) { return source === 'osm' ? _osm(seed, opts.town, opts) : _synth(seed); } // Convenience default so `citygen.default` also resolves to the (synthetic) generator. export { generatePlan as default } from './plan.js';