# Fusion Reactor Vessel

The vessel has no item slots; a row with `input_items` never runs. It burns up to three input fluids from 4,000 mB tanks and spends `power` every tick, both multiplied by its factor: the lowest of the power and fuel factors, each 1 at half capacity or more and proportionally lower below. Progress advances by the factor divided by `duration` per tick. The vessel produces the first output position and the first output fluid; attached collectors add extra outputs. Each item of a `chance` output rolls separately.

## Fields

| Field | Meaning and default | Range |
| - | - | - |
| `type` | Selects the `hbm:fusion` recipe format. | |
| `name` (Optional) | Internal lookup name; defaults to the last segment of the recipe resource path. | |
| `input_fluids` (Optional) | Ordered fluid inputs with amount and pressure; defaults to an empty list. | |
| `input_fluids.type` | Registered fluid ID. | |
| `input_fluids.amount` | Amount in mB; use $[1, \mathrm{tank\ capacity}]$ for transfers because machine code casts to int. | `i64` |
| `input_fluids.pressure` (Optional) | Pressure level; default 0. | `i32` |
| `output_items` (Optional) | Fixed or weighted item-output positions; defaults to an empty list. | |
| `output_items.item ID` | Fixed output: String form for one item. | |
| `output_items.id` | Item ID in a stack object. | |
| `output_items.count` (Optional) | Stack size; default 1. | `[1, 99]` |
| `output_items.components` (Optional) | Item-component values. | |
| `output_items.chance` (Optional) | Output chance; omit for a guaranteed output. Some machines roll each item of the stack separately. | Rounds to weight `[1, 999]` of 1000 |
| `output_items.data` | Weighted choice: Stack object or an empty object for no output. | |
| `output_items.weight` | Relative selection weight; a positive total selects an output. | `[0, i32::MAX]` each; $\sum_i w_i \le \texttt{i32::MAX}$ |
| `output_fluids` (Optional) | Ordered fluid outputs with amount and pressure; defaults to an empty list. | |
| `output_fluids.type` | Registered fluid ID. | |
| `output_fluids.amount` | Amount in mB; use $[1, \mathrm{tank\ capacity}]$ for transfers because machine code casts to int. | `i64` |
| `output_fluids.pressure` (Optional) | Pressure level; default 0. | `i32` |
| `duration` | Process duration in ticks; defaults to 0. | `i32` |
| `power` | HE demand; defaults to 0. | `i64` |
| `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. | |
| `blueprint_pools` (Optional) | Blueprint pools containing the recipe; a pooled recipe needs a blueprint of one of them in the machine. | |
| `blueprint_pools_528` (Optional) | Replaces blueprint_pools while the enable_528 flag holds. | |
| `order` (Optional) | Sort position within the recipe table; lower values first, default 2147483647. | `i32` |
| `blue` (Optional) | Blue plasma colour channel; `[0, 1]` gives the standard intensity range; default 0.6. | `f32` |
| `green` (Optional) | Green plasma colour channel; `[0, 1]` gives the standard intensity range; default 0.2. | `f32` |
| `ignition_temp` (Optional) | Minimum klystron energy needed to ignite the plasma; default 0. | `i64` |
| `neutron_flux` (Optional) | Neutron output at full power, sent only with plasma output; default 0. | `f64` |
| `output_temp` (Optional) | Plasma output energy at full power; positive energy emits plasma; default 0. | `i64` |
| `red` (Optional) | Red plasma colour channel; `[0, 1]` gives the standard intensity range; default 1.0. | `f32` |

## Example

Source path: `data/hbm/recipe/fusion/fus.cl.json`

```json
{
  "type": "hbm:fusion",
  "blue": 0.2,
  "custom_localization": true,
  "duration": 100,
  "green": 0.6,
  "icon": {
    "id": "hbm:powder_chlorophyte"
  },
  "ignition_temp": 3750000,
  "input_fluids": [
    {
      "type": "hbm:chlorine",
      "amount": 20
    }
  ],
  "neutron_flux": 1000.0,
  "order": 6,
  "output_items": [
    "hbm:powder_chlorophyte"
  ],
  "output_temp": 10000000,
  "power": 25000
}
```
