Skip to content

Generic page-stamped rules effect pipeline #53

Description

@StreamDemon

Goal

Introduce a typed, page-stamped effect pipeline only after enough concrete mechanics exist to justify the shared abstraction. This is the long-range successor to feature-specific damage, spell, psionic, condition, and equipment-effect handling.

Intended scope

  • Typed effect descriptors owned by rules content and validated at load time.
  • Pure deterministic evaluation with dice, elapsed time, targets, and adjudicated context supplied as inputs.
  • Explicit composition and ordering for damage, healing, resource changes, bonuses, penalties, durations, conditions, and later area/target semantics.
  • Backend write-time rederivation and persistence that rejects stale or illegal effects.
  • Stable presentation results consumed by SolidJS without reproducing rules arithmetic.
  • Migration seams for existing combat exchanges and structured spell damage without rewriting historical records.

Design constraints

  • Every mechanic must be transcribed from rendered rulebook pages and cite printed pages.
  • Extend schemas when printed mechanics require new shapes; do not flatten mechanics into prose.
  • Do not create a universal interpreter before multiple implemented mechanics demonstrate the common boundaries.
  • Preserve feature-specific authority where a generic abstraction would erase meaningful differences.
  • Randomness and elapsed time remain explicit inputs; engine evaluation remains pure.

Explicitly not part of Issue #51

Issue #51 extends the existing persisted combat exchange with typed S.D.C./M.D.C. routing. It must not introduce this generic pipeline or make full M.D.C. combat depend on it.

Entry criteria

Begin design only after at least two additional concrete effect families beyond combat damage expose repeated schema, evaluation, persistence, and presentation patterns. Re-check existing spell, psionic, condition, and equipment trackers before scheduling this work.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:rulesRules engine (@riftforge/rules)

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions