### The freewheeling protocol with the driver
Freewheeling apps currently respond to the following commands from the driver:
* `QUIT` -- tells the current app to quit
* `RESTART` -- tells the current app to reinitialize after saving any settings
* `MANIFEST` -- requests a list of definitions the app knows about. The
app returns only definitions that were created using the freewheeling
framework and so can be modified and errors recovered from.
* `DEFAULT_MAP` -- requests a default map of the code. Everyone is free to
create their own "memory palace", but this is usually a good default to
start with.
* `GET <name>` -- requests the source code for definition `<name>`.
* `GET* <name> ...` -- requests source code for multiple definitions.
* `DELETE <name>` -- requests deletion of the definition `<name>`. Only
permitted for definitions created using the freewheeling framework, not
lower-level definitions.
* anything else -- is considered a new definition to be loaded into the
app.
Commands may cause an error response, which is sent back to the driver.
In addition, any _run-time_ errors caused as the app executes are also sent
back to the driver. These don't need an explicit command from the driver.