It would be nice if you could define a command handler directly on the Command instance, removing the need to use ProgramArgs and specify handling for everything there. That would allow sub-commands to be in their own modules and have their execution logic locally, rather than having everything in a single file.
For example:
new Command("foo", "bar")
/* … */
.action((arguments, options) => {
/* … */
});
Or subcommands could even be used as their own classes that extend Command.