# Blueprint-Gated Recipes

A recipe can require a blueprint type.

Database-backed recipes use:

```text
use_blueprint
blueprint_type
```

The server searches the player's inventory for an item named `blueprint` whose metadata contains the matching `blueprint_id`.

Example concept:

```lua
use_blueprint = 1
blueprint_type = 'pistol'
```

The recipe is rejected if:

- The blueprint type is empty.
- No matching blueprint exists.
- The matching blueprint has no remaining uses.

Blueprint validation occurs before ingredient removal.
