Following on from when I used the Snap 10 variadic inputs, I've come up with a new approach so that the slots can have proper default types (such as Boolean)
I've gone thru the MQTT Library and made the changes to all the blocks
(Note - this is just work in progress/demo of my method)
So any hidden option is given its own variadic slot - which means we can end up with a lot of arrows but gives us the ability to only expose the options we need to change from the defaults
This is better than the alternative (infinitely long blocks full of default values), but has the problem that it's hard to know which arrowhead to click on for the option you want.
This is why I think we should invent a new notation for this situation, an input group that ordinarily displays as a single new icon, maybe a hollow arrowhead â–·, that when clicked displays a menu of all the option names, and when you choose one it displays that option's name and input slot (and still keeps the hollow arrowhead). Right-clicking one of the option slots should present a "delete this input" option that should delete both the input slot and the name in front of it.
By the way, here's something more like the kind of feedback you were hoping for :~) : You should click the "Static" checkbox in the quarter-gear options for your inputs so you don't get the vertical ellipsis. This is especially important after the user has expanded one of the inputs, because now you have "︎ ⋮︎" which looks like "︎⋮︎". Since each of your arrowheads expands only once, there's no reason for anyone to drop a list on the arrowheads. The problem is exacerbated by what I consider a Snap! misfeature, which is that there's a space after the right arrowhead but not after the left arrowhead, so you get "︎⋮︎ ⋮︎"
It's a terrible name, I grant you. It means something like "not really a variadic input," i.e., it would be inappropriate to drop a LIST reporter onto the arrowheads to get the "Input list:" variant. (And therefore, clicking left doesn't skip over one input slot, directly from two to none, nor does it change the block's name, nor change it from infix to prefix.) (A special case is the LIST reporter itself, whose input is variadic, but still isn't appropriate to drop a LIST reporter onto, because that would leave nothing for the outer LIST to do.) The typical "not variadic" case is precisely yours, with one optional input.