{
  "$id": "blockception.minecraft.resource.1.8.0.attachables",
  "type": "object",
  "title": "Actor Animation 1.8.0",
  "description": "UNDOCUMENTED.",
  "$comment": "UNDOCUMENTED",
  "required": ["format_version", "minecraft:attachable"],
  "properties": {
    "format_version": {
      "title": "1.8.0 Format Version",
      "type": "string",
      "pattern": "^1.8.0$",
      "description": "A version that tells minecraft what type of data format can be expected when reading this file."
    },
    "minecraft:attachable": {
      "type": "object",
      "title": "Attachables",
      "description": "The attachables definition for 1.8.0",
      "required": ["description"],
      "properties": {
        "description": {
          "additionalProperties": false,
          "title": "Description",
          "description": "UNDOCUMENTED: description.",
          "type": "object",
          "required": ["identifier", "geometry"],
          "properties": {
            "animations": {
              "description": "The connecting of animations in animations controllers with the actuall animations, names should corosponds.",
              "title": "Animations",
              "type": "object",
              "minProperties": 1,
              "additionalProperties": { "type": "string", "description": "UNDOCUMENTED: additionalProperties.", "title": "Animation" }
            },
            "animation_controllers": {
              "type": "array",
              "minItems": 1,
              "description": "UNDOCUMENTED: animation controllers.",
              "title": "Animation Controllers",
              "items": {
                "type": "object",
                "additionalProperties": { "type": "string", "description": "UNDOCUMENTED: additionalProperties.", "title": "Animation Controller" },
                "description": "UNDOCUMENTED: animation controllers.",
                "title": "Animation Controllers"
              }
            },
            "enable_attachables": { "type": "boolean", "description": "UNDOCUMENTED: enable attachables.", "title": "Enable Attachables" },
            "geometry": {
              "title": "Geometry",
              "type": "object",
              "minProperties": 1,
              "additionalProperties": { "type": "string", "description": "UNDOCUMENTED: additionalProperties.", "title": "Geometry" },
              "description": "UNDOCUMENTED: geometry."
            },
            "identifier": {
              "type": "string",
              "description": "UNDOCUMENTED: identifier.",
              "title": "Identifier",
              "$ref": "../../../general/item/identifier.json"
            },
            "item": {
              "type": "object",
              "title": "Item",
              "description": "UNDOCUMENTED.",
              "$comment": "UNDOCUMENTED",
              "additionalProperties": {
                "type": "string",
                "title": "Item",
                "description": "UNDOCUMENTED.",
                "$comment": "UNDOCUMENTED"
              }
            },
            "materials": {
              "type": "object",
              "description": "UNDOCUMENTED: materials.",
              "title": "Materials",
              "additionalProperties": { "type": "string", "description": "UNDOCUMENTED: additionalProperties.", "title": "Material" }
            },
            "min_engine_version": {
              "type": "string",
              "pattern": "[0-9]+\\.[0-9]+\\.[0-9]+",
              "description": "UNDOCUMENTED: Minimum engine version.",
              "title": "Minimum Engine Version"
            },
            "particle_effects": {
              "type": "object",
              "minProperties": 1,
              "additionalProperties": { "type": "string", "description": "UNDOCUMENTED: additionalProperties.", "title": "Particle Effects" },
              "description": "UNDOCUMENTED: particle effects.",
              "title": "Particle Effects"
            },
            "particle_emitters": {
              "type": "object",
              "minProperties": 1,
              "additionalProperties": { "type": "string", "description": "UNDOCUMENTED: additionalProperties.", "title": "Particle Emitter" },
              "description": "UNDOCUMENTED: particle emitters.",
              "title": "Particle Emitters"
            },
            "render_controllers": {
              "type": "array",
              "description": "UNDOCUMENTED: render controllers.",
              "title": "Render Controllers",
              "minItems": 1,
              "items": { "type": "string", "description": "UNDOCUMENTED: render controllers.", "title": "Render Controllers" }
            },
            "sound_effects": {
              "type": "array",
              "description": "UNDOCUMENTED: sound effects.",
              "title": "Sound Effects",
              "minItems": 1,
              "items": { "type": "string", "description": "UNDOCUMENTED: sound effects.", "title": "Sound Effects" }
            },
            "spawn_egg": {
              "type": "object",
              "description": "UNDOCUMENTED: spawn egg.",
              "title": "Spawn Egg",
              "dependencies": {
                "texture": ["texture_index"],
                "texture_index": ["texture"],
                "base_colour": ["overlay_color"],
                "overlay_color": ["base_colour"]
              },
              "properties": {
                "base_colour": { "type": "string", "description": "UNDOCUMENTED: base colour.", "title": "Base Colour" },
                "overlay_color": { "type": "string", "description": "UNDOCUMENTED: overlay color.", "title": "Overlay Color" },
                "texture": { "type": "string", "description": "UNDOCUMENTED: texture.", "title": "Texture" },
                "texture_index": { "type": "integer", "description": "UNDOCUMENTED: texture index.", "title": "Texture Index" }
              }
            },
            "scripts": {
              "type": "object",
              "description": "UNDOCUMENTED: scripts.",
              "title": "Scripts",
              "properties": {
                "pre_animation": {
                  "type": "array",
                  "items": {
                    "pattern": ";$",
                    "$ref": "../../../molang/number.json",
                    "description": "UNDOCUMENTED: pre aninamtion.",
                    "title": "Pre Animation"
                  },
                  "description": "UNDOCUMENTED: pre aninamtion.",
                  "title": "Pre Animation"
                },
                "scale": { "type": "string", "description": "UNDOCUMENTED: scale.", "title": "Scale" },
                "animate": {
                  "type": "array",
                  "title": "Animate",
                  "items": {
                    "oneOf": [
                      { "type": "string", "description": "UNDOCUMENTED: oneOf[0].", "title": "Animate" },
                      {
                        "type": "object",
                        "minProperties": 1,
                        "additionalProperties": { "type": "string", "description": "UNDOCUMENTED: additionalProperties.", "title": "Animate" },
                        "description": "UNDOCUMENTED: oneOf[1].",
                        "title": "Animate"
                      }
                    ],
                    "description": "UNDOCUMENTED: animate.",
                    "title": "Animate"
                  },
                  "description": "UNDOCUMENTED: animate."
                },
                "parent_setup": { "$ref": "../../../molang/number.json" }
              }
            },
            "textures": {
              "type": "object",
              "additionalProperties": { "type": "string", "description": "UNDOCUMENTED: additionalProperties.", "title": "Textures" },
              "description": "UNDOCUMENTED: textures.",
              "title": "Textures"
            }
          }
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
