# `Runic.Identity.Projectable`
[🔗](https://github.com/zblanco/runic/blob/main/lib/identity/projectable.ex#L1)

Projects a value into a portable, canonical identity document.

Custom components opt in explicitly. Live structs and compiled functions are
never hashed implicitly as portable definitions.

# `t`

```elixir
@type t() :: term()
```

All the types that implement this protocol.

# `identity_document`

```elixir
@spec identity_document(t()) :: term()
```

---

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