Validation
Constructor record; you can use the dot operator to select a When value, which returns a function
that takes a function that validates the current Field.
In the callback, self represents the current editor, and other represents any other editor. If you don't
want to validate a given field against another field, you can ignore this value in your callback.
Provide additional validations sequentially.
For instance: if you only want to show an error that says that user input is bad after the
field has been edited - but if you want to show an error that says that the field must be non-empty - you could add the "field must be non-empty"
callback with when, and "chain" the "the field must match a given pattern" value with andThen.
Describes when a validation should occur.