took a look at the CmdStan code - implementing this would require a refactor of the argument handling code and it would be a lot of work - I’ve messed with that code before - it burned up about of week of dev time between me and Daniel Lee - not worth it.
almost all of arguments names are unique - with the exception of keyword “file” which is used for data block inputs, parameter init inputs, and algorithm outputs. flattening the argument names along the lines of your suggestion would lead to “data_file” “init_file” and “output_file”. note that the sample method already has keyword “diagnostic_file” which is a step in the right direction. at which point, white space wouldn’t matter.
also note that “init_file” for specific parameter inits would allow the use to also specify the init range for all other parameters - the services layer interface allows this, it’s a limit of the current CmdStan set of argument names.
actually, you can specify “output diagnostic_file=foo.csv” for any method - not sure if any methods besides ‘sample’ do anything - maybe ‘vb’ does?