Yeah I have been thinking about an more classic system with object types.
I'll attach the file when im done, and I guess it's the easiest way.
Each Object/Unit, whatever it is has always an required header:
-----------------------------------------------------------------------------------
UNIT_ID = 1
INT_NAME_LENGTH = 5 (If your data files will be in text and your game can understand all data without size pointers you can remove the length properties)
INT_NAME = VILLM
GAME_NAME_LENGTH = 15
GAME_NAME = Villager (Male)
-----------------------------------------------------------------------------------
All objects will share this header nomatter what type as its required by the game to read the entry from
But here comes the system I talk about:
-----------------------------------------------------------------------------------
OBJECT_TYPE = HUMANOID
-----------------------------------------------------------------------------------
This will declare the type of object, now I will categorize all data tags I shown in the first file belonging to a humanoid character and leaving out all things that have not todo with it, examples: sheep conversion, placement terrain.
The object types I have in mind:
-----------------------------------------------------------------------------------
1 = HUMANOID
2 = BUILDING
3 = SIEGE_WEAPON
4 = ANIMAL
5 = RESOURCE
6 = PROJECTILE
7 = CORPSE
8 = OBJECT_COMPLICATED (This will have more stats assigned, relics are an example of complicated objects, they can be clicked, etc.)
9 = OBJECT_SIMPLE (These are simple unclickable objects with far less stats, like rocks, flowers, ruins, etc)
10 = FLAG (Some special stats like Line of sight, player ownership, etc.)
-----------------------------------------------------------------------------------
I will categorize all data tags belonging to each object type.