# Domain Model (docs/architecture/domain-model.md)

Truth document. Use for: the entities the system is about — what they are, how they relate, and who owns their state. The vocabulary here must match the glossary and the code; when they disagree, fix the disagreement, don't document around it.

Required: **Entities**, **Relationships**. Optional: Lifecycle states, Invariants.

```
# Domain Model

## Entities

| Entity | What it is | State lives in |
| ------ | ---------- | -------------- |
| {Entity} | {one line} | {table / slice / service} |

## Relationships

- {EntityA} 1—N {EntityB} — {the meaning of the link}
- {EntityB} N—N {EntityC} via {join} — {meaning}

## Lifecycle states

{Only for entities with real state machines.}

- **{Entity}**: draft → active → archived — {what moves it between states}

## Invariants

- {A relationship or state rule that must always hold, stated as a constraint}
```
