//! BFT JSON CRDT library — a Byzantine Fault-Tolerant replicated JSON document
//! built on an RGA list CRDT, an LWW register CRDT, and a signed-op substrate.
//!
//! Each document is identified by an Ed25519 keypair. Operations are signed and
//! carry causal dependencies so that every node converges to the same value
//! regardless of message delivery order.

/// Debug helpers and the [`DebugView`] trait for rendering CRDT internals.
pub mod debug;
/// JSON CRDT public interface: core traits, types, and signed-op substrate.
pub mod json_crdt;
/// Ed25519 keypair utilities and primitive type aliases used throughout the crate.
pub mod keypair;
/// RGA-style list CRDT that can store any [`CrdtNode`] as its element type.
pub mod list_crdt;
/// Last-writer-wins (LWW) register CRDT for single-value fields.
pub mod lww_crdt;
/// Core operation types: [`Op`], [`PathSegment`], and hashing helpers.
pub mod op;

extern crate self as bft_json_crdt;

/// Re-exported so that code generated by `#[derive(CrdtNode)]` can resolve
/// `indexmap` through this crate without requiring downstream crates to
/// declare it as a direct dependency.
pub use indexmap;
