Should we force the user to explicitly expose the ports of a subcircuit, rather than ordering them automatically simply by insertion order? This would allow users to also customize definition order of ports, maybe allowing for some sort of "interface" connection function that connects channels across to each other.