Wanted
Expose more generation parameters, taking watabou's two generators as the parity target.
Watabou village generator (Map parameters panel): size W×H plus a tag set — dense, grove, isolated, organic, river, uncultivated, coast, confluence, crossroads, dead end, district, estuary, farmland, highway, island, no orchards, no square, palisade, pond, sparse.
Watabou city generator (Generate panel): a Features tab with tri-state toggles (random / forced on / forced off) for citadel, inner castle, walls, river, greens, temple, plaza, shanty town, coast; a separate Roads tab; and size presets Small / Medium / Large / custom Size.
Current state
GenerationParams (src/generator/generation-params.ts) exposes: plazaNeeded, citadelNeeded, wallsNeeded, templeNeeded, shantyNeeded, capitalNeeded (plain booleans — no tri-state "let the generator decide"), plus seed, population/nPatches/nCore, road entries, ocean/coastline, harbourSize, urbanDensity, biome. Everything is currently derived from Azgaar flags via mapToGenerationParams / buildWardDistribution.
Missing relative to watabou (rough audit):
- tri-state semantics — today absent = false; watabou's "Random" state (generator decides) has no equivalent
- greens / parks toggle, inner castle (distinct from citadel)
- palisade (village-scale wall), pond, island, grove, farmland / uncultivated / no orchards (field & vegetation density)
- dense / sparse / organic texture overrides
- no square (villages currently always eligible for a plaza?)
- crossroads / dead end / highway / district road-topology hints (partially covered by
roadEntryPoints + through, but not user-steerable as a single tag)
- river / coast / confluence / estuary — tracked separately in the rivers-and-bridges issue
Notes
- The library stays zero-dep and headless: this issue is about the params surface, not UI. The panels live in settlemaker-web; FMG consumers keep deriving params from burg data, and new params must all be optional with unchanged defaults (byte-stable output for existing inputs).
- Suggest tackling as: (1) audit table watabou-tag → current-behaviour → gap, (2) agree the param names/shape, (3) implement in slices, render-gated per texture change.
Pointers
src/generator/generation-params.ts — GenerationParams
src/input/azgaar-input.ts — mapToGenerationParams
src/wards/ward-distribution.ts — buildWardDistribution (where several flags actually take effect)
Wanted
Expose more generation parameters, taking watabou's two generators as the parity target.
Watabou village generator (Map parameters panel): size W×H plus a tag set —
dense,grove,isolated,organic,river,uncultivated,coast,confluence,crossroads,dead end,district,estuary,farmland,highway,island,no orchards,no square,palisade,pond,sparse.Watabou city generator (Generate panel): a Features tab with tri-state toggles (random / forced on / forced off) for
citadel,inner castle,walls,river,greens,temple,plaza,shanty town,coast; a separate Roads tab; and size presets Small / Medium / Large / custom Size.Current state
GenerationParams(src/generator/generation-params.ts) exposes:plazaNeeded,citadelNeeded,wallsNeeded,templeNeeded,shantyNeeded,capitalNeeded(plain booleans — no tri-state "let the generator decide"), plusseed,population/nPatches/nCore, road entries, ocean/coastline,harbourSize,urbanDensity,biome. Everything is currently derived from Azgaar flags viamapToGenerationParams/buildWardDistribution.Missing relative to watabou (rough audit):
roadEntryPoints+through, but not user-steerable as a single tag)Notes
Pointers
src/generator/generation-params.ts—GenerationParamssrc/input/azgaar-input.ts—mapToGenerationParamssrc/wards/ward-distribution.ts—buildWardDistribution(where several flags actually take effect)