Pay attention that a Query and a Mutation are totally different things. So both have their own specs. In Dgraph we have this distinction too, only Upsert Block you can do some tricks outside of it. But in a mutation, you can only use RDF or JSON, never a DQL(like cascade directive) functions.
In my view, that’s true via parameters/arguments in a query(or query inputs). I never saw a validation at the mutation level. Maybe someone could get an Apollo Server up and running to check if it does. As the docs aren’t helping much.
I’ll ping some one about this. Does it has a ticket? I think you have some open tickets right?
So, if GraphQL spec doesn’t cover it. We could potentially transpose the code(from graphql-non-null-directive) or do something similar in go and introduce it into the Dgraph core. So the directive would be native.