The shim uses a database to offload complex api request details; a text command language to provide convenient, simple access to the request api; interleaved text output of commands, requests, messages, and endogenous comments; and a single-threaded router architecture for task scheduling and event processing.
Perhaps most critical for maintainability, it uses a table driven parser, with schema tables for each kind of event, and where the rows of those tables are attribute type vectors for each particular event, so that much of defining a new request or message event boils down to declaring type symbols for any new attributes, and adding a row of the appropiate attribute symbols, named for the event, to the related schema. The resulting design has proved remarkably robust and flexible.