guest sdk: room lifecycle declarations — resumable / ephemeral / resident#30
Merged
Conversation
…dent GameMeta.Lifecycle, a trailing presence-guarded byte after the large-room meta section (ABI major stays 2; older payloads decode as resumable, older hosts ignore the byte). resumable (0, default) is today's hibernate-on-abandon. ephemeral ends and disposes after the abandonment grace — no snapshot, no Resume entry — right for casual social rooms. resident declares one long-lived granted room per slug; the host treats unknown values as resumable. SDKs reject undefined values and resident+MinPlayers>1 (a resident room runs with zero members) at meta encode time. Rust crate mirrors field, validation, and goldens (lifecycle suffix cross-checked against the Go encoder). GUIDE.md gains "Choosing a lifecycle"; ABI.md documents the byte and the zero-member posture. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Kit half of the room-lifecycle-modes change (engine half follows; design in the platform spec workspace).
GameMeta.Lifecycle— a trailing presence-guarded byte after the large-room meta section:LifecycleResumable(0, default)LifecycleEphemeralLifecycleResidentresident+MinPlayers > 1rejected (a resident room runs with zero members).ABI.md(the byte + zero-member posture),GUIDE.md"Choosing a lifecycle" (includingEnd()as the resident world-reset primitive).go test ./...andcargo testgreen.Sequencing: merge + tag v2.7.0 → engine PR pins it → catalog games declare ephemeral.
🤖 Generated with Claude Code