Wow, this is actually coming along quickly. Is it easy after hitting the initial barrier of "how"?
This part _is_ kind of easy. I have a long (15+ years?) background in GIS apps so rolling some components with map layers and stuff is not too hard. And the hard work of the town entity relationships, etc. was already done for the other one and is pretty easy to repurpose for this. (In fact, it will still work with both versions of the UI which is important to me.)
Anyway, yes, the "how" was the hard part. I had conceptualized how I wanted all of the parts to fit together with the relationships... but the proof is in the pudding, so they say. And in this case, some parts were markedly simpler than I thought they originally needed to be and some parts are harder. The resource mapping is not done by a long shot and there are some things it doesn't yet handle properly but a working implementation is gold. The rest is sort of window dressing at this point.
And originally this was about providing level of detail intelligence (multi-tiered AI) for the NPCs... and to give them proper life and motivations. Only after being in the thick of it did I realize this also answers nearly every missing piece I had in the "how to generate a town" design. So we're on a slight side-track at the moment.
I'll release a version of the AI tester that lets the user place their own towns just like the old one. Then slowly I'll add randomization features and keep tweaking it until I'm happy with it. I have to be kind of careful because the final version of town and city generation should take all resources into account and not just some prototype ones... which means I need to think about cotton+wool->textiles->clothes, ship buildings, air docks for flying ships, etc. At least for the final versions... but I hate to have to completely regenerate worlds every time I iterate so I will try to add as much as possible early.
...and last night while I was walking the dog I was day dreaming about how underwater cities will be constructed since they don't need streets... but that's another story.