As I see it, this is another case where some way to detect changes of data in a ds-instance would help a great deal. There already is the starting for this available with the [struct] object's outlet, that sends a pointer, if an instance is selected in Edit mode. One could do all math or list or symbol processing that Pd is capable of with this pointer using normal Pd objects.
However there still is no way to detect a change outside of edit mode and no way to detect changes through other means (though these originate somewhere in Pd anyways and thus they can be intercepted from there.)
true, if a "detect when active" flag is available, that would be enough,
all the rest can be made somewhere else.
edit mode only helps when the task is about moving an existing structure.
changing it with the mouse must be done outside of edit mode.
it is possible to change the structure with send, or also with external
gui->set combination, but that's not as intuitive as doing it directly on
the screen.