{
  "definitions": {
    "Theme": {
      "type": "object",
      "properties": {
        "$schema": {
          "type": "string",
          "title": "Theme.$schema",
          "description": "The URI of the JSON schema describing themes."
        },
        "extends": {
          "anyOf": [
            {
              "type": "string",
              "title": "Theme.extends"
            },
            {
              "$ref": "#/definitions/Theme",
              "title": "Theme.extends"
            },
            {
              "$ref": "#/definitions/FlatTheme",
              "title": "Theme.extends"
            },
            {
              "type": "array",
              "items": {
                "anyOf": [
                  {
                    "type": "string",
                    "title": "Theme.extends"
                  },
                  {
                    "$ref": "#/definitions/Theme",
                    "title": "Theme.extends"
                  },
                  {
                    "$ref": "#/definitions/FlatTheme",
                    "title": "Theme.extends"
                  }
                ],
                "title": "Theme.extends"
              },
              "title": "Theme.extends"
            }
          ],
          "title": "Theme.extends",
          "description": "The base `Theme`s or `theme` URLs to extend.\n@remarks If used, base themes are loaded first, and then all the properties from inherited theme\noverwrite these defined in base theme."
        },
        "url": {
          "type": "string",
          "title": "Theme.url",
          "description": "Actual URL the theme has been loaded from."
        },
        "clearColor": {
          "type": "string",
          "title": "Theme.clearColor",
          "description": "Color to be used as a clear background - no map objects.\n@format color-hex"
        },
        "clearAlpha": {
          "type": "number",
          "title": "Theme.clearAlpha",
          "description": "Alpha to be used as a clear background - no map objects.\n@format 0-1"
        },
        "defaultTextStyle": {
          "$ref": "#/definitions/TextStyleDefinition",
          "title": "Theme.defaultTextStyle",
          "description": "Define the default text style for styling labels and texts."
        },
        "lights": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Light",
            "title": "Theme.lights.[]"
          },
          "title": "Theme.lights",
          "description": "Define the lightning available on the three.js scene."
        },
        "sky": {
          "$ref": "#/definitions/Sky",
          "title": "Theme.sky",
          "description": "Define the style of the sky presented in the map scene."
        },
        "fog": {
          "$ref": "#/definitions/Fog",
          "title": "Theme.fog",
          "description": "Define the fog used in the map scene."
        },
        "definitions": {
          "$ref": "#/definitions/Definitions",
          "title": "Theme.definitions",
          "description": "The definitions exported by these theme."
        },
        "styles": {
          "$ref": "#/definitions/Styles",
          "title": "Theme.styles",
          "description": "Map styles available for datasources used to render the map."
        },
        "textStyles": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/TextStyleDefinition",
            "title": "Theme.textStyles.[]"
          },
          "title": "Theme.textStyles",
          "description": "Define the style to render different types of text used on the map."
        },
        "fontCatalogs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/FontCatalogConfig",
            "title": "Theme.fontCatalogs.[]"
          },
          "title": "Theme.fontCatalogs",
          "description": "List available fonts to be used while rendering text."
        },
        "images": {
          "$ref": "#/definitions/ImageDefinitions",
          "title": "Theme.images",
          "description": "Optional images to be rendered on the map view."
        },
        "imageTextures": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ImageTexture",
            "title": "Theme.imageTextures.[]"
          },
          "title": "Theme.imageTextures",
          "description": "Image textures to be used while rendering geometries on the map view."
        },
        "poiTables": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/PoiTableRef",
            "title": "Theme.poiTables.[]"
          },
          "title": "Theme.poiTables",
          "description": "Optional list of [[ThemePoiTableDef]]s."
        },
        "priorities": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/StylePriority",
            "title": "Theme.priorities.[]"
          },
          "title": "Theme.priorities",
          "description": "Optional list of symbolic priorities for the object\ncreated using this   .\n@remarks The attribute `styleSet` and `category` of the [[Technique]]\nare used together with [[Theme.priorities]] to sort\nthe objects created using this   , for example:\n\n\n```json\n{\n     \"priorities\": [\n         { \"group\": \"tilezen\", \"category\": \"outline-1\" }\n     ],\n     \"styles\": [\n         {\n             \"technique\": \"solid-line\",\n             \"styleSet\": \"tilezen\",\n             \"category\": \"outline-1\"\n         }\n     ]\n}\n```"
        },
        "labelPriorities": {
          "type": "array",
          "items": {
            "type": "string",
            "title": "Theme.labelPriorities.[]"
          },
          "title": "Theme.labelPriorities",
          "description": "Optional list of priorities for the screen-space\nobjects created using this style.\n@remarks The name of the `category` attribute of the screen-space\ntechnique (e.g. `\"text\"`) must match on the strings\ndefined by this [[Theme.labelPriorities]], for example:\n\n```json\n{\n     \"labelPriorities\": [\n         \"continent-labels\",\n         \"country-labels\",\n         \"state-labels\"\n     ],\n     \"styles\": [\n         {\n             \"technique\": \"text\",\n             \"category\": \"state-labels\"\n         }\n     ]\n}\n```"
        }
      },
      "additionalProperties": false,
      "title": "Theme",
      "description": "Map theme is used to define what features are shown and how the map is styled, for example\nwhich lightning is used or whether fog should be displayed."
    },
    "StylePriority": {
      "type": "object",
      "properties": {
        "group": {
          "type": "string",
          "title": "StylePriority.group",
          "description": "The group of this `StylePriority`."
        },
        "category": {
          "type": "string",
          "title": "StylePriority.category",
          "description": "The category of this `StylePriority`."
        }
      },
      "required": [
        "group"
      ],
      "additionalProperties": false,
      "title": "StylePriority",
      "description": "A type representing symbolic render orders."
    },
    "FlatTheme": {
      "type": "object",
      "properties": {
        "styles": {
          "$ref": "#/definitions/StyleSet",
          "title": "styles",
          "description": "The style rules used to render the map."
        }
      },
      "additionalProperties": false,
      "title": "FlatTheme",
      "description": "A type representing HARP themes with all the styleset declarations\ngrouped in one `Array`.\n@internal This type will merge with   ."
    },
    "Definition": {
      "$ref": "#/definitions/JsonValue",
      "title": "Definition",
      "description": "Value definition commons."
    },
    "VerboseDefinition": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "selector",
            "boolean",
            "number",
            "string",
            "color"
          ],
          "title": "VerboseDefinition.type",
          "description": "The type of the definition."
        },
        "value": {
          "$ref": "#/definitions/Definition",
          "title": "VerboseDefinition.value",
          "description": "The value of the definition."
        },
        "description": {
          "type": "string",
          "title": "VerboseDefinition.description",
          "description": "The description of the definition."
        }
      },
      "required": [
        "value"
      ],
      "additionalProperties": false,
      "title": "VerboseDefinition",
      "description": "This is the old, more verbose, format of the definitions, to be deprecated"
    },
    "Definitions": {
      "type": "object",
      "additionalProperties": {
        "anyOf": [
          {
            "$ref": "#/definitions/Definition"
          },
          {
            "$ref": "#/definitions/VerboseDefinition"
          }
        ]
      },
      "title": "Definitions"
    },
    "JsonExprReference": {
      "type": "array",
      "items": [
        {
          "type": "string",
          "const": "ref",
          "title": "JsonExprReference.0"
        },
        {
          "type": "string",
          "title": "JsonExprReference.1"
        }
      ],
      "additionalItems": false,
      "minItems": 2,
      "title": "JsonExprReference"
    },
    "StyleSet": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/Style",
        "title": "StyleSet.[]"
      },
      "title": "StyleSet.[]",
      "description": "An array of   s that are used together to define how a\n @here/harp-mapview#DataSource  should be rendered.\n@remarks `StyleSet`s are applied to sources providing vector tiles via their method\n`setStyleSet`. This is also handle internally when a whole theme is passed to a\n @here/harp-mapview#MapView  via  @here/harp-mapview#MapViewtheme ."
    },
    "Style": {
      "anyOf": [
        {
          "$ref": "#/definitions/SquaresStyle",
          "title": "Style"
        },
        {
          "$ref": "#/definitions/CirclesStyle",
          "title": "Style"
        },
        {
          "$ref": "#/definitions/PoiStyle",
          "title": "Style"
        },
        {
          "$ref": "#/definitions/LineMarkerStyle",
          "title": "Style"
        },
        {
          "$ref": "#/definitions/LineStyle",
          "title": "Style"
        },
        {
          "$ref": "#/definitions/SegmentsStyle",
          "title": "Style"
        },
        {
          "$ref": "#/definitions/SolidLineStyle",
          "title": "Style"
        },
        {
          "$ref": "#/definitions/LabelRejectionLineStyle",
          "title": "Style"
        },
        {
          "$ref": "#/definitions/FillStyle",
          "title": "Style"
        },
        {
          "$ref": "#/definitions/StandardStyle",
          "title": "Style"
        },
        {
          "$ref": "#/definitions/BasicExtrudedLineStyle",
          "title": "Style"
        },
        {
          "$ref": "#/definitions/StandardExtrudedLineStyle",
          "title": "Style"
        },
        {
          "$ref": "#/definitions/ExtrudedPolygonStyle",
          "title": "Style"
        },
        {
          "$ref": "#/definitions/ShaderStyle",
          "title": "Style"
        },
        {
          "$ref": "#/definitions/TerrainStyle",
          "title": "Style"
        },
        {
          "$ref": "#/definitions/TextTechniqueStyle",
          "title": "Style"
        },
        {
          "$ref": "#/definitions/NoneStyle",
          "title": "Style"
        }
      ],
      "title": "Style"
    },
    "Styles": {
      "type": "object",
      "additionalProperties": {
        "$ref": "#/definitions/StyleSet"
      },
      "title": "Styles",
      "description": "A dictionary of   s."
    },
    "SquaresStyle": {
      "title": "SquaresStyle",
      "description": "Render feature as set of squares rendered in screen space.\n\n@see ."
    },
    "CirclesStyle": {
      "title": "CirclesStyle",
      "description": "Render feature as set of circles rendered in screen space.\n\n@see ."
    },
    "PoiStyle": {
      "title": "PoiStyle",
      "description": "Render feature as POIs (icons and text) rendered in screen space.\n\n@see [[MarkerTechniqueParams]]."
    },
    "LineMarkerStyle": {
      "title": "LineMarkerStyle",
      "description": "Render feature as line markers, which is a recurring marker along a line (usually road).\n\n@see [[MarkerTechniqueParams]]."
    },
    "LineStyle": {
      "title": "LineStyle",
      "description": "Render feature as line."
    },
    "SegmentsStyle": {
      "title": "SegmentsStyle",
      "description": "Render feature as segments."
    },
    "SolidLineStyle": {
      "title": "SolidLineStyle"
    },
    "LabelRejectionLineStyle": {
      "title": "LabelRejectionLineStyle"
    },
    "FillStyle": {
      "title": "FillStyle"
    },
    "StandardStyle": {
      "title": "StandardStyle"
    },
    "TerrainStyle": {
      "title": "TerrainStyle"
    },
    "BasicExtrudedLineStyle": {
      "title": "BasicExtrudedLineStyle"
    },
    "StandardExtrudedLineStyle": {
      "title": "StandardExtrudedLineStyle"
    },
    "ExtrudedPolygonStyle": {
      "title": "ExtrudedPolygonStyle",
      "description": "Style used to draw a geometry as an extruded polygon, for example extruded buildings."
    },
    "ShaderStyle": {
      "title": "ShaderStyle"
    },
    "TextTechniqueStyle": {
      "title": "TextTechniqueStyle"
    },
    "NoneStyle": {
      "type": "object",
      "additionalProperties": {},
      "title": "NoneStyle"
    },
    "Light": {
      "anyOf": [
        {
          "$ref": "#/definitions/AmbientLight",
          "title": "Light"
        },
        {
          "$ref": "#/definitions/DirectionalLight",
          "title": "Light"
        }
      ],
      "title": "Light",
      "description": "Possible lights used for light the map."
    },
    "BaseLight": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "title": "BaseLight.type"
        },
        "name": {
          "type": "string",
          "title": "BaseLight.name"
        }
      },
      "required": [
        "type",
        "name"
      ],
      "additionalProperties": false,
      "title": "BaseLight"
    },
    "AmbientLight": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "const": "ambient",
          "title": "AmbientLight.type",
          "description": "The type of the light."
        },
        "color": {
          "type": "string",
          "title": "AmbientLight.color",
          "description": "The color of this ambient light."
        },
        "intensity": {
          "type": "number",
          "title": "AmbientLight.intensity",
          "description": "The intensity of this ambient light."
        }
      },
      "required": [
        "type",
        "color"
      ],
      "additionalProperties": false,
      "title": "AmbientLight",
      "description": "Ambient light"
    },
    "DirectionalLight": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "const": "directional",
          "title": "DirectionalLight.type",
          "description": "The type of the light."
        },
        "color": {
          "type": "string",
          "title": "DirectionalLight.color",
          "description": "The color of this directional light."
        },
        "intensity": {
          "type": "number",
          "title": "DirectionalLight.intensity",
          "description": "The intensity of this directional light."
        },
        "direction": {
          "$ref": "#/definitions/Vector3Like",
          "title": "DirectionalLight.direction",
          "description": "The direction of this directional light."
        },
        "castShadow": {
          "type": "boolean",
          "title": "DirectionalLight.castShadow",
          "description": "Determine if this light casts dynamic shadows.\n@defaultValue false"
        }
      },
      "required": [
        "type",
        "color",
        "intensity",
        "direction"
      ],
      "additionalProperties": false,
      "title": "DirectionalLight",
      "description": "Directional light."
    },
    "TextStyleDefinition": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "title": "TextStyleDefinition.name"
        },
        "fontCatalogName": {
          "type": "string",
          "title": "TextStyleDefinition.fontCatalogName"
        },
        "fontName": {
          "type": "string",
          "title": "TextStyleDefinition.fontName"
        },
        "size": {
          "type": "number",
          "title": "TextStyleDefinition.size"
        },
        "backgroundSize": {
          "type": "number",
          "title": "TextStyleDefinition.backgroundSize"
        },
        "fontStyle": {
          "type": "string",
          "enum": [
            "Regular",
            "Bold",
            "Italic",
            "BoldItalic"
          ],
          "title": "TextStyleDefinition.fontStyle"
        },
        "fontVariant": {
          "type": "string",
          "enum": [
            "Regular",
            "AllCaps",
            "SmallCaps"
          ],
          "title": "TextStyleDefinition.fontVariant"
        },
        "rotation": {
          "type": "number",
          "title": "TextStyleDefinition.rotation"
        },
        "color": {
          "type": "string",
          "title": "TextStyleDefinition.color",
          "description": "@format color-hex"
        },
        "backgroundColor": {
          "type": "string",
          "title": "TextStyleDefinition.backgroundColor",
          "description": "@format color-hex"
        },
        "opacity": {
          "type": "number",
          "title": "TextStyleDefinition.opacity"
        },
        "backgroundOpacity": {
          "type": "number",
          "title": "TextStyleDefinition.backgroundOpacity"
        },
        "tracking": {
          "type": "number",
          "title": "TextStyleDefinition.tracking"
        },
        "leading": {
          "type": "number",
          "title": "TextStyleDefinition.leading"
        },
        "maxLines": {
          "type": "number",
          "title": "TextStyleDefinition.maxLines"
        },
        "lineWidth": {
          "type": "number",
          "title": "TextStyleDefinition.lineWidth"
        },
        "canvasRotation": {
          "type": "number",
          "title": "TextStyleDefinition.canvasRotation"
        },
        "lineRotation": {
          "type": "number",
          "title": "TextStyleDefinition.lineRotation"
        },
        "wrappingMode": {
          "type": "string",
          "enum": [
            "None",
            "Character",
            "Word"
          ],
          "title": "TextStyleDefinition.wrappingMode"
        },
        "hAlignment": {
          "type": "string",
          "enum": [
            "Left",
            "Center",
            "Right"
          ],
          "title": "TextStyleDefinition.hAlignment"
        },
        "vAlignment": {
          "type": "string",
          "enum": [
            "Above",
            "Center",
            "Below"
          ],
          "title": "TextStyleDefinition.vAlignment"
        },
        "placements": {
          "type": "string",
          "title": "TextStyleDefinition.placements",
          "description": "@format comma separated list of placement tokens, i.e. \"TR, TL, C\"\n\n@see [[PlacementToken]]"
        }
      },
      "additionalProperties": false,
      "title": "TextStyleDefinition",
      "description": "Various text styles used with labels and texts."
    },
    "GradientSky": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "const": "gradient",
          "title": "GradientSky.type",
          "description": "Sky type."
        },
        "topColor": {
          "type": "string",
          "title": "GradientSky.topColor",
          "description": "Color of the upper part of the gradient.\n@format color-hex"
        },
        "bottomColor": {
          "type": "string",
          "title": "GradientSky.bottomColor",
          "description": "Color of bottom part of the gradient.\n@format color-hex"
        },
        "groundColor": {
          "type": "string",
          "title": "GradientSky.groundColor",
          "description": "Color of the ground plane.\n@format color-hex"
        },
        "monomialPower": {
          "type": "number",
          "title": "GradientSky.monomialPower",
          "description": "Texture's gradient power."
        }
      },
      "required": [
        "type",
        "topColor",
        "bottomColor",
        "groundColor"
      ],
      "additionalProperties": false,
      "title": "GradientSky",
      "description": "Interface that defines a procedural gradient sky."
    },
    "CubemapSky": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "const": "cubemap",
          "title": "CubemapSky.type",
          "description": "Sky type."
        },
        "positiveX": {
          "type": "string",
          "title": "CubemapSky.positiveX",
          "description": "Positive X cube map face."
        },
        "negativeX": {
          "type": "string",
          "title": "CubemapSky.negativeX",
          "description": "Negative X cube map face."
        },
        "positiveY": {
          "type": "string",
          "title": "CubemapSky.positiveY",
          "description": "Positive Y cube map face."
        },
        "negativeY": {
          "type": "string",
          "title": "CubemapSky.negativeY",
          "description": "Negative Y cube map face."
        },
        "positiveZ": {
          "type": "string",
          "title": "CubemapSky.positiveZ",
          "description": "Positive Z cube map face."
        },
        "negativeZ": {
          "type": "string",
          "title": "CubemapSky.negativeZ",
          "description": "Negative Z cube map face."
        }
      },
      "required": [
        "type",
        "positiveX",
        "negativeX",
        "positiveY",
        "negativeY",
        "positiveZ",
        "negativeZ"
      ],
      "additionalProperties": false,
      "title": "CubemapSky",
      "description": "Interface that defines a cubemap sky."
    },
    "Sky": {
      "anyOf": [
        {
          "$ref": "#/definitions/GradientSky",
          "title": "Sky"
        },
        {
          "$ref": "#/definitions/CubemapSky",
          "title": "Sky"
        }
      ],
      "title": "Sky",
      "description": "Interface that defines the options to configure the sky."
    },
    "Fog": {
      "type": "object",
      "properties": {
        "color": {
          "type": "string",
          "title": "Fog.color",
          "description": "Fog's color."
        },
        "startRatio": {
          "type": "number",
          "title": "Fog.startRatio",
          "description": "Distance ratio to far plane at which the linear fog begins."
        }
      },
      "required": [
        "color",
        "startRatio"
      ],
      "additionalProperties": false,
      "title": "Fog",
      "description": "Interface that defines the options to configure fog."
    },
    "ImageDefinition": {
      "type": "object",
      "properties": {
        "url": {
          "type": "string",
          "title": "ImageDefinition.url",
          "description": "Url to load content from."
        },
        "preload": {
          "type": "boolean",
          "title": "ImageDefinition.preload",
          "description": "`true` to start loading at init tile, `false` to lazily wait until required."
        },
        "atlas": {
          "type": "string",
          "title": "ImageDefinition.atlas",
          "description": "Url of JSON file containing the texture atlas"
        }
      },
      "required": [
        "url",
        "preload"
      ],
      "additionalProperties": false,
      "title": "ImageDefinition",
      "description": "Define an image (e.g. icon)."
    },
    "ImageDefinitions": {
      "type": "object",
      "additionalProperties": {
        "$ref": "#/definitions/ImageDefinition"
      },
      "title": "ImageDefinitions"
    },
    "ImageTexture": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "title": "ImageTexture.name",
          "description": "Name of ImageTexture. Used to reference texture in the styles."
        },
        "image": {
          "type": "string",
          "title": "ImageTexture.image",
          "description": "Name of ImageDefinition to use."
        },
        "origin": {
          "type": "string",
          "title": "ImageTexture.origin",
          "description": "Origin of image, defaults to \"topleft\""
        },
        "xOffset": {
          "type": "number",
          "title": "ImageTexture.xOffset",
          "description": "Specify sub-region: Defaults to 0."
        },
        "yOffset": {
          "type": "number",
          "title": "ImageTexture.yOffset",
          "description": "Specify sub-region: Defaults to 0."
        },
        "width": {
          "type": "number",
          "title": "ImageTexture.width",
          "description": "Specify sub-region:  Defaults to 0, meaning width is taken from loaded image."
        },
        "height": {
          "type": "number",
          "title": "ImageTexture.height",
          "description": "Specify sub-region:  Defaults to 0, meaning height is taken from loaded image."
        },
        "flipH": {
          "type": "boolean",
          "title": "ImageTexture.flipH",
          "description": "Defaults to false."
        },
        "flipV": {
          "type": "boolean",
          "title": "ImageTexture.flipV",
          "description": "Defaults to false."
        },
        "opacity": {
          "type": "number",
          "title": "ImageTexture.opacity",
          "description": "Defaults to 1."
        }
      },
      "required": [
        "name",
        "image"
      ],
      "additionalProperties": false,
      "title": "ImageTexture",
      "description": "Can be used to create a texture atlas."
    },
    "PoiTableRef": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "title": "PoiTableRef.name",
          "description": "Required name of the [[PoiTable]] for later reference."
        },
        "url": {
          "type": "string",
          "title": "PoiTableRef.url",
          "description": "Required URL from where to load [[PoiTable]].\n\nShould refer to JSON that is matched [[PoiTableDef]] interface."
        },
        "useAltNamesForKey": {
          "type": "boolean",
          "title": "PoiTableRef.useAltNamesForKey",
          "description": "If set to `true`, the list of values in the field \"altNames\" will be used as names for this\nPOI."
        }
      },
      "required": [
        "name",
        "url",
        "useAltNamesForKey"
      ],
      "additionalProperties": false,
      "title": "PoiTableRef",
      "description": "Definition for a [[PoiTable]] reference as part of the    object."
    },
    "PoiTableDef": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "title": "PoiTableDef.name",
          "description": "Name of the `PoiTable`. Must be unique."
        },
        "poiList": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/PoiTableEntryDef",
            "title": "PoiTableDef.poiList.[]"
          },
          "title": "PoiTableDef.poiList",
          "description": "Stores the list of   s."
        }
      },
      "additionalProperties": false,
      "title": "PoiTableDef",
      "description": "Interface for the JSON description of the [[PoiTable]]. It is being implemented in [[PoiTable]]."
    },
    "PoiTableEntryDef": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "title": "PoiTableEntryDef.name",
          "description": "Default name of the POI as the key for looking it up."
        },
        "altNames": {
          "type": "array",
          "items": {
            "type": "string",
            "title": "PoiTableEntryDef.altNames.[]"
          },
          "title": "PoiTableEntryDef.altNames",
          "description": "Alternative names of the POI."
        },
        "visible": {
          "type": "boolean",
          "title": "PoiTableEntryDef.visible",
          "description": "Visibility of the POI. If `false`, the POI will not be rendered."
        },
        "iconName": {
          "type": "string",
          "title": "PoiTableEntryDef.iconName",
          "description": "Name of the icon, defined in the the texture atlases."
        },
        "stackMode": {
          "type": "string",
          "title": "PoiTableEntryDef.stackMode",
          "description": "Stacking mode of the POI. For future use."
        },
        "priority": {
          "type": "number",
          "title": "PoiTableEntryDef.priority",
          "description": "Priority of the POI to select the visible set in case there are more POIs than can be\nhandled."
        },
        "iconMinLevel": {
          "type": "number",
          "title": "PoiTableEntryDef.iconMinLevel",
          "description": "Minimum zoom level to render the icon on."
        },
        "iconMaxLevel": {
          "type": "number",
          "title": "PoiTableEntryDef.iconMaxLevel",
          "description": "Maximum zoom level to render the icon on."
        },
        "textMinLevel": {
          "type": "number",
          "title": "PoiTableEntryDef.textMinLevel",
          "description": "Minimum zoom level to render the text label on."
        },
        "textMaxLevel": {
          "type": "number",
          "title": "PoiTableEntryDef.textMaxLevel",
          "description": "Maximum zoom level to render the text label on."
        }
      },
      "additionalProperties": false,
      "title": "PoiTableEntryDef",
      "description": "Interface descrining POI entries."
    },
    "FontCatalogConfig": {
      "type": "object",
      "properties": {
        "url": {
          "type": "string",
          "title": "FontCatalogConfig.url"
        },
        "name": {
          "type": "string",
          "title": "FontCatalogConfig.name"
        }
      },
      "required": [
        "url",
        "name"
      ],
      "additionalProperties": false,
      "title": "FontCatalogConfig",
      "description": "Fonts used for all text related rendering."
    }
  },
  "$id": "Theme.json",
  "$comment": "Generated from lib/Theme.ts by core-types-json-schema (https://github.com/grantila/core-types-json-schema) on behalf of typeconv (https://github.com/grantila/typeconv)"
}