# 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.