In an effort to maintain consistency and semantically correct meaning,
this changes (only in documentation and internal Apollo Server tests) the
name of the first argument in resolver signatures to use `parent` rather
than `root`.
While `root` certainly makes sense when the resolver is belonging to the
root `Query` or `Mutation` type, once nested field resolvers begin getting
called, the more semantically correct term would seem to be `parent`.
Since `parent` still makes sense at the root level, and since resolvers
frequently get copied and pasted into more deeply-nested positions, putting
this pattern in place for apps which are just beginning might just help
someone more clearly understand the relationship in the future — without
incorrectly thinking that a nested resolver is accessing the root of the
graph, rather than the parent.
While the `gql` tag is not currently _required_, it does make it easier to
implement additional, development-friendly functionality in the future.
For example, it could avoid the need to question whether a string literal is
actually using Schema Definition Language (SDL) and avoid the need to
look for context clues.
By implementing these suggestions now, we can avoid the need to ask
developers to refactor in the future.