A single compiled validation step.
The validator function accepts (data, {path, evaluated, context}) and returns :ok, {:ok, evaluated_keys}, or {:error, errors}.
validator
(data, {path, evaluated, context})
:ok
{:ok, evaluated_keys}
{:error, errors}
@type t() :: %JSONSchex.Types.Rule{ name: atom(), params: term(), validator: (term(), term() -> {:ok, MapSet.t()} | {:error, list()}) }