I’m working on a display library which in most cases works on a 2D plane but it has some components which display 2D projections of a 3D space. This domain has the notion of Position, Size, Position3D and Size3D. Position and Size are straightforward: data class Position(val x: Int, val y: Int) data class Size(valRead more