title: Are "grouping types" a good idea when designing GraphQL APIs?
body: <p>When creating types in GraphQL, the list of fields on a type can become quite long after a while. One way of keeping the number of fields down would be to put some relevant subset of the fields in to one "grouping" type, so instead of <code>user { last_name, first_name, height, weight, friends, favorite_clubs }</code> one would have <code>user { identification, friends, favorite_clubs }</code> where the schema for <code>identification</code> is of course <code>{ last_name, first_name, height, weight }</code>.</p>
  
  <p>However, I'm not convinced that doing this is a good idea. The advantage is that the <code>user</code> type is more readable, but the things that worry me are:</p>
  
  <ul>
  <li><p>You are creating a new <code>GraphQLObjectType</code> just for the sake of organisation, it's not a new node in my mental model of the graph...</p></li>
  <li><p>The <code>root</code> parameter of the <code>identification</code> resolver would still be the user object, which feels like I'm doing something wrong...</p></li>
  </ul>
  
  <p>Is this a good way of organising your API, or are my worries correct?</p>