pub type PolicyCheck = Box<dyn Fn(&Action, &StateStore) -> Option<String> + Sync + Send>;
Policy check function: (action, state) -> Option<violation_reason>
(action, state) -> Option<violation_reason>
pub struct PolicyCheck(/* private fields */);