# `JSV.Validator.ValidationContext`
[🔗](https://github.com/lud/jsv/blob/v0.27.0/lib/jsv/validator/validation_context.ex#L1)

Validation context carried along by the `JSV.Validator` and given to all
vocabulary implementations.

This struct is used to store errors found during validation, and to hold
contextual information such as the current path in the data or in the
schema.

# `config_key`

```elixir
@type config_key() ::
  :feature_errors | :feature_unevaluated | :feature_cast | :opts | :validators
```

# `t`

```elixir
@type t() :: %JSV.Validator.ValidationContext{
  cast_stack: term(),
  config: term(),
  data_path: term(),
  errors: term(),
  eval_path: term(),
  evaluated: term(),
  schema_path: term(),
  scope: term(),
  seen_refs: term()
}
```

# `config`

```elixir
@spec config(t(), config_key()) :: term()
```

Returns a setting of the validation that does not change while validating,
such as `:opts`, the validation options given to `JSV.validate/3`.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
