This is the contract between xrune’s medieval vocabulary and ordinary
compiler/CS terms. Every chapter reaches back here when the metaphor risks
drifting from the engineering meaning.
A derive macro (xrune-sigil). The DsRef derive mints {Name}Ref newtypes around Rc<RefCell<Name>>.
nexus
The core crate (xrune-nexus) — AST node types, the DsRune trait, and the decipher walker. The hub everything else binds to.
incant
The proc-macro crate (xrune-incant) that exposes ui! { … }. The act of invoking the DSL.
rune
A backend implementation of the DsRune trait — turns the parsed tree into emitted code. The DSL is one casting; runes are many translations.
decipher
The free function xrune::ds_rune::decipher::decipher(tree, &mut rune) that walks a DsTree and dispatches one inscribe call per node.
inscribe
One method on DsRune — inscribe_root / inscribe_widget / inscribe_if / inscribe_iter / inscribe_niche / inscribe_match. Each receives a node and accumulates output into the rune.
seal
The trait method seal(self) -> TokenStream. Consumes the rune at the end of decipher to produce the final emitted code. Not Rust’s “sealed trait” pattern — same name, unrelated meaning.
enchant
A bracketed expression list [expr, expr, …] attached to a widget. Arbitrary data the rune can attach to a node — typically ECS components or attached state.
niche
A @name { … } node. An anchor / slot / named region routed by the host rune (e.g. portals, named ports).
walk … with …
Iteration. walk iterable with var { … } is xrune’s for loop.
on
An event handler clause attached to a widget — on EventKind { … } (body form) or on EventKind(cb) (callback form).