code: def add_sibling(self, pos=None, arc_element_type=None, description=None, story_element_node=None, **kwargs):
          '''
          Overrides the default `treebeard` function, adding additional integrity checks.
          '''
          if 'mile' in arc_element_type:
              if self.get_depth() == 1:
                  raise ArcGenerationError('Milestones are invalid to be the root')
              nodes_to_check = self.get_root().get_descendants().filter(arc_element_type__icontains='mile')
              for node in nodes_to_check:
                  if node.arc_element_type == arc_element_type:
                      raise ArcIntegrityError('You cannot have two of the same milestone in the same arc.')
          return super().add_sibling(
              pos=pos,
              arc=self.arc,
              arc_element_type=arc_element_type,
              description=description,
              story_element_node=story_element_node
          f add_sibling(self, pos=None, arc_element_type=None, description=None, story_element_node=None, **kwargs):
          '''
          Overrides the default `treebeard` function, adding additional integrity checks.
          '''
          if 'mile' in arc_element_type:
              if self.get_depth() == 1:
                  raise ArcGenerationError('Milestones are invalid to be the root')
              nodes_to_check = self.get_root().get_descendants().filter(arc_element_type__icontains='mile')
              for node in nodes_to_check:
                  if node.arc_element_type == arc_element_type:
                      raise ArcIntegrityError('You cannot have two of the same milestone in the same arc.')
          return super().add_sibling(
              pos=pos,
              arc=self.arc,
              arc_element_type=arc_element_type,
              description=description,
              story_element_node=story_element_node
          )
docs: Overrides the default `treebeard` function, adding additional integrity checks.