Gets nodes that have no input connections (root nodes)
List<Node<T>> getRootNodes() { return nodes.where((node) => getInputConnections(node.id).isEmpty).toList(); }