Pre-order DFS: parent first, then batches in start-time order, then siblings within a batch in start order.
Readonly
Pre-order DFS: parent first, then batches in start-time order, then siblings within a batch in start order.