I thought a bit some more about this and basically there are two approaches that one can take using the current server capabilities.
-
Move the wrapped Ndef to the output bus and inside the group of the wrapper. The last bit automagically solves the controls “slaving” issue, due to the way the server broadcasts control changes to nodes (including sub-groups) inside a group. There is a caveat to this however, namely that presently explicitly moving a Ndef to a specific bus can result in dangling bus references to it, regardless of reshaping mode. This approach alas also won’t help with Guis like NdefGui, which are unaware of any controls of groups that externally encompass a Ndef.
-
Leave the wrapped Ndef where it is, but in the copying ProxySynthDef wrapper that gets created (anyway) add controls that are routed to the wrapped Ndef. This is a bit involved because the NodeMap of the wrapped Ndef would have to be inspected and busses of the appropriate types would have to be allocated on the server, which results in a bit of a “bus spam”. To support the reverse operation of unplugging or unwrapping in this approach, an explicitly copy of the old NodeMap would have to be kept and restored on “unplug”.
Approach #2 could be made a bit less bus-spammy if there were support for wholesale control diversion other than group nesting or explicit bus routing on the server. Basically the scheduling and control mapping are bundled together as one concept on the server (in the form of groups), while the outputs are unbundled from that, as busses. (Ndef basically re-bundles the busses with the groups, for a more functional-programming oriented approach.) However, the control broadcast aspect of groups and the order of execution that groups also dictate seem like could be orthogonal aspects on the server.