Document Phase 2A2a shared gameplay contract proposals.
Propose ASC resource, authority, damage/death/respawn, and related contracts for owner review without approving or implementing them. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -4,11 +4,82 @@
|
||||
|---|---|
|
||||
| Status | Draft |
|
||||
| Date | 2026-07-17 |
|
||||
| Git commit | `aa0058a0` |
|
||||
| Rule | Options listed only — **none selected** in this batch |
|
||||
| Phase 2A1 Git commit | `aa0058a0` |
|
||||
| Phase 2A2a reconciliation commit base | `9919faab` |
|
||||
| Rule | Options listed in the historical table were not selected in Phase 2A1. Phase 2A2a adds **Proposed** contract links only — **none Approved**. |
|
||||
|
||||
Decisions that remain open after Phase 1 static archaeology plus Phase 2A1 runtime evidence. Do not treat this document as an approved architecture contract.
|
||||
|
||||
---
|
||||
|
||||
## Phase 2A2a reconciliation
|
||||
|
||||
| Field | Value |
|
||||
|---|---|
|
||||
| Pass | 2A2a — Evidence-to-contract reconciliation |
|
||||
| Status | Draft |
|
||||
| Contract document | [`03-SharedGameplayContracts.md`](03-SharedGameplayContracts.md) |
|
||||
| Decision register | [`04-Phase2A-DecisionRegister.md`](04-Phase2A-DecisionRegister.md) |
|
||||
|
||||
### Classification of each Phase 2A1 open decision
|
||||
|
||||
| Decision | Classification | Contract link(s) | Notes |
|
||||
|---|---|---|---|
|
||||
| Canonical health source of truth | Addressed by Proposed Contract | [C-001](03-SharedGameplayContracts.md#c-001--canonical-player-resource-source-of-truth) | ASC sole SoT Proposed; not Approved |
|
||||
| Canonical mana source of truth | Addressed by Proposed Contract | [C-001](03-SharedGameplayContracts.md#c-001--canonical-player-resource-source-of-truth), [C-003](03-SharedGameplayContracts.md#c-003--resource-access-boundary) | Merged into C-001 resource SoT + C-003 access |
|
||||
| Canonical stamina source of truth | Addressed by Proposed Contract | [C-001](03-SharedGameplayContracts.md#c-001--canonical-player-resource-source-of-truth), [C-002](03-SharedGameplayContracts.md#c-002--character-default-attribute-initialization) | ASC SoT Proposed; UI deferred via C-013; whether stamina required for 2B remains design-adjacent |
|
||||
| Temporary legacy mirror during reconstruction | Addressed by Proposed Contract | [C-004](03-SharedGameplayContracts.md#c-004--legacy-compatibility-policy) | ASC→legacy one-way Recommended; bidirectional Rejected by Existing Evidence |
|
||||
| Where damage must enter shared framework | Addressed by Proposed Contract + Blocked by Missing Runtime Evidence | [C-005](03-SharedGameplayContracts.md#c-005--damage-contract) | Boundary Proposed; runtime damage path not exercised (RE-2A1-022) |
|
||||
| Where death threshold evaluation must occur | Addressed by Proposed Contract + Blocked by Missing Runtime Evidence | [C-007](03-SharedGameplayContracts.md#c-007--death-contract) | ASC Health ≤ 0 Proposed; death PIE not run |
|
||||
| Whether AnimNotifies may trigger authoritative gameplay | Addressed by Proposed Contract + Blocked by Missing Runtime Evidence | [C-009](03-SharedGameplayContracts.md#c-009--authority-contract), [C-010](03-SharedGameplayContracts.md#c-010--animation-responsibility-contract) | Notify-as-sole-authority prohibited as end state; chain not observed |
|
||||
| Required interruption and cleanup contract | Addressed by Proposed Contract + Blocked by Missing Runtime Evidence | [C-011](03-SharedGameplayContracts.md#c-011--ability-lifecycle-and-cleanup-contract) | Lifecycle Proposed; interrupt test blocked (RE-2A1-020) |
|
||||
| Required respawn and HUD lifecycle contract | Addressed by Proposed Contract + Blocked by Missing Runtime Evidence | [C-008](03-SharedGameplayContracts.md#c-008--respawn-contract), [C-013](03-SharedGameplayContracts.md#c-013--hud-data-flow-contract) | GM/PC ownership + Overlay-only Proposed; RT-006 blocked |
|
||||
| Pickup authority model | Addressed by Proposed Contract + Blocked by Test Environment | [C-014](03-SharedGameplayContracts.md#c-014--pickup-authority-and-replication-contract) | Server authority Proposed; overlap/2P not run |
|
||||
| PlayerState versus pawn ownership boundaries | Addressed by Proposed Contract | [C-012](03-SharedGameplayContracts.md#c-012--playerstate-and-pawn-ownership-contract) | Keep ASC on PlayerState Proposed; enemy accessor still defective |
|
||||
| How to enable 2-client PIE for remaining evidence | Blocked by Test Environment | — (environment / harness; not a gameplay SoT contract) | See still-blocked list; C-015 observability |
|
||||
| Enhanced Input injection for automated ability tests | Blocked by Test Environment | — (harness; blocks validation of C-009/C-010/C-011) | See still-blocked list |
|
||||
|
||||
### Duplicate / superseded handling
|
||||
|
||||
| Topic | Classification | Disposition |
|
||||
|---|---|---|
|
||||
| Separate health / mana / stamina “canonical SoT” rows | Duplicate (resolved into one contract) | Historical rows retained below; proposal unified under **C-001** (+ init C-002, access C-003) |
|
||||
| Legacy mirror vs dual SoT options overlapping C-001 | Superseded by C-004 recommendation | Historical options retained; recommendation lives in contracts/register |
|
||||
|
||||
### Explicit remaining blocked runtime areas
|
||||
|
||||
These remain **explicitly blocked** and must stay visible until evidence exists. Tool inaccessibility is **not** runtime absence.
|
||||
|
||||
| Area | Status | Evidence IDs |
|
||||
|---|---|---|
|
||||
| Enhanced Input ability execution | Blocked by Test Environment / Tool Limitation | RE-2A1-015, 019, 021 |
|
||||
| AnimNotify authority | Blocked by Missing Runtime Evidence | RE-2A1-019, 021 (chain not executed) |
|
||||
| Ability cost mutation | Blocked by Missing Runtime Evidence / Tool Limitation | RE-2A1-014, 015 |
|
||||
| Ability interruption | Blocked by Test Environment | RE-2A1-020 |
|
||||
| Player damage / death / respawn | Blocked by Missing Implementation / Tool Limitation | RE-2A1-022 |
|
||||
| Two-client replication | Blocked by Test Environment / Tool Limitation | RE-2A1-023–026 |
|
||||
| Remote character selection | Blocked by Test Environment | Depends on multi-client (RE-2A1-023) |
|
||||
| Pickup authority and visibility | Blocked by Test Environment / Tool Limitation | RE-2A1-017, 018 |
|
||||
| Enemy attribute mutation | Blocked by Missing Runtime Evidence / Tool Limitation | RE-2A1-028, 030 |
|
||||
| Session behavior | Still Open (Phase 2E scope) | Not closed by 2A1; outside 2A2a contracts |
|
||||
|
||||
### New defects and limitations accounted for in contracts
|
||||
|
||||
| Observation | Contract handling |
|
||||
|---|---|
|
||||
| `PlayerFirstSpawn` Accessed None during normal spawn; spawn still succeeds | C-008 failure modes / transitional spawn path |
|
||||
| Amazonian vs Paladin legacy defaults differ; both legacy health begin at 0 | C-001, C-004; death-threshold risk under C-007 |
|
||||
| ASC defaults stable across inspected characters; no active default GE; no granted GAs | C-002 |
|
||||
| Enhanced Input unavailable via current automation | C-009–C-011 validation blocked; C-015 |
|
||||
| Multi-client PIE unavailable via authorized tooling | C-009, C-014 validation blocked; env decisions remain |
|
||||
| Enemy attributes inaccessible via current inspector | C-012 / C-015 — tool limit ≠ absence (RE-2A1-027 vs 028) |
|
||||
|
||||
---
|
||||
|
||||
## Historical Phase 2A1 open-decision table (preserved)
|
||||
|
||||
The following table is the Phase 2A1 inventory. It is preserved for evidence continuity. Classifications above supersede “options only” for proposal purposes; **no option is Approved**.
|
||||
|
||||
| Decision | Static evidence | Runtime evidence | Options | Blocking unknown | Required approval |
|
||||
|---|---|---|---|---|---|
|
||||
| Canonical health source of truth | Dual pools: ASC `Health`/`MaxHealth` vs `DEPRECATED_CurrentHealth`/`MaxHealth`; combat uses legacy; potions use ASC | ASC init 75/100 confirmed; Amazonian/Paladin legacy Current/Max Health = **0** at spawn; Overlay binds ASC | A) ASC only immediately B) Legacy only during reconstruction C) ASC canonical with temporary legacy mirror D) Character-specific transitional policy | Whether death/combat must keep working on legacy-zero characters before mirror | Phase 2A2 architecture contract |
|
||||
@@ -31,7 +102,8 @@ Decisions that remain open after Phase 1 static archaeology plus Phase 2A1 runti
|
||||
- Final attribute set schema changes
|
||||
- Whether to delete `DEPRECATED_*` in Phase 2A
|
||||
- Per-character reconstruction order changes
|
||||
- Approval of any C-001–C-015 contract (owner action required)
|
||||
|
||||
## Next authorized step (outside this batch)
|
||||
|
||||
Begin Phase 2A2 only after explicit authorization: propose shared resource/authority/damage/death/cleanup contracts using these open rows — still no implementation until contracts are approved.
|
||||
Wait for explicit owner approval of Proposed contracts before Phase 2A2b, Phase 2A3 implementation planning, or any Unreal implementation. Do not begin Phase 2B.
|
||||
|
||||
Reference in New Issue
Block a user