I think we should move this to a table-driven/event-based approach like everything else.  One question then is, how do we populate the table?  We could have this table hard-coded but I think it might be better to have it data-driven like everything else.  So, then, back to something like ``cli.json`` to populate the table and then fire events for these top-level options like everything else so people can set up handlers to handle their ``--debug-file`` option.