# Rotary Furnace

The furnace selects the first row by `order` whose item inputs match the filled input slots, each slot satisfying a different entry including its `count`; the first input fluid is checked afterwards. Each working tick adds the fuel heat, at least 1, divided by `duration` to progress.

## Fields

| Field | Meaning and default | Range |
| - | - | - |
| `type` | Selects the `hbm:rotary_furnace` recipe format. | |
| `name` (Optional) | Internal lookup name; defaults to the last segment of the recipe resource path. | |
| `input_items` (Optional) | Ordered counted item inputs; defaults to an empty list. | |
| `input_items.ingredient` | Item ID, item tag, or loader ingredient object. | |
| `input_items.count` (Optional) | Items required from one stack; default 1. The item stack limit bounds a usable count. | `[1, i32::MAX]` |
| `input_items.components` (Optional) | Exact item-component values. | |
| `input_items.predicates` (Optional) | Item-component predicates. | |
| `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` |
| `duration` | Process duration in ticks; use a positive value for timed processing. | `i32` |
| `order` (Optional) | Sort position within the recipe table; lower values first, default 2147483647. | `i32` |
| `output_material` | Material-stack output; the buffer holds 10,368 units of one material. | |
| `output_material.material` | NTM material name. | |
| `output_material.amount` | Quantity in NTM material units. | `i32` |
| `steam` (Optional) | Base steam use per working tick, multiplied by $1 + 10 \log_{10} h$ for fuel heat $h \ge 1$; the effective use must fit the 12,000 mB tank; default 0. | `i32` |

## Example

Source path: `data/hbm/recipe/rotary_furnace/rotary.aluminium.json`

```json
{
  "type": "hbm:rotary_furnace",
  "duration": 100,
  "input_fluids": [
    {
      "type": "hbm:sodium_aluminate",
      "amount": 150
    }
  ],
  "order": 10,
  "output_material": {
    "amount": 144,
    "material": "aluminum"
  },
  "steam": 400
}
```
