Skip to main content
Class: SummerMatchmakingProposal · Inherits: RefCounted Opaque handle for one pending matchmaking proposal that requires an explicit decision. Every matchmaking proposal requires an explicit creator decision; the engine never accepts on the game’s behalf. The handle arrives through SummerJoinOperation.acceptance_required and is also readable as SummerJoinOperation.pending_proposal while a decision is awaited. The handle is deliberately opaque: it exposes only safe metadata and carries no proposal identifier, version, ticket, credential, carrier, endpoint, or platform route. The private concurrency identity stays inside the trusted runtime and is fenced per proposal, so a delayed decision made for an earlier proposal can never act on a later one — it fails with proposal_stale instead. Exactly one decision is allowed. Repeating the same decision is idempotent and returns the original outcome; the opposite decision fails with proposal_already_decided. After the proposal expires, is superseded, or the matchmaking operation ends, both methods fail with proposal_stale without side effects. A proposal that reaches its deadline with no decision from every player ends the matchmaking operation with proposal_expired. Games that want automatic behavior connect SummerJoinOperation.acceptance_required directly to accept().

Properties

Methods

accept

Submits the explicit accept decision for this proposal through the trusted Player Host. On success the parent SummerJoinOperation stays pending and continues into allocation and admission only after every proposed player accepted. Fails typed with proposal_stale or proposal_already_decided; a failed call performs no submission. Returns: SummerResult

decline

Submits the explicit decline decision for this proposal through the trusted Player Host. The parent SummerJoinOperation then terminates cleanly with the typed code proposal_declined; no allocation happens and a later Summer.client.join() starts a fresh search. Fails typed with proposal_stale or proposal_already_decided; a failed call performs no submission. Returns: SummerResult

is_decided

Returns true once a decision was successfully submitted through this handle. Returns: bool
What is live on the platform today: platform capability status. Check availability at runtime before you offer a feature.