Skip to content

Species identity and O.C.C. eligibility foundation #60

Description

@StreamDemon

First prerequisite for #57 under umbrella #12. This issue becomes the sole next-up task.

Goal: introduce the minimum reusable species and O.C.C.-eligibility foundation without pulling Psi-Stalker, R.C.C., or psionics content into the Coalition Grunt slice.

Approved boundary:

  • add a small species catalog with Human playable and Psi-Stalker recorded as a deferred, nonplayable identity from p.233;
  • treat Human as the compatibility default for legacy characters without rewriting stored documents;
  • replace free-text racial requirements with structured any or oneOf O.C.C. species eligibility and content-load validation;
  • prove the printed Coalition Grunt Human/Psi-Stalker restriction with a focused p.233 test fixture while keeping production Grunt content in Coalition Grunt O.C.C.: second playable class foundation #57;
  • add one pure eligibility validator reused by builder, deriveSheet, and backend writes for species and attributes;
  • preserve pure derivation and reject unknown or unavailable ids.

Authoritative rules evidence for the first consumer comes from rendered RUE p.233. Any additional printed mechanics must be rendered and page-stamped; do not infer them from memory.

Explicitly out of scope: playable Psi-Stalker content, R.C.C. mechanics, I.S.P./psychic powers (#14), Coalition Grunt content itself (#57), S.D.C./skill effects, and starting loadouts.

Success requires rules/backend/web package gates, root gates, focused compatibility tests, and live browser verification of the locked Human identity and resolved sheet display. No existing character document is rewritten.

Predecessor: none.
Successor: #61, then #62, then #57.

Builder presentation: show Human as a locked identity field while it is the only playable species; do not add an otherwise empty wizard step.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:backendConvex backendarea:frontendWeb app (builder + sheet)area:rulesRules engine (@riftforge/rules)

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions