The design of Magma was consciously made such that the UI has no knowledge of type. The error checking for most situations is delayed until the node tree is converted into code, hence why you are allowed to make bad connections. Obviously this leads to some annoyance, but we chose not to enforce checking because the type of ‘Input Channel’ nodes is not known until the flow is executed. Only when the particles have started to stream through, do we know that the Velocity channel is actually a float32[3] for example.
Also, implicit conversions are evil. I’ve spent enough time debugging code, and other people’s work where they didn’t realize that their data was being converted into some other form that loses information. Screen space isn’t all that expensive, and typically I will hide the nasty details behind conversions and whatnot by putting them in a Black Op.