Replace explicit type casting with polymorphism
Prevent dragging tiles outside map boundaries
Make grid and tile data structures serializable
Add support for copy/paste of tiles
Refactor duplicate section adding logic
Drop pasted tiles at the centre of the viewport