JSON Conversion
Since VoxelKey has x and y coordinates, it can take advantage of the SpatialComponent lens.
Since VoxelKey has x and y coordinates, it can take advantage of the SpatialComponent lens. Lenses are essentially "getters and setters" that can be used in highly generic code.
Typeclass instances. These (particularly Boundable) are necessary for when a layer's key type is parameterized as K.