Thanks, dylz. I think I am not interested in high-performance graphics, so I am not sure I am fond of working only with the <canvas>, even with these abstracted game engines.
I might just sit for a day to write beautiful CSS and use animeJS or something like that to go back to DOM approach of doing this.
FWIW, I am doing something similar right now and I can tell you that making thousands of overlapping divs sucks for performance already on desktop, and is even worse on mobile. I can see why the canvas thing is in use.
Most JS game engines should support firing native events of some sort, like you should theoretically have the ability to call window.confetti() from canvas-rendering game code in response to a victory screen or similar.
I might just sit for a day to write beautiful CSS and use animeJS or something like that to go back to DOM approach of doing this.