Explanation:
    | InputExplanation
    | DerivedExplanation
    | LiveExplanation
    | CycleExplanation

Recursive lineage view for a single node, returned by Graph.explain.

The engine is inspectable through its own primitives rather than through a side-channel devtools API: explain(node) returns another node — a derived view of the dependency lineage that can itself be subscribed to, displayed, and drilled into, not a one- shot JSON dump. The discriminator on via lets a UI render inputs, derived nodes, hot-swappable liveDerived nodes, and the cycle marker without re-traversing engine internals; devtools panels become a UI rendered on top of these primitives, not a parallel system.