code: def all_optional_fields(self):
          
          def optional_check(f):
              return is_nullable_type(f.data_type) or f.has_default
          return self._filter_fields(optional_check)
docs: Returns an iterator that traverses optional fields in all super types
          first, and then for this type.