# `Incant.Web.API.ActionPayload`
[🔗](https://github.com/elixir-vibe/incant/blob/v0.1.1/lib/incant/web/api/action_payload.ex#L1)

Action invocation payload carried inside `Incant.Web.API.ActionRunRequest`.

Holds the target record id, optional bulk selection, caller assigns, and
action input. Library/embedded consumers do not interact with this module.

# `t`

```elixir
@type t() :: %Incant.Web.API.ActionPayload{
  assigns: map(),
  id: term() | nil,
  input: map(),
  selected_ids: [term()] | nil
}
```

# `decode`

Decodes a JSON string into this struct.

# `decode!`

Decodes a JSON string into this struct, raising on failure.

# `dump`

Dumps this struct into JSON-shaped data, respecting JSON field names.

# `from_map`

Builds this struct from a decoded JSON map.

# `from_map!`

Builds this struct from a decoded JSON map, raising on failure.

# `json_schema`

Returns a JSON Schema-compatible schema map.

# `schema`

Returns a JSON Schema-compatible schema map.

# `to_map`

Converts this struct into a JSON-shaped map.

# `to_service_payload`

```elixir
@spec to_service_payload(t()) :: map()
```

---

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