QuoteI am a programmer, as a hobby since I was in high school back in 1996, and recently Im attempting to develop my own game. Ive also looked into modding Rimworld and its code. (I admit I haven't looked since alpha13)
Programming is not as simple as "just adding a property" and expecting everything to start working with it. Anything and everything that you want done, must have code specifically telling the program how, when, and where to do it. And each class needs equally as extensive code relating to how to interact with the property of other classes. OOP(object oriented programming) allows "child" classes to "inherit" functions of the "parent" class, but that still means you have to specify how classes outside that hierarchy interact with the hierarchy's properties and functions. (and you may want specific classes to interact with existing inherited functions differently than its siblings, which will require a manual rewrite specific to that child class)
Rimworld has passed many iterations and at this point likely has many specific interactions with its various class hierarchies.
As a small example:
You suggested simply adding "claim" property to terrain.
But you can only "un-claim" or "claim" by first selecting an object, or with the "claim" tool.
The "claim" tool doesn't interact with terrain, and you can't select terrain.
So you would need to add "selecting terrain" functionality to the game.
Don't forget to add a "selected Terrain info panel", like how a normal selectable object gets.
How do players select terrain that a normal selectable object is on top of?
Now that terrain is selectable, how does a player "deselect" or clear all selections? (since they can't simply click empty terrain space anymore)
Should terrain be included in band box selections?
How should terrain selection handle selection through double clicking?
This is just the tip of the iceberg. Nothing in programming(as complex as most game programming) is ever as simple as "just add property". Programming is like trying to build your own custom reality. You have to literally create your program's "physics", and manually build every interaction. If you don't, it doesn't happen. You can setup emergent behavior and reacting interactions. But the more complex those interactions become the more difficult it is to keep them in check when you add anything new.
You realize there are such things as terrain-specific tools already, right? There is a lot of stuff already in place that would let Tynan and his team do this with ease.
Programming is easy. Balancing is hard.