docs: def run(self, positionals=None):
          '''run the entire helper procedure, including:
  
               - start: initialize the helper, collection preferences
               - record: record any relevant features for the environment / session
               - interact: interact with the user for additional informatoin
               - submit: submit the completed request
   
               Each of the above functions for a helper can determine global
               collection preferences from the system helpme.cfg in the module
               root. After performing global actions, each function then calls
               a class specific function of the same name (e.g., start calls
               _start) that is implemented by the helper class to do custom
               operations for the helper.             
          '''
          # Step 0: Each run session is given a fun name
          self.run_id = RobotNamer().generate()
  
          # Step 1: get config steps
          steps = self.config._sections[self.name]
  
          # Step 2: Start the helper (announce and run start, which is init code)
          self.start(positionals)
  
          # Step 3: Iterate through flow, check each step for known record/prompt,
          #         and collect outputs appropriately
  
          for step, content in steps.items():
              self.collect(step, content)
          
          # Step 4: When data collected, pass data structures to submit
          self.submit()