Dito.js Schema defines the validation that the server and the admin share: the
formats and keywords of Dito.js schemas as plain definitions,
{ validate(value, setting), message }, and the messages of the standard JSON
Schema keywords, without depending on a validator. The server registers them
with Ajv, see the
validator API docs.
The admin doesn't apply formats and keywords to empty values, except those that
check emptiness themselves and set validatesEmptyValues: true, i.e. the
format required and the keyword minLength.