constructor(options) {
        super(options);

        this.size = options.size;
        this.pixelSize = options.pixelSize;

        /** @type {Array<import("./MapLayer")>} */
        this.layers = [];
        /** @type {Array<import("./MapEntity")>} */
        this.entities = [];

        this.metaData.version = 2;
        this.metaData.nonce = uuid.v4();

        this.metaData.totalLayerArea = 0;

        this.addLayers(options.layers);
        this.addEntities(options.entities);
    }
@param {object} options
@param {object} options.size
@param {number} options.size.x in cm
@param {number} options.size.y in cm
@param {number} options.pixelSize in cm
@param {Array<import("./MapLayer")>} options.layers
@param {Array<import("./MapEntity")>} options.entities
@param {any} [options.metaData]