# Engine crates
| `verit-core` | The engine: schema, layout, encode, zero-copy read, resolver, codegen. Pure `std`, **no `unsafe`**, zero deps. | Yes (internal — depend on `verit`, not this). |
| `verit-cli` | The `verit` command-line tool (`dump` / `id` / `verify` / `gen`). Depends on `verit`. | Yes (the binary). |
The umbrella `verit` lives one level up (`../`). `verit-core` is a
dependency-free, `unsafe`-free leaf — the correctness reference the four
implementations in `ports/` are checked against.
## Rules
1. **The engine is a leaf.** `verit-core` depends on nothing; it can be extracted
and audited in isolation.
2. **One public seam.** Consumers depend on `verit`; every crate-boundary
`pub use` lives in `../src/lib.rs`, so the engine is swappable from one edit
point. Generated code compiles against the stable `verit::` paths.
3. **`verit-core` is published but internal.** `verit` depends on it and
crates.io forbids path-only deps, so it must be on the registry — but it is
not the public API; depend on `verit`.