void deselect(Key key, [bool hover = false]) { if (hover) { _hovered.remove(key); } else { _selected.remove(key); _selectedOrigins.remove(key); } notifyListeners(); }