I can best explain this with a few mockups. I know this item is on the devlist and has been suggested before.
Animals/night creatures:
Name:
[Types] (How many different types can/ will exist)
[IS Constant] (Tags are rolled at worldgen, and don't change)
[IS Unique] (Only one exists)
[Varies] (For every creature of this type the tags are rerolled)
[Origin]: For now this will only be worldgen, but maybe wizards can make creatures later
Constant Tokens: (A variety of Tokens that always apply. All normal creature Tokens are legit)
Token groups: (Tokens that not always apply. Token groups themselves would also have some Tokens of themselves, Like [is age group]. (Meaning that a creature with age between X-Y years would use Token group A, and between Y-Z Token group B) [is caste] (Same, but for castes), or [IS Mutually exlusive]. (Uses group A or group B)). There would also be some tokens to determine how many Tokens from the group are chosen, and such
Within token groups: One would be able to add several Tokens. like is [IS Mutually exclusive](Token A can't occur without Token B), but also it's opposite (where token A can't occur without Token B), and of course: [Constant]. (Tags that always happen within these groups) and others
Mock up: (Notes: I don't actually work with the raws, so expect errors)
[Creature:Dragon]
[Types: 2]
[Is constant]
[Origin: Worldgen]
[Constant Tokens:]
[MEGABEAST][DIFFICULTY:10]
[ATTACK_TRIGGER:80:10000:100000]
[NAME:dragon:dragons:draconic]
[CASTE_NAME:dragon:dragons:draconic]
[PET_EXOTIC]
[TRAINABLE]
[MOUNT_EXOTIC]
[PETVALUE:10000]
[FANCIFUL]
[SPHERE:WEALTH]
And others traits that are always associated with dragons [/Constant]
[Amount of Token groups chosen: 2]
[Token group A]
[IS Age group:0-100]
[Tags chosen: All]
All tags for young dragons, both males and females. If you write up the castes, of course
[Token group B]
[Is mutually exclusive with: C,D,E]
[Is age group: adult:100-10.000]
[Tags chosen: All]
[Name: add prefix: fire-]
Now add the traits for your standard fire dragon here
[Token group C]
[Is mutually exclusive with: B,D,E]
[Is age group: adult:100-10.000]
[Tags chosen: All]
[Name: add prefix: water-]
Now add the traits for your standard water monster dragon here
[Token group D]
[Is mutually exclusive with: B,C,E]
[Is age group: adult:100-10.000]
[Tags chosen: All]
[Name: add prefix: cave-]
Now add the traits for your standard cave dragon here
[Token group E]
[Is mutually exclusive with: B,C,D]
[Is age group: adult:100-10.000]
[Tags chosen: All]
[Name: add prefix: Air-]
Now add the traits for your standard airdragon here
Now what should happen is that the game generates 2 types of dragons. They would have a lot of similair traits, their young would look alike but change when developping. You can also do other things in which the properties of the Air, fire,.. dragons varies between types, and a lot more
Syndromes
Something similair would need to be made for werebeast, vampires and nightcreatures
[ONLY_IF_AVAILABLE]--Found in [COMMON_DOMESTIC]s. Only civs that have access to biomes with the critter will autotame it. Presumably would be used on reindeer, yaks, horses, etc.
[DERIVED_FROM:X]--Same. Only civs that have access to biomes with the X critter or who have otherwise tamed it will have access to th critter. Multiple DERIVED_FROM:X tokens mean multiple species that are allowed. Used on dogs, maybe cats, etc.
[ANIMAL:X:Y]--Found in entities. The X is an animal name, the Y is a frequency (like with armor and stuff). Useful if you only want one or two civs to have access to a creature. Could be used with beak dogs and such.
Allow us to put the skills and levels in the raws. This will allow the players to add extra jobs, and modify the names of existing ones. Also fun would be adding the xp requirements and the quality modifiers. That way we would be able to make jobs where learning the initial levels is very hard, but afterwards it goes fast, or different.
Also needed is: Arrives with Migrants: [Lvl- Lvl] and [Is learnable in worldgen: Y/N]