I was thinking of ways to improve the custom block system, and now I think I'm ready to discuss.
I think it would be very useful to be able to make our own hat blocks.
We could also have more inputs, like color, and we could enable upvar-type and multiple-type at the same time.
It would be interesting if we could make our own inputs.
I had an idea called default input morphing.
We would be able to edit the amount of inputs are shown default, and their default values.
Of course, we could only change those settings for multiple-type inputs.
And maybe even be able to do things like this!
If you didn't understand the image, we could drag blocks into default values of inputs, and put text before and after each input, doesn't matter if it's single or multiple inputs.
Color as an input data type will probably come someday.
A proposal to combine upvar and variadic inputs would require an explanation of how it'd work. What would the variadic variable slots outside the block look like? And how would the programmer use them inside the block? For that matter, how would the user use them outside the block? I don't see a coherent way to accomplish this, although I wish we could.
Specifying the minimum, default, and maximum numbers of slots for a variadic input is something I've wanted since the beginning of time. Eventually Jens will probably feel unbusy enough for me to talk him into it... I'm less convinced about different default inputs in different slots.
I don't understand the case example. Look at the existing "Multi-branched conditional" library and see if it meets your needs. If not, give an example that doesn't use the same text in every possible slot!