нужно быть разсудительным. GQL это спецификациая, которая описывает способ общения клиент - сервер. Далее, когда клиент формирует запрос и поля, которые он хочет получить в ответ. Мы должны создавать наиболее эфективные (во всех смыслах) решения. Поэтому, если бизнесс логика такова, что часто роли меняются и нам нужно давать возможность возвращать частично ответ, то проще всего сделать те поля nullable, и да, для части модели мы частично потерям типизаю. В противном случае просто зарубать запрос и возвращать unauthorized, если это допустимо