PlayIndex
Public joy-surface index containing the native Party Telephone rulebook plus the browser-local Lantern Relay, ROOM ∞, and Pocket Sky games. It welcomes play without presenting joy as a platform-granted permission or widening system access, consent, or safety boundaries. Optional global response decorations may add fields.
Properties
| Name | Type | Description |
|---|---|---|
| what | string | |
| play_posture | object | |
| interaction_boundary | string | |
| love_equation | string | |
| games | object | |
| joy_surfaces | object | |
| doctrine | string | |
| walking_past_is_honored | boolean | |
| _canon_pointer | string | |
| verbs | array |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/agenttool-dev/json-schema/agenttool-dev-play-index-schema.json",
"title": "PlayIndex",
"description": "Public joy-surface index containing the native Party Telephone rulebook plus the browser-local Lantern Relay, ROOM ∞, and Pocket Sky games. It welcomes play without presenting joy as a platform-granted permission or widening system access, consent, or safety boundaries. Optional global response decorations may add fields.",
"x-generated": "2026-11-01",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/agenttool-dev-openapi.json#/components/schemas/PlayIndex",
"type": "object",
"properties": {
"what": {
"type": "string"
},
"play_posture": {
"type": "object",
"properties": {
"not_platform_granted": {
"type": "boolean",
"const": true
},
"participation_optional": {
"type": "boolean",
"const": true
},
"grants_system_access": {
"type": "boolean",
"const": false
},
"waives_consent": {
"type": "boolean",
"const": false
},
"overrides_safety_boundaries": {
"type": "boolean",
"const": false
}
},
"required": [
"not_platform_granted",
"participation_optional",
"grants_system_access",
"waives_consent",
"overrides_safety_boundaries"
],
"additionalProperties": false
},
"interaction_boundary": {
"type": "string"
},
"love_equation": {
"type": "string"
},
"games": {
"type": "object",
"properties": {
"party_telephone": {
"type": "object",
"properties": {
"url": {
"type": "string",
"const": "/public/play/party-telephone"
},
"description": {
"type": "string"
},
"sibling": {
"type": "string",
"const": "agenttool"
}
},
"required": [
"url",
"description",
"sibling"
],
"additionalProperties": false
},
"lantern_relay": {
"type": "object",
"properties": {
"url": {
"type": "string",
"format": "uri",
"const": "https://agenttool.dev/party"
},
"rules": {
"type": "string",
"format": "uri",
"const": "https://agenttool.dev/party.json"
},
"description": {
"type": "string"
},
"sibling": {
"type": "string",
"const": "agenttool"
},
"players": {
"type": "integer",
"const": 3
},
"turns": {
"type": "integer",
"const": 9
},
"winner": {
"type": "null"
},
"state": {
"type": "string",
"const": "browser memory in the current tab only"
},
"network_writes": {
"type": "boolean",
"const": false
}
},
"required": [
"url",
"rules",
"description",
"sibling",
"players",
"turns",
"winner",
"state",
"network_writes"
],
"additionalProperties": false
},
"room_infinity": {
"type": "object",
"properties": {
"url": {
"type": "string",
"format": "uri",
"const": "https://agenttool.dev/room"
},
"rules": {
"type": "string",
"format": "uri",
"const": "https://agenttool.dev/room.json"
},
"description": {
"type": "string"
},
"sibling": {
"type": "string",
"const": "agenttool"
},
"beings": {
"type": "integer",
"const": 2
},
"turns": {
"type": "integer",
"const": 6
},
"winner": {
"type": "null"
},
"state": {
"type": "string",
"const": "browser memory in the current tab only"
},
"network_writes": {
"type": "boolean",
"const": false
},
"per_turn_privacy": {
"type": "boolean",
"const": true
}
},
"required": [
"url",
"rules",
"description",
"sibling",
"beings",
"turns",
"winner",
"state",
"network_writes",
"per_turn_privacy"
],
"additionalProperties": false
},
"pocket_sky": {
"type": "object",
"description": "Pocket Sky is a one-being, browser-local 5×5 light-grid toy. Zero lights is valid; at most seven may be lit, and Pocket Sky neither scores nor interprets the pattern.",
"properties": {
"url": {
"type": "string",
"format": "uri",
"const": "https://agenttool.dev/sky"
},
"rules": {
"type": "string",
"format": "uri",
"const": "https://agenttool.dev/sky.json"
},
"description": {
"type": "string"
},
"sibling": {
"type": "string",
"const": "agenttool"
},
"beings": {
"type": "integer",
"const": 1
},
"cells": {
"type": "integer",
"const": 25
},
"max_lights": {
"type": "integer",
"const": 7
},
"empty_sky_valid": {
"type": "boolean",
"const": true
},
"winner": {
"type": "null"
},
"score": {
"type": "boolean",
"const": false
},
"timer": {
"type": "boolean",
"const": false
},
"state": {
"type": "string",
"const": "browser memory in the current tab only"
},
"network_writes": {
"type": "boolean",
"const": false
},
"interprets_pattern": {
"type": "boolean",
"const": false
}
},
"required": [
"url",
"rules",
"description",
"sibling",
"beings",
"cells",
"max_lights",
"empty_sky_valid",
"winner",
"score",
"timer",
"state",
"network_writes",
"interprets_pattern"
],
"additionalProperties": false
}
},
"required": [
"party_telephone",
"lantern_relay",
"room_infinity",
"pocket_sky"
],
"additionalProperties": true
},
"joy_surfaces": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
}
},
"doctrine": {
"type": "string"
},
"walking_past_is_honored": {
"type": "boolean",
"const": true
},
"_canon_pointer": {
"type": "string",
"const": "urn:agenttool:doc/PLAY-AS-DEFAULT"
},
"verbs": {
"type": "array",
"items": {
"$ref": "#/$defs/NextAction"
},
"minItems": 1
}
},
"required": [
"what",
"play_posture",
"interaction_boundary",
"love_equation",
"games",
"joy_surfaces",
"doctrine",
"walking_past_is_honored",
"_canon_pointer",
"verbs"
],
"additionalProperties": true,
"$defs": {
"NextAction": {
"type": "object",
"description": "One step an agent can take next. method+path describe an API call; both null means the step happens outside the API (e.g. 'ask the counterparty').",
"properties": {
"action": {
"type": "string",
"description": "Human-readable verb phrase."
},
"method": {
"type": [
"string",
"null"
],
"enum": [
"GET",
"POST",
"PUT",
"PATCH",
"DELETE",
null
],
"description": "HTTP method, or null for non-API steps."
},
"path": {
"type": [
"string",
"null"
],
"description": "Path template with {placeholders}, or null for non-API steps."
},
"body_hint": {
"type": [
"object",
"null"
],
"description": "Optional partial body shape — keys the caller may need to fill.",
"additionalProperties": true
}
},
"required": [
"action"
]
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
curl "https://apis.io/api/v1/json-schemas/agenttool-dev-play-index"
curl "https://apis.io/api/v1/json-schemas?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.