# `Chronicle.EventSequences.ResolvedIdentity`
[🔗](https://github.com/Cratis/Chronicle.Elixir/blob/main/lib/chronicle/event_sequences/resolved_identity.ex#L4)

The identity that caused an event, as the kernel resolved it when reading event metadata
(`Chronicle.EventSequences.Streams.get_metadata/2` and `get_metadata_at/2`).

Unlike `Chronicle.Identity` (what an append declared), this also carries how the kernel
resolved it at read time - `:resolution` - mirroring the .NET client's `IdentityResolution`:

  * `:resolved` — the identity was resolved successfully
  * `:name_unavailable` — the subject was resolved, but a display name was not
  * `:missing` — no identity was recorded
  * `:not_set` — the identity was explicitly unset
  * `:system` — the system identity caused the event

# `resolution`

```elixir
@type resolution() :: :resolved | :name_unavailable | :missing | :not_set | :system
```

# `t`

```elixir
@type t() :: %Chronicle.EventSequences.ResolvedIdentity{
  name: String.t(),
  on_behalf_of: t() | nil,
  resolution: resolution(),
  subject: String.t(),
  user_name: String.t()
}
```

---

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