# `Fude.Chart`
[🔗](https://github.com/hattoriai/fude/blob/v0.1.0/lib/fude/chart.ex#L1)

A chart: its layers, its words (title, subtitle, caption, source), and
the data it draws.

The functions of `Fude` make charts; `Fude.Spec` dumps one to plain data
to save and loads it back. A chart's data is not part of its spec: a
saved chart names its data (`data`, `"data"` by default), and gets it
again when it draws (`<.chart spec={...} data={...}>`).

# `t`

```elixir
@type t() :: %Fude.Chart{
  annotations: [Fude.Annotation.t()],
  caption: String.t() | nil,
  data: String.t(),
  datasets: %{required(String.t()) =&gt; term()},
  description: String.t() | nil,
  facet: %{field: String.t(), columns: pos_integer() | nil} | nil,
  height: pos_integer() | nil,
  layers: [Fude.Layer.t()],
  source: String.t() | nil,
  subtitle: String.t() | nil,
  title: String.t() | nil
}
```

# `kind`

```elixir
@spec kind(t()) :: Fude.Layer.kind() | nil
```

The chart's kind: the kind of its first layer.

---

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