Whether the command is in memory.
Human readable name of the command
Type of the command
Whether the command is updatable.
If the command is NOT updatable, it's added as a new part of the history
Execute the command, if possible.
If the command is executed successfully, return void. Otherwise, throw an error.
Undo the command.
If the command is executed successfully, return void. Otherwise, throw an error.
Unique id of the command