First working version.  Configurable via a json-encoded settings file.  Running the application for the first time generates an empty configuration file that can be hand-edited.  Future executions use this file.