Follows the main variation to the end and returns the last node.

def end(self) -> "GameNode":
        """Follows the main variation to the end and returns the last node."""
        node = self

        while node.variations:
            node = node.variations[0]

        return node