# `Mailglass.Lifecycle`
[🔗](https://github.com/szTheory/mailglass/blob/v1.0.0/lib/mailglass/lifecycle.ex#L1)

Transaction lifecycle seam for adopter-side event composition.

Phase 11 introduces the contract only. The unsubscribe controller's
`Ecto.Multi` integration lands in 11-03 per D-02, where this callback
will be invoked inside the durable unsubscribe transaction.

# `handle_event`

```elixir
@callback handle_event(Ecto.Multi.t(), map()) :: Ecto.Multi.t()
```

# `handle_event`

```elixir
@spec handle_event(Ecto.Multi.t(), map()) :: Ecto.Multi.t()
```

Default no-op implementation for lifecycle hooks.

Returns the in-flight multi unchanged so adopters can opt out without
branching in the caller.

---

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