//! The repository engine.
//!
//! # Shape
//!
//! [`Repo`] composes the ports — object store, ref store, decision ledger,
//! clock — into the operations a surface calls: commit, propose a decision,
//! attest one, promote a branch, sketch for the registry. It is generic over
//! every port, so the same engine runs against in-memory fakes in tests and
//! the demo, and against real adapters later.
//!
//! The two lines that carry the system's promises both live in
//! [`Repo::promote`]:
//!
//! - the verdict comes from [`jac_gate::evaluate`] over the actual tree diff, and
//! - the ref moves only on a literal `Verdict::Admitted`; every other variant, present or
//! future, leaves it where it was.
pub mod engine;
pub mod refs;
pub use engine::{Repo, RepoError};
pub use refs::{MemoryRefStore, RefError, RefName, RefStore};