# Crucible

Crucible recipes have no item output; the recipe selector shows `icon`.

## Fields

| Field | Meaning and default | Range |
| - | - | - |
| `type` | Selects the `hbm:crucible` recipe format. | |
| `name` (Optional) | Internal lookup name; defaults to the last segment of the recipe resource path. | |
| `icon` (Optional) | Stack template displayed for the recipe; otherwise derived from the output. | |
| `icon.id` | Item ID. | |
| `icon.count` (Optional) | Stack size; default 1. | `[1, 99]` |
| `icon.components` (Optional) | Item-component values. | |
| `name_wrapper` (Optional) | Translation key applied around the displayed recipe name. | |
| `custom_localization` (Optional) | Resolves the internal name as a translation key when true; defaults to false. | |
| `order` (Optional) | Sort position within the recipe table; lower values first, default 2147483647. | `i32` |
| `frequency` (Optional) | Positive tick interval for crucible recipe application; default 1. | `[1, i32::MAX]` |
| `input_materials` | Nonempty material stacks consumed by the crucible; every amount must be positive. | |
| `input_materials.material` | NTM material name. | |
| `input_materials.amount` | Quantity in NTM material units. | `i32` |
| `output_materials` (Optional) | Material stacks produced by the crucible; default empty. | |
| `output_materials.material` | NTM material name. | |
| `output_materials.amount` | Quantity in NTM material units. | `i32` |

## Example

Source path: `data/hbm/recipe/crucible/crucible.cdalloy.json`

```json
{
  "type": "hbm:crucible",
  "frequency": 9,
  "icon": {
    "id": "hbm:ingot_cdalloy"
  },
  "input_materials": [
    {
      "amount": 64,
      "material": "steel"
    },
    {
      "amount": 8,
      "material": "cadmium"
    }
  ],
  "order": 7,
  "output_materials": [
    {
      "amount": 72,
      "material": "cd_alloy"
    }
  ]
}
```
