# `SquidMesh.Runtime.Reviewer`
[🔗](https://github.com/ccarvalho-eng/squid_mesh/blob/main/lib/squid_mesh/runtime/reviewer.ex#L1)

Applies explicit approval decisions to paused approval steps.

Approval and rejection reuse the durable paused-step lifecycle from the
runtime, but this module owns the decision-specific contract: validating
reviewer input, completing the paused step with decision output, and
resuming the run through the persisted approval targets.

# `decision`

```elixir
@type decision() :: :approved | :rejected
```

# `review_attrs`

```elixir
@type review_attrs() :: %{
  :actor =&gt; String.t() | map(),
  optional(:comment) =&gt; String.t(),
  optional(:metadata) =&gt; map()
}
```

# `review`

```elixir
@spec review(SquidMesh.Config.t(), SquidMesh.Run.t(), decision(), map()) ::
  :ok | {:error, term()}
```

---

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