Reusable command payload that can be sent to one or many live chats.
Commands are intentionally simple: a name for routing/observability, a body for the platform chat message, and metadata for internal systems.
@type t() :: %GelotvBot.Command{ body: String.t(), metadata: map(), name: atom() | String.t() }
@spec new(atom() | String.t(), String.t(), map()) :: t()
@spec to_message(t()) :: GelotvBot.Message.t()