# Profession

> Kinbarrow modding reference — content tree `b2f73c2ab65ff925`, version `0.2.0+main.a22009f4c`.

`professions/<id>.ron` — OURS; the canonical set mirrors `professions.rs`.

**Note on syntax:** these files are RON, not JSON. The shapes below are exact,
but punctuation follows RON — read a real `data/*.ron` file alongside.

## Fields

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `ability` | `Ability` | required | The governing ability for the trade. |
| `id` | `string` | required | Authored id. |
| `name` | `string` | required | Authored name. |
| `practice` | `TradePractice` | optional | Learning pace for eligible hours at recipes belonging to this trade. Required when `tool` is present; must be absent for a tool-less trade. |
| `proficiencies` | `Skill[]` | required | Background skills — the generation source for a soul's skill set. |
| `source` | `Source` | required | Authored source. |
| `tool` | `string` | optional | The trade tool, a goods/ id (the PRACTICES key); absent = deskbound, no tool. |
| `wage_hours` | `integer` | optional | Minimum daily wage in HOURS at the journeyman labour rate. A producing post may offer more when the market value of its row supports it; absent = the ordinary apprentice-day floor. |
| `works_at` | `string[]` | required | buildings/ ids the profession works at. |

## Nested shapes

<a id="ability"></a>

### Ability

An open, validated Ability id interned from authored data.

<a id="skill"></a>

### Skill

An open, validated Skill id interned from authored data.

<a id="source"></a>

### Source

Every file's top-level value carries `source`.

<a id="source--srd51"></a>

#### Source::Srd51

SRD 5.1 — retained nonconflicting catalogue material.

<a id="source--srd52"></a>

#### Source::Srd52

SRD 5.2.1 — the 2024-revision System Reference Document, the same CC-BY-4.0 grant as 5.1 and the current rules chassis. Its files carry the `.srd52.ron` suffix so provenance reads off the path; see `data/README.md` for which document rules a given value.

<a id="source--original"></a>

#### Source::Original

Original content authored for this game (not from the SRD).

<a id="source--phb2024"></a>

#### Source::Phb2024

Material transcribed from the 2024 Player's Handbook. This source is not redistributable by this project and belongs in a `phb2024` mod.

<a id="source--dmg2024"></a>

#### Source::Dmg2024

Material transcribed from the 2024 Dungeon Master's Guide. This source is not redistributable by this project and belongs in a `dmg2024` mod.

<a id="source--mm2024"></a>

#### Source::Mm2024

Material transcribed from the 2024 Monster Manual. This source is not redistributable by this project and belongs in an `mm2024` mod.

<a id="source--tce"></a>

#### Source::Tce

Material transcribed from Tasha's Cauldron of Everything. This source is not redistributable by this project and belongs in a `tce` mod.

<a id="source--xge"></a>

#### Source::Xge

Material transcribed from Xanathar's Guide to Everything. This source is not redistributable by this project and belongs in an `xge` mod.

<a id="trade-practice"></a>

### TradePractice

How eligible hours at a trade's recipes teach their tool. Practice stops at Journeyman; seeded knowledge above that boundary is preserved.

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `aptitude_percent_per_modifier` | `double` | required | Percentage added to learning speed per point of the selected recipe's governing ability modifier. This contributes separately from Intelligence, including when Intelligence governs the recipe. Missing recipe ability contributes zero. Shares the limits described above. |
| `intelligence_percent_per_modifier` | `double` | required | Percentage added to learning speed per Intelligence modifier point. Contributions add: speed = 1 + (Intelligence modifier × this percentage + recipe ability modifier × `aptitude_percent_per_modifier`) / 100. The shipped 2.5 makes Intelligence +3 alone learn 7.5% faster. Must be finite and nonnegative; the two percentages must sum to less than 20 so even modifiers of -5 retain positive learning speed. |
| `years_to_journeyman` | `double` | required | World years of eligible recipe hours needed to reach Journeyman from zero at neutral ability modifiers. One world year is `DAYS_PER_YEAR` days (100 today). Required hours = this value × days per world year × the ordinary working-day hours (10 today); each eligible hour earns 90 / required hours training days. The pace follows the world's year and ordinary working day, rather than a fixed hour count. Must be finite and greater than zero. |


