{
  "$defs": {
    "__schema0": {
      "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$",
      "title": "EntityId",
      "type": "string"
    },
    "__schema1": {
      "$ref": "#/$defs/__schema2"
    },
    "__schema10": {
      "items": false,
      "maxItems": 2,
      "minItems": 2,
      "prefixItems": [
        {
          "type": "number"
        },
        {
          "type": "number"
        }
      ],
      "type": "array"
    },
    "__schema11": {
      "items": false,
      "maxItems": 3,
      "minItems": 3,
      "prefixItems": [
        {
          "type": "number"
        },
        {
          "type": "number"
        },
        {
          "type": "number"
        }
      ],
      "type": "array"
    },
    "__schema12": {
      "items": false,
      "maxItems": 4,
      "minItems": 4,
      "prefixItems": [
        {
          "type": "number"
        },
        {
          "type": "number"
        },
        {
          "type": "number"
        },
        {
          "type": "number"
        }
      ],
      "type": "array"
    },
    "__schema13": {
      "additionalProperties": false,
      "properties": {
        "a": {
          "type": "number"
        },
        "b": {
          "type": "number"
        },
        "g": {
          "type": "number"
        },
        "r": {
          "type": "number"
        }
      },
      "required": [
        "r",
        "g",
        "b",
        "a"
      ],
      "type": "object"
    },
    "__schema14": {
      "anyOf": [
        {
          "enum": [
            "engine.time",
            "engine.paint_dimensions",
            "engine.reference_to_world_raster_scale",
            "engine.context_logical_to_raster_scale",
            "engine.viewport_pixel_dimensions",
            "engine.pointer_position",
            "engine.pointer_valid",
            "rmlui.media_query_resolution",
            "engine.hotspot_bounds",
            "engine.hotspot_hovered",
            "engine.hotspot_pressed",
            "engine.hotspot_image_dimensions",
            "engine.hotspot_mask_dimensions"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "__schema15": {
      "additionalProperties": false,
      "properties": {
        "control": {
          "enum": [
            "number",
            "slider",
            "color",
            "toggle",
            "vector"
          ],
          "type": "string"
        },
        "label": {
          "type": "string"
        },
        "range": {
          "items": false,
          "maxItems": 2,
          "minItems": 2,
          "prefixItems": [
            {
              "type": "number"
            },
            {
              "type": "number"
            }
          ],
          "type": "array"
        }
      },
      "type": "object"
    },
    "__schema16": {
      "anyOf": [
        {
          "minLength": 1,
          "type": "string"
        },
        {
          "additionalProperties": false,
          "properties": {
            "alias": {
              "minLength": 1,
              "type": "string"
            }
          },
          "required": [
            "alias"
          ],
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "uri": {
              "minLength": 1,
              "type": "string"
            }
          },
          "required": [
            "uri"
          ],
          "type": "object"
        }
      ]
    },
    "__schema17": {
      "enum": [
        "clamp",
        "repeat"
      ],
      "type": "string"
    },
    "__schema18": {
      "enum": [
        "inherit",
        "nearest",
        "linear"
      ],
      "type": "string"
    },
    "__schema19": {
      "anyOf": [
        {
          "enum": [
            "engine.hotspot_image",
            "engine.hotspot_mask"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "__schema2": {
      "anyOf": [
        {
          "additionalProperties": false,
          "properties": {
            "kind": {
              "const": "project",
              "type": "string"
            },
            "path": {
              "pattern": "^shaders\\/(?!.*(?:^|\\/)\\.\\.(?:\\/|$))(?!.*\\\\)(?!.*\\/\\/)[^/].*$",
              "type": "string"
            }
          },
          "required": [
            "kind",
            "path"
          ],
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "kind": {
              "const": "engine",
              "type": "string"
            },
            "path": {
              "pattern": "^engine:\\/(?!.*(?:^|\\/)\\.\\.(?:\\/|$))(?!.*\\\\).+$",
              "type": "string"
            }
          },
          "required": [
            "kind",
            "path"
          ],
          "type": "object"
        }
      ]
    },
    "__schema20": {
      "additionalProperties": false,
      "properties": {
        "label": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "__schema3": {
      "$ref": "#/$defs/__schema2"
    },
    "__schema4": {
      "$ref": "#/$defs/__schema2"
    },
    "__schema5": {
      "enum": [
        "float",
        "vec2",
        "vec3",
        "vec4",
        "color",
        "int",
        "bool"
      ],
      "type": "string"
    },
    "__schema6": {
      "anyOf": [
        {
          "$ref": "#/$defs/__schema7"
        },
        {
          "$ref": "#/$defs/__schema8"
        },
        {
          "$ref": "#/$defs/__schema9"
        },
        {
          "$ref": "#/$defs/__schema10"
        },
        {
          "$ref": "#/$defs/__schema11"
        },
        {
          "$ref": "#/$defs/__schema12"
        },
        {
          "$ref": "#/$defs/__schema13"
        }
      ],
      "title": "ShaderUniformValue"
    },
    "__schema7": {
      "type": "null"
    },
    "__schema8": {
      "type": "number"
    },
    "__schema9": {
      "type": "boolean"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false,
  "properties": {
    "data": {
      "additionalProperties": false,
      "properties": {
        "base": {
          "oneOf": [
            {
              "additionalProperties": false,
              "properties": {
                "kind": {
                  "const": "preset",
                  "type": "string"
                },
                "preset": {
                  "enum": [
                    "engine-2d",
                    "active-text",
                    "rmlui-decorator",
                    "postprocess-tint",
                    "hotspot-overlay-alpha",
                    "hotspot-overlay-custom"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "kind",
                "preset"
              ],
              "type": "object"
            },
            {
              "additionalProperties": false,
              "properties": {
                "kind": {
                  "const": "material",
                  "type": "string"
                },
                "material": {
                  "$ref": "#/$defs/__schema0"
                }
              },
              "required": [
                "kind",
                "material"
              ],
              "type": "object"
            }
          ]
        },
        "displayName": {
          "type": "string"
        },
        "parameters": {
          "additionalProperties": {
            "additionalProperties": false,
            "properties": {
              "binding": {
                "$ref": "#/$defs/__schema14"
              },
              "editor": {
                "$ref": "#/$defs/__schema15"
              },
              "type": {
                "$ref": "#/$defs/__schema5"
              },
              "value": {
                "$ref": "#/$defs/__schema6"
              }
            },
            "type": "object",
            "x-noveltea-documentation": {
              "constraints": [
                "A Material parameter override must set at least one override field."
              ]
            }
          },
          "default": {},
          "propertyNames": {
            "minLength": 1,
            "type": "string"
          },
          "type": "object"
        },
        "preview": {
          "additionalProperties": false,
          "properties": {
            "background": {
              "enum": [
                "transparent",
                "checker",
                "dark",
                "light"
              ],
              "type": "string"
            },
            "geometry": {
              "enum": [
                "quad",
                "rounded-rect",
                "sprite",
                "glyphs"
              ],
              "type": "string"
            }
          },
          "type": "object"
        },
        "shader": {
          "additionalProperties": false,
          "properties": {
            "fragment": {
              "$ref": "#/$defs/__schema3"
            },
            "varying": {
              "$ref": "#/$defs/__schema4"
            },
            "vertex": {
              "$ref": "#/$defs/__schema1"
            }
          },
          "type": "object",
          "x-noveltea-documentation": {
            "constraints": [
              "A custom shader override must set at least one of vertex, fragment, or varying."
            ]
          }
        },
        "textures": {
          "additionalProperties": {
            "additionalProperties": false,
            "properties": {
              "address": {
                "$ref": "#/$defs/__schema17"
              },
              "binding": {
                "$ref": "#/$defs/__schema19"
              },
              "editor": {
                "$ref": "#/$defs/__schema20"
              },
              "filter": {
                "$ref": "#/$defs/__schema18"
              },
              "source": {
                "$ref": "#/$defs/__schema16"
              }
            },
            "type": "object",
            "x-noveltea-documentation": {
              "constraints": [
                "A Material texture override must set at least one override field."
              ]
            }
          },
          "default": {},
          "propertyNames": {
            "minLength": 1,
            "type": "string"
          },
          "type": "object"
        }
      },
      "required": [
        "base"
      ],
      "type": "object"
    },
    "description": {
      "type": "string"
    },
    "id": {
      "$ref": "#/$defs/__schema0"
    },
    "label": {
      "minLength": 1,
      "type": "string"
    },
    "narrativeRefs": {
      "items": {
        "pattern": "^(?:creative-direction|arc|milestone|event|character|fact|world-entity|relationship|revelation|choice-point|puzzle|authored-content|narrative-position)\\.[a-z][a-z0-9]*(?:-[a-z0-9]+)*$",
        "type": "string"
      },
      "type": "array"
    }
  },
  "required": [
    "id",
    "label",
    "data"
  ],
  "type": "object"
}
