If you were designing an extensible protocol which has, like, commands (or methods or sth), and they have arguments, and you wanted an extension to be able to add new arguments, would you rather:
- add more positional arguments to an existing command
- use named/keyword arguments and add some of those to an existing command
- make a new <command>v2 with a new signature and leave the old command untouched
?
Maybe your protocol is mixing different orthogonal concerns at the same level?
Maybe your commands belong to the payload?
@Shamar good question in general.
In my case I have already split the orthogonal concerns into separate layers, and still at each layer I have a small amount of extensibility that I anticipate a need for.