implement configs like `xmonad` and `hakyll` do, making game rules more flexible for users to customize. For example: - come up with a type that captures the notion of elements that "can be combined in the same way that 2048 does" - table don't have to be square and can be larger - making the distribution customizable (see also #2 )