elara_core/lib.rs
1#![allow(mixed_script_confusables)]
2//! ELARA Core - Fundamental types and primitives
3//!
4//! This crate defines the core types used throughout the ELARA protocol:
5//! - Identifiers (NodeId, SessionId, StateId)
6//! - Time primitives (StateTime, PerceptualTime)
7//! - State atoms and events
8//! - Protocol constants and configuration
9//! - **Hard Invariants** - System laws that all layers must obey
10//!
11//! # Hard Invariants
12//!
13//! ELARA is governed by five hard invariants. These are not guidelines—they are
14//! system laws. If any single invariant falls, the system is not ELARA.
15//!
16//! 1. **Reality Never Waits** - System never blocks reality for synchronization
17//! 2. **Presence Over Packets** - Existence matters more than data perfection
18//! 3. **Experience Degrades, Never Collapses** - Quality reduces, never fails
19//! 4. **Event Is Truth, State Is Projection** - Events are authoritative
20//! 5. **Identity Survives Transport** - Identity persists beyond connections
21//!
22//! See [`invariants`] module for details.
23
24pub mod class;
25pub mod error;
26pub mod event;
27pub mod id;
28pub mod invariants;
29pub mod models;
30pub mod science;
31pub mod state;
32pub mod time;
33
34pub use class::*;
35pub use error::*;
36pub use event::*;
37pub use id::*;
38pub use invariants::{Invariant, InvariantCompliant, InvariantViolation};
39pub use models::{ModelCompliant, PerceptualWeight, ProtocolModel, ReconstructabilityClass};
40pub use science::{
41 ChaosCategory, ChaosSuccessCriteria, ChaosTestResult, DegradationLevel, EventOperator,
42 NodeClass, NodeClassSet, PresenceVector,
43};
44pub use state::*;
45pub use time::*;