{
  "$schema": "http://json-schema.org/draft-07/schema",
  "$id": "blockception.minecraft.block.json",
  "type": "object",
  "title": "Blocks",
  "description": "The minecraft block definition file.",
  "definitions": {
    "texture": {
      "oneOf": [
        { "type": "string" },
        {
          "additionalProperties": false,
          "type": "object",
          "properties": {
            "down": { "type": "string", "pattern": "^[\\w_\\-]+$" },
            "up": { "type": "string", "pattern": "^[\\w_\\-]+$" },
            "side": { "type": "string", "pattern": "^[\\w_\\-]+$" },
            "south": { "type": "string", "pattern": "^[\\w_\\-]+$" },
            "north": { "type": "string", "pattern": "^[\\w_\\-]+$" },
            "west": { "type": "string", "pattern": "^[\\w_\\-]+$" },
            "east": { "type": "string", "pattern": "^[\\w_\\-]+$" }
          }
        }
      ]
    }
  },
  "propertyNames": { "pattern": "^[\\w_\\-:\\.]+$" },
  "properties": {
    "format_version": {
      "oneOf": [
        { "$ref": "../general/format_version.json" },
        {
          "title": "Format Version",
          "description": "A version that tells Minecraft what type of data format can be expected when reading this file.",
          "type": "array",
          "default": [1, 1, 0],
          "examples": [[1, 1, 0]],
          "items": {
            "type": "integer"
          },
          "minItems": 3,
          "maxItems": 3,
          "uniqueItems": false,
          "defaultSnippets": [
            {
              "label": "New Format version",
              "body": [1, 1, 0]
            }
          ]
        }
      ]
    }
  },
  "additionalProperties": {
    "additionalProperties": false,
    "title": "Block",
    "description": "Block texture definition.",
    "type": "object",
    "properties": {
      "brightness_gamma": {
        "type": "number",
        "title": "Brightness Gamma",
        "description": "Specifies the gamma brightness level to apply to the block texture."
      },
      "carried_textures": {
        "$ref": "#/definitions/texture",
        "title": "Carried Textures",
        "description": "Carried Textures."
      },
      "isotropic": {
        "title": "Isotropic",
        "description": "Marks if this block is isotropic or not, or which side are.",
        "oneOf": [
          { "type": "boolean" },
          {
            "additionalProperties": false,
            "type": "object",
            "properties": {
              "down": { "type": "boolean" },
              "up": { "type": "boolean" },
              "side": { "type": "boolean" },
              "south": { "type": "boolean" },
              "north": { "type": "boolean" },
              "west": { "type": "boolean" },
              "east": { "type": "boolean" }
            }
          }
        ]
      },
      "sound": { "type": "string", "title": "Sound", "description": "The sound definition of this block." },
      "textures": { "$ref": "#/definitions/texture", "title": "Sound", "description": "Textures." }
    }
  }
}
