# hbm:windowed_ore

Places vanilla ore veins inside a seed-derived square window.

## Fields

| Field | Meaning and default | Range |
| - | - | - |
| `attempts` | Upper bound for random vein attempts per chunk. | `[1, i32::MAX]` |
| `maximum_center_radius` | Maximum radius for the seed-derived window centre. | `[0, i32::MAX]` |
| `min_y` | Lowest sampled Y. | `i32` |
| `minimum_center_radius` | Minimum radius for the seed-derived window centre. | `[0, i32::MAX]` |
| `vein` | Vanilla ore configuration for each accepted vein attempt. | |
| `vein.size` | Maximum vein size. | `[0, 64]` |
| `vein.discard_chance_on_air_exposure` | Chance to discard ore exposed to air. | `[0, 1]` |
| `vein.targets` | Replacement targets and states. | |
| `vein.targets[].target` | Vanilla rule test selecting replaceable blocks. | |
| `vein.targets[].state` | Block state placed in the vein. | |
| `window_size` | Side length of the square placement window. | `[1, i32::MAX]` |
| `y_range` | Height of the sampled Y interval. | `[1, i32::MAX]` |

The top-level `type` selects this feature; the remaining fields belong beside it.

## Example

Source path: `data/hbm/worldgen/feature/ore_australium.json`

```json
{
  "type": "hbm:windowed_ore",
  "attempts": 4,
  "maximum_center_radius": 700,
  "min_y": 15,
  "minimum_center_radius": 350,
  "vein": {
    "discard_chance_on_air_exposure": 0.0,
    "size": 50,
    "targets": [
      {
        "state": "hbm:ore_australium",
        "target": {
          "predicate_type": "minecraft:tag_match",
          "tag": "minecraft:stone_ore_replaceables"
        }
      }
    ]
  },
  "window_size": 101,
  "y_range": 15
}
```
