The params view reapplies the engine snapshot to every control on each render (every engine tick), which wiped the in-progress text a frame after each keystroke - the text effect's field was effectively untypeable. Skip the re-sync while the field is focused (the same guard the curve editor has for drags); it re-syncs on blur and the row's explicit commit writes the edit back. MockEngine gains a sentinel text parameter for the regression test.