name: type
kind: syntax
since: 0.1
stability: stable
Record type declaration.
```axon
type Name {
field_a: String,
field_b: Integer
}
```
Each `field: TypeExpr` line declares a named field. Fields are
mandatory unless suffixed with `?` (optional). Types are nominal —
two `type` declarations with identical fields are still distinct.
Use `type` for any structurally shaped value crossing a flow,
channel, or persistence boundary; the type checker uses these
declarations to enforce field presence, shape, and refinement
constraints downstream.