If carts could have some sort of virtual "expansion slots" like how they could add mapper chips to NES carts. You could make them limit in size and number so users would have to be clever with how they use them. Like 2 16k slots or 3 8k slots or some other arbitrary constraint, maybe you can only have 1 active at any one time so you have to keep track of which chips you have turned on and off at certain break points in your code. It would help with code reuse too. You could store your collision system or OOP code in an expansion chip and then just include them in future games