# contracts.toml schema Canonical slice contracts (`assets/data/contracts.toml`). Design traces: docs/03 §3.7, docs/02 §3. Shape: top-level array of `[[contract]]` tables. Count: 6. ## Intent-comment convention Every `[[contract]]` carries an `intent` string field explaining its tier/pay and poster logic. Data field, not a TOML `#` comment. Same convention in all 7 data files. ## Fields | field | type | required | meaning | |---|---|---|---| | `id` | string | yes | snake_case key (`rats_in_granary`). Referenced by towns. | | `title` | string | yes | board heading (`Rats in the granary`). | | `tier` | integer | yes | 1-5 difficulty tier (vermin → hauntings → saints → Deep doors). | | `pay_cu` | integer | yes | copper-unit pay. | | `poster` | string | yes | who posted it (name + place). | | `known_hazards` | string[] | yes | what the poster tells you (may be incomplete, never lies). | | `unknown_hint` | string | yes | what the poster doesn't know. NEVER empty (schema law): the discoverable-by-gossip half (docs/03 §3.7). | | `floor` | integer | yes | dungeon floor the work sits on (1-based). | | `prep_notes` | string | yes | loadout + questions advice (prep-before-fight law, docs/03 §3.7). | | `intent` | string | yes | why this tier/pay/poster (see convention above). |