{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/minecraft-data-pack-biome/latest.json",
  "title": "Minecraft Data Pack Biome",
  "description": "Configuration file defining a biome for a data pack for Minecraft",
  "x-lintel": {
    "source": "https://www.schemastore.org/minecraft-biome.json",
    "sourceSha256": "3ad2d453bdda6722d83dd522c1a3b80f13bf7efbe8018178c74b8acc770a4e1e",
    "fileMatch": [
      "**/data/*/worldgen/biome/*.json"
    ],
    "parsers": [
      "json"
    ]
  },
  "type": "object",
  "properties": {
    "depth": {
      "description": "Used for terrain noise generation. Biomes with positive depth are considered land, biomes with negative depth are oceans\n<https://minecraft.wiki/w/Custom_biome>",
      "type": "number"
    },
    "scale": {
      "description": "Used for terrain noise generation. Vertically stretches the terrain. Lower values produce flatter terrain\n<https://minecraft.wiki/w/Custom_biome>",
      "type": "number"
    },
    "has_precipitation": {
      "description": "Controls if the current biome has precipitation",
      "type": "boolean"
    },
    "category": {
      "type": "string",
      "enum": [
        "none",
        "taiga",
        "extreme_hills",
        "jungle",
        "mesa",
        "plains",
        "savanna",
        "icy",
        "the_end",
        "beach",
        "forest",
        "ocean",
        "desert",
        "river",
        "swamp",
        "mushroom",
        "nether"
      ]
    },
    "temperature": {
      "description": "A temperature for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
      "type": "number"
    },
    "temperature_modifier": {
      "description": "A temperature modifier for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
      "type": "string",
      "enum": [
        "none",
        "frozen"
      ],
      "default": "none"
    },
    "downfall": {
      "description": "A grass and foliage color for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
      "type": "number",
      "minimum": 0,
      "maximum": 1
    },
    "player_spawn_friendly": {
      "type": "boolean"
    },
    "creature_spawn_friendly": {
      "description": "Spawns passive mobs as long as random value is less than this\n<https://minecraft.wiki/w/Custom_biome>",
      "type": "number",
      "minimum": 0,
      "maximum": 1
    },
    "effects": {
      "title": "effect options",
      "description": "Effect options for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
      "type": "object",
      "properties": {
        "fog_color": {
          "description": "A fog color\n<https://minecraft.wiki/w/Custom_biome>",
          "type": "integer"
        },
        "foliage_color": {
          "description": "Decimal value converted from Hex color to use for tree leaves and vines. If not present, the value depends on humidity and temperature\n<https://minecraft.wiki/w/Custom_biome>",
          "type": "integer"
        },
        "grass_color": {
          "description": "A grass color\n<https://minecraft.wiki/w/Custom_biome>",
          "type": "integer"
        },
        "sky_color": {
          "description": "A sky color\n<https://minecraft.wiki/w/Custom_biome>",
          "type": "integer"
        },
        "water_color": {
          "description": "A water color\n<https://minecraft.wiki/w/Custom_biome>",
          "type": "integer"
        },
        "water_fog_color": {
          "description": "Decimal value converted from Hex color to use for fog\n<https://minecraft.wiki/w/Custom_biome>",
          "type": "integer"
        },
        "grass_color_modifier": {
          "description": "A grass color modifier\n<https://minecraft.wiki/w/Custom_biome>",
          "type": "string",
          "enum": [
            "none",
            "dark_forest",
            "swamp"
          ],
          "default": "none"
        },
        "particle": {
          "title": "particle options",
          "description": "Particle options for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
          "type": "object",
          "properties": {
            "probability": {
              "description": "A particle spawning frequency for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
              "type": "number",
              "minimum": 0,
              "maximum": 1
            },
            "options": {
              "title": "particle options",
              "description": "A particle type for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
              "type": "object",
              "properties": {
                "type": {
                  "description": "A particle type for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
                  "type": "string"
                },
                "value": {
                  "description": "A particle state for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
                  "type": "object",
                  "properties": {
                    "Name": {
                      "description": "A particle identifier for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
                      "type": "string",
                      "minLength": 1
                    }
                  },
                  "additionalProperties": {
                    "description": "Particle properties for the current biome\n<https://minecraft.wiki/w/Custom_biome>"
                  }
                }
              },
              "allOf": [
                {
                  "if": {
                    "properties": {
                      "type": {
                        "const": "item"
                      }
                    }
                  },
                  "then": {
                    "properties": {
                      "type": {
                        "description": "A particle type for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
                        "type": "string"
                      },
                      "value": {
                        "description": "A particle state for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
                        "type": "object",
                        "properties": {
                          "Name": {
                            "description": "A particle identifier for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
                            "type": "string",
                            "minLength": 1
                          }
                        },
                        "additionalProperties": {
                          "description": "Particle properties for the current biome\n<https://minecraft.wiki/w/Custom_biome>"
                        }
                      },
                      "id": {
                        "description": "A particle namespaced identifier for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
                        "type": "string",
                        "minLength": 1
                      },
                      "Count": {
                        "description": "A particle amount for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
                        "type": "integer",
                        "minimum": 0
                      },
                      "tag": {
                        "description": "A particle NBT data for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
                        "type": "string",
                        "minLength": 1
                      }
                    },
                    "additionalProperties": false,
                    "type": "object"
                  }
                },
                {
                  "if": {
                    "properties": {
                      "type": {
                        "const": "dust"
                      }
                    }
                  },
                  "then": {
                    "properties": {
                      "type": {
                        "description": "A particle type for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
                        "type": "string"
                      },
                      "value": {
                        "description": "A particle state for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
                        "type": "object",
                        "properties": {
                          "Name": {
                            "description": "A particle identifier for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
                            "type": "string",
                            "minLength": 1
                          }
                        },
                        "additionalProperties": {
                          "description": "Particle properties for the current biome\n<https://minecraft.wiki/w/Custom_biome>"
                        }
                      },
                      "color": {
                        "description": "A dust color for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
                        "type": "array",
                        "items": {
                          "description": "A dust color component for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
                          "type": "number",
                          "minimum": 0,
                          "maximum": 1
                        },
                        "minItems": 3,
                        "maxItems": 3
                      },
                      "scale": {
                        "description": "A particle size for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
                        "type": "number"
                      }
                    },
                    "additionalProperties": false,
                    "type": "object"
                  }
                },
                {
                  "if": {
                    "properties": {
                      "type": {
                        "const": "dust_color_transition"
                      }
                    }
                  },
                  "then": {
                    "properties": {
                      "type": {
                        "description": "A particle type for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
                        "type": "string"
                      },
                      "value": {
                        "description": "A particle state for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
                        "type": "object",
                        "properties": {
                          "Name": {
                            "description": "A particle identifier for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
                            "type": "string",
                            "minLength": 1
                          }
                        },
                        "additionalProperties": {
                          "description": "Particle properties for the current biome\n<https://minecraft.wiki/w/Custom_biome>"
                        }
                      },
                      "fromColor": {
                        "description": "A start dust color for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
                        "type": "array",
                        "items": {
                          "description": "A dust color component for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
                          "type": "number",
                          "minimum": 0,
                          "maximum": 1
                        },
                        "minItems": 3,
                        "maxItems": 3
                      },
                      "toColor": {
                        "description": "An end dust color for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
                        "type": "array",
                        "items": {
                          "description": "A dust color component for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
                          "type": "number",
                          "minimum": 0,
                          "maximum": 1
                        },
                        "minItems": 3,
                        "maxItems": 3
                      },
                      "scale": {
                        "description": "A particle size for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
                        "type": "number"
                      }
                    },
                    "additionalProperties": false,
                    "type": "object"
                  }
                },
                {
                  "if": {
                    "properties": {
                      "type": {
                        "const": "sculk_charge"
                      }
                    }
                  },
                  "then": {
                    "properties": {
                      "type": {
                        "description": "A particle type for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
                        "type": "string"
                      },
                      "value": {
                        "description": "A particle state for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
                        "type": "object",
                        "properties": {
                          "Name": {
                            "description": "A particle identifier for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
                            "type": "string",
                            "minLength": 1
                          }
                        },
                        "additionalProperties": {
                          "description": "Particle properties for the current biome\n<https://minecraft.wiki/w/Custom_biome>"
                        }
                      },
                      "roll": {
                        "description": "A particle angle in radians for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
                        "type": "number"
                      }
                    },
                    "additionalProperties": false,
                    "type": "object"
                  }
                },
                {
                  "if": {
                    "properties": {
                      "type": {
                        "const": "vibration"
                      }
                    }
                  },
                  "then": {
                    "properties": {
                      "type": {
                        "description": "A particle type for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
                        "type": "string"
                      },
                      "value": {
                        "description": "A particle state for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
                        "type": "object",
                        "properties": {
                          "Name": {
                            "description": "A particle identifier for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
                            "type": "string",
                            "minLength": 1
                          }
                        },
                        "additionalProperties": {
                          "description": "Particle properties for the current biome\n<https://minecraft.wiki/w/Custom_biome>"
                        }
                      },
                      "destination": {
                        "description": "A particle angle in radians for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
                        "properties": {
                          "type": {
                            "description": "A namespaced identifier of the position source type for the current biome\n<https://minecraft.wiki/w/Custom_biome>"
                          },
                          "y_offset": {
                            "description": "An offset from entity's feet for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
                            "type": "number",
                            "default": 0
                          }
                        },
                        "allOf": [
                          {
                            "if": {
                              "properties": {
                                "type": {
                                  "const": "block"
                                }
                              }
                            },
                            "then": {
                              "properties": {
                                "type": {
                                  "description": "A namespaced identifier of the position source type for the current biome\n<https://minecraft.wiki/w/Custom_biome>"
                                },
                                "y_offset": {
                                  "description": "An offset from entity's feet for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
                                  "type": "number",
                                  "default": 0
                                },
                                "pos": {
                                  "description": "A block position for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
                                  "type": "array",
                                  "items": {
                                    "description": "A position component for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
                                    "type": "integer"
                                  },
                                  "minItems": 3,
                                  "maxItems": 3
                                }
                              },
                              "additionalProperties": false,
                              "type": "object"
                            }
                          },
                          {
                            "if": {
                              "properties": {
                                "type": {
                                  "const": "entity"
                                }
                              }
                            },
                            "then": {
                              "properties": {
                                "type": {
                                  "description": "A namespaced identifier of the position source type for the current biome\n<https://minecraft.wiki/w/Custom_biome>"
                                },
                                "y_offset": {
                                  "description": "An offset from entity's feet for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
                                  "type": "number",
                                  "default": 0
                                },
                                "source_entity": {
                                  "description": "A block position for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
                                  "type": "array",
                                  "items": {
                                    "description": "A position component for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
                                    "type": "integer"
                                  },
                                  "minItems": 4,
                                  "maxItems": 4
                                }
                              },
                              "additionalProperties": false,
                              "type": "object"
                            }
                          }
                        ],
                        "type": "object"
                      },
                      "arrival_in_ticks": {
                        "description": "A particle move duration for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
                        "type": "integer",
                        "minimum": 0
                      }
                    },
                    "additionalProperties": false,
                    "type": "object"
                  }
                },
                {
                  "if": {
                    "properties": {
                      "type": {
                        "const": "shriek"
                      }
                    }
                  },
                  "then": {
                    "properties": {
                      "type": {
                        "description": "A particle type for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
                        "type": "string"
                      },
                      "value": {
                        "description": "A particle state for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
                        "type": "object",
                        "properties": {
                          "Name": {
                            "description": "A particle identifier for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
                            "type": "string",
                            "minLength": 1
                          }
                        },
                        "additionalProperties": {
                          "description": "Particle properties for the current biome\n<https://minecraft.wiki/w/Custom_biome>"
                        }
                      },
                      "delay": {
                        "description": "A particle delay in ticks for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
                        "type": "integer"
                      }
                    },
                    "additionalProperties": false,
                    "type": "object"
                  }
                }
              ]
            }
          },
          "additionalProperties": false
        },
        "ambient_sound": {
          "description": "Sound event to use for ambient sound\n<https://minecraft.wiki/w/Custom_biome>",
          "type": "string"
        },
        "mood_sound": {
          "title": "Mood Sound",
          "description": "Settings for mood sound\n<https://minecraft.wiki/w/Custom_biome>",
          "type": "object",
          "properties": {
            "sound": {
              "description": "Sound event to use\n<https://minecraft.wiki/w/Custom_biome>",
              "type": "string"
            },
            "tick_delay": {
              "type": "integer"
            },
            "block_search_context": {
              "description": "Determines the cubic range of possible positions to play the mood sound. The player is at the center of the cubic range, and the edge length is 2 * block_search_extent + 1\n<https://minecraft.wiki/w/Custom_biome>",
              "type": "integer"
            },
            "offset": {
              "type": "integer"
            }
          }
        },
        "additions_sound": {
          "title": "Additions Sound",
          "description": "Settings for additions sound\n<https://minecraft.wiki/w/Custom_biome>",
          "type": "object",
          "properties": {
            "sound": {
              "description": "Sound event to use\n<https://minecraft.wiki/w/Custom_biome>",
              "type": "string"
            },
            "tick_chance": {
              "title": "Tick Chance",
              "type": "integer"
            }
          }
        },
        "music": {
          "title": "Music",
          "description": "Specific music that should be played in the biome\n<https://minecraft.wiki/w/Custom_biome>",
          "type": "object",
          "properties": {
            "sound": {
              "description": "Sound event to use\n<https://minecraft.wiki/w/Custom_biome>",
              "type": "string"
            },
            "min_delay": {
              "type": "integer"
            },
            "max_delay": {
              "type": "integer"
            },
            "replace_current_music": {
              "description": "Whether or not to replace music which is already playing\n<https://minecraft.wiki/w/Custom_biome>",
              "type": "boolean"
            }
          }
        }
      },
      "additionalProperties": false
    },
    "surface_builder": {
      "description": "The namespaced id of the configured surface builder to use\n<https://minecraft.wiki/w/Custom_biome>",
      "type": "string"
    },
    "carvers": {
      "title": "carvers",
      "description": "Carvers to use for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
      "type": "object",
      "properties": {
        "air": {
          "description": "Carvers used during air generation step for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
          "type": "array",
          "uniqueItems": true,
          "items": {
            "description": "A namespaced id of a configured carver for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
            "type": "string",
            "minLength": 1
          }
        },
        "liquid": {
          "description": "Carvers used during liquid generation step for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
          "type": "array",
          "uniqueItems": true,
          "items": {
            "description": "A namespaced id of a configured carver for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
            "type": "string",
            "minLength": 1
          }
        }
      },
      "additionalProperties": false
    },
    "features": {
      "description": "Features for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
      "type": "array",
      "uniqueItems": true,
      "items": {
        "description": "A feature for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
        "type": [
          "string",
          "array"
        ]
      }
    },
    "creature_spawn_probability": {
      "description": "A creature spawn probability for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
      "type": "number",
      "minimum": 0,
      "exclusiveMaximum": 1
    },
    "starts": {
      "description": "The structures to generate in this biome\n<https://minecraft.wiki/w/Custom_biome>",
      "type": "array",
      "items": {
        "description": "The namespaced ID of a configured structure feature\n<https://minecraft.wiki/w/Custom_biome>",
        "type": "string"
      }
    },
    "spawners": {
      "title": "spawners",
      "description": "Entity spawning options for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
      "type": "object",
      "properties": {
        "monster": {
          "$ref": "#/$defs/spawner-options"
        },
        "creature": {
          "$ref": "#/$defs/spawner-options"
        },
        "ambient": {
          "$ref": "#/$defs/spawner-options"
        },
        "water_creature": {
          "$ref": "#/$defs/spawner-options"
        },
        "underground_water_creature": {
          "$ref": "#/$defs/spawner-options"
        },
        "water_ambient": {
          "$ref": "#/$defs/spawner-options"
        },
        "misc": {
          "$ref": "#/$defs/spawner-options"
        },
        "axolotls": {
          "$ref": "#/$defs/spawner-options"
        }
      },
      "additionalProperties": false
    },
    "spawn_costs": {
      "title": "spawn costs",
      "description": "Entity identifiers for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
      "type": "object",
      "additionalProperties": {
        "title": "entity identifier",
        "description": "A namespaced entity identifier for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
        "type": "object",
        "properties": {
          "energy_budget": {
            "description": "A new mob maximum potential for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
            "type": "number",
            "minimum": 0
          },
          "charge": {
            "description": "A new mob charge for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
            "type": "number",
            "minimum": 0
          }
        },
        "additionalProperties": false
      }
    }
  },
  "$comment": "https://minecraft.wiki/w/Biome/JSON_format",
  "$defs": {
    "spawner-options": {
      "description": "Spawner options for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
      "type": "array",
      "uniqueItems": true,
      "items": {
        "title": "swawner options",
        "description": "A spawner for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
        "type": "object",
        "properties": {
          "type": {
            "description": "A mob namespaced entity for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
            "type": "string"
          },
          "weight": {
            "description": "A mod spawn factor for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
            "type": "integer",
            "minimum": 0
          },
          "minCount": {
            "description": "A minimum mob spawn in a pack for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
            "type": "integer",
            "minimum": 0
          },
          "maxCount": {
            "description": "A maximum mob spawn in a pack for the current biome\n<https://minecraft.wiki/w/Custom_biome>",
            "type": "integer",
            "minimum": 0
          }
        },
        "additionalProperties": false
      }
    }
  }
}
