A tangential complaint: I really wish GraphQL had annotations for derived types. I think it's so dumb how you will often have (to use one of the site's examples) a Book type, but then also need a CreateBookInput input type and a UpdateBookInput input type. These latter two will often be strict subsets of Book. It's very error prone, especially when you start changing root types, but forget about these derived input/update types.