# `Parrhesia.API.Events.PublishResult`

Result shape for event publish attempts.

This mirrors relay `OK` semantics:

- `accepted: true` means the event was accepted
- `accepted: false` means the event was rejected or identified as a duplicate

The surrounding call still returns `{:ok, result}` in both cases so callers can surface the
rejection message without treating it as a transport or process failure.

# `t`

```elixir
@type t() :: %Parrhesia.API.Events.PublishResult{
  accepted: boolean(),
  event_id: String.t(),
  message: String.t(),
  reason: term()
}
```

---

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