Add first strawman proposal of how to represent commands.
Add factory functions for various kinds of commands.