This is the part I guess I've never understood. I think it's only recently that you introduced the term "polyadic" and it's only just now that I got a clear sense of the difference.
Could you please explain why LIST shouldn't behave just like JOIN with respect to input slots? And I guess clarify what the issue is with CALL? You don't mean only that the text "with inputs" appears when you make actual argument slots, right?
And can you explain this example:
(Forum misfeature: when you drag a picture from an earlier message into the one you're drafting, it doesn't copy the scale factor and doesn't let you set it either. :~( )
I slightly remember now having to argue for the special case that a variadic input with no slots shown should accept any number of actual arguments. For what it's worth, I still stand by letting users build blocks with variadic inputs, and apart from the picture above I still stand by how they behave with CALL/RUN. (The decades-old decision I wish we could change is that all blocks should be the same shape, ovals with tabs, so that the same blocks can either be stacked vertically or nested, but never mind that now.)
Well, I stand by thinking it matters if users are confused, especially experienced users. And in the specific case of BROADCAST, although it took me a while to understand how you were thinking about it, there is a non-decades-old, new piece of semantics, namely you thinking of the sprite target and the data load as two pieces of a single {vari,poly}adic input. I'm pretty sure we've never had a variadic input whose two slots mean two different things.
(P.S. If an experienced kid is confused about something, it's a good bet that every teacher will be confused about it, if they happen to think about it!)
You've convinced me that a "collapsed" BROADCAST block should look like
and furthermore that we should be able to add a hovertext to each arrowhead. And also that users need to be able to specify min/default/max arity for their variadic inputs. Maybe it's only 0/0/1 inputs that need a hovertext over the arrowhead; I'm not sure.
But I am sure that BROADCAST has three separate inputs, with three different semantics, two of them optional.