docs: def add_item(self, *args, **kwargs):
          """Add a new item to the group. The parameters are used to construct an
          :py:class:`Item`. If `id` is `None`, it will be automatically populated
          with an ID that is not already in use.
  
          See the class documentation for the behaviour when the name or ID
          collides with an existing one. In addition, if the item descriptor is
          identical to an existing one and a value, this value is assigned to
          the existing item.
          """
          item = Item(*args, **kwargs)
          if item.id is None:
              item.id = _UNRESERVED_ID
              while item.id in self._by_id:
                  item.id += 1
          self._add_item(item)
          return item