pub trait Engine {
type Policy: Policy<Effect = Self::Effect>;
type Effect;
// Required methods
fn add_policy(&mut self, policy: &[u8]) -> Result<PolicyId, EngineError>;
fn get_policy(&self, id: PolicyId) -> Result<&Self::Policy, EngineError>;
}