//! Primitive types and canonical encoding for the ontoref verifiable substrate.
//!
//! This crate is L0: zero internal dependencies, no IO, no async. Everything
//! that participates in the canonical state — operations, identifiers,
//! encoding — is defined here.

#![forbid(unsafe_code)]
#![warn(missing_docs)]

pub mod canonical;
pub mod error;
pub mod hlc;
pub mod op_id;
pub mod operation;
pub mod signature;
pub mod succession;
pub mod value;

pub use error::{Error, Result};
pub use hlc::Hlc;
pub use op_id::OpId;
pub use operation::{OpBody, OpPayload, Operation};
pub use signature::{PublicKey, Sig, SignatureError};
pub use succession::{build_key_succession, valid_keys_for_actor};
pub use value::{AttrId, EntityId, Value};
