Faction camps, as they currently exist, do two things that make it really annoying to transform them into something more like you suggest:
- they use the overmap tile ID to indicate how advanced the camp is
- they borrow the mapgen JSON decoding code to update the camp
So basically you can’t have flexible faction camps under the current system unless you have a mapgen map json for everything you want to do, and that’s clearly not a sustainable approach.
I have a PR right now to fix the first issue. It’s big and long and has a surprising number of subtle bugs, so it keeps getting hung up in review.
The second issue is going to require writing more flexible access code to the mapgen JSON decoder. I want to do this anyway, because it means that between the already existing work in moving NPC dialogue in JSON and the mapgen JSON decoder, it should be possible to move a lot of the mission start hardcodes into JSON - including and most especially the ones that modify existing maps. Which will make it even easier to people to add their own missions.
However, again, it’s clearly not going to be easy, subtle bugs, etc. etc.