# `LivePanels.Canvas.Command`
[🔗](https://github.com/livepanels/livepanels/blob/v0.1.0/lib/livepanels/canvas/command.ex#L1)

Internal command dispatch and input normalization used by app-facing canvas
command modules.

Socket targets dispatch through the mounted runtime command runner. Transaction
targets append commands to the transaction preview state, which lets derived
commands read the result of earlier staged commands before the transaction
commits.

# `command`

```elixir
@type command() :: tuple()
```

# `result`

```elixir
@type result() ::
  {:ok, target(), LivePanels.Canvas.Command.Meta.t()}
  | {:error, term(), target(), LivePanels.Canvas.Command.Meta.t()}
```

# `target`

```elixir
@type target() :: Phoenix.LiveView.Socket.t() | LivePanels.Canvas.Transaction.t()
```

---

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