title: What does Relay use to decide which outputFields to include in a mutation response?
body: <p>I am creating my first React/Relay application by modifying the TODO example. I am to the point where I am adding my own mutation for an object Distributor that has a parameter bookCount. The mutation is called AddBook and simply increases book count by 1. At this point, the mutation executes without error, optimistically increases the bookCount by 1 correctly, but then reverts the model change when it receives the response from the server.  I believe this to be because the response from the server mysteriously does not contain any of my specified outputFields.</p>
  
  <p>Here is my mutation:</p>
  
  <pre><code>var GraphQLAddBookMutation = mutationWithClientMutationId({
    name: 'AddBook',
    inputFields: {
    },
    outputFields: {
      distributor: {
        type: GraphQlDistributor,
        resolve: () =&gt; getDistributor(),
      },
    },
    mutateAndGetPayload: () =&gt; {
      console.log("Trying to mutate.");
      addBook();
      return {};
    },
  });
  </code></pre>
  
  <p>It contains the field 'distributor' in outputFields but no 'distributor' data is included in the graphql response.</p>
  
  <p>The graphql response is:</p>
  
  <pre><code>{
    "data": {
    "addBook": {
      "clientMutationId": "0"
      }
    }
  }
  </code></pre>
  
  <p>I have verified that the mutateAndGetPayload function DOES get called but the distributor resolve function DOES NOT get called.  </p>
  
  <p>I would have expected every field in outputFields to be included in the graphql response, and every resolve function within outputFields to be called to populate the appropriate parameters in the response but this is not the case</p>
  
  <p>This is particularly confusing to me because the generated schema.json DOES include any outputFields that I specify in the AddBookPayload:</p>
  
  <pre><code>{
        "kind": "OBJECT",
        "name": "AddBookPayload",
        "description": null,
        "fields": [
          {
            "name": "distributor",
            "description": null,
            "args": [],
            "type": {
              "kind": "OBJECT",
              "name": "Distributor",
              "ofType": null
            },
            "isDeprecated": false,
            "deprecationReason": null
          },
          {
            "name": "clientMutationId",
            "description": null,
            "args": [],
            "type": {
              "kind": "NON_NULL",
              "name": null,
              "ofType": {
                "kind": "SCALAR",
                "name": "String",
                "ofType": null
              }
            },
            "isDeprecated": false,
            "deprecationReason": null
          }
        ],
        "inputFields": null,
        "interfaces": [],
        "enumValues": null,
        "possibleTypes": null
      },
  </code></pre>