command options should be made local, and a new syntax should provide persistent options
Allow users the possibility to bypass the current situation where an option set in one command is perpetuated into other commands when the user doesn't explicitly pass the option again. e.g. In the following case, the second call to command
will have options 1, 2, and 3 set even though only 1 and 3 were passed:
command(option1, option2);
command(option1, option3);
Introduce a new syntax such as
command(option1, option2);
command!(option1, option3);
which would tell the preprocessor to reset all command-specific options to their defaults before writing output. To do this, every command's options must be local to a substructure of options_
(i.e. options_.command.option1
, options_.command.option2
, etc.)