docs: def copy_children(self, foreign_id, existing_node):
          '''
          Initiates copying of tree, with existing_node acting as root
          '''
          url = "{}/api/v2/pages/{}/".format(self.base_url, foreign_id)
          self.log(
              ACTION,
              "Copying Children",
              {"existing node type": str(type(existing_node))})
  
          # TODO: create a robust wrapper around this functionality
          try:
              self.log(ACTION, "Requesting Data", {"url": url})
              response = requests.get(url)
              content = json.loads(response.content)
              self.log(SUCCESS, "Data Fetched Successfully", {"url": url})
  
              main_language_child_ids = content["meta"]["main_language_children"]
              if main_language_child_ids:
                  for main_language_child_id in main_language_child_ids:
                      self.copy_page_and_children(
                          foreign_id=main_language_child_id,
                          parent_id=existing_node.id, depth=1)
              else:
                  self.log(SUCCESS, "No children to copy")
          except Exception as e:
              self.log(ERROR, "Copying Children", {"url": url, "exception": e})