neon-sprawl/content
VinPropane 56233bfe2c NEO-50: Add E3.M3 prototype backlog and decomposition doc links.
Documents Epic 3 Slice 1 story order (NEO-50–NEO-56), frozen prototype item ids,
and register/module pointers for ItemizationAndInventorySchema.
2026-05-17 21:15:42 -04:00
..
mastery NEO-45: address code review doc alignment and CI nits. 2026-05-16 20:05:51 -04:00
schemas NEO-45: lock prototype salvage mastery catalog, schemas, and CI. 2026-05-16 19:50:09 -04:00
skills NEO-39: add data-driven level curve with startup schema validation 2026-05-06 23:10:06 -04:00
README.md NEO-50: Add E3.M3 prototype backlog and decomposition doc links. 2026-05-17 21:15:42 -04:00

README.md

Content data

Data-driven definitions (skills, items, recipes, quests) validated in CI with JSON Schema.

Path Purpose
schemas/ JSON Schema files (*.schema.json)
skills/ Skill catalogs; each row matches schemas/skill-def.schema.jsonstable id, allowedXpSourceKinds for E2.M1 / E2.M2
mastery/ Mastery catalogs; each file matches schemas/mastery-catalog.schema.jsonstable branchId / perkId, tier gates via skill level (E2.M3)
items/ Item catalogs (planned); each row matches schemas/item-def.schema.jsonstable id, stack/slot metadata for E3.M3

Prototype Slice 1 (NEO-33): CI expects exactly three skill rows with ids salvage, refine, intrusion (gather + process + tech). Each row must declare allowedXpSourceKinds (non-empty); see E2.M1 — Designer note: allowedXpSourceKinds for what each kind means for grant wiring.

Prototype Slice 1 — items (NEO-50, planned): CI will expect exactly six item rows with ids scrap_metal_bulk, refined_plate_stock, field_stim_mk0, survey_drone_kit, contract_handoff_token, prototype_armor_shell — see E3M3-prototype-backlog and E3.M3 freeze note.

Prototype Slice 4 (NEO-45): CI expects exactly one MasteryTrack for salvage only (refine / intrusion have no mastery rows yet). Tier 1 @ skill level 2 is a mutually exclusive branch pick (scrap_efficiency vs bulk_haul) with no perks; tier 2 @ level 4 unlocks one perk per branch path. Do not rename branchId / perkId after ship—change displayName only. See E2.M3 — Designer note and freeze table.

Server load path and hot-reload policy are TBD; keep files versioned here as the source of truth.

Validate locally (same as PR gate):

pip install -r scripts/requirements-content.txt
python scripts/validate_content.py
python scripts/check_decomposition_language.py