Found an interesting bug today
The FieldVisibilitySchemaTransformation eagerly deletes types that can no longer be accessed after a field is removed. This doesn't check for references from unions though, so it's possible to end up with an illegal schema where a union type has a union member that doesn't exist anymore.
I'll put up a proper test case to explain this better