Closed
Description
Currently, if a field is sometimes null or absent and sometimes present and its type is explicitly documented, the field itself must be marked as optional otherwise a FieldTypesDoNotMatchException
will be thrown. Field type resolution should consider the field to be optional if the field itself or any of its ancestors are marked as optional. This will align its behaviour with that used when finding missing fields.