docs: def _to_dict(self):
          """Return a json dictionary representing this model."""
          _dict = {}
          if hasattr(self, 'dialog_node') and self.dialog_node is not None:
              _dict['dialog_node'] = self.dialog_node
          if hasattr(self, 'description') and self.description is not None:
              _dict['description'] = self.description
          if hasattr(self, 'conditions') and self.conditions is not None:
              _dict['conditions'] = self.conditions
          if hasattr(self, 'parent') and self.parent is not None:
              _dict['parent'] = self.parent
          if hasattr(self,
                     'previous_sibling') and self.previous_sibling is not None:
              _dict['previous_sibling'] = self.previous_sibling
          if hasattr(self, 'output') and self.output is not None:
              _dict['output'] = self.output._to_dict()
          if hasattr(self, 'context') and self.context is not None:
              _dict['context'] = self.context
          if hasattr(self, 'metadata') and self.metadata is not None:
              _dict['metadata'] = self.metadata
          if hasattr(self, 'next_step') and self.next_step is not None:
              _dict['next_step'] = self.next_step._to_dict()
          if hasattr(self, 'title') and self.title is not None:
              _dict['title'] = self.title
          if hasattr(self, 'node_type') and self.node_type is not None:
              _dict['type'] = self.node_type
          if hasattr(self, 'event_name') and self.event_name is not None:
              _dict['event_name'] = self.event_name
          if hasattr(self, 'variable') and self.variable is not None:
              _dict['variable'] = self.variable
          if hasattr(self, 'actions') and self.actions is not None:
              _dict['actions'] = [x._to_dict() for x in self.actions]
          if hasattr(self, 'digress_in') and self.digress_in is not None:
              _dict['digress_in'] = self.digress_in
          if hasattr(self, 'digress_out') and self.digress_out is not None:
              _dict['digress_out'] = self.digress_out
          if hasattr(self,
                     'digress_out_slots') and self.digress_out_slots is not None:
              _dict['digress_out_slots'] = self.digress_out_slots
          if hasattr(self, 'user_label') and self.user_label is not None:
              _dict['user_label'] = self.user_label
          if hasattr(self, 'disabled') and self.disabled is not None:
              _dict['disabled'] = self.disabled
          if hasattr(self, 'created') and self.created is not None:
              _dict['created'] = datetime_to_string(self.created)
          if hasattr(self, 'updated') and self.updated is not None:
              _dict['updated'] = datetime_to_string(self.updated)
          return _dict