//! WAL wire format definitions.
//!
//! Two orthogonal formats live here:
//! - **Session journal** (`session`): variable-length records for session
//!   start/signal/close events, stored in `sessions.log`.
//! - **Signal batch** (`batch`): fixed-size 21-byte event records grouped
//!   into BLAKE3-checksummed batches, stored in WAL segment files.

pub mod batch;
pub mod session;

// Re-export everything that was public from the old monolithic format.rs
// so that existing `use crate::wal::format::{...}` paths continue to resolve.

pub use batch::{
    BatchHeader, EVENT_SIZE, EventRecord, FORMAT_VERSION, FORMAT_VERSION_V1, FORMAT_VERSION_V2,
    HEADER_SIZE, MAGIC, MAX_EVENTS_PER_BATCH, RECORD_TYPE_SIGNAL, decode_batch, encode_batch,
    encode_batch_with_shard, event_content_hash,
};
pub use session::{
    SESSION_RECORD_CLOSE, SESSION_RECORD_SIGNAL, SESSION_RECORD_START, SessionSeqNo,
    SessionWalEvent, decode_session_events, encode_session_event,
};
