Both aspects are useful, and each fits a use case scenario.
Source code links, as you call them, are vital in case you want to define you own region (s), since you need to know that user action in order to build whatever magic you want under the hood (totally agree that a link is just a visual representation, and does not reflect what’s behind the scenes, which is actually even more true in VL , a bit less in vvvv45).
Those are just a hint to the runtime in some ways.
Runtime links are useful in other ways, likely in VL it can be modelled a bit differently (using properties or constructor injection), In some ways you can indeed model this in your main system (when a property is assigned, your node does dispatch an event to some listener), after I’m just wondering if we can have a way to have this done outside of the system, or if we give that responsibility to the current datatype, investigation needed.
I should have split the question tho, since actually the 2 more important features for me are dynamic registration/definition update.
Since not everything is easy to do via patching, code editor will still be a really important feature to have, so the idea is :
Build a simple type/node via integrated text editor (same as per dynamic plugins), can be prototyped with a stupid textbox for now, when we save, we do a compile task (as before), but need to register new assembly, so we also need to notify you runtime that those particular elements have changed(or that a property doesn’t exist anymore…)
I guess this is already possible in some ways, since when you patch you do pretty much just that (recompile and update type definition), so I guess it’s just a fact of grabbing the right calls to your runtime to allow update.
Also for now it’s pretty hard (not possible?) to have dynamic input count on some nodes (think Concat node that has 4 inputs), maybe grabbing params keyword or some extra attribute to allow dynamic inputs?