Outcome
Prove the replacement architecture end to end with a small coherent slice of existing Atrinik gameplay, without changing its design and without executing Python or Starlark.
Scope and invariants
- Select and record one independently licensable map chain and required archetypes/assets with exact provenance.
- Include account/character creation, login, map load, movement/collision, scene projection, inventory/equipment, one monster/combat/loot loop, chat, one merchant/dialogue, one quest, Sam's saw/activity, save/logout/reconnect, and error recovery.
- Compile source through
content-toolkit; load it into Go; exchange Game Protocol 1 messages; render/play through Rust/SDL3; edit/preview it through the new editor where M3 scope permits.
- Use wrapper-owned isolated state, explicit profile/topology, deterministic credentials, logs, and cleanup.
- Record every omitted classic behavior as later parity work rather than silently widening the slice.
Acceptance criteria
- The complete scenario builds and runs from clean clones through the thin wrapper with pinned component revisions.
- The server process loads no
.py, CPython, legacy binary/library, or legacy source format.
- Headless replay and connected-client execution agree on authoritative event/state checkpoints.
- Automated smoke coverage plus copy-pasteable manual steps exercise success, reconnect, malformed input, and rollback-safe persistence failure.
- All distributed data/assets carry their actual licenses/notices; MIT applies to replacement code, not the mixed content package.
Dependencies and parallelization
This is the M3 integration gate. It depends on #32-#54 plus minimal client/renderer/protocol/toolkit/editor work, but each subsystem is developed in parallel against shared fixtures.
Independent implementation
Implement from the preserved issue-level/product behavior and independently authored fixtures. Do not copy or mechanically translate GPL server/Python code or tests. Replacement code is MIT; consumed content and assets keep their own licenses.
Outcome
Prove the replacement architecture end to end with a small coherent slice of existing Atrinik gameplay, without changing its design and without executing Python or Starlark.
Scope and invariants
content-toolkit; load it into Go; exchange Game Protocol 1 messages; render/play through Rust/SDL3; edit/preview it through the new editor where M3 scope permits.Acceptance criteria
.py, CPython, legacy binary/library, or legacy source format.Dependencies and parallelization
This is the M3 integration gate. It depends on #32-#54 plus minimal client/renderer/protocol/toolkit/editor work, but each subsystem is developed in parallel against shared fixtures.
Independent implementation
Implement from the preserved issue-level/product behavior and independently authored fixtures. Do not copy or mechanically translate GPL server/Python code or tests. Replacement code is MIT; consumed content and assets keep their own licenses.