An EventBus and Command Pattern / Undo-Redo library for Dart