Observed
A pop-16 naval hamlet (FMG burg preview, Patrinoli) renders with two full-sized piers jutting into the sea — the same pier treatment a large port gets.
Since v1.0.0, harbourSize: 'small' emits 2–3 piers sized to reach past the waterline (src/wards/harbour.ts). Pier count/size keys off harbourSize alone — population plays no part below the small/large split, so a 16-person fishing hamlet and a 4 000-person town get the same waterfront furniture.
Expected
Pier presence should scale with population, not just harbourSize:
- Tiny settlements (roughly pop < 100–150): no piers at all — a beach landing. A village of 75 pulls its boats onto the sand; local fishing boats, not seafaring vessels. The harbour ward/quay can stay, just without pier structures.
- Small villages (roughly pop 150–1 000): at most one short, narrow jetty.
- Towns and up: current behavior.
Thresholds above are suggestions — tune on renders. Optionally a beach landing could later render hauled-up boat symbols (symbol library), but the core fix is suppressing/shrinking piers at low population.
Pointers
src/wards/harbour.ts — pier count, width, and the cone-scan length logic (v1.0.0)
tests/coastal-core.test.ts — pier root/tip regression tests assert piers.length ≥ 2 for ports; that bound needs to become population-aware with this change
- Note:
port: true + ocean data is what triggers coastal rendering at all (as of 48db58d); this issue is about what the waterfront looks like once it does
Observed
A pop-16 naval hamlet (FMG burg preview, Patrinoli) renders with two full-sized piers jutting into the sea — the same pier treatment a large port gets.
Since v1.0.0,
harbourSize: 'small'emits 2–3 piers sized to reach past the waterline (src/wards/harbour.ts). Pier count/size keys offharbourSizealone — population plays no part below the small/large split, so a 16-person fishing hamlet and a 4 000-person town get the same waterfront furniture.Expected
Pier presence should scale with population, not just
harbourSize:Thresholds above are suggestions — tune on renders. Optionally a beach landing could later render hauled-up boat symbols (symbol library), but the core fix is suppressing/shrinking piers at low population.
Pointers
src/wards/harbour.ts— pier count, width, and the cone-scan length logic (v1.0.0)tests/coastal-core.test.ts— pier root/tip regression tests assertpiers.length ≥ 2for ports; that bound needs to become population-aware with this changeport: true+ ocean data is what triggers coastal rendering at all (as of 48db58d); this issue is about what the waterfront looks like once it does