//! Validation framework (ADR-026 / D13–D14).
//!
//! Three planes (pre / inline / post) × two categories (Structural /
//! Contextual) compose the validation surface every operation declares.
//! O1.7 lands the skeleton: [`Verdict`] enum, [`Validator`] trait,
//! [`ValidatorEntry`] inventory record, and [`dispatch::dispatch`] by id.
//! Concrete validators land alongside their consuming ops in O3 onward.

pub mod attestation;
pub mod criteria_validators;
pub mod dispatch;
pub mod registry;
pub mod traits;
pub mod verdict;

pub use registry::ValidatorEntry;
pub use traits::{Slice, ValidationCtx, Validator, ValidatorCategory, ValidatorFn};
pub use verdict::Verdict;

// inventory::collect! is invoked once per type. Centralising it here keeps
// the registry single-sourced.
inventory::collect!(ValidatorEntry);
