Another update.
I've got the attributes and sizes for units working correctly now. Essentially you declare the size numbers and attribute numbers the same way they are done now, but instead of capping them, the script assigns the correct numbers to the unit. Note that this doesn't work for world gen mode as it only sets them once they appear on the screen, I might try to tie the setting into the historical figure generation in world gen so that it might work, but that is a stretch goal at this point.
Attack modifications are also in place so for instance if we take a kick attack like
[ATTACK:KICK:BODYPART:BY_TYPE:STANCE]
[ATTACK_SKILL:STANCE_STRIKE]
[ATTACK_VERB:kick:kicks]
[ATTACK_CONTACT_PERC:100]
[ATTACK_PREPARE_AND_RECOVER:4:4]
[ATTACK_FLAG_WITH]
[ATTACK_PRIORITY:SECOND]
[ATTACK_FLAG_BAD_MULTIATTACK]
we can add some extra tokens to do some fancy things
[ATTACK:KICK:BODYPART:BY_TYPE:STANCE]
[ATTACK_SKILL:STANCE_STRIKE]
[ATTACK_VERB:kick:kicks]
[ATTACK_CONTACT_PERC:100]
[ATTACK_PREPARE_AND_RECOVER:4:4]
[ATTACK_FLAG_WITH]
[ATTACK_PRIORITY:SECOND]
[ATTACK_FLAG_BAD_MULTIATTACK]
{ON_ATTACK}
{SCRIPT:do-something}
{ON_HIT}
{SCRIPT:do-something}
{ON_WOUND}
{SCRIPT:do-something}
I am also planning on adding some more features to the attacks that are basically shortcuts, so you could modify the velocity or hit chance of the attack directly, add repeat attacks, or even have targeted attacks (e.g. HEAD_KICK).
Interactions are a little harder due to the fact that they are handled differently than all the other raws I've processed so far, namely, a unit can have several different [CAN_DO_INTERACTION:MATERIAL_EMISSION] in their raws and each one will be different in DF but my current code would just create a single one (since it would just read the MATERIAL_EMISSION). An easy work around for now would be to only allow unique interaction entries read from the [OBJECT:INTERACTION] files, so that you would have multiple copies of the [INTERACTION:MATERIAL_EMISSION] (e.g. [INTERACTION:MATERIAL_EMISSION_DRAINBLOOD]) that has the Enhanced Raws stuff in them. But I'd rather be able to add the Enhanced Raws stuff to both places if the user wanted.
Other triggers that I've added are {ON_DEATH}, {ON_KILL}, {ON_MOVE}, and {ON_STRESSED}. Currently they only accept scripts with the triggers (except for the ON_DEATH shortcut {EXPLODES_ON_DEATH}), but I'll be adding other shortcuts as well.