# `BB.Dsl.Command`
[🔗](https://github.com/beam-bots/bb/blob/main/lib/bb/dsl/command.ex#L5)

A command that can be executed on the robot.

Commands follow the Goal → Feedback → Result pattern, supporting:
- Arguments with types and defaults
- State machine integration via `allowed_states`
- Configurable timeout
- A handler module implementing the `BB.Command` behaviour

# `t`

```elixir
@type t() :: %BB.Dsl.Command{
  __identifier__: any(),
  __spark_metadata__: Spark.Dsl.Entity.spark_meta(),
  allowed_states: [atom()],
  arguments: [BB.Dsl.Command.Argument.t()],
  cancel: [atom()],
  category: atom() | nil,
  handler: module(),
  name: atom(),
  timeout: timeout()
}
```

---

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