pair puzzle blocks along the y axis before the x axis
rename the puzzle merge board call
move the unshared_copy code
rename the puzzle game variables
generation of the arcade moonscape
spawn puzzle block pairs into the arcade playfield
add the ArcadeBlockSpawned
rename to ArcadeBlockSpawnedEvent
fire the ArcadeBlockSpawnedEvent on puzzle pairing
fix next phase handling
define BLOCK_BASES that say which block can be place on top of other blocks in the arcade field
shuffle the arcade block spawn placement so that each possible column gets a chance
add BLOCK_NAMES for easy block type lookup in human readable form
add view panel rescaling to a target size
add some ascii art for the view layouts
handle level_done state keys
add the moonscape panel which has both a mini view and a big view (arcade mode)
the level_done state does not escape to the menu, it starts the next phase
store the last game phase exclusively for continuing a game from the main menu
provide moonscape data from the model