{
  "$schema": "http://json-schema.org/draft-07/schema",
  "$id": "blockception.minecraft.resource.texture.terrain_texture",
  "additionalProperties": false,
  "type": "object",
  "title": "Terrain Texture File",
  "description": "An collection of texture definitions.",
  "$comment": "UNDOCUMENTED",
  "definitions": {
    "texture": {
      "oneOf": [
        { "description": "A texture file.", "type": "string", "pattern": "^textures/.+$", "title": "Texture" },
        {
          "type": "object",
          "additionalProperties": false,
          "description": "A collection of texture files.",
          "title": "Texture",
          "properties": {
            "overlay_color": {
              "description": "The color to apply to the texture.",
              "title": "Overlay Color",
              "format": "color-hex",
              "examples": ["#FFFFFF"]
            },
            "path": { "description": "A texture file.", "type": "string", "pattern": "^textures/.+$", "title": "Path" },
            "tint_color": {
              "title": "Tint Color",
              "description": "The tint color to be applied to the texture.",
              "$comment": "UNDOCUMENTED",
              "format": "color-hex",
              "examples": ["#FFFFFF"],
              "type": "string"
            },
            "variations": {
              "type": "array",
              "title": "Variantions",
              "description": "The possible variations to use for this texture.",
              "$comment": "UNDOCUMENTED",
              "items": {
                "type": "object",
                "title": "Variantion",
                "description": "One of the variantions, specified along with a possible weight.",
                "$comment": "UNDOCUMENTED",
                "required": ["path"],
                "properties": {
                  "path": { "description": "A texture file.", "type": "string", "pattern": "^textures/.+$", "title": "Path" },
                  "weight": { "type": "integer", "title": "Weight", "description": "The weight of the texture.", "$comment": "UNDOCUMENTED" }
                }
              }
            }
          }
        }
      ]
    }
  },
  "properties": {
    "num_mip_levels": { "type": "integer", "title": "Num Mip Levels", "description": "Sets the number of mipmap levels for better texture quality at varying distances.", "$comment": "UNDOCUMENTED" },
    "padding": { "type": "integer", "title": "Padding", "description": "Adds buffer space to prevent textures from bleeding into each other.", "$comment": "UNDOCUMENTED" },
    "resource_pack_name": { "type": "string", "title": "Resource Pack Name", "description": "UNDOCUMENTED.", "$comment": "UNDOCUMENTED" },
    "texture_data": {
      "type": "object",
      "propertyNames": { "pattern": "^[a-z0-9_:\\-]*$" },
      "additionalProperties": {
        "type": "object",
        "title": "Texture Data",
        "description": "UNDOCUMENTED.",
        "$comment": "UNDOCUMENTED",
        "properties": {
          "textures": { "oneOf": [{ "$ref": "#/definitions/texture" }, { "type": "array", "items": { "$ref": "#/definitions/texture" } }] }
        }
      },
      "description": "UNDOCUMENTED.",
      "$comment": "UNDOCUMENTED",
      "title": "Texture Data"
    },
    "texture_name": { "type": "string", "description": "UNDOCUMENTED.", "$comment": "UNDOCUMENTED", "title": "Texture Name" }
  }
}
