Build a HTML5 game like Geometry Dash using Phaser 4 and TypeScript, with a simple custom physics engine

The cube in Geometry Dash always lands perfectly square. It's not rigid-body physics: the spin is purely cosmetic. The hitbox never rotates, and the game snaps the angle to 90 degrees on landing. I rebuilt it as an HTML5 game in Phaser 4 + TypeScript, with my own physics engine.