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
Store mission entrants, objective result, SECOND gained, TIME spent or lost, injuries, deaths, failed attempt state, memory deltas, and relationship deltas.
Apply outcome report effects through server-owned ledgers only.
Feed outcome summaries into memory consolidation and future NPC dialogue.
Support body death and failed attempt event chains without treating death as respawn.
Feed server-owned outcome state into Garden visible-memory staging after the report.
Map every visible outcome report row to a server-owned source row, or label it debug-simulated, not implemented, or hidden by cut.
Keep LLM output limited to commentary or intent, never reward mutation.
Minimum Ledger Proof
attempt_id, body_id, and mission_id are present.
One accepted outcome row or one clear denial row exists.
Attempt, proof, extraction, outcome, and Garden return staging transitions are accepted only in valid order or labeled debug-simulated.
Repeating the same outcome write does not create a second reward or report.
Reward is granted or denied by server-owned event state.
Death before proof does not grant a normal reward.
Balance before, delta, and balance after reconcile when SECOND changes.
Visible outcome rows do not show reward, memory, relationship, temporary loot, or Garden consequence before source events exist.
Memory and relationship refs are bounded server-validated proposals or labeled debug-simulated.
Unauthorized client writes, client-supplied amounts, stale attempt ids, and debug-only mutations are rejected or clearly labeled.
LLM output cannot mutate reward, memory, relationship, TIME, or body condition.
Acceptance Criteria
A prototype Gate outcome can create an auditable ledger record.
Outcome records can generate bounded memory and relationship delta proposals that Nakama validates.
Outcome state transitions reject stale, repeated, unauthorized, or out-of-order requests.
Unity can show a basic outcome report with reward, cost, injury, memory, relationship, failed attempt, and body death sections.
Outcome UI rows map to server-owned payload rows or honest missing/debug labels.
Garden return staging can display the correct visible slot after outcome state exists.
Tests cover accepted outcome writes, duplicate outcome rejection, unauthorized client mutation rejection, no reward after death-before-proof, stale attempt rejection, client amount rejection, and report-row mapping.
Evidence Closeout
Use docs/playtests/_templates/gate-outcome-report/ and include:
outcome-payload-note.md
outcome-state-transition-note.md
reward-time-note.md
body-condition-note.md
memory-relationship-note.md
ledger-authority-note.md
report-row-mapping-note.md
mutation-guard-note.md
ui-readability-note.md
garden-return-staging-note.md
console-summary.md
known-gaps.md
Use docs/playtests/_templates/reward-ledger-authority/ when SECOND reward/spend mutation is tested in the same PR.
Cut Line
If the full outcome stack is too large, keep one attempt id, one accepted or denied outcome row, one visible report, one valid state-transition path, one duplicate guard, one mutation guard, one report-row mapping note, and one death-before-proof reward denial. Defer full relationship simulation, final injury balance, rich NPC reaction writing, and final economy tuning.
Summary
Connect AI NPC memory, relationships, body death/failure state, and outcome consequences to the Garden -> Gate -> Return loop.
Source Docs
docs/design/64-gate-outcome-report-and-memory-flow-design.mddocs/design/102-alpha-body-death-and-failed-attempt-flow.mddocs/design/105-alpha-garden-return-state-and-consequence-staging.mddocs/design/81-alpha-gameplay-ledger-event-taxonomy.mddocs/design/103-alpha-second-earn-spend-pacing-and-economy-beats.mddocs/design/25-core-loop-v1.mddocs/design/37-ai-npc-backend-client-roadmap.mddocs/design/23-gameplay-ledger-technical-design.mddocs/playtests/_templates/gate-outcome-report/README.mddocs/playtests/_templates/reward-ledger-authority/README.mdScope
debug-simulated,not implemented, orhidden by cut.Minimum Ledger Proof
attempt_id,body_id, andmission_idare present.debug-simulated.Acceptance Criteria
Evidence Closeout
Use
docs/playtests/_templates/gate-outcome-report/and include:outcome-payload-note.mdoutcome-state-transition-note.mdreward-time-note.mdbody-condition-note.mdmemory-relationship-note.mdledger-authority-note.mdreport-row-mapping-note.mdmutation-guard-note.mdui-readability-note.mdgarden-return-staging-note.mdconsole-summary.mdknown-gaps.mdUse
docs/playtests/_templates/reward-ledger-authority/when SECOND reward/spend mutation is tested in the same PR.Cut Line
If the full outcome stack is too large, keep one attempt id, one accepted or denied outcome row, one visible report, one valid state-transition path, one duplicate guard, one mutation guard, one report-row mapping note, and one death-before-proof reward denial. Defer full relationship simulation, final injury balance, rich NPC reaction writing, and final economy tuning.