docs: def summary(self):
          """
          Summary of model definition for labeling. Intended to be somewhat
          readable but unique to a given model definition.
          """
          if self.features is not None:
              feature_count = len(self.features)
          else:
              feature_count = 0
          feature_hash = 'feathash:' + str(hash(tuple(self.features)))
          return (str(self.estimator), feature_count, feature_hash, self.target)