You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This issue is implemented in the fresh MIT-licensed Go server under the replacement program. Its gameplay and content-design decisions remain authoritative. C, CPython, classic packet, file-path, and enum details in the preserved specification are historical evidence only; do not copy, translate, or structurally port GPL implementation code.
Replacement implementation contract
Establish stable string IDs in compiled content from the first implementation; never serialize enum positions. Preserve the broad-discipline and explicit spell-tradition decisions and generate typed Go/Rust catalogs.
The server remains authoritative, consumes versioned compiled content, and exposes bounded generated Game Protocol 1 messages. Pure rules may use a specifically approved typed CEL environment. Starlark is not part of this issue unless the separate residual-scripting decision explicitly approves it.
Required verification
Preserve every observable rule, balance decision, disclosure boundary, and anti-exploit invariant from the specification below.
Add deterministic Go unit/property tests and wrapper-managed scenario coverage at the appropriate integration boundary.
Add bounded malformed-input and persistence-failure cases where this feature accepts content, network, or stored data.
Add Go/Rust protocol conformance fixtures for every new cross-process field; the client must not reconstruct authoritative rules from prose.
Demonstrate that implementation and tests contain no copied GPL source/test material and execute no runtime Python.
Preserved product/design specification and historical implementation notes
Establish the stable discipline and action-source vocabulary before technique trees, achievements, encounters, or content encode obsolete skill identities.
Scope
Replace four wielded-melee skills with Melee Combat and bow/crossbow/sling skills with Archery across enums, archetypes, items, scripts, plugins, UI payloads, and tests.
Keep Unarmed and Throwing separate; remove unreachable two-hand/polearm skill entries unless a real independent loop is defined.
Add Divine Magic and an explicit casting skill/tradition for every directly cast spell without inferring it from spell path.
Remove superseded skill enums/archetypes/aliases and Wizardry fallbacks. Do not silently merge nonlinear development-save XP; document any separately required data policy.
Acceptance criteria
Every melee weapon uses Melee Combat and every bow/crossbow/sling uses Archery while weapon behavior remains distinct.
Every directly cast spell declares exactly one valid Wizardry or Divine Magic tradition.
Delayed actions and devices resolve an explicit source skill rather than current chosen_skill.
All current producers, consumers, content, editor metadata, and focused tests use the new identities.
Validation baseline
Before: seven narrow weapon/launcher XP bars and hard-coded Wizardry assumptions fragment progression and action ownership.
After: stable broad disciplines and explicit spell traditions provide one action-source vocabulary.
Run skill progression and spell classification matrices, delayed-credit tests, content collection/checks, client/server protocol tests, and GCC/Clang/MinGW builds.
This issue is a bounded child of #27. The parent remains open until every sibling child is complete.
Important
This issue is implemented in the fresh MIT-licensed Go server under the replacement program. Its gameplay and content-design decisions remain authoritative. C, CPython, classic packet, file-path, and enum details in the preserved specification are historical evidence only; do not copy, translate, or structurally port GPL implementation code.
Replacement implementation contract
Establish stable string IDs in compiled content from the first implementation; never serialize enum positions. Preserve the broad-discipline and explicit spell-tradition decisions and generate typed Go/Rust catalogs.
The server remains authoritative, consumes versioned compiled content, and exposes bounded generated Game Protocol 1 messages. Pure rules may use a specifically approved typed CEL environment. Starlark is not part of this issue unless the separate residual-scripting decision explicitly approves it.
Required verification
Preserved product/design specification and historical implementation notes
Parent and roadmap
Outcome
Establish the stable discipline and action-source vocabulary before technique trees, achievements, encounters, or content encode obsolete skill identities.
Scope
Superseded path / cleanup target
Remove superseded skill enums/archetypes/aliases and Wizardry fallbacks. Do not silently merge nonlinear development-save XP; document any separately required data policy.
Acceptance criteria
chosen_skill.Validation baseline
Before: seven narrow weapon/launcher XP bars and hard-coded Wizardry assumptions fragment progression and action ownership.
After: stable broad disciplines and explicit spell traditions provide one action-source vocabulary.
Run skill progression and spell classification matrices, delayed-credit tests, content collection/checks, client/server protocol tests, and GCC/Clang/MinGW builds.
This issue is a bounded child of #27. The parent remains open until every sibling child is complete.