# Attribution

This work includes material taken from the System Reference Document 5.1
("SRD 5.1") by Wizards of the Coast LLC, available at
https://dnd.wizards.com/resources/systems-reference-document. The SRD 5.1
is licensed under the Creative Commons Attribution 4.0 International
License, available at https://creativecommons.org/licenses/by/4.0/legalcode.

**The SRD 5.1 material used here has been MODIFIED.** CC-BY 4.0 requires that
to be stated, and it is true throughout rather than in places: values are
re-derived rather than transcribed where the derivation is ours, rules are
encoded as engine primitives that do not map one-to-one onto the printed text,
and prose is paraphrased. The itemised list below is not required by the licence
— the paragraph above satisfies it — but it is how this project keeps the
boundary between transcribed SRD material and original work legible (ADR-0066),
and each entry says which side of that line it falls on.

Material used: the six ability scores (Strength, Dexterity, Constitution,
Intelligence, Wisdom, Charisma), the ability modifier formula, the d20
ability-check convention, and the 4d6-drop-lowest score generation method
(engine/src/stats.rs); and the EXHAUSTION mechanic — the six-level penalty
track and its per-level effects (disadvantage on ability checks; speed halved;
disadvantage on attack rolls and saving throws; hit point maximum halved; speed
0; death) with long-rest recovery of one level (SRD 5.1 Appendix Conditions, the
Exhaustion table; engine/src/exhaustion.rs, ADR-0237); and the REACTION economy
— one reaction per round refreshed at the start of your turn, the opportunity
attack as a reaction, the Ready action (an action held for a trigger, spent as a
reaction when it fires), and the Rogue's Uncanny Dodge (a reaction halving one
attack's damage) (SRD 5.1 "Combat" — Reactions / Opportunity Attacks / Ready, and
"Rogue" — Uncanny Dodge; engine/src/combat_bubble.rs, ADR-0245); and the MELEE
TOOLKIT (SRD 5.1 "Equipment" — the Reach weapon property; "Combat" — Two-Weapon
Fighting, and the Grapple and Shove special melee attacks, with their Strength
(Athletics) vs Strength (Athletics)/Dexterity (Acrobatics) contest and the
grappled/prone conditions they inflict; and "Feats" — the Grappler feat's
advantage-against-the-grappled and pin-to-restrain benefits): a reach weapon's
10-ft melee reach for the strike and the opportunity attack, the bonus-action
off-hand attack (its damage-modifier rule and the Two-Weapon Fighting style that
adds it), and the grapple/shove/escape/pin actions
(engine/src/combat_bubble.rs, engine/src/combat_melee.rs, ADR-0246; the Reach
property already sat in data/tables/weapons.srd.ron on the glaive, halberd,
pike, lance, and whip); and the VARIANT ENCUMBRANCE rule (SRD 5.1 "Using Ability
Scores" — Strength, "Variant: Encumbrance"): the carrying-capacity cap of
Strength score × 15, and the encumbrance bands — carried weight over STR×5 is
encumbered (speed −10 ft), over STR×10 is heavily encumbered (speed −20 ft and
disadvantage on ability checks, attack rolls, and saving throws that use
Strength, Dexterity, or Constitution) (engine/src/encumbrance.rs, ADR-0247);
and the TRAPS rules (SRD 5.1 "Traps" — the trap mechanics: detecting a trap with
a Wisdom (Perception) or Intelligence (Investigation) check against a DC,
disarming it with a Dexterity check using thieves' tools against a DC, and its
effect resolving as a saving throw (half damage on a success) or an attack roll,
dealing damage and/or inflicting a condition) (engine/src/traps.rs, ADR-0249);
and the DISEASES rules (SRD 5.1 "Diseases": a disease is contracted by failing a
saving throw against exposure, incubates for a period, imposes effects while it
holds — including levels of exhaustion, a condition, and penalties to ability
checks — and is cured by succeeding on a run of Constitution saving throws at the
end of long rests) (engine/src/disease.rs, ADR-0250).
Further SRD material
(skills, conditions, equipment, monsters) will be attributed here as it is
adopted.

## data/ SRD-derived files (ADR-0066)

This work includes material taken from the System Reference Document 5.1
("SRD 5.1") by Wizards of the Coast LLC and available at
https://dnd.wizards.com/resources/systems-reference-document. The SRD 5.1
is licensed under the Creative Commons Attribution 4.0 International
License available at https://creativecommons.org/licenses/by/4.0/legalcode.

Material used, extracted from the official SRD 5.1 CC PDF
(SRD_CC_v5.1.pdf, fetched 2026-07-19) into the `*.srd.ron` files under
`data/` — the suffix marks SRD derivation; see `data/README.md` for the
layout contract. The derived-from-SRD material is:

- the eighteen skills and their governing abilities
  (`data/tables/skills.srd.ron`);
- the core races and their SRD subraces: ability score increases, age,
  size, speed, and alignment-tendency prose (the numeric
  `alignment_bias` pairs are our own distillation of that prose, not
  SRD values — see `data/README.md`) (`data/races/`);
- the simple and martial weapon tables and the armor table
  (`data/tables/weapons.srd.ron`, `data/tables/armor.srd.ron`);
- the Experience Points by Challenge Rating table
  (`data/tables/cr_xp.srd.ron`);
- the Character Advancement table — the cumulative experience points per
  level 1..20 (`data/tables/advancement.srd.ron`, ADR-0091; the table's
  Proficiency Bonus column is not transcribed — it derives from level);
- the Commoner, Guard, and Bandit stat blocks from Appendix MM-B
  (`data/creatures/humanoids/`, stored as primitives; the same blocks'
  printed composite values in `data/expected/npc_blocks.srd.ron` as a
  verification corpus);
- fourteen monster stat blocks from the SRD 5.1 "Monsters" chapter, one per
  non-humanoid creature type (ADR-0236), stored as PRIMITIVES only — abilities,
  hit-dice level, size, natural armor, speed, the natural-attack dice + kind,
  multiattack count, and the damage/condition immunities, resistances, and
  vulnerabilities the block prints; AC, HP, to-hit, and XP DERIVE (their printed
  values verified in `data/expected/npc_blocks.srd.ron`). The blocks:
  Wolf (beast), Skeleton & Zombie (undead), Black Dragon Wyrmling (dragon),
  Dretch (fiend), Magma Mephit (elemental), Ogre (giant), Gray Ooze (ooze),
  Animated Armor (construct), Worg (monstrosity), Satyr (fey), Pegasus
  (celestial), Gibbering Mouther (aberration), Awakened Shrub (plant)
  (`data/creatures/`). Breath weapons, legendary/lair actions, innate
  spellcasting, regeneration, and monster-specific traits are NOT transcribed —
  they are ledgered until a consumer exists (`docs/adr/FOLLOWUPS.md`);
- the monster-statistics rules used as derivation formulas — Hit Dice
  by Size, Proficiency Bonus by Challenge Rating, and the skill/passive
  bonus rules (SRD 5.1 pp. 254-257), documented in `data/README.md`;
- the racial traits with engine substrate (ADR-0214): Dwarven
  Resilience, Lucky, Relentless Endurance, Savage Attacks, Menacing,
  Keen Senses, Skill Versatility, Gnome Cunning, Hellish Resistance —
  as trait ids and damage resistances on the race files (`data/races/`);
- ALL TWELVE SRD classes — Fighter, Rogue, Cleric, Wizard, Barbarian, Monk,
  Paladin, Ranger, Bard, Druid, Sorcerer, and Warlock — with their SRD
  subclasses (Champion, Thief, Life Domain, School of Evocation, Path of the
  Berserker, Way of the Open Hand, Oath of Devotion, Hunter, College of Lore,
  Circle of the Land, Draconic Bloodline, The Fiend): hit dice, saving-throw
  and armor/weapon/skill training lists, feature names and levels (Rage,
  Unarmored Defense, Reckless Attack, Fast Movement, Brutal Critical, Martial
  Arts, Ki, Flurry of Blows, Patient Defense, Step of the Wind, Unarmored
  Movement, Stunning Strike, Divine Smite, Lay on Hands, Channel Divinity
  (Sacred Weapon), Colossus Slayer, Bardic Inspiration, Jack of All Trades,
  Song of Rest, Font of Inspiration, Natural Recovery, Draconic Resilience,
  Dark One's Blessing, Dark One's Own Luck, Fiendish Resilience among them),
  cantrips-known steps, spellcasting abilities, the ability-score-improvement
  levels, the Rage-uses/Martial-Arts-die/Bardic-Inspiration-die/Song-of-Rest
  progressions, and the starting-equipment picks (each class page's "(a)"
  options, as the `kit` field — ADR-0216 amendment)
  (`data/classes/`, ADR-0214/0238/0239/0240);
- the Multiclassing rules (SRD 5.1 "Multiclassing") — the ability-score
  PREREQUISITES to take each class in a multiclass (Barbarian Str 13,
  Fighter Str 13 or Dex 13, Monk Dex 13 and Wis 13, …), the REDUCED
  proficiencies a multiclassed class grants (a subset of the initial set,
  with no saving-throw proficiencies), and the Multiclass Spellcaster slot
  table (combined caster level = full-caster levels + half of half-caster
  levels, read off the full-caster grid; Pact Magic kept separate) — as the
  `multiclass_prereq`/`multiclass_proficiencies` fields on the class files
  and the combined-caster-level derivation
  (`data/classes/`, `crates/engine/src/classes.rs`, ADR-0241);
- the full-caster Spell Slots per Spell Level grid from the cleric and
  wizard class tables (`data/tables/spell_slots.srd.ron`), the half-caster
  Spell Slots grid from the paladin and ranger class tables
  (`data/tables/spell_slots_half.srd.ron`, ADR-0239), and the warlock's Pact
  Magic Spell Slots / Slot Level grid
  (`data/tables/pact_magic.srd.ron`, ADR-0240);
- nineteen spells from the Spell Descriptions chapter — names, levels,
  schools, casting times, ranges, damage/healing dice, save abilities,
  area sizes, light radii, and "At Higher Levels" scaling
  (`data/spells/`, ADR-0214/0217; the effect/area/upcast ENCODINGS are
  our interpretation, per `data/README.md`);
- the SRD 5.1 "Feats" chapter's ONE feat — **Grappler** (its name,
  Strength-13 prerequisite, and rules text: advantage on attack rolls against a
  creature you are grappling, and the action to pin a grappled creature so both
  are restrained) — as `data/feats/grappler.srd.ron` (ADR-0242). The SRD 5.1
  contains exactly this one feat; its grapple-dependent benefits are LEDGERED
  until the grapple action lands (`docs/adr/FOLLOWUPS.md`), so only its
  prerequisite is live substrate. No non-SRD feat is transcribed — the feat
  catalog is a mod surface;
- five items from the SRD 5.1 "Magic Items" chapter (ADR-0243) — their names,
  rarities, attunement requirements, and the mechanical primitives their entries
  print: the "Weapon, +1/+2/+3" bonus (+1 attack & damage) and "Armor, +1/+2/+3"
  bonus (+1 AC) applied to the longsword and chain shirt arms rows
  (`data/magic_items/plus_one_longsword.srd.ron`,
  `plus_one_chain_shirt.srd.ron`), the Ring of Protection and Cloak of Protection
  (+1 AC and +1 saving throws, attunement — `ring_of_protection.srd.ron`,
  `cloak_of_protection.srd.ron`), and the Wand of Magic Missiles (7 charges, "1
  or more charges" to cast, "regains … charges daily at dawn" —
  `wand_of_magic_missiles.srd.ron`). PRIMITIVES ONLY: the bonuses/rarity/charges
  are transcribed; item WORTH is NOT (it DERIVES — a rarity factor over our
  ADR-0069 craft worth, never the DMG's gp values, which lie outside the CC-BY
  SRD corpus — the CR/object-statistics precedent). The wand's spell EFFECT and
  the daily "1d4 + 1" recharge die are LEDGERED (`docs/adr/FOLLOWUPS.md`); the
  charge accounting and a full-refill-at-dawn cadence are the live substrate. The
  starter set is five files; the rest of the chapter is a mod surface;
- the spellcasting formulas used as derivations: spell attack bonus,
  spell save DC, prepared-spell counts, and the cantrip damage steps at
  character levels 5/11/17 (`crates/engine/src/spells.rs`,
  `crates/engine/src/classes.rs`);
- the damage-multiplier rule (SRD 5.1 "Damage and Healing" p. 97):
  resistance halves damage (round down), immunity reduces it to zero, and
  vulnerability doubles it, with resistance applied before vulnerability
  (`crates/engine/src/combat_bubble.rs::apply_damage`, ADR-0214/0233). The
  damage-kind lists a race or creature carries are data-side interpretation
  (no SRD race carries one; the ADR-0236 monster blocks carry the resistances,
  immunities, and vulnerabilities their SRD stat blocks print);
- the Cover rule (SRD 5.1 "Cover", "The Environment"): the three degrees of
  cover and their effects — half cover grants +2 to AC and Dexterity saving
  throws, three-quarters cover grants +5, and total cover makes a target
  impossible to target directly by an attack or a spell — and the optional
  rule that a creature can grant half cover
  (`crates/engine/src/combat_board.rs::Cover`/`cover_between`,
  `crates/engine/src/combat_bubble.rs`, ADR-0244). The corner-trace that grades
  the degree from the board's blocked squares is our SIMPLIFIED interpretation
  of the SRD's corner-to-corner method (documented in the ADR), not an SRD
  transcription;
- the fourteen creature types and their gloss (SRD 5.1 "Monsters" / Monster
  Statistics, the Type line, pp. 250-251): aberration, beast, celestial,
  construct, dragon, elemental, fey, fiend, giant, humanoid, monstrosity,
  ooze, plant, undead (`data/tables/creature_types.srd.ron`, ADR-0234) —
  and hold person's "one humanoid" targeting clause it gates
  (`data/spells/hold_person.srd.ron`). The note prose paraphrases the SRD's
  own examples; which soul reads which type is data-side (every SRD playable
  race is a humanoid);
- the SRD 5.1 Conditions (Appendix PH-A): the condition names and rules text,
  transcribed as the `data/conditions/*.srd.ron` bundles (ADR-0229/0235) —
  twelve ship (paralyzed, blinded, frightened, grappled, incapacitated,
  invisible, petrified, poisoned, prone, restrained, stunned, unconscious);
  charmed and deafened are noted but NOT transcribed (no engine read consumes
  their wholly perceptual/social effects yet). The COMPONENT decomposition —
  which `ConditionComponent` reads a condition bundles — is our interpretation
  of the SRD text, documented in `data/README.md`.
- the special senses (SRD 5.1 "Monsters" / Monster Statistics, the Senses
  line, and "The Environment": blindsight, darkvision, tremorsense,
  truesight) — carried as the radius fields on the race/creature blocks and
  the monster Senses lines transcribed onto `data/creatures/` (ADR-0248);
  darkvision keeps its ADR-0204 field. Which combat reads a sense negates
  (the unseen-attacker/darkness disadvantage) is our interpretation of the
  SRD text, documented in the ADR;
- the sixteen languages (SRD 5.1 "Languages", the Standard and Exotic
  tables, p. 63): Common, Dwarvish, Elvish, Giant, Gnomish, Goblin,
  Halfling, Orc; Abyssal, Celestial, Deep Speech, Draconic, Infernal,
  Primordial, Sylvan, Undercommon (`data/tables/languages.srd.ron`,
  ADR-0248) — and the monster stat-block Languages lines transcribed onto
  `data/creatures/`. The "Typical Speakers" gloss paraphrases the SRD; which
  soul knows which tongue is data-side (ABSENT means Common).
- three sample traps from the SRD 5.1 "Traps" chapter (Sample Traps, ADR-0249) —
  their names, detection and disarm DCs, and effects: the Poison Needle
  (Investigation DC 20 to detect, DC 15 thieves' tools to disarm, a DC 15
  Constitution save or take 2d10 poison and become poisoned —
  `data/traps/poison_needle.srd.ron`), Poison Darts (Perception DC 15, disarm DC
  15, a DC 15 Dexterity save for half of 2d10 poison —
  `poison_darts.srd.ron`), and the Fire-Breathing Statue (Investigation DC 15,
  disarm DC 15, a DC 13 Dexterity save for half of 4d10 fire —
  `fire_breathing_statue.srd.ron`). PRIMITIVES ONLY: the DCs and dice are
  transcribed; the poison needle's 1 piercing damage and the "poisoned for 1
  hour" duration are LEDGERED (folded/ledgered, `docs/adr/FOLLOWUPS.md`). The
  three device samples are all the shipped catalog; the rest of the chapter
  (pits, collapsing roofs, and the attack-roll traps) is a mod surface.
- three sample diseases from the SRD 5.1 "Diseases" chapter (Sample Diseases,
  ADR-0250) — their names, contraction/recovery DCs, incubation, and effects:
  Sewer Plague (a DC 11 Constitution save to resist, ~1d4 days to incubate, one
  level of exhaustion, a DC 11 Constitution recovery save —
  `data/diseases/sewer_plague.srd.ron`), Sight Rot (a DC 15 Constitution save,
  1 day to incubate, a sight penalty culminating in the blinded condition, a DC
  15 Constitution recovery save — `sight_rot.srd.ron`), and Cackle Fever (a DC 13
  Constitution save, hours to incubate, one level of exhaustion, a DC 13
  Constitution recovery save — `cackle_fever.srd.ron`). PRIMITIVES ONLY: the DCs,
  dice, and save cadences are transcribed; the SRD nuances without an existing
  consumer — Sewer Plague's rest-healing riders, Sight Rot's −1→−5 escalation and
  its Eyebright/lesser-restoration cures, Cackle Fever's shrieking combat rider
  and gnome immunity — are LEDGERED (`docs/adr/FOLLOWUPS.md`). The three samples
  are the shipped catalog; the rest of the chapter is a mod surface.

Original additions (ours, NOT SRD material, marked `source: Original`
or documented as our interpretation in `data/README.md`): the
`alignment_bias` distillations noted above; the `data/goods/` material
files and ALL crafting recipes embedded in the weapon and armor tables
(stations, tiers, input quantities, hours, material prices) — the SRD
contains no material recipes; its downtime crafting is gp-rates only.
Also original: `data/professions/` (background skill proficiencies,
trade tools, workplaces; the profession set mirrors the engine's own
library), `data/buildings/` (building types, production rates, build
costs), `data/tables/quality_profiles.ron` (the seven-tier quality
system and its per-class effects), the vocabulary registries
(`data/tables/material_classes.ron`, `data/tables/terrain_tags.ron`),
and the constructive-material metadata on goods (classes, factors,
work difficulties, quality biases, durability properties, rarities).
The object-durability numbers (hardness, integrity) are original
derivations, NOT the DMG's object statistics — that chapter is outside
the CC-BY SRD corpus and nothing was transcribed from it.
The WEATHER & SEASONS system (ADR-0251, `crates/engine/src/weather.rs`
and `Time::season`) is likewise entirely original — D&D's
weather/environment HAZARD rules (extreme cold/heat/wind, precipitation,
high altitude) live in the Dungeon Master's Guide, which is OUTSIDE the
CC-BY SRD 5.1, so NOTHING was transcribed: the weather-state set
(clear/overcast/rain/fog/storm/snow/heat), the obscurement mapping, every
season-weighted probability, and the season lengths are our own work.
The HARD-ROAD EXHAUSTION toll (ADR-0254, `crates/engine/src/exhaustion.rs`
`weather_toll` / `weather::is_severe` / `weather::severe_crossing`) is
likewise our OWN design: the SRD's exhaustion CONDITION/track it drives is
SRD material (attributed above, ADR-0237), but the SOURCE — that a SEVERE
sky (storm/snow) forces a Constitution save per crossing at a DC of 12, a
failure adding one exhaustion level — is entirely original. Nothing is
transcribed from the DMG's environment/forced-march rules (Con DC 10
escalating per hour), which lie OUTSIDE the CC-BY SRD 5.1: our severity set,
the per-severe-crossing cadence, the DC, and the +1-per-crossing cap are all
`source: Original` (the ADR-0071 "DMG numbers are never transcribed — ours
derive" doctrine).
The SQUALOR DISEASE-EXPOSURE vector (ADR-0257,
`crates/engine/src/disease.rs` `squalor_exposure`) is likewise our OWN
design: the DISEASE it triggers is the SRD Sewer Plague (SRD material,
attributed above via ADR-0250 — its DC 11 contraction save and long-rest
recovery are the SRD's), but the SOURCE — that a pauper (net worth below the
poverty line) dwelling in a neglected, high-unrest ward (the ADR-0028 rising
bar) rolls a low-rate periodic exposure (roughly monthly, a name-salt
lottery) — is entirely original. The squalor unrest bar, the poverty line,
and the exposure rate/denominator are all `source: Original`; the SRD's own
"sewer plague incubates in filth" flavour is why squalor is the faithful
vector, but no number is transcribed.
SRD-aligned exceptions inside `data/goods/`, noted per file: the seven
tool/kit WEIGHTS (smith's, leatherworker's, carpenter's, weaver's,
brewer's supplies, cook's utensils, fishing tackle) and ale's mug price
(4 cp), from the SRD equipment table. The seven tool/kit VALUES were
formerly SRD-aligned too, but ADR-0081 (labour-rate calibration) replaced
them with worth DERIVED from recipe + labour — a smith's kit is now
45 cp, not the SRD's 20 gp transcription — so those values are no longer
SRD material; only the weights remain. (Ale's 4 cp both stays SRD-aligned
and round-trips the derivation.) The material name "mithral" uses the
SRD 5.1 spelling.

## data/names (ADR-0066)

The race name tables in `data/names/` contain NO SRD or other licensed
material. Every name derives from public-domain historical sources
(pre-1900 editions and ancient corpora — the Dvergatal of the Poetic
Edda, Landnámabók, the Mabinogion in the Guest translation, the Bodmin
manumissions, the Cartulary of Redon, English poll-tax and subsidy
rolls, Domesday Book, pre-1900 Swiss records) or is original work
generated for this project under documented phonologies. Per-race
sources, editions, and dates are recorded in `data/names/METHOD.md`.
Public-domain sources impose no attribution requirement; this section
records provenance for diligence.

## Fonts (vendored in `crates/web/fonts/`)

- **Cinzel** by Natanael Gama — SIL Open Font License 1.1.
- **Alegreya** by Juan Pablo del Peral (Huerta Tipografica) — SIL Open Font
  License 1.1.

Both vendored as latin woff2 subsets for the web shell's display and
narrative faces (ADR-0147 restage).