# `zerodds-ast-core`
The arena the common AST is built in.
Generational arenas with typed handles, stable node identity across
edits, three-valued references — resolved, pending, broken — and
undo-logged transactions that emit a changeset. An observer sees what
changed without diffing the tree.
This crate knows **nothing about IDL, XTypes or the wire**. It has no
node kinds of its own; `zerodds-ast` supplies those. Keeping the two
apart is what lets a second frontend reuse the storage without
inheriting one language's node space.
See `docs/specs/zerodds-ast-1.0.md` §3 for the identity and transaction
rules this crate implements.