@cfxlabsinc/b2b-services
    Preparing search index...
    EmailTemplateLink:
        | Readonly<{ host: string; kind: "literal" }>
        | Readonly<{ kind: "variable"; variable: string }>

    A structural read of one template field, for review-as-evidence surfaces (the admin editor's Structure pane): the second activator approves what the parser saw, not what they think raw Handlebars says — the same posture as the rules matcher tree. Built on the SAME parse the validator's guarantees run on, so the structure shown is the structure enforced.

    Deliberately read-only and lossy-upward: it flattens each node run to its copy with {{name}} placeholders left inline, and nests condition blocks as child segments. It is not a serializer — the textarea's source stays the single write path (dropdown-built conditions were rejected; RFC §4.6).