docs: def drop_slot(self, slot=None, drop_stack=False):
          """
          Drop one or all items of the slot.
  
          Does not wait for confirmation from the server. If you want that,
          use a ``Task`` and ``yield inventory.async.drop_slot()`` instead.
  
          If ``slot`` is None, drops the ``cursor_slot`` or, if that's empty,
          the currently held item (``active_slot``).
  
          Args:
              slot (Optional[Slot]): The dropped slot. Can be None, integer,
                                     or ``Slot`` instance.
  
          Returns:
              int: The action ID of the click
          """
          if slot is None:
              if self.cursor_slot.is_empty:
                  slot = self.active_slot
              else:
                  slot = self.cursor_slot
          elif isinstance(slot, int):  # also allow slot nr
              slot = self.window.slots[slot]
          if slot == self.cursor_slot:
              # dropping items from cursor is done via normal click
              return self.click_slot(self.cursor_slot, not drop_stack)
          return self.send_click(windows.DropClick(slot, drop_stack))