Description
Currently http://facebook.github.io/graphql/#sec-Input-Objects reads:
This unordered map should not contain any entries with names not defined by a field of this input object type, otherwise an error should be thrown.
Which is designed to help detect runtime errors which may be the result of typos. However this unnecessarily introduces a vector for breaking changes. If a field of an input object is removed in the schema, then existing queries may all the sudden result in execution errors even though they're providing strictly more inputs to the server than it requires.
Variations of this have been requested in graphql-js before (graphql/graphql-js#343)
Notably, the same restriction is not placed on field arguments, additional field arguments on a field does not result in an execution error (however it does result in a validation error).
Validation should still insist on not allowing unknown fields to an input object.