Running a command consists of passing along the filenames that go into the command. These filenames must be present in the inputs directory.
To run a command we need to instantiate it, initialize the inputs, execute it and gather the results. - instantiation is no problem - to run it we need to place the input into the command isntance, which might be somewhat more tricky than expected. - when the execution finished we need to inform the instantiator that the results are ready to be picked up at a specific place. This means that the caller should retrieve the full result directory in its own place.
The command runner should wait for the command the finish. The next question is then of course how we can pass things into the command. We have sql statements on one end, tables at the other, the next logical step, is to pass such data into a command.