# `Tempo.Explanation`
[🔗](https://github.com/kipcole9/tempo/blob/v0.5.0/lib/explain.ex#L1)

A structured explanation of a Tempo value.

Produced by `Tempo.Explain.explain/1`. Consists of a `:kind`
classifier and an ordered list of `{tag, text}` parts. The tag
lets renderers (plain terminal, ANSI colour, HTML, visualizer
components) style each part semantically without re-parsing the
prose.

### Fields

* `:kind` — a classifier atom (e.g. `:scalar_year`,
  `:masked_year`, `:duration`, `:interval_set`).

* `:parts` — a list of `{tag :: atom(), text :: String.t()}`
  tuples. Common tags:

  * `:headline` — one-line description of what this value is.
  * `:span` — bounded interval in `[from, to)` form.
  * `:qualification` — EDTF qualifier description.
  * `:extended` — IXDTF metadata (zone, calendar, tags).
  * `:calendar` — non-default calendar.
  * `:enumeration` — iteration granularity.
  * `:hint` — pointer to relevant function.
  * `:metadata` — user metadata on an interval.
  * `:member` — list-of-members preview for sets.

# `t`

```elixir
@type t() :: %Tempo.Explanation{kind: atom(), parts: [{atom(), String.t()}]}
```

---

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