UI-facing wrapper around Explanation stamped with the
GraphTime at which the lineage was read.
Remarks
explanation carries the full discriminated-union tree from the
engine (#298) — via: 'input' | 'derived' | 'live' | 'cycle' plus
a recursive deps[] of { node, contributedAt, explanation }
frames. inspectedAt lets a UI display "as of t=N" annotations
without making a second call into the engine.
UI-facing wrapper around Explanation stamped with the GraphTime at which the lineage was read.
Remarks
explanationcarries the full discriminated-union tree from the engine (#298) —via: 'input' | 'derived' | 'live' | 'cycle'plus a recursivedeps[]of{ node, contributedAt, explanation }frames.inspectedAtlets a UI display "as of t=N" annotations without making a second call into the engine.