pub type Rule<T> = Box<dyn Fn(&T) -> Option<String>>;
Rule function type that validates a value and returns an optional error message
pub struct Rule<T>(/* private fields */);