{
  "$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.", 
        "enum": [
          "amethyst_block",
          "amethyst_cluster",
          "ancient_debris",
          "anvil",
          "azalea",
          "azalea_leaves",
          "bamboo",
          "bamboo_sapling",
          "bamboo_wood",
          "bamboo_wood_hanging_sign",
          "basalt",
          "big_dripleaf",
          "bone_block",
          "calcite",
          "candle",
          "cave_vines",
          "chain",
          "cherry_leaves",
          "cherry_wood",
          "cherry_wood_hanging_sign",
          "chiseled_bookshelf",
          "cloth",
          "comparator",
          "copper",
          "copper_bulb",
          "copper_grate",
          "coral",
          "decorated_pot",
          "deepslate",
          "deepslate_bricks",
          "dirt_with_roots",
          "dripstone_block",
          "frog_spawn",
          "froglight",
          "fungus",
          "glass",
          "grass",
          "gravel",
          "hanging_roots",
          "hanging_sign",
          "heavy_core",
          "honey_block",
          "itemframe",
          "ladder",
          "lantern",
          "large_amethyst_bud",
          "lever",
          "lodestone",
          "mangrove_roots",
          "medium_amethyst_bud",
          "metal",
          "moss_block",
          "moss_carpet",
          "mud",
          "mud_bricks",
          "muddy_mangrove_roots",
          "nether_brick",
          "nether_gold_ore",
          "nether_sprouts",
          "nether_wart",
          "nether_wood",
          "nether_wood_hanging_sign",
          "netherite",
          "netherrack",
          "nylium",
          "packed_mud",
          "pink_petals",
          "pointed_dripstone",
          "polished_tuff",
          "powder_snow",
          "roots",
          "sand",
          "scaffolding",
          "sculk",
          "sculk_catalyst",
          "sculk_sensor",
          "sculk_shrieker",
          "sculk_vein",
          "shroomlight",
          "slime",
          "small_amethyst_bud",
          "snow",
          "soul_sand",
          "soul_soil",
          "spore_blossom",
          "stem",
          "stone",
          "suspicious_gravel",
          "suspicious_sand",
          "sweet_berry_bush",
          "trial_spawner",
          "tuff",
          "tuff_bricks",
          "vault",
          "vines",
          "web",
          "wood"
        ]
      },
      "textures": { "$ref": "#/definitions/texture", "title": "Textures", "description": "Textures." }
    }
  }
}
