code: def add_variation(self, move: chess.Move, *, comment: str = "", starting_comment: str = "", nags: Iterable[int] = ()) -> "GameNode":
          
          node = type(self).dangling_node()
          node.move = move
          node.nags = set(nags)
          node.comment = comment
          node.starting_comment = starting_comment
  
          node.parent = self
          self.variations.append(node)
          return node
docs: Creates a child node with the given attributes.