pub trait BehaviourSystem: Lifecycle {
// Required methods
fn get_entity_behaviour_manager(
&self,
) -> Arc<dyn EntityBehaviourManager + Send + Sync>;
fn get_entity_behaviour_registry(
&self,
) -> Arc<dyn EntityBehaviourRegistry + Send + Sync>;
fn get_entity_component_behaviour_manager(
&self,
) -> Arc<dyn EntityComponentBehaviourManager + Send + Sync>;
fn get_entity_component_behaviour_registry(
&self,
) -> Arc<dyn EntityComponentBehaviourRegistry + Send + Sync>;
fn get_relation_behaviour_manager(
&self,
) -> Arc<dyn RelationBehaviourManager + Send + Sync>;
fn get_relation_behaviour_registry(
&self,
) -> Arc<dyn RelationBehaviourRegistry + Send + Sync>;
fn get_relation_component_behaviour_manager(
&self,
) -> Arc<dyn RelationComponentBehaviourManager + Send + Sync>;
fn get_relation_component_behaviour_registry(
&self,
) -> Arc<dyn RelationComponentBehaviourRegistry + Send + Sync>;
fn type_system(&self) -> Arc<dyn TypeSystem + Send + Sync>;
}