This `nodes` map is redundant, since the `TreeData` class already acts as a Map[NodeId -> Node]