NodeId
An opaque node identifier in a Draft dependency DAG.
Each DraftNode in a Draft carries a unique NodeId assigned at construction time. Predecessor edges (DraftNode.predecessors) reference nodes by their NodeId, forming the directed acyclic graph that encodes computation dependencies.
In the path-preserving builder (Warp.shuttle / Draft.map / Draft.filter / Draft.embroider), ids are assigned sequentially (0, 1, 2, …); a linear pipeline is the degenerate path — each node has exactly one predecessor. The G2 combine combinator will introduce true branching with multiple predecessors.