# jsonschex v0.6.0 - Table of Contents

> An implementation of the JSON Schema draft 2020-12 and latest specification for Elixir

## Pages

- [JSONSchex](readme.md)
- [Changelog](changelog.md)

- Guides
  - [Loader and Remote $ref Guide](loader.md)
  - [Dialect and $vocabulary Guide](dialect_and_vocabulary.md)
  - [Draft 2020-12 Feature Matrix](feature_matrix.md)
  - [Content and Format Assertions Guide](content_and_format.md)
  - [Test Suite Coverage Guide](test_suite.md)

## Modules

- [JSONSchex.Draft202012.Dialect](JSONSchex.Draft202012.Dialect.md): Draft 2020-12 dialect helpers for built-in dialect recognition and
`$vocabulary` resolution.
- [JSONSchex.Draft202012.Schemas](JSONSchex.Draft202012.Schemas.md): Provides built-in JSON Schema resources bundled directly in the module.
- [JSONSchex.Draft202012.Vocabulary](JSONSchex.Draft202012.Vocabulary.md): Maps JSON Schema keywords to their Draft 2020-12 vocabulary URIs and defines
both the full supported vocabulary set and the built-in Draft 2020-12 default
active vocabulary set.
- [JSONSchex.ErrorFormatter](JSONSchex.ErrorFormatter.md): Formats `JSONSchex.Types.Error` structs into human-readable strings.

- [JSONSchex.Types.ErrorContext](JSONSchex.Types.ErrorContext.md): Structured detail carried by `JSONSchex.Types.Error`.
- [JSONSchex.Types.ValidationContext](JSONSchex.Types.ValidationContext.md): Lightweight runtime context threaded through validation.

- Public API
  - [JSONSchex](JSONSchex.md): JSON Schema Draft 2020-12 validator for Elixir.
  - [JSONSchex.Schema](JSONSchex.Schema.md): Compile-time helpers for embedding compiled JSON Schemas directly into modules.
  - [JSONSchex.Sigil](JSONSchex.Sigil.md): Compile-time sigils for static JSON Schema literals.

- Types
  - [JSONSchex.Types](JSONSchex.Types.md): Defines the core data structures used by JSONSchex.

  - [JSONSchex.Types.Error](JSONSchex.Types.Error.md): An error encountered during validation or schema compilation.
  - [JSONSchex.Types.Rule](JSONSchex.Types.Rule.md): A single compiled validation step.
  - [JSONSchex.Types.Schema](JSONSchex.Types.Schema.md): A compiled JSON Schema, containing executable validation rules and a
definition registry for reference resolution.

- Compiler
  - [JSONSchex.Compiler](JSONSchex.Compiler.md): Transforms raw JSON Schema maps into executable `Schema` structs.
  - [JSONSchex.Compiler.ECMARegex](JSONSchex.Compiler.ECMARegex.md): Handles compilation of ECMA-262 regular expressions for use in Elixir/PCRE.
  - [JSONSchex.Compiler.Predicates](JSONSchex.Compiler.Predicates.md): Pure predicates for JSON Schema validation constraints.
  - [JSONSchex.Compiler.Predicates.MultipleOf](JSONSchex.Compiler.Predicates.MultipleOf.md): Validates numbers against the JSON Schema `multipleOf` rule.
Handles arbitrary precision if `Decimal` is available.
Falls back to native arithmetic with overflow protection if not.

- Validator
  - [JSONSchex.Validator](JSONSchex.Validator.md): Executes compiled `Schema` rules against data, accumulating errors and tracking
evaluated keys for `unevaluatedProperties`/`unevaluatedItems`.
  - [JSONSchex.Validator.Keywords](JSONSchex.Validator.Keywords.md): Runtime validation functions for complex JSON Schema keywords.
  - [JSONSchex.Validator.Reference](JSONSchex.Validator.Reference.md): Resolves `$ref` and `$dynamicRef` during validation, including remote schema
loading and JIT compilation of JSON Pointer references.

  - [JSONSchex.Validator.Rules](JSONSchex.Validator.Rules.md): Dispatches compiled `JSONSchex.Types.Rule` structs to their runtime
validation implementations.

- Formats
  - [JSONSchex.Formats](JSONSchex.Formats.md): Implements validation logic for the 'format' keyword.
  - [JSONSchex.Formats.DateTime](JSONSchex.Formats.DateTime.md): Validates RFC 3339 `date-time` and `time` formats.

  - [JSONSchex.Formats.Email](JSONSchex.Formats.Email.md): Validates `email` format according to RFC 5322 (Addr-Spec).
Includes support for quoted strings in local part and IP literals in domain.

  - [JSONSchex.Formats.Hostname](JSONSchex.Formats.Hostname.md): Validates "hostname" format according to RFC 1123.

  - [JSONSchex.Formats.IP](JSONSchex.Formats.IP.md): Validates `ipv4` and `ipv6` formats.

  - [JSONSchex.Formats.Regex](JSONSchex.Formats.Regex.md): Validates `regex` format according to strict ECMA-262.

  - [JSONSchex.Formats.URITemplate](JSONSchex.Formats.URITemplate.md): Validates `uri-template` format according to RFC 6570.

- Internal
  - [JSONSchex.ScopeScanner](JSONSchex.ScopeScanner.md): Scans a raw schema tree to discover all `$id`, `$anchor`, and `$dynamicAnchor`
definitions, resolving them against parent base URIs to build a registry of
absolute URI → raw schema mappings.
  - [JSONSchex.URIUtil](JSONSchex.URIUtil.md): Utilities for URI resolution and manipulation.

