# Carrier and Payload Split

> A design rule that a surface read through a tool types the fields a mechanism joins on and leaves the fields only a reader consumes as prose, deciding the line per field.

Record: `architecture:carrier-and-payload-split`
Kind: principle
Layer: [Execution Core](https://banes-lab.com/records/layer/execution-core.md)
Severity: recommended
Scope: surface, field
Canonical: https://banes-lab.com/ontology#architecture-carrier-and-payload-split

Listed in [Architecture principles](https://banes-lab.com/api/records/architecture.md), after [State-Arity Limit](https://banes-lab.com/records/architecture/state-arity-limit.md) and before [Joinable Mandated Field](https://banes-lab.com/records/architecture/joinable-mandated-field.md).

## Repair

- Refactored by: Type the Carrier, Leave the Payload Prose, Remove the Restating Payload
- Detected by: a mechanism parsing a prose field, or a carrier and a payload that answer one question differently
- Violated by: making a mechanism interpret prose to compute a fact, or letting a payload restate a question its carrier already answers
- Measured by: fields no declaration assigns to either side
- Enforced by: none: whether a value is resolvable is a judgement at authoring, so the split rests on review

## Requires

- [Carrier Field](https://banes-lab.com/records/lexicon/carrier-field.md)
- [Payload Field](https://banes-lab.com/records/lexicon/payload-field.md)

## Reinforces

- [Closed Vocabulary](https://banes-lab.com/records/architecture/closed-vocabulary.md)

## Enables

- [Traceable Guarantee](https://banes-lab.com/records/lexicon/traceable-guarantee.md)

## Severity

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

## Category

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

## Reinforced by

- [Joinable Mandated Field](https://banes-lab.com/records/architecture/joinable-mandated-field.md)

## Linked from

- [Coordination Surfaces](https://banes-lab.com/ontology/principles/architecture-category-coordination-surfaces.md)
- [Taxonomy / Classification / Naming](https://banes-lab.com/ontology/principles/architecture-category-taxonomy-classification-naming.md)
- [Coordination Surfaces](https://banes-lab.com/ontology/lexicon/lexicon-category-coordination-surfaces.md)
- [Severity levels](https://banes-lab.com/ontology/schema/the-vocabulary-severity.md)

## Evidence in the code

- [models/substrate.model.md](https://banes-lab.com/source/coordination/models/substrate.model.md.md)
