# `Lemma.ShowData`
[🔗](https://github.com/lemma/lemma/blob/main/lib/lemma/show_data.ex#L1)

One input declared in a spec, as returned in `Lemma.Show.data`.

`type` is the raw `LemmaType` JSON map, a Rust discriminated union tagged by its
`"kind"` string. It is intentionally left untyped here: pattern-match on it
directly (e.g. `%{"kind" => "measure", "units" => units} = entry.type`) rather than
routing through a parallel Elixir struct hierarchy for 12 type kinds.

# `t`

```elixir
@type t() :: %Lemma.ShowData{
  needed_by_rules: [String.t()],
  prefilled: map() | nil,
  suggestion: map() | nil,
  type: map()
}
```

# `from_map`

```elixir
@spec from_map(map()) :: t()
```

Builds a `Lemma.ShowData` from one value of the decoded `Lemma.show/4` JSON
`"data"` map. `prefilled`/`suggestion` are absent (not `null`) from the API JSON
when unset; `Map.get/3` yields `nil` for both.

---

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