3.4  6 August 2026  (community fix build, original plugin by via5)
  - Fixed a disabled step still applying its effect. A disabled step's
    modifiers were re-applied every physics frame by Manager.Set() (it never
    checked the step's Enabled flag, and IsStepRunning is always true under
    Concurrent progression). Symptoms: a morph frozen at its last value, or a
    rigidbody force/torque still "holding" a hand/arm node so it couldn't be
    posed. Manager.Set() now skips disabled steps.
  - Turning a step off is now the timing, and nothing snaps. On disable (from a
    trigger/Timeline OR the manual checkbox) the step abandons any active
    pause/delay immediately; morph modifiers glide back to their start value
    over time (via the built-in move-to-start, driven each frame by TickPaused
    for disabled steps under Concurrent -- which the progression previously
    never ran), and force/torque modifiers just stop, letting the body ease to
    rest via physics. On re-enable the step starts its cycle fresh from the
    beginning (no leftover pause to wait out). Disable is detected every frame
    from the effective Enabled state, so it also works when toggled by a trigger
    that bypasses the plugin's setter.
  - Same immediate-release applied to disabling an individual modifier.
  - The "Step enabled" and "Modifier enabled" toggles now work again when the
    parameter is animatable. Previously, once a trigger/Timeline drove the
    parameter (or the scene was simply loaded with it registered), an internal
    override latched permanently: the UI toggle stopped reflecting the state
    and clicking it did nothing. The toggles now (a) reflect the effective
    value live, including trigger/Timeline changes, and (b) write through the
    override when clicked so manual control takes effect. (An animation driving
    the parameter every frame still wins, as with any VaM control.) HalfMove
    and the slider animatables still have the old behavior; same fix can be
    extended to them.
  - Fixed dropdown choosers (Atom, progression, etc.) rendering behind the
    widgets below them, which left the list unclickable and stuck open until a
    reload. Open popups are now brought to the front, and popups are closed
    before their UI is torn down so they can't be orphaned.
  - Fixed a memory leak: atom-based modifiers (morph, rigidbody, light,
    storable, audio, eyes, link) subscribe to SuperController's atom-rename
    handler and only detach in Dispose(), which nothing ever called. Every
    removed or replaced modifier -- including on every scene load, which clears
    and rebuilds them all -- leaked itself and its data onto that session-long
    handler. They're now disposed when removed.
  - Fixed a related smaller leak: the Atom chooser widget subscribed to that
    same rename handler in its constructor and only detached in an uncalled
    Dispose(), leaking one subscription each time a modifier's type was switched
    in the UI. It now subscribes/unsubscribes with the widget's add/remove
    lifecycle instead.
  - Removed a stray debug LogError that spammed the error log when a morph
    modifier's morph list changed.


3.2  24 January 2021
  - Fixed half move steps not rewinding correctly
  - Fixed light colours not being saved
  - Added example


3.1  22 January 2021
  - Fixed infinite loop with one eye target that's disabled


3.0 January 2021
  - New modifiers: Eyes and Storable
  - Step overlap
  - So many fixes
  - Too many things to list


2.0  10 June 2020
Changes:
  - Animatable properties
  - Change default ramp minimum, maximum and ramp time values to 1 instead of 0
  - Added version number in the monitor
  - "Presets" is now "Options and presets", added pause options
  - Added preset option to merge step modifiers

Fixes:
  - Some slider names had duplicate words like "Duration duration"
  - Steps with half moves would unexpectedly reset movements


1.2  4 June 2020
Fixes:
  - Loading scenes was broken and would always have errors


1.0  4 June 2020
Initial release
