A command is an object that represents a user interaction. Commands are stored as a cons of the command name and a list of the command's arguments. All positional arguments will be represented in the command object, but only those keywords arguments that were explicitly supplied by the user will be included. When the first element of the cons is apply 'ed to the rest of the cons, the code representing that interaction is executed.
Every command is named by command name , which is a symbol.
Given a command object command , returns the command name. Given a command object command , returns the command's arguments. This is the most basic command-defining form.