Isn't the point of GraphQL to allow each client to select what they want? On desktop, you want fields A B C, on mobile you want fields X Y Z-- great! It goes against the "don't build a general-purpose API" thought, but it works great in unlocking the front-end teams from having to request a change from the backend team. But that's assuming you have separate front-end and back-end teams. The most useful architecture might be contextual to your organization's size and structure.