# `Arc.ValidationResult`
[🔗](https://github.com/Cratis/Arc.Elixir/blob/main/lib/arc/validation_result.ex#L4)

One validation outcome, carried in the command and query result envelopes.

`reason` is an open set (`"rule"`, `"concurrencyViolation"`, `"constraintViolation"`,
`"validatorFailed"`, `"dependencyUnavailable"`, `"malformedRequest"`, `"frameworkFailure"`);
clients must tolerate values added later.

# `severity`

```elixir
@type severity() :: :unknown | :information | :warning | :error
```

# `t`

```elixir
@type t() :: %Arc.ValidationResult{
  members: [atom() | String.t()],
  message: String.t(),
  reason: String.t(),
  reason_detail: String.t() | nil,
  severity: severity(),
  state: term()
}
```

# `severity_value`

```elixir
@spec severity_value(severity()) :: 0..3
```

The numeric wire value of a severity.

# `to_wire`

```elixir
@spec to_wire(t()) :: map()
```

Converts a result to its wire map.

---

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