# `JSV.Normalizer.Normalize`
[🔗](https://github.com/lud/jsv/blob/v0.18.3/lib/jsv/normalizer/normalize.ex#L1)

Protocol used by `JSV.Normalizer` to transform structs into JSON-compatible
data structures when normalizing a schema.

When implementing this protocol you do not need to run any specific
normalization by yourself, but rather just return a map with all or a
selection of keys. Keys can be atoms or binaries, and values will be
normalized recursively.

# `t`

```elixir
@type t() :: term()
```

All the types that implement this protocol.

# `normalize`

```elixir
@spec normalize(term()) :: term()
```

---

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