docs: def clean(self, value):
          """ Clean the data and validate the nested spec.
  
          Implementation is the same as for other fields but in addition,
          this will propagate the validation to the nested spec.
          """
  
          obj = self.factory.create(value)
  
          # todo: what if the field defines properties that have any of
          # these names:
          if obj:
              del obj.fields
              del obj.alias
              del obj.validators
              del obj.required
              del obj.factory
  
          # do own cleaning first...
          self._validate_existence(obj)
          self._run_validators(obj)
  
          # ret = {}
          # for name in self.fields.keys():
          #     ret[name] = getattr(obj, name)
          # return ret
          return obj