* chore(tests): update event assert functions to pass in types directly
* refactor: move event types from prototypes to constructors
* refactor: convert events/events_block_change.js to ES6 class
* refactor: convert events/events_block_create.js to ES6 class
* refactor: convert events/events_block_delete.js to ES6 class
* refactor: convert events/events_block_drag.js to ES6 class
* refactor: convert events/events_block_move.js to ES6 class
* refactor: convert events/events_click.js to ES6 class
* refactor: convert events/events_comment_change.js to ES6 class
* refactor: convert events/events_comment_create.js to ES6 class
* refactor: convert events/events_comment_delete.js to ES6 class
* refactor: convert events/events_comment_move.js to ES6 class
* refactor: convert events/events_marker_move.js to ES6 class
* refactor: convert events/events_selected.js to ES6 class
* refactor: convert events/events_theme_change.js to ES6 class
* refactor: convert events/events_toolbox_item_select.js to ES6 class
* refactor: convert events/events_trashcan_open.js to ES6 class
* refactor: convert events/events_ui.js to ES6 class
* refactor: convert events/events_var_create.js to ES6 class
* refactor: convert events/events_var_delete.js to ES6 class
* refactor: convert events/events_var_rename.js to ES6 class
* refactor: convert events/events_viewport.js to ES6 class
* chore: rebuild
* chore: run clang-format
* fix: remove duplicate serialization hook implementations
* feat: add backwards compatibility to field serialization
* feat: add support for serializing old mutator hooks
* fix: build
* fix: refactor field changes into helpers
* fix: typo
* fix: removing xmlns
* tests: add tests for serialization and deserialization of mutator hooks
* fix: switch to early returns
* Move existing tests into new suite
* Add tests for setShadowState
* Add assertions for serialization
* Unskip serialization tests
* Add logic to handle shadows in both systems
* Uncomment tests
* fix: add access modifiers to new comment funcs
* fix: fixup types
* fix: remove addNextBlocks = true
* feat: add real child of shadow errors
* fix: types
* Add parameter for recording undo.
This sets up the most common default behavior, but also makes it clear
to people that it is happening, because it might not be expected.
* Add grouping of events
* Add text width caching
* Add disabling workspace resizing
* Add performance optimizations
* Respect nulls from blocks.save
* Cleanup from rebase
* PR Comments
* Cleanup from rebase