// Perception module - Information boundary system // Implements D-010 principle 2: every piece of state is tagged with who knows it // Generates ObserverSnapshot for client rendering use bevy_app::prelude::*; use bevy_ecs::schedule::IntoScheduleConfigs; pub mod anomaly; pub mod cognitive_delay; pub mod interpretation; pub mod observation; pub mod observer; pub mod query; pub mod shadowcast; pub mod vision_cone; /// Perception system plugin /// Manages information boundaries and observer snapshots pub struct PerceptionPlugin; impl Plugin for PerceptionPlugin { fn build(&self, app: &mut App) { app.init_resource::() .init_resource::() .init_resource::() .add_systems( Update, ( anomaly::clear_anomaly_markers.before(anomaly::detect_anomalies), anomaly::detect_anomalies.before(observation::emit_observation_events), cognitive_delay::process_cognitive_delay .after(observation::emit_observation_events) .before(crate::knowledge::events::process_knowledge_events), interpretation::generate_observation_events .after(observation::emit_observation_events) .before(crate::knowledge::events::process_knowledge_events), ), ); tracing::debug!("PerceptionPlugin initialized"); } }