ground-game/history/260808-modular-variants.md

44 lines
1.6 KiB
Markdown
Raw Normal View History

# Composable rules modules by aspect (catalog schema 2)
**Date:** 2026-08-08
**Status:** adopted as catalog contract
**Catalog:** [`editions/CATALOG.md`](../editions/CATALOG.md), [`editions/catalog.yaml`](../editions/catalog.yaml)
**Aspect map:** [`editions/ASPECTS.md`](../editions/ASPECTS.md)
**Simulator research:** clay-borg `research/CB-RES-0010-game-aspects-and-design-space.md`
---
## Decision
Rules variations are **independent modules on named aspects** (design
dimensions), not only monolithic experiments. Each module can be measured
**alone** or in a **profile** (explicit combination).
| Aspect | Examples |
|--------|----------|
| `problem_stress` | none / flat_any_open / scoped |
| `attack_relief` | none / self_soothe_ge4 |
| `end_condition` | fixed_rounds_5 / hybrid_clear_collapse (proposed) |
| `problem_deal` | fixed_setup / pressure_deck (proposed) |
Full aspect inventory (including fixed-in-r0 dimensions): **ASPECTS.md**.
H1 becomes profile `h1` = flat + attack soothe.
H2 becomes profile `h2` = scoped only.
New work prefers new modules + profiles over `experiments/mega-bundle`.
**Terminology:** *aspect* replaces earlier *axis* in human docs; YAML field
is `aspect:`.
## Why
Maintainer: end-of-game, setup, dealing, stress-boosters should be
tryable alone and in combination. Monolithic H1/H2 hid that H1 mixed two
aspects and that end/deal work should not force a rewrite of stress routing.
## clay-borg
Resolve `profile` or `modules[]` → apply deltas in catalog **aspect**
order; record full module list in game state / replays. Evolve selection
UI and panels around **aspects × modules × profiles** (CB-RES-0010).