# `Diffo.Provider.Extension.Persisters.PersistCharacteristics`
[🔗](https://github.com/diffo-dev/diffo/blob/v0.9.0/lib/diffo/provider/extension/persisters/persist_characteristics.ex#L5)

Persists characteristic declarations and bakes `characteristics/0`.

The `characteristics do` DSL section can hold multiple entity kinds — the
regular `%Characteristic{}` declarations (`characteristic :name, Module`), and
the inherited variants (`%InheritedCharacteristicDeclaration{}` /
`%ReverseInheritedCharacteristicDeclaration{}`) which produce calculations
rather than typed characteristic resources.

`characteristics/0` bakes only the regular `%Characteristic{}` declarations,
because consumers of the function (the `:build` action's typed-characteristic
creation, the runtime characteristic lookup, etc.) expect every entry to
carry `:name` and `:value_type`. The inherited variants are kept in DSL state
for `TransformInheritedRefs` to read and become calculations; they don't
surface through `characteristics/0`.

# `after?`

# `after_compile?`

# `before?`

---

*Consult [api-reference.md](api-reference.md) for complete listing*
