Your next feature
Matches
Turn-based games with explicit revisions, opaque state and separate result reports.

Coordinate a lobby, alternating turns and independent final reports with two player sessions.
This step does not have a video yet. The guide and MCP request are ready to use.
Prepare the same project
Choose the same project in the dashboard as in your game configuration.
Matches →No additional definition is needed for the first request. An empty result is valid until matching game data exists.
Use two separate player sessions: create a lobby, join, start in an explicit order, submit alternating byte-state turns, then report the same final result independently.
This first example reads data. It creates no group, match or object. An empty list is a valid first response.
Build this feature
You can preview the guide. Running it requires an active project key. Prepare project
SDK installed, project configuration imported and player signed in.
This SDK example uses develop. Check whether the required APIs exist in your installed SDK.
Complete the Quickstart connection with the intended player. Call ReadMyMatches() from an explicit button or scene action. Opening the file alone sends no request.
Two players, one original turn
Use two separate player sessions: create a lobby, join, start in an explicit order, submit alternating byte-state turns, then report the same final result independently.
Persist the exact request before sending. After a timeout, read current state and reconcile. Never replace its revision or create another intent silently.
Reports use the immutable final state revision. Agreement is not a trusted victory proof; disagreement and missing reports never imply a winner.
Ranked runs require a confirmed ranked match and the existing Validated Actions pipeline. Ordinary match reports do not grant rewards.
PHP supports ordinary match REST routes. Ranked validation and realtime are unavailable and return FEATURE_NOT_SUPPORTED where required.
Test your new feature.
Coordinate a lobby, alternating turns and independent final reports with two player sessions.
Choose the same project in the dashboard as in your game configuration.
Endpoints
- GET
/matches - GET
/matches/limits - GET
/matches/open - GET
/matches/{matchId} - POST
/matches - POST
/matches/{matchId}/join - POST
/matches/{matchId}/decline - POST
/matches/{matchId}/start - POST
/matches/{matchId}/turn - POST
/matches/{matchId}/timeout - POST
/matches/{matchId}/leave - POST
/matches/{matchId}/cancel - POST
/matches/{matchId}/result - POST
/matches/{matchId}/ranked-run


