Cascade.ComponentSourceStage 3 IR: CSS Syntax section 5.1 component values and rules.
Stage 3 of the pipeline (chars -> lexer stream -> token stream -> AST): the output of Parser, consumed by the typed-AST validators.
Every node pairs its payload with the Loc.t spanning the source text it was parsed from. The _body records hold the structural fields; the corresponding types ending in node are the located wrappers.
A payload paired with the source range it occupies. Convention mirrors the ocaml-encodings skill's 'a node = 'a * Loc.Meta.t: every IR constructor is a located payload.
and block = {opening : Token.bracket;value : t list;closed : bool;false when the lexer reached EOF before the matching closer (CSS Syntax sec. 5.4.6 parse error). The serializer still emits the synthetic closer so reserialised output round-trips.
}and func = {name : string;arguments : t list;terminated : bool;false when the lexer reached EOF before the matching ) (CSS Syntax section 5.4.6 parse error). The serializer still emits the synthetic ) so reserialised output round-trips through the lexer; typed validators can inspect this flag to reject values that the syntax level only forgives.
}