pub type Enabled<S> = fn(&S) -> Result<(), String>;
Enabled predicate: Err(reason) disables with a human-readable reason.
Err(reason)