// Package command defines pure types and functions for the bot command system.
// Commands are direct actions triggered by !prefix messages (e.g. !help, !ping).
package command

// Spec is the pure specification of a command. Only data, no side effects.
type Spec struct {
	Name        string
	Aliases     []string // e.g. ["h"] for help
	Description string   // short description for !help
	Usage       string   // e.g. "!tool <name> [key=value ...]"
	Hidden      bool     // do not show in !help
}

// ParsedArgs is the result of parsing "key=value key2=value2" arguments.
type ParsedArgs struct {
	Positional []string          // args without key=
	Named      map[string]string // args with key=value
	Raw        []string          // original args
}
