Thanks! Writing the game has been really fun and I’m proud of the codebase. It’s therapeutic to work on it because I get to skip all the frustrating parts of web dev like writing config files.
I think you'd gain clarity from `export function` and `function` over the anonymous fn + const style -- which seems a little like zig?
And the getter/setter system: I dont see a reason for over `{getHeight: () => height}` over `return {height, weight}` ?
Since canvasManager is mostly just data properties, you could also destructure those inline to funciton parameters, ie., function drawX({ctx, height, width, scale}) etc.