# Schema Contract

> A rule or precondition that every payload is validated against a machine-readable schema at the boundary it crosses.

Record: `architecture:schema-contract`
Kind: constraint
Layer: [Contracts Core](https://banes-lab.com/records/layer/contracts-core.md)
Severity: mandatory
Scope: data, API, message
Canonical: https://banes-lab.com/ontology#architecture-schema-contract

Listed in [Architecture principles](https://banes-lab.com/api/records/architecture.md), after [Data Contract](https://banes-lab.com/records/architecture/data-contract.md) and before [Semantic Contracts](https://banes-lab.com/records/architecture/semantic-contracts.md).

## Repair

- Refactored by: Add JSON Schema, Protobuf, Avro, OpenAPI
- Detected by: schema diff failures
- Violated by: unvalidated payloads, undocumented field changes
- Measured by: schema validation coverage
- Enforced by: schema registry, CI schema checks

## Requires

- [Canonical Schema](https://banes-lab.com/records/architecture/canonical-schema.md)
- [Schema Validation](https://banes-lab.com/records/architecture/schema-validation.md)

## Reinforces

- [Data Contract](https://banes-lab.com/records/architecture/data-contract.md)
- [Compatibility](https://banes-lab.com/records/lexicon/compatibility.md)

## Enables

- [Automated Validation](https://banes-lab.com/records/lexicon/automated-validation.md)

## Conflicts with

- [Ad-Hoc Payloads](https://banes-lab.com/records/lexicon/ad-hoc-payloads.md)

## In tension with

- [Schema Flexibility](https://banes-lab.com/records/lexicon/schema-flexibility.md)

## Tensions

- [Schema Contract / Schema Flexibility](https://banes-lab.com/records/tension/schema-contract-schema-flexibility.md)

## Severity

- [mandatory](https://banes-lab.com/records/vocabulary/severity-mandatory.md)

## Category

- [Contracts / Interfaces / Compatibility](https://banes-lab.com/records/architecture-category/contracts-interfaces-compatibility.md)

## Required by

- [Contract-First Design](https://banes-lab.com/records/architecture/contract-first-design.md)

## Linked from

- [Contracts / Interfaces / Compatibility](https://banes-lab.com/ontology/principles/architecture-category-contracts-interfaces-compatibility.md)
- [Schema / Canonical Data / Semantics](https://banes-lab.com/ontology/principles/architecture-category-schema-canonical-data-semantics.md)
- [Contracts / Interfaces / Compatibility](https://banes-lab.com/ontology/lexicon/lexicon-category-contracts-interfaces-compatibility.md)
- [Core Vocabulary](https://banes-lab.com/ontology/lexicon/lexicon-category-core-vocabulary.md)
- [Severity levels](https://banes-lab.com/ontology/schema/the-vocabulary-severity.md)
- [The resolutions](https://banes-lab.com/ontology/schema/the-resolutions.md)
