# `OpenUI.Runtime.HostValue`
[🔗](https://github.com/ideia4it/openui/blob/v0.1.1/lib/openui/runtime/host_value.ex#L1)

Turns Elixir data from the host, such as tool results, into the JSON-like
values programs work with.

Atom keys and atoms become strings (except `true`, `false` and `nil`),
tuples become lists, dates and times become ISO 8601 strings as `JSON`
writes them, any other struct that implements `String.Chars` becomes its
string (Decimal, as Jason would encode it), any other struct becomes a map, bytes that are not UTF-8 become U+FFFD, and values
JSON cannot hold (pids, functions, references, ports) become `nil`.

# `normalize`

```elixir
@spec normalize(term()) :: term()
```

Normalizes a host value.

---

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