This differs from example Ruby on Rails where validators instead have the option.
One core value of this library is that nothing should be private or inaccessable.
If you want to modify which values are considered empty for example you can simply overwrite You can find some basic examples included in the project.
The message can also be a function which will be called to retrieve the message, besides this it is treated like a normal message (the attribute name is prepended etc).
If the message is not a function and not a string it is simply returned as is.
If the attributes objects is an HTML/DOM/j Query element Even though none of the built in validators are async it is sometimes useful to have async validations.