Optional ReadonlyinputsChild nodes, or null/absent for a leaf.
Optional Readonlyistrue when the node is part of a reference expression (a cell, a range operator, a named
reference, a structured-reference part).
Optional ReadonlylegacyThe ROOT only: this formula came from a LEGACY (pre-dynamic-array) cell, so its whole tree evaluates in implicit-intersection VALUE mode.
ReadonlytypeThe node type — same vocabulary as FormulaToken.type.
Optional ReadonlyvalueThe display-resolved value; the shape depends on type (see FormulaToken.value).
A read-only "lite" view of one node of a formula's AST, as presented to a FormulaTransform.
Remarks
Values are DISPLAY-resolved — a
namednode presents its display text (NamedRef), afunctionnode its canonical (English) name, atableReference/tableColumnits display name, and acellnode its coordinates with a sheet display-name qualifier. Stable internal ids never appear. Internal compilation details (trivia/whitespace, evaluation indices, caches) are not exposed; whitespace and typed images are carried across a transform by the engine invisibly.typeuses the same vocabulary as FormulaToken.type ('function','infix','prefix','postfix','named','cell','tableReference','tableSpecifier','tableColumn','number','string','boolean','error', …).A transform returns nodes as PLAIN OBJECTS in this shape — either a shallow spread-copy of a node it received (
{ ...node, value }to rename,{ ...node, inputs }to re-child; identity and whitespace trivia are preserved through a spread) or a fresh literal ({ type: 'function', value: name, inputs }). The engine derives the internals (reference flags, images) fromtype+value; there is no node class to construct.