# `Vibe.Event`
[🔗](https://github.com/elixir-vibe/vibe/blob/v0.2.3/lib/vibe/event.ex#L1)

UI-neutral event emitted by Vibe sessions.

TUI and Phoenix LiveView clients consume these events and reduce them into the
same state. Events should describe Vibe semantics, not terminal rendering.

# `t`

```elixir
@type t() :: %Vibe.Event{
  at: DateTime.t(),
  data: term(),
  id: String.t(),
  session_id: String.t(),
  type: atom()
}
```

# `new`

```elixir
@spec new(atom(), String.t(), term(), keyword()) :: t()
```

---

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