# Salt Fuel Separation Plant

Separates fuel from an LFTR salt of an exact mixture.

The recipe is chosen with the machine's recipe selector. It runs when the salt tank holds `salt_amount` or more of `salt` with exactly the stated `mixture`, zero heat and no other fluid components. Each operation consumes `salt_amount` of salt and the input fluids and fills the output fluids. `power` is HE per tick before upgrades; `duration` is ticks at base speed.

A row has no item inputs or outputs, at most two input fluids, at most three output fluids, and positive `duration` and `power`.

## Fields

| Field | Meaning and default | Range |
| - | - | - |
| `type` | Selects the `leafia:salt_separator` 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. | |
| `custom_localization` (Optional) | Resolves the internal name as a translation key when true; defaults to false. | |
| `input_fluids` | 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_fluids` | 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` |
| `order` (Optional) | Sort position within the recipe table; lower values first, default 2147483647. | `i32` |
| `salt` | Registered salt fluid. | |
| `salt_amount` | mB of salt consumed per operation. | `[1, i32::MAX]` |
| `mixture` | Fuel concentrations the salt must hold exactly; at least one entry. | |
| `mixture.<species>` | Concentration of `th232`, `pa233`, `u233`, `u235` or `pa234`. | finite, > 0 |

## Example

Source path: `data/leafia/recipe/salt_separator/separator.u233.json` (icon omitted)

```json
{
  "type": "leafia:salt_separator",
  "custom_localization": true,
  "duration": 60,
  "input_fluids": [{"type": "hbm:fluorine", "amount": 500}],
  "mixture": {"u233": 3.0},
  "order": 0,
  "output_fluids": [{"type": "leafia:flibe", "amount": 1000}, {"type": "leafia:uf6_233", "amount": 300}],
  "power": 400,
  "salt": "leafia:flibe",
  "salt_amount": 1000
}
```
