The base loop size should be bigger, maybe 4x bigger for now to be able to squeeze bigger content in (and larger gaps between them).
New Engine
There needs to be a new structures building engine. Take the best of the civilization and ruins systems and combine them into a general format. Including staircasing, which seems like it would be particularly useful for making "rivers". Also IIRC mana cracks are on this system as well, and some other random stuff -- look into all instances of make{} and shape{}.
The functions can variously: render shapes directly, return a list of coords, or compile coords internally somewhere and render them all at once.
Make sure all shapes and shape XORing/etc work as well -- the new (relatively) polar{} framework will be helpful here.
Reintegration
For any step here, feel free to create additional layers -- that'll help a lot in the future.
Reintegrate this system back into the creation of towns.
Reintegrate into dungeons. The active_ruin{} class would be a layer on top of this rather than something that both does the rendering and logic.
Reintegrate into base building -- both the highlighting functions and the placement should be able to use the full toolkit, which would also open up additional options for shape placement.
Extra NPCs should be generated on province load and assigned to various ECS, which can then place them wherever it wants to. These NPCs can't be experts and their location can't be gleaned through talking (for now) -- that system is going to undergo a major rewrite so it's kinda irrelevant.
Some more specific gotchas:
Farms -- Farm NPCs are all in the same family, and it's based around a Guild head.
Adventurer Outpost -- Adventurers should occasionally pop in here randomly and you'll probably never see them again -- they're named but largely irrelevant to various systems. There should be several hundred Adventurers in a province at a time -- they don't have to be generated on province load, a number can just be pulled wherever they're needed and used to seed their info.
Abandoned towns, Lakes, Burial Sites -- No NPCs
Leisure Forts/VR Facilities/Parks -- Ideally the composition of the people in these changes over time as various Guild members go in here on their requisite breaks.
Decplicopolis -- Rarely contains 1-4 magic users.
Abandoned Mines, Labyrinths, Ruins, Deep Castles -- No NPCs
Anything without NPCs won't have town integration -- those locations will have to be found through other means.
I guess for now, populated ECS are linked to the towns that are closest to them. This will need a better system (particularly a guild-operated one), but it'll work for now. For now, ECS are assigned to one of the shops in the town, and the shopkeeper provides access to them. The ECS itself will also have a conduit someewhere that allows you to warp back to that town, or maybe multiple nearest towns.