code: def to_dict(self):
          
          data = {}
  
          # mandatory characteristics
          data["name"] = self.name
          data["description"] = self.description if self.description and len(self.description) else None
          data["type"] = self.type if self.type and len(self.type) else None
          data["allowed_chars"] = self.allowed_chars if self.allowed_chars and len(self.allowed_chars) else None
          data["allowed_choices"] = self.allowed_choices
          data["autogenerated"] = self.autogenerated
          data["channel"] = self.channel if self.channel and len(self.channel) else None
          data["creation_only"] = self.creation_only
          data["default_order"] = self.default_order
          data["default_value"] = self.default_value if self.default_value and len(self.default_value) else None
          data["deprecated"] = self.deprecated
          data["exposed"] = self.exposed
          data["filterable"] = self.filterable
          data["format"] = self.format if self.format and len(self.format) else None
          data["max_length"] = int(self.max_length) if self.max_length is not None else None
          data["max_value"] = int(self.max_value) if self.max_value is not None else None
          data["min_length"] = int(self.min_length) if self.min_length is not None else None
          data["min_value"] = int(self.min_value) if self.min_value is not None else None
          data["orderable"] = self.orderable
          data["read_only"] = self.read_only
          data["required"] = self.required
          data["transient"] = self.transient
          data["unique"] = self.unique
          data["uniqueScope"] = self.unique_scope if self.unique_scope and len(self.unique_scope) else None
          data["subtype"] = self.subtype if self.subtype and len(self.subtype) else None
          data["userlabel"] = self.userlabel if self.userlabel and len(self.userlabel) else None
  
          return data
docs: Transform an attribute to a dict