The current blueprint logic stores both a mutable blueprint, and a start-of-frame snapshot in the viewport.
At the end of each frame, a call to sync_blueprint_changes walks through these two data-structures to find any diffs and then saves those back to the blueprint store. This is both convoluted and hard to maintain .
Instead we want to be able to map individual UI actions directly to blueprint write operations at a specific path / component.