Now a big post.
Two things added will allow for you ideas. Blend and Transition weights. These two things composite on each other.
The things I added fit the plugin because they can be exposed as actions without changing the preset format and use case or adding more UI.
I don’t plan to add global intensity, per-profile minimum intensity, or a reaction system to the base plugin, however. That is architectural decision not a rejection of the use cases - they just belong elsewhere.
Expression Presets is to behave like VaM’s presets. Stable, lists of morph values that don't care about scene and can be used for anything. The plugin should save and expose those values while leaving any logic that drives them to other systems. Data such as minimum intensity, reaction duration, and animation behavior belongs to the scene or controlling plugin rather than the reusable preset JSON plugin.
There is also animation related reasons for separation. For it's actual use, a saved expression is an uncalibrated vector. It's a list of morps that look good in a snapshot, along with any junk morphs captured such as eyelid blinking. Different morph packs use very different ranges, some scale well only to 0.25 and others want 2. Scaling every morph uniformly can work well for some morph packs, but it is not a reliable animation model.
Creator level animation needs separate timing for different parts of the face. For example, the eyelids might react immediately while the brow and mouth move and recover at different speeds. That is better handled by an animation system with per-morph timing and curves.
I don't mention this to discourage a use of the presets that works and is easy to use, but this is also why it's not in the preset plugin itself, and why I use Timeline.
The Weight: Profile: Preset parameters provide the simple form of intensity control: 0 is no contribution and 1 is the expression exactly as the creator saved it. I deliberately keep that range at 0–1. It always looks good, if the user saved the expression at a good value. The saved preset is the intended maximum, which keeps the result predictable across presets and preserves compatibility with scenes already using these parameters. A controller can map any desired input range onto that weight. A preset for only animation would then be saved at a maximum wanted value and controlled by external drivers upon load.
Overlays provide the primitive needed for reactions: apply a reaction over the current expression, then reduce or remove its weight to reveal the original expression again. The timing, random selection, fade behavior, and state logic can then live in a dedicated controller.
I think your system could work well as a separate plugin. That would give you room for the controls and state it needs without making the preset manager responsible for a particular animation workflow. It could use my preset JSON files and exposed parameters as a stable source of expressions while storing its own configuration in the scene or its own data. I won't change the JSONs or params down the line because I want save compatibility for users, so this will be stable to build on.
Already, with the params that exist your mentioned case can be solved with MacGruber's logic and trigger managers on the Hub to work with something like the CheeseyFX plugin you mentioned to do all you wanted there. This could be tedious to set up so you might want a plugin board instead.
Good plugins do one thing very well, and don't do too much. There's plugins that try to do it all and end up in a not very good state. I wish to make plugins that do one thing well but can be integrated into any other things.
So this is not discouragement. What you can build is good for a real case, just not in a base preset plugin. I could make the base plugin have the extensions needed for any plugin that wishes to use the JSONs and params.
Personally, I use a modified Timeline for this case to remove the tedium of adding morphs but it's not releasable. I had put aside releasing some kind of plugin for this until VAM2, but I have started looking into it again. It depends on various alignments of astrological bodies if my attention wanders from these ideas.