code: def describe(self, **kwargs):
          
          description = {
              'label': self.label,
              # note: details are expected to be large so it should
              #       be reformatted
              'details': inspect.cleandoc(self.details),
              'required': self.required,
              'many': self.many,
              'spec': self.spec,
              'default': self.default,
              'type': self.type or 'unspecified'
          }
  
          description.update(kwargs)
          return description
docs: Describe this parameter instance for purpose of self-documentation.
  
          Args:
              kwargs (dict): dictionary of additional description items for
                  extending default description
  
          Returns:
              dict: dictionary of description items
  
  
          Suggested way for overriding description fields or extending it with
          additional items is calling super class method with new/overriden
          fields passed as keyword arguments like following:
  
          .. code-block:: python
  
              class DummyParam(BaseParam):
                  def description(self, **kwargs):
                      super().describe(is_dummy=True, **kwargs)