Looks like a fun project! I'm happy to help whenever I can.
They are classes because System originally had internal engine related variables.
This is no longer the case and these will be migrated to protocols eventually.
This is a bug that was introduced recently. I haven't figured out exactly what's causing it but I believe it's related to concurrency changes. Loading simple images should and will be instant.
You cannot lock the window size or aspect ratio.
I did it this way on purpose to ensure games will work on every platform at any aspect ratio.
There is no way to know if a user will have a 4:3 or 21:9 screen for example, or if a platform is even capable of drawing at any given aspect ratio/resolution.
I will be adding a minimum window size option, but no size or aspect locks.
For my game Super Swift Smash! I did the math to center the play area.
You could also use a RenderTarget to create a virtual window of a fixed size or aspect ratio and then draw that into the window. The AnimatedSprite example uses a render target to draw at lower resolution, which is similar to how you could do it for a locked aspect ratio.