From 96962bb5828f3c635e681d15ac7387d6e3c6590f Mon Sep 17 00:00:00 2001 From: thethreemagi Date: Fri, 31 Jul 2026 17:50:58 +0100 Subject: [PATCH] Document the seasons directory and its seeding path --- seasons/README.md | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 seasons/README.md diff --git a/seasons/README.md b/seasons/README.md new file mode 100644 index 0000000..5b0f80d --- /dev/null +++ b/seasons/README.md @@ -0,0 +1,30 @@ +# seasons/ + +One JSON file per season, named for the season it holds: `c7s3.json`, `c7s4.json`. +The `season` value inside each file must match its filename stem — CI enforces it. + +**This directory is intentionally empty of data right now.** The first season file is +generated by the locker exporter rather than typed by hand, so that base names, variant +names, and row names match the game exactly instead of approximating it. Hand-authored +entries are for corrections and additions after that. + +See the [repo README](../README.md) for the format, the three statuses, and what each +field means, and [`../schema/sprite-catalog.schema.json`](../schema/sprite-catalog.schema.json) +for the contract CI checks against. + +## Adding a season + +1. Export it, or copy the previous season's file as a starting point. +2. Name the file for the season and set `season` to match. +3. Run `python scripts/validate.py` before opening the PR — it runs the same checks CI + does and lists every problem at once rather than stopping at the first. + +## Carrying sprites between seasons + +Sprites do not move between files. A sprite that leaves circulation keeps its entry in +the season that introduced it and gets `"status": "hidden"`, which drops it out of +matching while leaving it in the inventory of everyone who already holds one. If it +returns, flip the status back — that reversibility is the whole reason the status is +called `hidden` rather than `retired`. + +Reputation is season-agnostic and never resets, so nothing here affects standing.