KINBARROW modding reference
v0.2.0+main.e011511f4 dataset 4a103dcdb658a75a

Constructibility: grounded or declared

The content tree — the contract for the data/ tree.

Part of the ONE validator (data/validate.rs — boot, the lock tests, CI’s validate_data bin, and the game’s --check-data door all run the same pass). “Raw” is now DEFINED: a good some building type innately produces. Every good must be one of:

  1. raw — in at least one building’s produces list;
  2. grounded craftable — has a recipe whose inputs all RECURSIVELY ground out in raws (the DAG is walked; a Class input grounds if at least one material of the class grounds);
  3. declared — acquisition: Some(...) names a non-crafting source (future loot/quest goods; none needs it today). The narrate-or-declare pattern: nothing is unconstructible by accident.

Also enforced: NO recipe cycles (A needs B needs A fails the walk), and ORPHAN goods are flagged (nothing produces it, no recipe yields it, nothing consumes or uses it as a tool). All failures are loud, with file and reason. Tool BOOTSTRAP is explicitly allowed — smith’s tools are made with smith’s tools, because tool use is not a recipe input; worldgen seeds the first kit.