gt?(18) => “age must be greater than 18”
filled?failure when there are other rules, can’t think of any reason why you would want to display
age cannot be blank+ more info about other rules
Messagesand its sub-classes for specific backends
messages#lookupand passes all the info that might be needed to get a string message from some backend
Schema#call(data).messagesrather than just having
Schema#call(data)return formatted messages?