* Allows clients to avoid updating when the API changes.
* Reduces the cost of making a breaking change
* Organize feature changes - if the client asks for ver X, API guarantees the capabilities of X and result in format X.
* Recommended API usage is shown as the latest version. If API decides to change default behavior into optional, new developers will use the recommended way from the start.
* No clutter with ever expanding list of additional parameters - with ver, new parameters could replace old ones, or change their meaning, or be removed completely without breaking any clients.
* Ability to obsolete capabilities in a structured way: MW supports API requests with version X+, but will give standard warning for anything below version Y. No need to parse warning messages to see if specific feature change applies.