//! Domain layer - Pure business logic
//!
//! Contains entities, value objects, aggregates, domain services
//! and domain events. No dependencies on infrastructure concerns.

// Re-export domain types from pjs-domain crate (WASM-compatible)
pub use pjson_rs_domain::{DomainError, DomainResult, entities, events, value_objects};

// pjs-core specific domain modules
pub mod aggregates;
pub mod config;
pub mod macros;
pub mod ports;
pub mod services;

// Re-export all core domain types for convenience
pub use aggregates::StreamSession;
pub use entities::{Frame, Stream};
pub use events::{DomainEvent, SessionState};
pub use ports::{FrameSinkGat, FrameSourceGat, StreamRepositoryGat};
pub use value_objects::{
    Id, IdMarker, JsonData, JsonPath, Priority, Schema, SchemaId, SessionId, SessionMarker,
    StreamId, StreamMarker,
};
