The canonical text form, for comparing our parse against the reference's.
This is the S-expression the reference produces, written with @sexp'sescaping so that both sides of the comparison are all-ASCII and an encodingdifference in transit cannot look like a parse difference.
The source text this node came from, rebuilt from its metadata.
Emission order is the field order of @raw.Meta and is load-bearing --prefix, inner prefix, raw, then children or opaque_content, then tail,inner suffix, suffix -- with opaque_raw superseding the middle three.
The shape mirrors the reference's S-expression representation exactly,because that representation IS the interface: it is what #{...} escapesspeak, what the parse oracle compares, and what a language built on thisnotation will pattern-match. A more strongly typed tree -- one where agroup's optional block and alternatives were separate fields, so that thegrammar's two structural laws were unrepresentable rather than merely true-- was the alternative, and it would have made the parser port a translationrather than a transcription of a mutual recursion with fourteen threadedstate fields. The laws are stated below and checked by the oracle instead.
The laws, for the record:
Block appears only as the last item of a Group, or as thesecond-to-last with Alts after it.
Alts appears only as the last item of a Group, and contains onlyBlocks.