Example: __typekind. It is allowed everywhere. Maybe it is possible just to create a new field object and pass it in with a resolver to the type name?
Then get-field-definition could just return something else when we encounter one of these?