# Backward Compatibility

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

## Repair

- Refactored by: Add Version, Deprecate, Add Adapter
- Detected by: API/schema diff
- Violated by: removing fields, changing semantics, narrowing types
- Measured by: breaking-change count
- Enforced by: compatibility tests, API diff gates

## requires

- [Versioning](https://banes-lab.com/records/arch/versioning.md)
- [Stable Interfaces](https://banes-lab.com/records/arch/stable-interfaces.md)

## reinforces

- [Consumer Safety](https://banes-lab.com/records/lex/consumer-safety.md)

## enables

- [Incremental Deployment](https://banes-lab.com/records/lex/incremental-deployment.md)

## conflicts-with

- [Breaking Change](https://banes-lab.com/records/lex/breaking-change.md)

## tensions-with

- [Cleanup / Simplification](https://banes-lab.com/records/lex/cleanup-simplification.md)

## tensions

- [Backward Compatibility Cleanup / Simplification](https://banes-lab.com/records/tension/backward-compatibility-cleanup-simplification.md)

## referenced-by

- [Stable Interfaces](https://banes-lab.com/records/arch/stable-interfaces.md)
- [Contract-First Design](https://banes-lab.com/records/arch/contract-first-design.md)
- [Versioning](https://banes-lab.com/records/arch/versioning.md)
- [Consumer-Driven Contracts](https://banes-lab.com/records/arch/consumer-driven-contracts.md)
