{
  "$schema": "http://json-schema.org/draft-07/schema",
  "$id": "blockception.minecraft.behavior.cameras.preset",
  "defaultSnippets": [
    {
      "format_version": "${1:1.20.80}",
      "minecraft:npc_dialogue": {
        "identifier": "$2",
        "inherit_from": "$3",
        "pos_x": 30,
        "pos_y": 90,
        "pos_z": -20,
        "rot_x": 10,
        "rot_y": 40
      }
    }
  ],
  "examples": [
    {
      "format_version": "1.20.80",
      "minecraft:npc_dialogue": {
        "identifier": "example:custom",
        "inherit_from": "minecraft:free",
        "pos_x": 30,
        "pos_y": 90,
        "pos_z": -20,
        "rot_x": 10,
        "rot_y": 40
      }
    }
  ],
  "type": "object",
  "title": "Camera Preset",
  "description": "A camera preset is a set of values that define a camera's position and rotation. This can be used to quickly set a camera to a specific position and rotation.",
  "additionalProperties": false,
  "required": ["format_version", "minecraft:camera_preset"],
  "properties": {
    "format_version": { "$ref": "../../../general/format_version.json" },
    "minecraft:camera_preset": {
      "identifier": {
        "type": "string",
        "description": "The identifier of the camera preset. This is used to reference the camera preset in other components.",
        "$ref": "../../../general/cameras/identifier.json"
      },
      "inherit_from": {
        "type": "string",
        "description": "The identifier of the camera preset to inherit from. This will copy the values from the inherited camera preset and then apply the values from this camera preset.",
        "$ref": "../../../general/cameras/identifier.json"
      },
      "player_effects": {
        "type": "boolean",
        "description": "If true, the camera will apply player effects such as nausea and blindness.",
        "default": false
      },
      "listener": {
        "type": "string",
        "description": "Specifies what / who acts as the ears for the camera.",
        "examples": ["player"]
      },
      "pos_x": {
        "type": "number",
        "description": "The x position of the camera.",
        "default": 0
      },
      "pos_y": {
        "type": "number",
        "description": "The y position of the camera.",
        "default": 0
      },
      "pos_z": {
        "type": "number",
        "description": "The z position of the camera.",
        "default": 0
      },
      "rot_x": {
        "type": "number",
        "description": "The pitch of the camera. positive values look down, negative values look up.",
        "default": 0,
        "examples": [0, 22.5, 45, 67.5, 90, -22.5, -45, -67.5, -90]
      },
      "rot_y": {
        "type": "number",
        "description": "The yaw of the camera. This is the direction the camera is facing.",
        "default": 0,
        "examples": [0, 90, 180, 270]
      }
    }
  }
}
