Get all ELK ports including nested children's ports (flattened).
Iterable<ElkPort> get allPorts sync* { for (final port in elkPorts) { yield port; yield* _flattenPorts(port.children); } }