docs: def _clean_fields(self, omit_fields, sparse_fields, next_level_omits):
          """
              Remove fields that are found in omit list, and if sparse names
              are passed, remove any fields not found in that list.
          """
          sparse = len(sparse_fields) > 0
          to_remove = []
  
          if not sparse and len(omit_fields) == 0:
              return
  
          for field_name in self.fields:
              is_present = self._should_field_exist(
                  field_name, omit_fields, sparse_fields, next_level_omits
              )
  
              if not is_present:
                  to_remove.append(field_name)
  
          for remove_field in to_remove:
              self.fields.pop(remove_field)