umpire-spec

The cross-language conformance specification for Umpire — the portable form-logic engine.

This repository provides two artifacts:

Quick Start

npm install
npm run validate

This runs AJV against umpire.schema.json. It verifies that every conformance fixture’s inner schema block is structurally valid and ensures that intentionally malformed documents are rejected.

Conformance Fixtures

Read conformance/README.md to understand the fixture shape and how to write a port runner.

To implement a runner:

  1. Load conformance/index.json.
  2. For each fixture in index.fixtures, parse the file, extract fixture.schema, and execute it using your Umpire implementation against each test case.
  3. Assert that your output matches case.expectedAvailability.

All fixture paths in index.json are relative to the conformance/ directory.

Adding to Editors

To enable autocomplete for .umpire.json files:

Versioning

This repository uses semver tags (e.g., v1.0.0). Bump the tag whenever the schema or the fixture contract changes in a way that requires port updates.

License

See LICENSE.