pub mod behavior_aggregator;
pub mod lifecycle_aggregator;
pub mod persona_aggregator;
pub mod protocol_aggregator;
pub mod reality_aggregator;
pub mod recorded_aggregator;
pub mod schema_aggregator;
pub mod time_aggregator;
use crate::model::{StateEdge, StateNode};
use async_trait::async_trait;
use std::collections::HashMap;
#[async_trait]
pub trait StateAggregator: Send + Sync {
async fn aggregate(&self) -> anyhow::Result<(Vec<StateNode>, Vec<StateEdge>)>;
fn layer(&self) -> crate::model::StateLayer;
fn metadata(&self) -> HashMap<String, serde_json::Value> {
HashMap::new()
}
}