# Spectral v0.14.0 - Table of Contents

Spectral provides type-driven JSON encoding/decoding, JSON Schema generation, and OpenAPI 3.1
specification generation. It uses Elixir's type system to automatically handle serialization
based on struct type definitions.

## Pages

- [Spectral](readme.md)

## Modules

- [Spectral](Spectral.md): Elixir wrapper for the Erlang `spectra` library.
- [Spectral.Codec](Spectral.Codec.md): Behaviour for custom codec modules.
- [Spectral.Codec.Date](Spectral.Codec.Date.md): Built-in codec for `Date.t()`.
- [Spectral.Codec.DateTime](Spectral.Codec.DateTime.md): Built-in codec for `DateTime.t()`.
- [Spectral.Codec.MapSet](Spectral.Codec.MapSet.md): Built-in codec for `MapSet.t()` and `MapSet.t(elem)`.
- [Spectral.Codec.String](Spectral.Codec.String.md): Built-in codec for `String.t()`.
- [Spectral.OpenAPI](Spectral.OpenAPI.md): Elixir wrapper for spectra OpenAPI specification generation.
- [Spectral.Type](Spectral.Type.md): Elixir wrapper for the Erlang `:spectra_type` module.
- [Spectral.TypeInfo](Spectral.TypeInfo.md): Elixir wrapper for the Erlang `:spectra_type_info` module.

- Exceptions
  - [Spectral.Error](Spectral.Error.md): Exception for Spectral operations.

