     }
 
     func shift(eastOf x: Int, distance: Int) {
+        xRange = xRange.lowerBound ..< xRange.upperBound + distance
+
         let oldMapElementsByPosition = mapElementsByPosition
         
         for (oldPosition, element) in oldMapElementsByPosition {

    }

    func shift(southOf y: Int, distance: Int) {
        let oldMapElementsByPosition = mapElementsByPosition
        
        for (oldPosition, element) in oldMapElementsByPosition {

    
    var elementsCount: Int { return mapElementsByPosition.count }
    var roomsCount: Int { return positionsByRoom.count }
    var xRange = 0 ..< 0
    var yRange = 0 ..< 0
    var planeRange = 0 ..< 0
    
    init(startingRoom: Room? = nil) {
        if let startingRoom = startingRoom {
            let toPosition = AreaMapPosition(0, 0, 0)
            add(room: startingRoom, position: toPosition)
        }
    }
    
