React with Redux for managing flattened state representing a nested grid. Click the upper/lower half of a square to split it horizontally, or the left/right half to split it vertically.