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

Validation and serialization helpers for durable manual workflow actions.

Pause resume, approval, and rejection flows all persist a small audit payload
so the read model can reconstruct who acted and when.

# `attrs`

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

# `persisted`

```elixir
@type persisted() :: map()
```

# `type`

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

# `build`

```elixir
@spec build(type(), attrs()) :: persisted()
```

# `validate`

```elixir
@spec validate(
  attrs(),
  keyword()
) :: :ok | {:error, {:invalid_manual_action, map()}}
```

---

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