docs: def add_child(
          self,
          parent_slug=None,
          title="",
          level="",
          start_date=None,
          end_date=None,
          date_expression=None,
          notes=[],
      ):
          """
          Adds a new resource component parented within `parent`.
  
          :param str parent_slug: The parent's slug.
          :param str title: A title for the record.
          :param str level: The level of description.
  
          :return: The ID of the newly-created record.
          """
  
          new_object = {"title": title, "level_of_description": level}
  
          if parent_slug is not None:
              new_object["parent_slug"] = parent_slug
  
          # Optionally add date specification
          new_date = {}
  
          if start_date is not None:
              new_date["start_date"] = start_date
  
          if end_date is not None:
              new_date["end_date"] = end_date
  
          if date_expression is not None:
              new_date["date"] = date_expression
  
          if new_date != {}:
              new_object["dates"] = [new_date]
  
          # Optionally add notes
          new_object["notes"] = []
          for note in notes:
              note_type = note.get("type", "General note")
              # If there is a note, but it's an empty string, skip this;
              content = note.get("content")
              if not content:
                  continue
              new_note = {"content": content, "type": note_type}
              new_object["notes"].append(new_note)
  
          return self._post(
              urljoin(self.base_url, "informationobjects"),
              data=json.dumps(new_object),
              expected_response=201,
          ).json()["slug"]