# WPL Validator v1.9.0 - Table of Contents

Reference Elixir validator for WPL (Wellness Plan Language) — JSON Schema + semantic invariants

## Pages

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

## Modules

- [WPL.Enforce](WPL.Enforce.md): Pass-3 enforcement: evaluate personalization rules against a ClientContext
and strip forbidden activities from a compiled WPL plan.
- [WPL.Enforce.Cycle](WPL.Enforce.Cycle.md): Cycle-aware date arithmetic for the Pass-3 enforcement engine.
- [WPL.Enforce.Matcher](WPL.Enforce.Matcher.md): Fuzzy exercise-name matcher for the Pass-3 enforcement engine.
- [WPL.Enforce.MatcherVocab](WPL.Enforce.MatcherVocab.md): GENERATED — do not edit. Run `mix run scripts/gen_matcher_vocab.exs`.
Source of truth: wpl/data/matcher-vocab.json (vendored at priv/data/matcher-vocab.json).
Vocab version: 1.0.0

- [WPL.Enforce.RuleEvaluator](WPL.Enforce.RuleEvaluator.md): Evaluates WPL personalization rules against a ClientContext.
- [WPL.Validator](WPL.Validator.md): Validates compiled WPL JSON against the canonical schema and semantic invariants.
- [WPL.Validator.Error](WPL.Validator.Error.md): A single validation finding.
- [WPL.Validator.Pass1](WPL.Validator.Pass1.md): Pass 1: JSON Schema validation against the canonical WPL v1 schema.
- [WPL.Validator.RepairHint](WPL.Validator.RepairHint.md): Machine-actionable repair guidance attached to a `WPL.Validator.Error`.
- [WPL.Validator.Result](WPL.Validator.Result.md): Outcome of `WPL.Validator.validate/2`.
- [WPL.Validator.Rules.CyclicSubplan](WPL.Validator.Rules.CyclicSubplan.md): Detects sub-plan reference cycles.

