Hi folks,
Having ports be controllable on macros is an interesting idea - I haven’t thought of it before, but I agree there are lots of good use cases! Will see what I can do for implementing this sooner than later. I strongly want to raise the level of abstraction that you work with in WM generally, while preserving full nitty-gritty-details if needed, and this could help.
LTE will bring a lot of other improvements in this regard; for example, parameters can be flagged as “advanced”, and hidden from view unless called for, simplying complex devices/macros enormously.
Regarding short-circuiting macro processing, here’s a forum thread talking about it. The essence is to make sure devices have a dependence on a macro input, so that if that input is not available, the device won’t build.