Handle Rules
Validation can live on the handle it belongs to rather than in one canvas-wide predicate. The 'number' input only accepts the number output, the 'text' input only the text output, and each input announces what arrived. Both ends of a prospective connection get a say, so a rule sits wherever it reads best.