Most of it's good, just a cleaner JS, but it'd be better to drop the classes and lambda-type short function syntax in favour of ES6 classes and arrow functions.
Are brackets and semicolons now optional in ES6/7?
Semicolons have always been optional. Brackets are only used for array literals (oh and destructuring assignment) as far as I know (and are required).