macroonz-compiler 0.1.0

Deterministic Rust code generation for procedural macros: plan, render, close, explain, and bind one sealed expansion from declared input.
Documentation
# shadow

One declaration, two synchronization worlds.

## Boundary

An adopting crate supplies the physical path to its Loom-compatible vocabulary and chooses an ordered set of names from the adapter's stated roster.
This home informs that declaration before it renders anything, so an unknown or repeated choice and an unreadable binding refuse at the authored token rather than escaping as a downstream resolution error.

What leaves is one direct declaration-site projection.
Each chosen name has an ordinary standard-library face and a shadow face selected by the adopting crate's `loom` configuration, and no carrier or later consumption target stands between the declaration and those imports.

## Composition

The physical binding may name a direct dependency or a facade path, and it is part of the declaration's canonical content because changing it changes the Rust that leaves this home.
The roster is the adapter's bounded backend knowledge: each row joins one public spelling to its ordinary and shadow path suffixes, while the harness's pinned preemption lane independently witnesses that the shadow suffix remains real.

The production crate imports through the module where its declaration stands, while the harness explores models through its separate preemption owner.
This home supplies the two-faced vocabulary that lets those roads meet without importing harness types or scheduler policy into the compiler.

## Trust ceiling

This home writes imports from declared input.
It does not declare a dependency, select a target, install a scheduler, judge a concurrent model, or decide what any chosen primitive means to the adopting crate.