I don't understand why it returns a promise. Are some of the validators asynchronous (ex: call an outside resource and validate against the response)? All of the example appear to define validations that could be run synchronously.
That makes perfect sense then, thanks! Looks like a great lib where async validators are needed.