code: def index(self, row, column, parent):
          
  
          if not self.hasIndex(row, column, parent):
              return QtCore.QModelIndex()
  
          if not parent.isValid():
              parentItem = self.root
          else:
              # So, here we go from QModelIndex to the actual object .. ?
              parentItem = parent.internalPointer()
  
          # the only place where a child item is queried
          childItem = parentItem.getChild(row)
          if childItem:
              # return self.createIndex(row, column)
              return self.createIndex(row, column, childItem)
              """
              # .. that one does not work for PySide 5.12+
              TypeError: 'PySide2.QtCore.QAbstractItemModel.createIndex' called with wrong argument types:
              PySide2.QtCore.QAbstractItemModel.createIndex(int, int, ServerListItem)
              Supported signatures:
              PySide2.QtCore.QAbstractItemModel.createIndex(int, int, quintptr = 0)
              PySide2.QtCore.QAbstractItemModel.createIndex(int, int, void = nullptr)
              """
          else:
              return QtCore.QModelIndex()
docs: Returns the index of the item in the model specified by the given row, column and parent index.
          row, column == int, parent == QModelIndex