That's also in my opinion the hardest part in the backend. In the frontend, the most difficult part has been to support dynamic fields at runtime. E.g. a webuser chooses which fields they want to see.
Sure, you can use the "include" directive in ".gql" files to subset the fields. But it's a pain to use, specially in nested queries.