Aha\!  Macros, commands, and functions are all very similar. Replaced commands with begingroup/endgroup primitives, which the parser enforces balance for.  Functions to come as extended macros... nullary macros will act as always, macros with parens will act as functions.