To make the models update correctly in QML: - ListModel and _QtModel merged - Return a ListModelMap QObject from properties instead of a DefaultDict → QVariantMap
Put QML components into folders, remove unused ones, split __init__.py with engine.py.