# `ASM.Pipeline.Plug`
[🔗](https://github.com/nshkrdotcom/agent_session_manager/blob/v0.9.2/lib/asm/pipeline/plug.ex#L1)

Behaviour for synchronous run-event pipeline plugs.

# `call`

```elixir
@callback call(ASM.Event.t(), map(), keyword()) ::
  {:ok, ASM.Event.t(), map()}
  | {:ok, ASM.Event.t(), [ASM.Event.t()], map()}
  | {:halt, ASM.Event.t(), map()}
  | {:halt, ASM.Event.t(), [ASM.Event.t()], map()}
  | {:error, term(), map()}
```

---

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