skara-brae-common/docs/game/skill-magic-system.md
Jan-Peter von Hunnius 7a9a5a3e7b docs(game): migrate game-design canon notes from Joplin into docs/game/
Eight canon notes (Game Concept Overview, Mechanics Source Mapping,
Combat System & Stat Scaling Design, Skill & Magic System, Medals &
Honours System, Lore & World Building, Idle Fantasy Inspirations,
Tech Stack & Architecture) as markdown, note title as H1, with source
line citing the Joplin note ID. Joplin keeps status notes.
2026-10-03 17:27:43 +02:00

390 lines
22 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Skara Brae — Skill & Magic System (MERP/Rolemaster-Inspired)
Source: Joplin note 4c295d18c9b04aea947b534834ffaced, migrated 2026-10-03
> **Goal**: Port the depth of the MERP/Rolemaster skill and magic engine into Skara Brae's existing use-based, BIGINT-stat, idle/MMO framework — *without* abandoning the Torn-style "stats only go up, train by doing" feel.
---
## 1. Design Philosophy — Reconciling Two Worlds
| Concern | RoleMaster/MERP | Skara Brae Existing | Resolution |
|---|---|---|---|
| **How skills grow** | Development Points spent per level (point-buy) | Use-based XP per skill (like RuneScape/Idle Fantasy) | **Hybrid**: practice-ranks by use **+** development-ranks by spend. See §3. |
| **Skill depth** | ~60 skills in 18+ categories, stat-linked, diminishing returns | Flat list of ~25 skills, each on its own XP bar | Adopt RM **categories**, **rank-bonus formula**, **stat integration**, **maneuver difficulties**. |
| **Magic** | Spell *lists* (open/closed/base), realm-based, learned in order, power-point cost | 4 BT1 schools + 3 realms mentioned but undefined | Full **spell-list system** (§5): curated lists per realm, ordered progression, PP cost, bolt/ball/utility classification. |
| **Resolution** | d100 open-ended + skill bonus vs. maneuver difficulty | d100 open-ended for combat only | Generalize d100 open-ended **maneuver roll** to *all* skills (§4). |
| **Stats** | 10 stats | 6 BIGINT stats (Str/Agi/Con/Int/Wis/Cha) | Map each skill to 1–3 of our 6 stats (§2.2). |
**Key principle**: Use-based training is the *primary* advancement loop (consistent with Torn + Idle Fantasy + the idle/offline features). Development Points are a *secondary* layer that lets players cross-train skills they don't actively grind — exactly Rolemaster's flexibility, but earned through play rather than per-level allocation alone.
---
## 2. The Skill Catalogue
### 2.1 Skill Categories
All skills are organized into Rolemaster-style **categories**. A character's **profession (class)** grants a **profession modifier** per category — a discount on Development Point cost and/or a small bonus to the skill bonus. This is the Rolemaster "class feel" mechanism.
| # | Category | Example Skills | Primary Use |
|---|---|---|---|
| 1 | **Armor** | Light Armor, Medium Armor, Heavy Armor, Shield | Mitigation, agility penalties |
| 2 | **Weapon — Melee** | 1H Edged, 1H Concussion, 2-Handed, Polearms, Unarmed, Martial Arts | Attack rolls, OB |
| 3 | **Weapon — Ranged** | Bow, Crossbow, Thrown, Sling | Ranged attack rolls |
| 4 | **Athletic / Brawn** | Climbing, Swimming, Gymnastics (dodge), Lifting | Movement, escape, evasion |
| 5 | **Awareness / Search** | Perception, Alertness, Tracking, Trap Sense, Ambush Awareness | Detection, scouting |
| 6 | **Body Development** | Constitution (HP pool growth), Stamina | Survivability |
| 7 | **Combat Maneuvers** | Mounted Combat, Adrenal Defense, Multiple Parry, Feint | Advanced combat options |
| 8 | **Craft / Trade** | Blacksmithing, Alchemy, Enchanting, Tailoring, Jewelcrafting, Fletching, Cooking | Crafting professions |
| 9 | **Gathering** | Mining, Herbalism, Woodcutting, Fishing, Skinning | Material acquisition |
| 10 | **Directed Spells** | Runes, Staves & Wands, Scrolls | Using magic items |
| 11 | **Influence** | Leadership, Persuasion, Intimidation, Disguise | Social, guild, trade |
| 12 | **Lore** | General Lore, Magical Lore, Religious Lore, Skara Brae Lore | Quests, puzzles, dungeon riddles |
| 13 | **Magic Lore** | Runereading, Spell Mastery, Mana Weaving | Spellcasting support |
| 14 | **Mental** *(Mentalism)* | Telepathy, Mental Defense, Mind Control, Enhancement | Mentalism spell channeling |
| 15 | **Outdoor / Environment** | Foraging, Survival, Weather Reading, Navigation | Wilderness, Wilds, offshore |
| 16 | **Self Control** | Meditation (mana regen), Frenzy (berserk), Willpower (RR bonus) | Buffs, recovery |
| 17 | **Special Attacks** | Backstab, Ambush, Poisons, Stunning Blows | Rogue/Monk techniques |
| 18 | **Spells** *(per realm)* | Essence Lists, Channeling Lists, Mentalism Lists | Spellcasting — see §5 |
| 19 | **Subterfuge / Stealth** | Lockpicking, Pickpocketing, Sneaking, Hiding, Trap Setting | Thievery, adventures |
| 20 | **Technical / Trade** | Bartering, Appraisal, Engineering (siege/traps) | Economy, guild siege |
| 21 | **Urban** | Streetwise, Gambling, Carousing, Black Market (fencing) | Inn, Lower City, Harbor |
> Mappers to existing design: categories 8 & 9 = the 5 gathering + 7 crafting professions already defined. Category 19 = the Thievery tree. Category 21 = social/inn activities. Category 18 = the magic system in §5.
### 2.2 Stat Linkage
Each skill rolls **1–3 relevant stats**. Stat bonus is derived from the BIGINT stat via a **logarithmic bonus function** (so billions-scale stats still produce a bounded, meaningful bonus):
```
stat_bonus(value) = floor( 10 * log2( value / 10 ) ) // bounded, grows slowly
// Example: 10 → 0, 20 → +10, 80 → +30, 10K → +100, 1B → ~+200
```
(Exact curve TBD in tuning — the point is **slow, diminishing** growth so that a character with 1B Intelligence isn't auto-winning every lore check, but is meaningfully better than one with 10K.)
| Sample skills | Linked Stats |
|---|---|
| 1H Edged | Str, Agi |
| Bow | Agi |
| Stealth / Sneaking | Agi |
| Lockpicking | Agi, Int |
| Blacksmithing | Str, Int |
| Alchemy | Int, Wis |
| Persuasion | Cha |
| Tracking | Wis, Int |
| Meditation | Wis, Con |
| Unarmed / Martial Arts | Str, Con, Agi |
| Runereading | Int |
---
## 3. Skill Ranks — Practice + Development (Hybrid)
### 3.1 Two Tracks, One Bonus
A skill's effectiveness is driven by its **total ranks**, which come from two sources:
1. **Practice Ranks** — earned automatically by using the skill (use-based XP → rank thresholds). *This is the core loop.* Each skill has its own XP bar. Offline apprentice workers grant practice XP at 50% (existing design).
2. **Development Ranks** — purchased with **Development Points (DP)**. Lets a player boost a skill they aren't actively grinding, or push past a practice plateau.
```
total_ranks(skill) = practice_ranks + development_ranks
skill_bonus(skill) = rank_bonus(total_ranks)
+ Σ stat_bonus(linked_stats)
+ profession_bonus(class, category)
+ equipment_bonus
+ situational_modifiers
```
### 3.2 Rank Bonus — Diminishing Returns (Rolemaster Formula, Adapted)
| Rank Band | Bonus per Rank | Cumulative at Band End |
|---|---|---|
| Ranks 1–10 | +5 each | +50 |
| Ranks 11–20 | +3 each | +80 |
| Ranks 21–30 | +2 each | +100 |
| Ranks 31–50 | +1 each | +120 |
| Ranks 51+ | +0.5 each (rounded) | slow creep |
This mirrors Rolemaster's "first rank is worth a lot, then diminishing." It keeps use-based grinding rewarding early and makes Development Points meaningful for pushing high-end skills. **Caps** per skill can be set per tuning (e.g., max 50 ranks for non-combat, higher for weapons/spells).
### 3.3 Development Points
- **DP per character level** = `5 + stat_bonus(Intelligence)` (Intelligence = learning aptitude). Patrons may get +2.
- **DP cost to buy a rank** depends on the skill's category and the character's profession:
| Profession Modifier | DP per Rank | Meaning |
|---|---|---|
| Favored | 1 | Class's core competencies |
| Normal | 2 | Secondary skills |
| Unfavored | 4 | Outside the class's wheelhouse |
| Restricted | 8 (or disallowed) | E.g., heavy spellcasting for a Warrior |
| Class | Favored Categories (examples) | Unfavored |
|---|---|---|
| **Warrior** | Armor, Weapon-Melee, Weapon-Ranged, Body Dev, Combat Maneuvers | Spells, Mental |
| **Rogue** | Subterfuge/Stealth, Special Attacks, Urban, Awareness, Weapon-Melee | Spells (closed), Self Control |
| **Mage** | Spells (Essence), Lore, Magic Lore, Directed Spells, Craft (Enchant/Alchemy) | Armor, Weapon-Melee, Subterfuge |
| **Bard** | Spells (Mentalism), Influence, Lore, Urban, Self Control | Armor (heavy), Body Dev |
| **Cleric** | Spells (Channeling), Influence, Self Control, Lore | Weapon-Ranged, Subterfuge |
| **Ranger** | Weapon-Ranged, Outdoor/Envir, Awareness, Gathering, minor Channeling | Urban, Influence |
| **Paladin** | Armor, Weapon-Melee, Spells (minor Channeling), Self Control, Influence | Subterfuge, Mental |
| **Monk** | Unarmed/Martial Arts, Athletic, Self Control, Body Dev | Armor (heavy), Spells |
### 3.4 Classless Cross-Training
Because any class *can* buy any (non-restricted) skill at higher DP cost, a Warrior *can* learn a basic Fire Bolt — but it costs 8 DP/rank and caps low. This is pure Rolemaster flexibility and rewards hybrid builds, while keeping class identity strong.
---
## 4. Skill Resolution — The Maneuver Roll (Generalized d100)
Every non-trivial skill action resolves with the same engine as combat: an **open-ended d100 maneuver**.
### 4.1 Difficulty Modifiers
| Difficulty | Modifier | Example in Skara Brae |
|---|---|---|
| Routine | +30 | Pick an easy lock (tavern cellar) |
| Easy | +20 | Track a fresh trail in snow |
| Light | +10 | Brew a basic healing potion |
| Medium | 0 | Pickpocket a sober merchant |
| Hard | −10 | Pickpocket a guard; scale a city wall |
| Very Hard | −20 | Defuse a dungeon trap; fence rare goods |
| Extremely Hard | −30 | Pick a vault lock in the Noble Quarter |
| Sheer Folly | −50 | Climb a sheer cliff in a storm |
| Absurd | −70 | Pickpocket Mangar's lieutenant |
### 4.2 Resolution
```
maneuver_total = d100_open_ended() + skill_bonus(skill) + difficulty_modifier
```
Open-ended: 96–100 rolls again and adds; 01–05 rolls again and subtracts (downward open-ended, per Rolemaster).
### 4.3 Result Table
| maneuver_total | Outcome | Effect |
|---|---|---|
| ≥ +80 | **Absolute Success** | Best result + bonus (e.g., +50% yield, bonus loot) |
| +21 to +79 | **Complete Success** | Full intended effect |
| 0 to +20 | **Partial Success** | Effect at reduced value / longer time |
| −20 to −1 | **Failure** | No effect; small chance of minor mishap |
| −80 to −21 | **Absolute Failure** | Failure + complication (broken pick, alarm, wasted materials) |
| ≤ −81 | **Spectacular Failure** | Severe consequence (injury, aggro, lost materials, trap sprung) |
Downward open-ended rolls (01–05) feed the lower bands → the "fumble" tension that makes Rolemaster feel alive.
### 4.4 Why This Matters
- **Adventures** (pickpocketing, burglary, fencing) now use real skill checks with difficulty tiers — replacing a flat success chance.
- **Crafting** quality rolls (Common→Legendary) can be driven off the maneuver table instead of a separate d100.
- **Dungeon puzzles** (lore checks, riddles, lockpicking, trap disarming) become skill encounters.
- **Social** actions (persuade the Beggar King, bluff the City Watch) use Influence skills.
- Consistent with the combat crit table already designed — **one unified resolution engine**.
---
## 5. The Magic System — Spell Lists per Realm
### 5.1 Realms & Primary Stat (Power Points)
| Realm | Casters | Primary Stat (PP) | Flavor |
|---|---|---|---|
| **Essence** | Mages | Intelligence | Raw magical energy woven from the world |
| **Channeling** | Clerics, Paladins (minor) | Wisdom | Power granted by the Old Gods |
| **Mentalism** | Bards | Charisma | Power drawn from mind and will |
**Power Points (PP)** = the spell-casting resource (replaces/generates the `mana` BIGINT pool). PP-per-level scales with the realm stat bonus:
```
max_pp = base_pp(class) + realm_stat_bonus * pp_multiplier(class)
```
PP regenerates over time, boosted by **Meditation** skill (Self Control) and blessings. Spells cost PP to cast; higher-tier spells on a list cost more.
### 5.2 Spell Lists — Open, Closed, Base
A **spell list** is an ordered progression: spell #1 is the weakest, spell #N is the strongest. You must learn a list **in order** — you can't learn spell #10 without #1–#9. This is core Rolemaster.
| List Class | Availability | Example |
|---|---|---|
| **Open** | Available to *all* casters of that realm (favored DP cost) | Essence Hand (utility) for all Essence users |
| **Closed** | Restricted to specific professions of that realm (normal/normal+ cost) | Life Mastery (healing) closed to Clerics |
| **Base** | The profession's signature lists (cheapest, defines the class) | Fire Law as a Mage base list |
You **rank up a spell list** like a skill (practice by casting + DP). Your **list rank** determines the highest spell number you can cast from that list. E.g., Fire Law rank 12 lets you cast Fire Law spells 1–12.
### 5.3 Curated Spell Lists per Realm
*(Target: ~20 lists per realm, ~10–15 spells each. Below is the launch set — expandable.)*
#### Essence (Mages)
| List | Class | Highlights |
|---|---|---|
| **Fire Law** | Base (Mage) | Spark → Fire Bolt → Wall of Fire → Fire Ball → Inferno |
| **Ice Law** | Base (Mage) | Frost → Ice Bolt → Freeze → Blizzard |
| **Light Law** | Base (Mage) | Glow → Light Bolt → Blinding Flash → Sun Bolt |
| **Earth Law** | Closed | Stone Bolt → Entangle → Earthquake |
| **Water Law** | Closed | Water Bolt → Wave → Tidal Surge |
| **Illusions** | Closed | Phantasmal Force → Blur → Invisibility |
| **Living Change** | Closed | Enhance Stat → Shrink → Polymorph |
| **Lofty Bridge** | Closed | Leap → Long Step → Gate → Teleport |
| **Essence Hand** | Open | Light → Unseen Hand → Lock Lore → Dispel |
| **Essence Ways** | Open | Detect Magic → Aura Reading → Sense Essence |
| **Spell Wall** | Open | Minor Shield → Barrier → Wall of Force |
| **Essence Perceptions** | Open | Detect Essence → Analyze Magic |
> **BT1 School Mapping**: The four Bard's Tale schools are *focuses within Essence*:
> - **Magician** (offensive) → Fire/Ice/Light Law base lists
> - **Conjurer** (summoning) → summoning sub-lists + Earth Law
> - **Sorcerer** (debilitating) → Illusions + Living Change
> - **Wizard** (utility) → Lofty Bridge + Essence Hand + Spell Wall
>
> Switching "school" at the Review Board = reprioritizing which base lists you rank. **Master all four = Archmage** (all Essence lists learned).
#### Channeling (Clerics)
| List | Class | Highlights |
|---|---|---|
| **Life Mastery** | Base (Cleric) | Minor Heal → Major Heal → Regeneration → Resurrection |
| **Repulse / Undead Mastery** | Base (Cleric) | Turn Undead → Hold Undead → Control Undead |
| **Protections** | Base (Cleric) | Sanctuary → Holy Shield → Consecration |
| **Detections** | Closed | Detect Evil → Detect Undead → Detect Trap |
| **Creations** | Closed | Create Light → Create Food → Create Water |
| **Weather Ways** | Closed | Calm Weather → Fair Winds → Storm Call |
| **Communal Ways** | Open | Sense Deity → Commune → Divine Guidance |
| **Channeling Perceptions** | Open | Detect Aura → Sense Danger |
#### Mentalism (Bards)
| List | Class | Highlights |
|---|---|---|
| **Mind Mastery** | Base (Bard) | Daze → Confusion → Mental Stun → Dominate |
| **Song / Sound** | Base (Bard) | Valor (atk buff) → Hope (morale) → Fear (debuff) → Charm → Lullaby (sleep). *Long-duration bard songs.* |
| **Self Healing** | Closed | Mend → Recover → Revitalize |
| **Mind's Door** | Closed | Telepathy → Mind Speech → Mind Store |
| **Body Control** | Closed | Adrenal Speed → Adrenal Strength → Prowess |
| **Mental Illusions** | Closed | Mirage → Phantasm → Mirage Illusion |
| **Mind's Eye** | Open | Sense Thoughts → Detect Motive |
| **Mental Defenses** | Open | Mind Barrier → Mental Shield → Iron Will |
### 5.4 Spell Classification (Combat Integration)
| Type | Resolution | Notes |
|---|---|---|
| **Bolt** (directed) | Attack roll = d100 open-ended + Directed Spells skill vs. target's defense (like a missile) | Fire Bolt, Ice Bolt. Can trigger crit tables (elemental crit). |
| **Ball / Area** (non-directed) | Target makes **Resistance Roll**: d100 + Will bonus + level vs. spell level | Fire Ball, Blizzard. Failed RR = full effect; partial = reduced. |
| **Defensive / Utility** | Auto-cast (costs PP); resisted only where noted | Shields, teleports, detections, healing. |
This slots directly into the existing **Resistance Roll** design (d100 + Will vs. spell difficulty) and the **d100 open-ended crit tables**. Elemental crit tables (burn, frost, shock) extend the slash/crush/puncture/unarmed tables already defined.
### 5.5 Spell Acquisition — The Review Board
Per existing design, the **Adventurers' Guild (Review Board)** is where you learn magic:
- Increase a spell-list rank by paying gold + meeting the level/practice prerequisite.
- Casters must visit to gain access to new spell numbers on a list.
- **Magical exam** (lore check) for spellcasters (existing design) — now a real *Magical Lore* maneuver.
- Mages switch Essence-school focus here (reprioritize base lists).
- **Archmage**: a Mage who has maxed all four BT1 schools' base lists → cosmetic title + achievement + small global casting bonus.
### 5.6 Spell Scrolls & Items
- **Scrolls** (Directed Spells → Scrolls skill): one-use spell from any list; lets non-casters cast minor spells (Torn-like consumable). Found in dungeons, crafted by Enchanting.
- **Staves & Wands** (Directed Spells → Staves & Wands): rechargeable PP-cost items casting a fixed spell. Crafted/bound via Enchanting.
- **Runes** (Magic Lore → Runereading): permanent magical inscriptions on gear; activated by Runereading skill.
---
## 6. Integration With Existing Systems
| Existing System | Change / Enhancement |
|---|---|
| **Combat (crit tables)** | Elemental crit tables added (burn, frost, shock). Bolts roll like missiles; balls use RR. Maneuver roll unified with combat. |
| **BIGINT stats** | `stat_bonus()` log function feeds skills. Stats keep growing to billions; bonuses grow slowly (bounded). |
| **Adventures** | Success now computed via maneuver roll + skill bonus + difficulty tier. Time-of-day & skill synergies become modifiers. |
| **Crafting (5 gather + 7 craft)** | These are skills in categories 8 & 9. Quality roll driven by maneuver table; crafting crits = upward open-ended success. |
| **Thievery** | Lives in Subterfuge/Stealth category (Lockpicking, Pickpocketing, Sneaking, Hiding). Adventures use these directly. |
| **Education courses** | Completing a course grants **DP** (development points) — a second DP source beyond leveling. Makes education feel impactful. |
| **Blessings** | Could grant temporary +skill bonus or +DP regen instead of flat multipliers. |
| **Workers (apprentice)** | Apprentice grants *practice XP* to a chosen skill at 50% — unchanged, now feeds practice ranks. |
| **Database** | New tables needed: `skill_categories`, `character_skill_ranks` (split practice/dev), `spell_lists`, `character_spell_list_ranks`, `spell_definitions`. See §7. |
---
## 7. Database Additions (Draft)
```sql
-- Skill ranks (practice + development split)
CREATE TABLE character_skills (
character_id UUID NOT NULL REFERENCES characters(id),
skill_name VARCHAR(48) NOT NULL,
category VARCHAR(32) NOT NULL,
practice_ranks INT NOT NULL DEFAULT 0,
development_ranks INT NOT NULL DEFAULT 0,
experience BIGINT NOT NULL DEFAULT 0, -- feeds practice_ranks
PRIMARY KEY (character_id, skill_name)
);
-- Development point pool per character
ALTER TABLE characters ADD COLUMN unspent_dp INT NOT NULL DEFAULT 0;
-- Spell lists
CREATE TABLE spell_lists (
id VARCHAR(64) PRIMARY KEY, -- e.g. 'fire_law'
realm VARCHAR(16) NOT NULL, -- essence | channeling | mentalism
list_class VARCHAR(16) NOT NULL, -- open | closed | base
name VARCHAR(64) NOT NULL,
description TEXT
);
-- Spell definitions (ordered within a list)
CREATE TABLE spells (
id VARCHAR(64) PRIMARY KEY, -- e.g. 'fire_law_3'
list_id VARCHAR(64) NOT NULL REFERENCES spell_lists(id),
spell_number INT NOT NULL, -- position in list (1..N)
name VARCHAR(64) NOT NULL,
spell_type VARCHAR(16) NOT NULL, -- bolt | ball | defensive | utility
pp_cost INT NOT NULL,
effect_json JSONB NOT NULL, -- damage, duration, modifiers
description TEXT,
UNIQUE (list_id, spell_number)
);
-- Character spell-list ranks
CREATE TABLE character_spell_lists (
character_id UUID NOT NULL REFERENCES characters(id),
list_id VARCHAR(64) NOT NULL REFERENCES spell_lists(id),
rank INT NOT NULL DEFAULT 0, -- highest spell_number accessible
experience BIGINT NOT NULL DEFAULT 0,
PRIMARY KEY (character_id, list_id)
);
```
---
## 8. Open Design Questions
- [ ] **Stat bonus curve**: exact `stat_bonus()` function shape — log2 base? Per-stat caps?
- [ ] **Rank caps**: hard cap per skill (50? 100?) or soft cap via DP scarcity?
- [ ] **PP vs. existing `mana` BIGINT column**: unify into PP, or keep mana as the raw pool and PP as derived? Recommend: rename `mana`→PP conceptually, derive max from formula.
- [ ] **Elemental crit tables**: how many (burn/frost/shock/sonic/poison)? Where stored (`skara-brae-common/crit-tables/`)?
- [ ] **Scroll/wand crafting**: which Enchanting recipes produce scrolls? List-restricted or universal?
- [ ] **DP from education**: how many DP per completed course? Balance against per-level DP.
- [ ] **Multi-realm casters**: should any class get a *second* realm at reduced effectiveness (e.g., Ranger = Essence + Channeling minor)? Rolemaster has semi/hybrid casters.
- [ ] **Archmage bonus**: cosmetic only, or small global casting bonus?
---
## Related Notes
- [Game Concept Overview](joplin://9cf8a2e701654ffbbd6512cc837c7e2f) — Skills, classes, stats, spell schools, education
- [Combat System & Stat Scaling Design](joplin://0ef630db4e3e4d6dab18ccaefccaaa5a) — d100 open-ended crit tables (this system generalizes them)
- [Mechanics Source Mapping](joplin://87a0f70b45c4453caae0fa2b5b8a96f9) — RoleMaster source mapping (expanded here)
- [Lore & World Building](joplin://867bdc9845624908a90928887a71c4c9) — Adventurers' Guild / Review Board, districts for learning
- [Tech Stack & Architecture](joplin://cecd2ef2690d4d1fba3450342aa63953) — DB schema, crate structure (skills.rs, spell engine)
- [Project Plan](joplin://d243ae57778343fca997d46b73d0ee3b) — Roadmap, MVP scope
- [Medals & Honours System](joplin://4877acc671ed4bfcb0d6bf2c5323c94a) — Skill/magic mastery feeds medals