# `LivePanels.Toolkit.Integration.ProtocolAttrs`
[🔗](https://github.com/livepanels/livepanels/blob/v0.1.0/lib/livepanels/toolkit/integration/protocol_attrs.ex#L1)

Command-envelope attrs for integration code.

Prefer named control helpers such as `add_item_attrs/2`,
`remove_item_attrs/2`, graph attrs, and drawing control attrs for application
UI. Use this module when a bridge package or custom surface deliberately
constructs a lower-level runtime command envelope.

# `item_ref`

```elixir
@type item_ref() ::
  LivePanels.Item.t()
  | LivePanels.Item.RenderContext.t()
  | LivePanels.Item.View.t()
  | %{id: String.t()}
  | String.t()
```

# `command_attrs`

```elixir
@spec command_attrs(atom() | String.t(), keyword() | map()) :: map()
```

Returns attrs for a command-envelope application control with no item id.

# `item_command_attrs`

```elixir
@spec item_command_attrs(atom() | String.t(), item_ref(), keyword() | map()) :: map()
```

Returns attrs for a command-envelope application control targeting one item.

---

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