Progress update- solving reactions logic

Behold my concerning level of dedication to making this engine solid. Tremble and weep if you want, it's warranted.
I started work on Reaction Pools- grouping a set of reaction conditions together so one can override another. Expressions are mostly one big pool of reactions, where only the top 1-3 in the pool are shown. But there was a worrisome fuzziness in my understanding of how this was all supposed to come together. It felt like something wasn't fitting.
So I stepped back from the code and dove deep on planning. This is how it works right now.
It can handle individual reactions fine, but as soon as you have a pool of reactions that are supposed to work together, it's not smart enough. 
On the brain's side... 
We need some reactions (like facial expressions and body motions) not to all be playing at once even if their conditions are met. 1-3ish facial expressions can be conveyed at once as a mix and still look good, but not the 30+ that'll be defined on the brain. 
On the body's side...
The core of the same brain can be used by many characters. Someone with a pony face, a beaked face, or a screen for a face, could all define their own animations per each reaction ID. But what if one face type isn't handling certain expression mixes well? We can only adjust the animation rig itself and pray things won't go weird when unexpected expressions are made. There's no mixing logic, so we're at the mercy of the basic animation code.

The solution:
uhhhh okay it's complex but i got it.
On the brain,
We need to be able to group reactions together and give each one a certain weight/priority within its group. If 10 expressions could be made right now, we take the strongest one and blend in 1 or 2 beneath it. Things need be able to exist independently from the group too, like blushing, tears, etc. 
All that logic is handled on the brain's side before things get complicated. The body doesn't care what things are grouped together, their weights/priorities or anything. It just gets the end result (like a mix of 60% happy, 20% flustered, and 20% worried, plus 90% blushing). 
All of these are normal "reactions" but tagged as "expressions" so the body knows to collect them into the expression logic system before displaying them.
On the body,
The animations are too complex to mix properly without logic. So when the brain says "make this mix of 3 expressions", instead of playing all 3 facial animations on top of each other and hoping they blend well, we need to dynamically create a new SINGLE facial animation from that mix. One that we know will obey certain rules to avoid sudden meme faces or visages of glitchy cosmic horror.
But we can't just create an animation directly. We need to account for any species/shape of face, and potentially at different angles. So it's not an animation we're dynamically creating, but the general "idea" (or "abstraction") of where the pieces of the face are supposed to be. How open/closed are the eyes? What tilt are the eyebrows at? And etc.
Then each face type, at each angle, can define the exact animations needed to open/close the eyes, tilt/bend the eyebrows, and so on. We send it that dynamically-created abstract shape, and it displays the animations it has for the shape on the character.

Conclusions
Yeah this is pretty neat. We're left with a chain of systems. One on the brain, one on the abstract character, and one on the physical body. Each can scale independently or be completely swapped out without the others needing to know about it. The middle system (the expression system in these examples) can instead be a system for anything that happens on the character, making it insanely powerful for anything that fits into the chain of "reaction in brain -> visible reaction on body". 
Sweet. Now to write the code. Oh and that's it btw. This is the final feature before we start cleaning up for the first playable release in all this time. Wish me luck~

...and that's all for now!
I'm going through a rough patch IRL and it's hurting my consistency. I've had to scale things  in my daily life back a lot and take it slow. I hope that helps clarify why posts here might be at inconsistent times and levels of quality, and why dev progress seems to speed up and slow down. It's easy to feel like I'm stuck at zero personal progress when things are going poorly, but my mental health has been improving overall at an encouraging pace. 
I do have to mention that last time I was trying to commit to specific times of posts and everything, but still missed a week. My bad.
It's like... I keep expecting to feel better and better as my mental health improves. But actually, it's this long process of being kicked back down to the bottom, and learning a little better how to climb up faster and higher each time. And from that perspective, I'm doing genuinely awesome. Far better than I ever have since long before I started making games. Hopefully that communicates where I'm at. A small dip in an upward trend. I feel bad, but I'm okay~
Thank you peeps for your absurd level of support. This reactions system has me vibrating with excitement. Right now it contains the most interesting capabilities of this engine imo. Despite this post being extremely technical, I hope that excitement is conveyed to you too <3