code: @Override
      public MapReadResult readMapData(Tile upperLeft, Tile lowerRight) {
          return readMapData(upperLeft, lowerRight, Selector.ALL);
      }
docs: Reads data for an area defined by the tile in the upper left and the tile in
  the lower right corner.
  Precondition: upperLeft.tileX <= lowerRight.tileX && upperLeft.tileY <= lowerRight.tileY
  
  @param upperLeft  tile that defines the upper left corner of the requested area.
  @param lowerRight tile that defines the lower right corner of the requested area.
  @return map data for the tile.