# Forward Compatibility

Record: `arch:forward-compatibility`
Kind: constraint
Layer: [Contracts Core](https://banes-lab.com/records/layer/contracts-core.md)
Severity: recommended
Scope: API, schema, protocol
Canonical: https://banes-lab.com/ontology#arch-forward-compatibility

## Repair

- Refactored by: Add Extension Points, Ignore Unknown Fields Safely
- Detected by: parser failures on additive changes
- Violated by: rejecting unknown safe fields
- Measured by: forward-compatibility test pass rate
- Enforced by: compatibility test matrix

## requires

- [Extensible Schema](https://banes-lab.com/records/lex/extensible-schema.md)
- [Unknown Field Handling](https://banes-lab.com/records/lex/unknown-field-handling.md)

## reinforces

- [Evolutionary Architecture](https://banes-lab.com/records/arch/evolutionary-architecture.md)

## enables

- [Rolling Upgrades](https://banes-lab.com/records/lex/rolling-upgrades.md)

## conflicts-with

- [Strict Fragile Parsers](https://banes-lab.com/records/lex/strict-fragile-parsers.md)

## tensions-with

- [Strong Validation](https://banes-lab.com/records/lex/strong-validation.md)

## tensions

- [Forward Compatibility Strong Validation](https://banes-lab.com/records/tension/forward-compatibility-strong-validation.md)
