- Take a custom container callable for ListModel __init__ (defaults to
list, must be a MutableSequence)
- Use a Deque for roomEvents, which is much faster for inserting
new items at the beginning.
To make the models update correctly in QML:
- ListModel and _QtModel merged
- Return a ListModelMap QObject from properties instead of
a DefaultDict → QVariantMap