# Independent Lifetime Axes

> A design rule that a surface's lifetime is declared on three independent axes, retention, mutability and removal authority, each taking a value from a closed set, so no single word stands for all three.

Record: `architecture:independent-lifetime-axes`
Kind: principle
Layer: [Execution Core](https://banes-lab.com/records/layer/execution-core.md)
Severity: mandatory
Scope: surface, lifetime
Canonical: https://banes-lab.com/ontology#architecture-independent-lifetime-axes

Listed in [Architecture principles](https://banes-lab.com/api/records/architecture.md), after [Two-Direction Index](https://banes-lab.com/records/architecture/two-direction-index.md) and before [Section Lifetime Divergence](https://banes-lab.com/records/architecture/section-lifetime-divergence.md).

## Repair

- Refactored by: Declare All Three Axes From the Closed Sets
- Detected by: a surface whose lifetime names retention alone
- Violated by: declaring a lifetime as one word, so a reader infers the other two axes
- Measured by: surfaces missing a value on any axis
- Enforced by: the coordination declaration check, which reports a mechanism named for a lifetime axis that never reads that axis

## Requires

- [Retention](https://banes-lab.com/records/lexicon/retention.md)
- [Mutability](https://banes-lab.com/records/lexicon/mutability.md)
- [Removal Authority](https://banes-lab.com/records/lexicon/removal-authority.md)

## Reinforces

- [Immutability](https://banes-lab.com/records/architecture/immutability.md)

## Enables

- [Governed Removal](https://banes-lab.com/records/lexicon/governed-removal.md)

## Conflicts with

- [Destructive Closure](https://banes-lab.com/records/architecture/destructive-closure.md)

## Contracts

- [Convergence Walk](https://banes-lab.com/records/algorithms/convergence-walk.md)
- [Lifetime Resolution](https://banes-lab.com/records/algorithms/lifetime-resolution.md)

## Severity

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

## Category

- [Coordination Surfaces](https://banes-lab.com/records/architecture-category/coordination-surfaces.md)

## Reinforced by

- [Section Lifetime Divergence](https://banes-lab.com/records/architecture/section-lifetime-divergence.md)

## Linked from

- [Correctness / Determinism / Verification](https://banes-lab.com/ontology/principles/architecture-category-correctness-determinism-verification.md)
- [Coordination Surfaces](https://banes-lab.com/ontology/principles/architecture-category-coordination-surfaces.md)
- [Coordination Surfaces](https://banes-lab.com/ontology/lexicon/lexicon-category-coordination-surfaces.md)
- [Coordination](https://banes-lab.com/ontology/algorithms/algorithms-domain-coordination.md)
- [Severity levels](https://banes-lab.com/ontology/schema/the-vocabulary-severity.md)

## Evidence in the code

- [axisConsumers](https://banes-lab.com/source/coordination/tools/core/validators/declaration.validator.ts.md)
- [silentOnItsOwnAxis](https://banes-lab.com/source/coordination/tools/core/validators/declaration.validator.ts.md)
- [models/coordination.model.md](https://banes-lab.com/source/coordination/models/coordination.model.md.md)
