GripForge
What this MCP does
Generates, rigs, animates, analyzes, and packages game characters, weapons, armor, effects, environments, and engine-ready assets.
Tools
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['character_url', 'bodyPart'], 'properties': {'bodyPart': {'enum': ['right_thigh', 'left_thigh', 'right_shin', 'left_shin'], 'type': 'string', 'description': 'Limb to seat'}, 'character_url': {'type': 'string', 'description': 'URL of the rigged character'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['asset_url'], 'properties': {'side': {'enum': ['left', 'right'], 'type': 'string'}, 'type': {'enum': ['thigh', 'greave'], 'type': 'string'}, 'asset_url': {'type': 'string', 'description': 'URL of the armor piece'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['action'], 'properties': {'pack': {'type': 'object', 'description': 'Versioned ability pack. Read schema/example first; author a reusable pack then validate it.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'action': {'enum': ['schema', 'example', 'validate', 'export'], 'type': 'string'}, 'target': {'enum': ['threejs', 'godot', 'unity', 'unreal', 'all'], 'type': 'string'}, 'model_asset': {'type': 'string', 'pattern': '^lib_[A-Za-z0-9_-]{8,64}$', 'description': 'Library model id bound to the example. Does not rig or animate it.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'yaws': {'type': 'array', 'items': {'type': 'number'}, 'description': 'Default [-60,-30,0,30,60]'}, 'hands': {'type': 'array', 'items': {'enum': ['left', 'right'], 'type': 'string'}}, 'pitches': {'type': 'array', 'items': {'type': 'number'}, 'description': 'Default [-40,-20,0,20,40]'}, 'attach_id': {'type': 'string', 'description': 'Armed bind / loadout id (lib_â\x80¦) â\x80\x94 preferred'}, 'extension': {'type': 'number', 'description': 'Arm extension 0.5â\x80\x930.98 (default 0.9)'}, 'character_id': {'type': 'string', 'description': 'Character id if no bind'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['character_id'], 'properties': {'name': {'type': 'string', 'description': 'Library name for the animated GLB'}, 'slots': {'type': 'array', 'items': {'enum': ['idle', 'walk', 'run', 'attack1', 'attack2', 'attack3', 'hit', 'death', 'dodge', 'taunt', 'stinger', 'knockback', 'block', 'jump_start', 'jump_loop', 'jump_land', 'idle_guns', 'shoot', 'fire_breath', 'energy_cast'], 'type': 'string'}, 'description': 'Subset of clips (default: all)'}, 'archetype': {'enum': ['sword', 'claws', 'heavy', 'brawler', 'puppet'], 'type': 'string', 'description': 'Movement/strike archetype â\x80\x94 remaps the base slots (default sword)'}, 'character_id': {'type': 'string', 'description': 'Library character, enemy, or armed bind id'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['prompt'], 'properties': {'name': {'type': 'string', 'maxLength': 100}, 'pieces': {'type': 'array', 'items': {'enum': ['helmet', 'chest', 'belt', 'pauldron', 'bracer', 'glove', 'thigh', 'greave', 'boot', 'upperarm', 'gorget', 'tasset', 'undersuit'], 'type': 'string'}, 'maxItems': 13, 'minItems': 1}, 'prompt': {'type': 'string', 'maxLength': 2000, 'minLength': 3}, 'coverage': {'enum': ['modular', 'full'], 'type': 'string'}, 'polycount': {'type': 'integer', 'maximum': 30000, 'minimum': 3000}, 'source_kit': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}, 'concept_item': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Returned scene links open this workspace.'}, 'textile_color': {'type': 'string', 'pattern': '^#[a-fA-F0-9]{6}$'}, 'character_items': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}, 'maxItems': 3}, 'idempotency_key': {'type': 'string', 'maxLength': 160, 'minLength': 8}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Returned scene links open this workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['source_job'], 'properties': {'pieces': {'type': 'array', 'items': {'enum': ['helmet', 'chest', 'belt', 'pauldron', 'bracer', 'glove', 'thigh', 'greave', 'boot', 'upperarm', 'gorget', 'tasset', 'undersuit'], 'type': 'string'}, 'maxItems': 13, 'minItems': 1}, 'prompt': {'type': 'string', 'maxLength': 2000, 'minLength': 3}, 'source_job': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Returned scene links open this workspace.'}, 'idempotency_key': {'type': 'string', 'maxLength': 160, 'minLength': 8}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'pattern': '^lib_[A-Za-z0-9_-]+$', 'description': 'Published Community Library id.'}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Authorized workspace; defaults to the connected workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['q'], 'properties': {'q': {'type': 'string', 'maxLength': 200, 'description': 'Visual role or style, e.g. sci-fi turret, rock, soldier.'}, 'kind': {'enum': ['character', 'fps-arms', 'enemy', 'weapon', 'equipment', 'prop', 'texture', 'skybox', 'vfx', 'animation', 'audio', 'kit'], 'type': 'string', 'description': 'Optional asset kind.'}, 'sort': {'enum': ['rank', 'newest'], 'type': 'string', 'description': 'rank (default): best fit first; newest: most recent first.'}, 'limit': {'type': 'integer', 'maximum': 48, 'minimum': 1, 'description': 'Results per source; default 12.'}, 'offset': {'type': 'integer', 'maximum': 10000, 'minimum': 0, 'description': 'Pagination offset per source; default 0.'}, 'source': {'enum': ['workspace', 'community', 'both'], 'type': 'string', 'description': 'Defaults to both.'}, 'target': {'enum': ['mobile', 'desktop'], 'type': 'string', 'description': 'Platform the game ships on: sets the triangle and file budgets of the rank. Defaults to mobile.'}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Authorized workspace; defaults to the connected workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'fist': {'type': 'number', 'maximum': 1, 'minimum': 0, 'description': 'Fist closing 0â\x86\x921 (default 1)'}, 'hand': {'enum': ['right', 'left'], 'type': 'string', 'description': 'Hand side (default right)'}, 'style': {'enum': ['melee', 'gun', 'shield', 'staff'], 'type': 'string', 'description': 'Grip style (default: geometric classification)'}, 'prop_id': {'type': 'string', 'description': 'Library id of a prop (lib_â\x80¦)'}, 'prop_url': {'type': 'string', 'description': 'URL of the prop mesh'}, 'ai_refine': {'type': 'boolean', 'description': 'Vision check of the grip (+10-30s)'}, 'attach_id': {'type': 'string', 'description': 'Library bind id â\x80\x94 armed GLB used as the character (second prop, or continue a kit)'}, 'prop_id_2': {'type': 'string', 'description': 'Optional second held item (off-hand) attached after the first'}, 'export_glb': {'type': 'boolean', 'description': 'Bake attached.glb into Library and return its signed URL'}, 'prop_url_2': {'type': 'string', 'description': 'https URL of a second held item (off-hand)'}, 'character_id': {'type': 'string', 'description': 'Library id of a character (lib_â\x80¦)'}, 'height_ratio': {'type': 'number', 'maximum': 1.5, 'minimum': 0.05, 'description': 'Prop size as a fraction of body height'}, 'character_url': {'type': 'string', 'description': 'URL of the rigged character (.glb .gltf .fbx .obj)'}}}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'bind': {'type': 'object', 'description': 'Bind result: resolved bone, position/rotation, grip pose, notes', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'credits': {'type': 'object', 'properties': {'plan': {'type': 'string'}, 'used': {'type': 'number'}, 'limit': {'type': 'number'}, 'period': {'type': 'string'}, 'remaining': {'type': 'number'}}, 'description': 'Account usage after this call', 'additionalProperties': False}, 'exports': {'type': 'object', 'description': 'Ready-to-paste engine snippets keyed by target (three, unity, godot, json)', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'string'}}, 'glb_download_url': {'type': 'string', 'description': 'Download URL of the armed GLB (when export_glb is true)'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'prompt': {'type': 'string', 'description': 'What you need, e.g. "gunshot", "ui click", "dinosaur roar", "magie", "annonceur fps". Omit for a short catalog.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['recipe'], 'properties': {'recipe': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Returned scene links open this workspace.'}, 'idempotency_key': {'type': 'string', 'maxLength': 160, 'minLength': 8}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['prompt'], 'properties': {'name': {'type': 'string', 'maxLength': 80, 'description': 'Boss display name'}, 'role': {'enum': ['mini', 'mid', 'final'], 'type': 'string', 'description': 'mini | mid | final (inferred from the prompt)'}, 'prompt': {'type': 'string', 'maxLength': 240, 'minLength': 2, 'description': 'e.g. "devil may cry like phantom boss"'}, 'generate': {'type': 'boolean', 'description': 'Forge a new enemy mesh (10 credits). Skip if locker already has one.'}, 'provider': {'enum': ['tripo', 'meshy'], 'type': 'string', 'description': 'Only used when generate=true (default tripo)'}, 'character_id': {'type': 'string', 'description': 'lib_â\x80¦ character/enemy/bind to bind â\x80\x94 0 credits'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['prompt'], 'properties': {'prompt': {'type': 'string', 'maxLength': 240, 'minLength': 2, 'description': 'difficulty: easy, normal, hard'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'maxLength': 80, 'minLength': 4, 'description': 'Game build id (bld_â\x80¦)'}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Never infer another userâ\x80\x99s workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'maxLength': 80, 'minLength': 4, 'description': 'Game build id (bld_â\x80¦)'}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Never infer another userâ\x80\x99s workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Never infer another userâ\x80\x99s workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'maxLength': 80, 'minLength': 4, 'description': 'Game build id (bld_â\x80¦)'}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Never infer another userâ\x80\x99s workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'rows': {'type': 'integer', 'maximum': 8, 'minimum': 2, 'description': 'bone rows below anchor (default 5)'}, 'save': {'type': 'boolean', 'description': 'save attached_cape.glb into Library (default true)'}, 'cape_id': {'type': 'string', 'description': 'Library id of the cape mesh (lib_â\x80¦)'}, 'columns': {'type': 'integer', 'maximum': 5, 'minimum': 2, 'description': 'bone columns (default 3)'}, 'cape_url': {'type': 'string', 'description': 'https URL of the cape GLB (static mesh)'}, 'character_id': {'type': 'string', 'description': 'Library id of a rigged character (lib_â\x80¦)'}, 'character_url': {'type': 'string', 'description': 'https URL of a rigged character GLB'}}}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['bind', 'files', 'library', 'notes'], 'properties': {'bind': {'type': 'object', 'description': 'cape bind v1 â\x80\x94 anchor bone, gf_cape_* grid, stiffness per bone, spring params', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'files': {'type': 'object', 'description': 'cape-bind.json, cape-godot.gd (spring bones script), cape-three.js (verlet snippet)', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'string'}}, 'notes': {'type': 'array', 'items': {'type': 'string'}}, 'library': {'anyOf': [{'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, {'type': 'null'}], 'description': 'Library item of the baked attached_cape.glb (skinned, ready to load)'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['name', 'prompt'], 'properties': {'n': {'type': 'number', 'maximum': 4, 'minimum': 1, 'description': 'Default 3'}, 'kind': {'enum': ['character', 'enemy', 'boss'], 'type': 'string', 'description': 'Default character'}, 'name': {'type': 'string', 'maxLength': 80, 'minLength': 2, 'description': 'Creation name, stored on each concept'}, 'prompt': {'type': 'string', 'maxLength': 600, 'minLength': 3, 'description': 'Look, outfit, silhouette'}, 'weapon': {'type': 'string', 'maxLength': 160, 'description': 'Shown on the looks only; empty hands if omitted'}}}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'kind': {'type': 'string'}, 'name': {'type': 'string'}, 'items': {'type': 'array', 'items': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}}, 'recipe': {'type': 'string'}, 'credits': {'type': 'number'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['file_url'], 'properties': {'cape': {'type': 'boolean', 'description': 'Remove flowing cape/train only; keep sleeved jacket (outfit only, default true)'}, 'name': {'type': 'string', 'description': 'Library name'}, 'notes': {'type': 'string', 'description': 'Extra direction'}, 'clothes': {'enum': ['outfit', 'base'], 'type': 'string', 'description': 'outfit = keep clothes; base = grey athletic sportswear'}, 'file_url': {'type': 'string', 'description': 'https URL of the concept image'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['source_id'], 'properties': {'kind': {'enum': ['enemy', 'character'], 'type': 'string'}, 'name': {'type': 'string', 'maxLength': 100, 'minLength': 1}, 'source_id': {'type': 'string', 'pattern': '^lib_[A-Za-z0-9_-]{8,64}$'}, 'workspace_id': {'type': 'string', 'maxLength': 100}, 'idempotency_key': {'type': 'string', 'pattern': '^[a-zA-Z0-9_.:-]{8,160}$'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['analysis_job'], 'properties': {'name': {'type': 'string', 'maxLength': 100, 'minLength': 1}, 'profile': {'type': 'object', 'description': 'Optional corrected anatomy in the exact coordinate system returned by analyze. Read the schema and inspect the multiview preview first.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'allow_rerig': {'type': 'boolean', 'description': 'Explicitly create a NEW rigged copy if the source already contains bones. The source is never overwritten.'}, 'analysis_job': {'type': 'string', 'pattern': '^gen_[A-Za-z0-9_-]{8,64}$'}, 'workspace_id': {'type': 'string', 'maxLength': 100}, 'idempotency_key': {'type': 'string', 'pattern': '^[a-zA-Z0-9_.:-]{8,160}$'}, 'reviewed_anatomy': {'type': 'boolean', 'description': 'Required: true only after inspecting/correcting the anatomy and its skeleton overlay.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['recipe'], 'properties': {'recipe': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Returned scene links open this workspace.'}, 'idempotency_key': {'type': 'string', 'maxLength': 160, 'minLength': 8}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Returned scene links open this workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Returned scene links open this workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['prompt'], 'properties': {'prompt': {'type': 'string', 'maxLength': 240, 'minLength': 2, 'description': 'e.g. "devil may cry like"'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['formats', 'styles', 'docs'], 'properties': {'mcp': {'type': 'object', 'required': ['client', 'latest', 'outdated', 'npm', 'hosted'], 'properties': {'npm': {'type': 'string'}, 'client': {'type': 'string'}, 'hosted': {'type': 'string'}, 'latest': {'type': 'string'}, 'outdated': {'type': 'boolean'}}, 'additionalProperties': False}, 'docs': {'type': 'string', 'description': 'Documentation URL'}, 'styles': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Supported grip styles'}, 'formats': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Supported mesh file formats'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['recipe'], 'properties': {'recipe': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Returned scene links open this workspace.'}, 'idempotency_key': {'type': 'string', 'maxLength': 160, 'minLength': 8}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'map': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'rules': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'action': {'enum': ['get', 'validate', 'export'], 'type': 'string', 'default': 'get'}, 'kit_id': {'type': 'string'}, 'target': {'enum': ['web', 'godot', 'both'], 'type': 'string', 'default': 'both'}, 'asset_slots': {'type': 'array', 'items': {'type': 'string'}}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'maxLength': 80, 'minLength': 4, 'description': 'Game server id (srv_â\x80¦)'}, 'message': {'type': 'string', 'maxLength': 500}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Never infer another userâ\x80\x99s workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['project_id'], 'properties': {'goal': {'type': 'string', 'maxLength': 400, 'description': 'Preset id (e.g. from gripforge_gamekit_search presets) or comma-separated capabilities to reach. Default: the projectâ\x80\x99s own preset.'}, 'project_id': {'type': 'string', 'maxLength': 80, 'minLength': 4, 'description': 'Game Kit project id (gkp_â\x80¦). Not a dedicated-server project (gpj_â\x80¦) nor a Library item.'}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Never infer another userâ\x80\x99s workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'game': {'type': 'string', 'maxLength': 120, 'minLength': 2, 'description': 'The game the user named, as written ("God of War", "like Dark Souls", "a GTA"). Matched against titles and aliases of the catalog.'}, 'stage': {'enum': ['catalog', 'plan', 'build'], 'type': 'string', 'description': 'catalog: known games, blueprints (slot counts) and theme packs. plan (default, free): what already exists and is reused, what would be generated, and the price. build: generate the missing concepts, requires budget.'}, 'budget': {'type': 'object', 'properties': {'usd': {'type': 'number', 'minimum': 0}, 'credits': {'type': 'number', 'minimum': 0}}, 'description': 'Required for build: maximum credits OR USD, at least the plan price.', 'additionalProperties': False}, 'counts': {'type': 'object', 'properties': {'vfx': {'type': 'integer', 'maximum': 96, 'minimum': 0}, 'npcs': {'type': 'integer', 'maximum': 96, 'minimum': 0}, 'props': {'type': 'integer', 'maximum': 96, 'minimum': 0}, 'bosses': {'type': 'integer', 'maximum': 96, 'minimum': 0}, 'heroes': {'type': 'integer', 'maximum': 96, 'minimum': 0}, 'enemies': {'type': 'integer', 'maximum': 96, 'minimum': 0}, 'weapons': {'type': 'integer', 'maximum': 96, 'minimum': 0}, 'textures': {'type': 'integer', 'maximum': 96, 'minimum': 0}, 'vehicles': {'type': 'integer', 'maximum': 96, 'minimum': 0}, 'buildings': {'type': 'integer', 'maximum': 96, 'minimum': 0}}, 'description': 'Concepts to generate per slot. Default: what the blueprint needs minus what is already reusable.', 'additionalProperties': False}, 'custom': {'type': 'object', 'required': ['title', 'blueprint', 'pack', 'build'], 'properties': {'pack': {'type': 'string', 'maxLength': 60, 'description': 'Closest theme pack from stage=catalog, e.g. nordic-mythology, cyberpunk.'}, 'build': {'type': 'string', 'maxLength': 300, 'minLength': 10, 'description': 'One sentence describing the original game to make.'}, 'title': {'type': 'string', 'maxLength': 80, 'minLength': 2}, 'blueprint': {'type': 'string', 'maxLength': 60, 'description': 'Closest blueprint from stage=catalog, e.g. third-person-action, open-world-rpg.'}}, 'description': 'Only when `game` is not in the catalog: describe the game with the closest blueprint and pack.', 'additionalProperties': False}, 'provider': {'enum': ['openai', 'xai'], 'type': 'string', 'description': 'Default openai (GPT Image 2.5 sunburst: final quality for style bible, heroes and bosses, medium-quality sheets of 6 for the rest).'}, 'workspace_id': {'type': 'string', 'maxLength': 100}, 'idempotency_key': {'type': 'string', 'pattern': '^[a-zA-Z0-9_.:-]{8,160}$'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['action'], 'properties': {'q': {'type': 'string', 'maxLength': 100}, 'id': {'type': 'string', 'maxLength': 100}, 'mode': {'enum': ['select', 'generate', 'default'], 'type': 'string'}, 'action': {'enum': ['list', 'get', 'assets', 'create', 'select', 'use_reference', 'approve_concept', 'approve_asset', 'quote', 'accept', 'cancel', 'retry', 'dismiss'], 'type': 'string'}, 'engine': {'enum': ['web', 'unity', 'godot', 'unreal'], 'type': 'string'}, 'prompt': {'type': 'string', 'maxLength': 2000}, 'source': {'enum': ['all', 'workspace', 'community'], 'type': 'string'}, 'message': {'type': 'string', 'maxLength': 1500, 'minLength': 3}, 'slot_id': {'type': 'string', 'maxLength': 100}, 'asset_id': {'type': 'string', 'maxLength': 100}, 'operation': {'enum': ['plan', 'refine', 'concept', 'generate', 'build'], 'type': 'string'}, 'quote_token': {'type': 'string', 'maxLength': 100}, 'workspace_id': {'type': 'string', 'maxLength': 100}, 'allow_incomplete': {'type': 'boolean'}, 'expected_revision': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['project_id', 'id'], 'properties': {'id': {'type': 'string', 'pattern': '^[a-z0-9][a-z0-9._-]*$', 'maxLength': 120, 'minLength': 2, 'description': 'Kit id from the catalogue, dotted (e.g. vehicle.driveable, mission.objectives).'}, 'config': {'type': 'object', 'description': 'Kit config values, validated against the kit configSchema returned by gripforge_gamekit_get. Merged over the current config.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'reason': {'type': 'string', 'maxLength': 300, 'description': 'One sentence: why you do this, recorded in the project history (required in spirit when you go against the installed-kits rule).'}, 'enabled': {'type': 'boolean', 'description': 'false to disable the kit at runtime while keeping it installed; true to re-enable.'}, 'project_id': {'type': 'string', 'maxLength': 80, 'minLength': 4, 'description': 'Game Kit project id (gkp_â\x80¦). Not a dedicated-server project (gpj_â\x80¦) nor a Library item.'}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Never infer another userâ\x80\x99s workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['target'], 'properties': {'kits': {'type': 'array', 'items': {'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'pattern': '^[a-z0-9][a-z0-9._-]*$', 'maxLength': 120, 'minLength': 2, 'description': 'Kit id from the catalogue, dotted (e.g. vehicle.driveable, mission.objectives).'}, 'config': {'type': 'object', 'description': 'Kit config, validated against its configSchema.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'bindings': {'type': 'object', 'description': 'Asset slot â\x86\x92 Library item id (lib_â\x80¦).', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'string'}}}}, 'maxItems': 16, 'description': 'Kits to deliver (at most 16). Omit to deliver the enabled kits of project_id.'}, 'mode': {'enum': ['install', 'update', 'uninstall'], 'type': 'string', 'description': 'install (default), update to the latest catalogue version, or uninstall (needs project_state.lock).'}, 'force': {'type': 'boolean', 'description': 'true â\x86\x92 back up then overwrite edited managed files and existing seed files.'}, 'target': {'enum': ['godot', 'unity', 'unreal', 'web'], 'type': 'string', 'description': 'Engine to deliver to: godot (addon + kit files), unity (UPM package + C# files), unreal (plugins), web (native, nothing to write). Kits without an engine delivery get recipes.'}, 'dry_run': {'type': 'boolean', 'description': 'true â\x86\x92 plan only: no bundle, never charged. Do this first.'}, 'project_id': {'type': 'string', 'maxLength': 80, 'minLength': 4, 'description': 'Game Kit project (gkp_â\x80¦) whose enabled kits, config and slot bindings are delivered when kits is omitted.'}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Never infer another userâ\x80\x99s workspace.'}, 'project_state': {'type': 'object', 'properties': {'lock': {'anyOf': [{'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, {'type': 'null'}], 'description': 'Current gripforge/gamekits.lock.json content, null when absent.'}, 'files': {'type': 'object', 'description': 'path â\x86\x92 sha256 hex of every file under gripforge/ and assets/gripforge/ (at most 5000).', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'string'}}, 'engineVersion': {'type': 'string', 'maxLength': 80, 'description': 'Engine version, e.g. 4.3.stable.'}}, 'description': 'What the engine project contains now. Without it the plan assumes an empty project (add-only).'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'id': {'type': 'string', 'pattern': '^[a-z0-9][a-z0-9._-]*$', 'maxLength': 120, 'minLength': 2, 'description': 'Catalogue kit id to inspect instead of a project (returns its manifest tree).'}, 'project_id': {'type': 'string', 'maxLength': 80, 'minLength': 4, 'description': 'Game Kit project id (gkp_â\x80¦). Default: the workspaceâ\x80\x99s most recently updated project when id is not given.'}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Never infer another userâ\x80\x99s workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'pattern': '^[a-z0-9][a-z0-9._-]*$', 'maxLength': 120, 'minLength': 2, 'description': 'Kit id from the catalogue, dotted (e.g. vehicle.driveable, mission.objectives).'}, 'version': {'type': 'string', 'maxLength': 40, 'description': 'Exact version to read (e.g. 1.0.0). Default: latest.'}, 'with_usage': {'type': 'boolean', 'description': 'true to include usedBy: the workspace projects where this kit is installed.'}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Never infer another userâ\x80\x99s workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['project_id', 'id'], 'properties': {'id': {'type': 'string', 'pattern': '^[a-z0-9][a-z0-9._-]*$', 'maxLength': 120, 'minLength': 2, 'description': 'Kit id from the catalogue, dotted (e.g. vehicle.driveable, mission.objectives).'}, 'config': {'type': 'object', 'description': 'Kit config values, validated against the kit configSchema returned by gripforge_gamekit_get. Merged over the current config.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'reason': {'type': 'string', 'maxLength': 300, 'description': 'One sentence: why you do this, recorded in the project history (required in spirit when you go against the installed-kits rule).'}, 'dry_run': {'type': 'boolean', 'description': 'true to return the install plan without writing the project.'}, 'project_id': {'type': 'string', 'maxLength': 80, 'minLength': 4, 'description': 'Game Kit project id (gkp_â\x80¦). Not a dedicated-server project (gpj_â\x80¦) nor a Library item.'}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Never infer another userâ\x80\x99s workspace.'}, 'allow_planned': {'type': 'boolean', 'description': 'true to accept kits still marked planned (0.x, no runtime yet). Default false.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['project_id'], 'properties': {'project_id': {'type': 'string', 'maxLength': 80, 'minLength': 4, 'description': 'Game Kit project id (gkp_â\x80¦). Not a dedicated-server project (gpj_â\x80¦) nor a Library item.'}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Never infer another userâ\x80\x99s workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['project_id', 'id'], 'properties': {'id': {'type': 'string', 'pattern': '^[a-z0-9][a-z0-9._-]*$', 'maxLength': 120, 'minLength': 2, 'description': 'Kit id from the catalogue, dotted (e.g. vehicle.driveable, mission.objectives).'}, 'force': {'type': 'boolean', 'description': 'true to remove even when other kits depend on it (their requirements become unresolved).'}, 'prune': {'type': 'boolean', 'description': 'true to also remove dependencies that no remaining kit requires.'}, 'reason': {'type': 'string', 'maxLength': 300, 'description': 'One sentence: why you do this, recorded in the project history (required in spirit when you go against the installed-kits rule).'}, 'project_id': {'type': 'string', 'maxLength': 80, 'minLength': 4, 'description': 'Game Kit project id (gkp_â\x80¦). Not a dedicated-server project (gpj_â\x80¦) nor a Library item.'}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Never infer another userâ\x80\x99s workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'q': {'type': 'string', 'maxLength': 200, 'description': 'Free text matched on id, name, description and tags (e.g. "drive a car", "wanted level").'}, 'tag': {'type': 'string', 'maxLength': 60, 'description': 'Tag filter (e.g. vehicle, mission, npc, legacy).'}, 'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Max kits returned (default 20).'}, 'target': {'enum': ['web', 'godot', 'unity', 'unreal'], 'type': 'string', 'description': 'Engine target the kit must support. For game creation, use the engine chosen by the user or identified in their project; ask Unity / Godot / Unreal Engine / Three.js if unknown. The API web default is not user consent.'}, 'capability': {'type': 'string', 'maxLength': 120, 'description': 'Capability the kit must provide (exact id or prefix, e.g. vehicle.drive).'}, 'project_id': {'type': 'string', 'maxLength': 80, 'minLength': 4, 'description': 'Game Kit project id (gkp_â\x80¦) to score results against. Default: the workspaceâ\x80\x99s most recently updated project.'}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Never infer another userâ\x80\x99s workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['project_id'], 'properties': {'id': {'type': 'string', 'pattern': '^[a-z0-9][a-z0-9._-]*$', 'maxLength': 120, 'minLength': 2, 'description': 'Installed kit to update. Omit to check every installed kit.'}, 'apply': {'type': 'boolean', 'description': 'true to apply the update to the latest version (automatic migrations run). Default false = plan only.'}, 'project_id': {'type': 'string', 'maxLength': 80, 'minLength': 4, 'description': 'Game Kit project id (gkp_â\x80¦). Not a dedicated-server project (gpj_â\x80¦) nor a Library item.'}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Never infer another userâ\x80\x99s workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['project_id'], 'properties': {'project_id': {'type': 'string', 'maxLength': 80, 'minLength': 4, 'description': 'Game Kit project id (gkp_â\x80¦). Not a dedicated-server project (gpj_â\x80¦) nor a Library item.'}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Never infer another userâ\x80\x99s workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['action'], 'properties': {'kits': {'type': 'object', 'description': 'create: explicit kit toggles { "vehicle.driveable": true, â\x80¦ } on top of the preset. Unchecking a required kit fails with toggle_requires. The default interface kits (ui.menu, input.remap, settings.graphics) are included unless set to false here â\x80\x94 only when the user asked for it.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'boolean'}}, 'name': {'type': 'string', 'maxLength': 120, 'minLength': 1, 'description': 'create: project name.'}, 'action': {'enum': ['list', 'create', 'get', 'bind', 'data', 'delete'], 'type': 'string', 'description': 'list | create | get | bind | data | delete.'}, 'preset': {'type': 'string', 'maxLength': 80, 'description': 'create: preset id whose default kits are installed (gripforge_gamekit_search returns presets).'}, 'remove': {'type': 'array', 'items': {'type': 'string', 'maxLength': 120}, 'maxItems': 500, 'description': 'data: document ids to remove.'}, 'target': {'enum': ['web', 'godot', 'unity', 'unreal'], 'type': 'string', 'description': 'create: pass the confirmed engine explicitly (Three.js=web). Ask the user to choose Unity / Godot / Unreal Engine / Three.js before creating if unknown. API default web is for compatibility, not an engine choice.'}, 'confirm': {'type': 'boolean', 'description': 'delete: must be true. The project, its revisions and data are removed.'}, 'replace': {'type': 'boolean', 'description': 'data: true to replace the whole collection with documents.'}, 'bindings': {'type': 'object', 'description': 'bind: { slot: lib_â\x80¦ | null } â\x80\x94 Library item per asset slot declared by the installed kits, null clears.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'documents': {'type': 'array', 'items': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'maxItems': 500, 'description': 'data: documents to upsert (each with its id), validated against the kit schema.'}, 'collection': {'type': 'string', 'maxLength': 80, 'description': 'data: collection name declared by an installed kit (e.g. missions, npcs, zones).'}, 'project_id': {'type': 'string', 'maxLength': 80, 'minLength': 4, 'description': 'Game Kit project id (gkp_â\x80¦). Required for get, bind, data and delete.'}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Never infer another userâ\x80\x99s workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['prompt', 'kind'], 'properties': {'kind': {'enum': ['character', 'enemy', 'boss', 'weapon', 'prop'], 'type': 'string', 'description': 'What to forge â\x80\x94 rigged (character/enemy/boss) or static mesh (weapon/prop)'}, 'name': {'type': 'string', 'maxLength': 160, 'description': 'Library item name (default: the prompt)'}, 'prompt': {'type': 'string', 'maxLength': 600, 'minLength': 3, 'description': 'Description of the asset.'}, 'file_url': {'type': 'string', 'description': 'https URL of a concept or T-pose image. Image-to-3D.'}, 'provider': {'enum': ['tripo', 'meshy'], 'type': 'string', 'description': 'Generation provider (default tripo; meshy when concept_item)'}, 'polycount': {'type': 'number', 'description': 'Target triangles.'}, 'underwear': {'type': 'boolean', 'description': 'Characters: false = keep the described outfit'}, 'concept_item': {'type': 'string', 'description': 'Library concept / T-pose id (lib_â\x80¦). Image-to-3D â\x80\x94 not text-to-3D.'}, 'idempotency_key': {'type': 'string', 'pattern': '^[a-zA-Z0-9_.:-]{8,160}$', 'description': 'Stable key per asset role. Reuse after an uncertain response to avoid duplicate paid jobs.'}}}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'job': {'type': 'string'}, 'item': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'notes': {'type': 'array', 'items': {'type': 'string'}}, 'stage': {'type': 'string'}, 'job_id': {'type': 'string'}, 'status': {'type': 'string'}, 'provider': {'type': 'string'}, 'status_url': {'type': 'string'}, 'studio_url': {'type': 'string'}, 'library_url': {'type': 'string'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['recipe'], 'properties': {'stage': {'enum': ['plan', 'concept', 'build'], 'type': 'string', 'description': 'plan is free: exact prompts and separate image/3D quotes. concept creates reviewable workspace images. First review artistic scene, then isolated views of the SAME building, then build 3D from chosen isolated references.'}, 'budget': {'type': 'object', 'properties': {'usd': {'type': 'number', 'minimum': 0}, 'credits': {'type': 'number', 'minimum': 0}}, 'description': 'Required for paid concept/build: maximum GripForge credits OR subscription USD accepted. Use the quote funding currency: insufficient AI allowance falls back to GripForge credits for the whole new job, never both. Use plan.concept_quote for images, plan.quote for Meshy. Provider credits are separate.', 'additionalProperties': False}, 'recipe': {'type': 'object', 'required': ['prompt'], 'properties': {'id': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_-]{0,47}$'}, 'use': {'enum': ['residential', 'retail', 'office', 'industrial', 'mixed'], 'type': 'string'}, 'name': {'type': 'string', 'maxLength': 100, 'minLength': 1}, 'roof': {'enum': ['flat', 'pitched'], 'type': 'string'}, 'style': {'enum': ['realistic', 'stylized', 'lowpoly', 'handpainted'], 'type': 'string'}, 'facade': {'type': 'string', 'maxLength': 120}, 'floors': {'type': 'integer', 'maximum': 30, 'minimum': 1}, 'prompt': {'type': 'string', 'maxLength': 300, 'minLength': 3}, 'source': {'type': 'object', 'required': ['assetId', 'revisionId'], 'properties': {'assetId': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}, 'fileRole': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}, 'revisionId': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}}, 'description': 'Reuse an owned static GLB revision instead of paying for this building. The source is never modified.', 'additionalProperties': False}, 'concept': {'type': 'object', 'required': ['assetId', 'revisionId'], 'properties': {'assetId': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}, 'fileRole': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}, 'revisionId': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}}, 'description': 'Owned PNG/JPEG/WebP revision for Meshy image-to-3D. At most 12 MiB. Mutually exclusive with source.', 'additionalProperties': False}, 'concepts': {'type': 'array', 'items': {'type': 'object', 'required': ['assetId', 'revisionId'], 'properties': {'assetId': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}, 'fileRole': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}, 'revisionId': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}}, 'additionalProperties': False}, 'maxItems': 4, 'minItems': 1, 'description': 'Coherent views of ONE building, front first, for Meshy multi-image-to-3D. Exclusive with concept/source. Review coherence before building.'}, 'polycount': {'type': 'integer', 'maximum': 80000, 'minimum': 4000}, 'dimensions': {'type': 'object', 'properties': {'depth': {'type': 'number', 'maximum': 100, 'minimum': 3}, 'width': {'type': 'number', 'maximum': 100, 'minimum': 3}, 'height': {'type': 'number', 'maximum': 150, 'minimum': 3}}, 'description': 'Maximum footprint and height in metres. Uniform fit preserves proportions; actual dimensions are returned.', 'additionalProperties': False}, 'meshQuality': {'type': 'object', 'properties': {'texture': {'enum': ['2k', '4k', '8k'], 'type': 'string'}, 'geometry': {'enum': ['standard', '2k', '4k'], 'type': 'string'}}, 'description': 'Meshy 7.1 quality. Defaults standard geometry and 2K PBR. Multi-image supports standard/2k geometry only. Texture resolution is preserved during optimization. Read the updated quote.', 'additionalProperties': False}}, 'additionalProperties': False}, 'workspace_id': {'type': 'string', 'maxLength': 100}, 'concept_views': {'type': 'array', 'items': {'enum': ['front_right', 'front_left', 'rear_right', 'rear_left'], 'type': 'string'}, 'maxItems': 4, 'minItems': 1, 'description': 'Unique views starting with front_right. Default one view for scene, three for isolated. Alternate views edit the SAME master. recipe.concept reuses an existing master; concept_reference guides a NEW master.'}, 'idempotency_key': {'type': 'string', 'pattern': '^[a-zA-Z0-9_.:-]{8,160}$'}, 'concept_provider': {'enum': ['openai', 'xai'], 'type': 'string', 'description': 'Default openai (GPT Image 2.5 Sunburst, high quality). xai explicitly selects Imagine. Provider is pinned in the durable job; never silently falls back. Read the provider-specific concept_quote.'}, 'concept_reference': {'type': 'object', 'required': ['assetId', 'revisionId'], 'properties': {'assetId': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}, 'fileRole': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}, 'revisionId': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}}, 'description': 'Owned artistic reference to EDIT into new scene/isolated views. Distinct from recipe.concept, which reuses an existing front view without generation. Exclusive with recipe.concept/concepts/source and stage=build.', 'additionalProperties': False}, 'concept_presentation': {'enum': ['scene', 'isolated'], 'type': 'string', 'description': 'Default scene: artistic concept in its neighbourhood preserving the user atmosphere and lighting. isolated: technical views of the SAME building for Meshy. Keep rich architectural detail in both.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['prompt'], 'properties': {'kind': {'enum': ['character', 'enemy', 'boss'], 'type': 'string', 'description': 'character | enemy | boss (boss â\x86\x92 enemy + meta.boss)'}, 'name': {'type': 'string', 'maxLength': 160, 'description': 'Library item name (default: the prompt)'}, 'prompt': {'type': 'string', 'maxLength': 600, 'minLength': 3, 'description': 'Description. "Devil May Cry like enemy" â\x86\x92 tagged devil-may-cry, kind=enemy.'}, 'file_url': {'type': 'string', 'description': 'https URL of a concept or T-pose image. Image-to-3D.'}, 'provider': {'enum': ['tripo', 'meshy'], 'type': 'string', 'description': 'Default tripo. Forced meshy when concept_item / file_url is set.'}, 'polycount': {'type': 'number', 'description': 'Target triangles. Meshy characters default 8000 (low-poly FPS).'}, 'underwear': {'type': 'boolean', 'description': 'false = keep the described outfit. Implied false when an image is passed.'}, 'concept_item': {'type': 'string', 'description': 'Library concept / T-pose sheet id (lib_â\x80¦). Image-to-3D from that picture â\x80\x94 not text-to-3D.'}, 'idempotency_key': {'type': 'string', 'pattern': '^[a-zA-Z0-9_.:-]{8,160}$', 'description': 'Stable key per asset role. Reuse after an uncertain response to avoid duplicate paid jobs.'}}}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'job': {'type': 'string'}, 'item': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'notes': {'type': 'array', 'items': {'type': 'string'}}, 'stage': {'type': 'string'}, 'job_id': {'type': 'string'}, 'status': {'type': 'string'}, 'provider': {'type': 'string'}, 'status_url': {'type': 'string'}, 'studio_url': {'type': 'string'}, 'library_url': {'type': 'string'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['recipe'], 'properties': {'stage': {'enum': ['plan', 'build'], 'type': 'string', 'description': 'Default plan is free and does not generate. Read its quote, then explicitly build.'}, 'budget': {'type': 'object', 'properties': {'usd': {'type': 'number', 'minimum': 0}, 'credits': {'type': 'number', 'minimum': 0}}, 'description': 'Required for paid concept/build: maximum GripForge credits OR subscription USD accepted. Use the quote funding currency: insufficient AI allowance falls back to GripForge credits for the whole new job, never both. Use plan.concept_quote for images, plan.quote for Meshy. Provider credits are separate.', 'additionalProperties': False}, 'recipe': {'type': 'object', 'required': ['buildings'], 'properties': {'gap': {'type': 'number', 'maximum': 30, 'minimum': 1}, 'name': {'type': 'string', 'maxLength': 100, 'minLength': 1}, 'version': {'type': 'number', 'const': 1}, 'buildings': {'type': 'array', 'items': {'type': 'object', 'required': ['prompt'], 'properties': {'id': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_-]{0,47}$'}, 'use': {'enum': ['residential', 'retail', 'office', 'industrial', 'mixed'], 'type': 'string'}, 'name': {'type': 'string', 'maxLength': 100, 'minLength': 1}, 'roof': {'enum': ['flat', 'pitched'], 'type': 'string'}, 'style': {'enum': ['realistic', 'stylized', 'lowpoly', 'handpainted'], 'type': 'string'}, 'facade': {'type': 'string', 'maxLength': 120}, 'floors': {'type': 'integer', 'maximum': 30, 'minimum': 1}, 'prompt': {'type': 'string', 'maxLength': 300, 'minLength': 3}, 'source': {'type': 'object', 'required': ['assetId', 'revisionId'], 'properties': {'assetId': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}, 'fileRole': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}, 'revisionId': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}}, 'description': 'Reuse an owned static GLB revision instead of paying for this building. The source is never modified.', 'additionalProperties': False}, 'concept': {'type': 'object', 'required': ['assetId', 'revisionId'], 'properties': {'assetId': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}, 'fileRole': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}, 'revisionId': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}}, 'description': 'Owned PNG/JPEG/WebP revision for Meshy image-to-3D. At most 12 MiB. Mutually exclusive with source.', 'additionalProperties': False}, 'concepts': {'type': 'array', 'items': {'type': 'object', 'required': ['assetId', 'revisionId'], 'properties': {'assetId': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}, 'fileRole': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}, 'revisionId': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}}, 'additionalProperties': False}, 'maxItems': 4, 'minItems': 1, 'description': 'Coherent views of ONE building, front first, for Meshy multi-image-to-3D. Exclusive with concept/source. Review coherence before building.'}, 'polycount': {'type': 'integer', 'maximum': 80000, 'minimum': 4000}, 'dimensions': {'type': 'object', 'properties': {'depth': {'type': 'number', 'maximum': 100, 'minimum': 3}, 'width': {'type': 'number', 'maximum': 100, 'minimum': 3}, 'height': {'type': 'number', 'maximum': 150, 'minimum': 3}}, 'description': 'Maximum footprint and height in metres. Uniform fit preserves proportions; actual dimensions are returned.', 'additionalProperties': False}, 'meshQuality': {'type': 'object', 'properties': {'texture': {'enum': ['2k', '4k', '8k'], 'type': 'string'}, 'geometry': {'enum': ['standard', '2k', '4k'], 'type': 'string'}}, 'description': 'Meshy 7.1 quality. Defaults standard geometry and 2K PBR. Multi-image supports standard/2k geometry only. Texture resolution is preserved during optimization. Read the updated quote.', 'additionalProperties': False}}, 'additionalProperties': False}, 'maxItems': 8, 'minItems': 1, 'description': 'Unique building definitions with distinct ids. Each new model is manufactured once.'}, 'materials': {'type': 'object', 'properties': {'road': {'type': 'object', 'description': 'SceneMaterialOverride: color, roughness, metalness, map/normalMap/roughnessMap/metalnessMap as owned immutable SceneAssetRef, repeat:[u,v]. Validated by the shared Scene Engine.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'sidewalk': {'type': 'object', 'description': 'SceneMaterialOverride: color, roughness, metalness, map/normalMap/roughnessMap/metalnessMap as owned immutable SceneAssetRef, repeat:[u,v]. Validated by the shared Scene Engine.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}}, 'additionalProperties': False}, 'repetitions': {'type': 'integer', 'maximum': 4, 'minimum': 1, 'description': 'Instances per definition, without additional model generation cost.'}, 'streetWidth': {'type': 'number', 'maximum': 30, 'minimum': 6}, 'sidewalkWidth': {'type': 'number', 'maximum': 8, 'minimum': 1}}, 'additionalProperties': False}, 'workspace_id': {'type': 'string', 'maxLength': 100}, 'idempotency_key': {'type': 'string', 'pattern': '^[a-zA-Z0-9_.:-]{8,160}$'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['recipe'], 'properties': {'recipe': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Returned scene links open this workspace.'}, 'idempotency_key': {'type': 'string', 'maxLength': 160, 'minLength': 8}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['prompt'], 'properties': {'name': {'type': 'string', 'maxLength': 160, 'description': 'Library name'}, 'prompt': {'type': 'string', 'maxLength': 600, 'minLength': 3, 'description': 'e.g. compact orange open-cockpit racing kart, isolated'}, 'subtype': {'enum': ['vehicle', 'none'], 'type': 'string', 'description': 'vehicle: made as the Vehicles prop sub-kind â\x80\x94 no grip style, nose on +Z, the four wheels split with hub pivots so it drives. Detected from the prompt (car, truck, van, kartâ\x80¦) when omitted; none opts out.'}, 'optimize': {'type': 'boolean', 'description': 'Default true; false retains the provider mesh for close-up review.'}, 'provider': {'enum': ['meshy', 'tripo'], 'type': 'string', 'description': 'Default meshy'}, 'polycount': {'type': 'number', 'description': 'Target triangles (default 4000)'}, 'meshQuality': {'type': 'object', 'required': ['geometry', 'texture'], 'properties': {'texture': {'enum': ['2k', '4k', '8k'], 'type': 'string'}, 'geometry': {'enum': ['standard', '2k', '4k'], 'type': 'string'}}, 'description': 'Meshy geometry and PBR texture quality. Requested texture resolution is retained through optimization.'}, 'concept_item': {'type': 'string', 'maxLength': 160, 'minLength': 1, 'description': 'Owned concept image in this workspace; forces Meshy image-to-3D.'}, 'idempotency_key': {'type': 'string', 'pattern': '^[a-zA-Z0-9_.:-]{8,160}$', 'description': 'Stable key per asset role. Reuse after an uncertain response to avoid duplicate paid jobs.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['recipe'], 'properties': {'stage': {'enum': ['plan', 'concept', 'build'], 'type': 'string', 'default': 'plan'}, 'budget': {'type': 'object', 'properties': {'usd': {'type': 'number', 'minimum': 0}, 'credits': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}}, 'recipe': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Returned scene links open this workspace.'}, 'idempotency_key': {'type': 'string', 'maxLength': 160, 'minLength': 8}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['prompt'], 'properties': {'name': {'type': 'string', 'maxLength': 160, 'description': 'Library name (default: prompt)'}, 'style': {'enum': ['melee', 'gun', 'shield', 'staff'], 'type': 'string', 'description': 'Grip style for attach (inferred if omitted)'}, 'prompt': {'type': 'string', 'maxLength': 600, 'minLength': 3, 'description': 'e.g. "CS2 default CT combat knife, silver blade, black grip"'}, 'provider': {'enum': ['meshy', 'tripo'], 'type': 'string', 'description': 'Default meshy'}, 'polycount': {'type': 'number', 'description': 'Target triangles (default 4000)'}, 'idempotency_key': {'type': 'string', 'pattern': '^[a-zA-Z0-9_.:-]{8,160}$', 'description': 'Stable key per asset role. Reuse after an uncertain response to avoid duplicate paid jobs.'}}}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'job': {'type': 'string'}, 'item': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'notes': {'type': 'array', 'items': {'type': 'string'}}, 'stage': {'type': 'string'}, 'job_id': {'type': 'string'}, 'status': {'type': 'string'}, 'provider': {'type': 'string'}, 'status_url': {'type': 'string'}, 'studio_url': {'type': 'string'}, 'library_url': {'type': 'string'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['stage', 'entries'], 'properties': {'stage': {'enum': ['plan', 'build'], 'type': 'string'}, 'budget': {'type': 'object', 'properties': {'usd': {'type': 'number', 'minimum': 0}, 'credits': {'type': 'number', 'minimum': 0}}, 'additionalProperties': False}, 'entries': {'type': 'array', 'items': {'type': 'object', 'required': ['key', 'name', 'prompt', 'subtype'], 'properties': {'key': {'type': 'string', 'pattern': '^[a-z0-9][a-z0-9_-]{0,47}$'}, 'name': {'type': 'string', 'maxLength': 160, 'minLength': 1}, 'tags': {'type': 'array', 'items': {'type': 'string', 'maxLength': 60, 'minLength': 1}, 'maxItems': 16}, 'style': {'enum': ['gun', 'melee', 'shield', 'staff'], 'type': 'string'}, 'prompt': {'type': 'string', 'maxLength': 600, 'minLength': 3}, 'subtype': {'type': 'string', 'maxLength': 60, 'minLength': 1}, 'polycount': {'type': 'integer', 'maximum': 20000, 'minimum': 500}}, 'additionalProperties': False}, 'maxItems': 64, 'minItems': 1}, 'plan_hash': {'type': 'string', 'pattern': '^[a-f0-9]{64}$'}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Authorized workspace; defaults to the connected workspace.'}, 'idempotency_key': {'type': 'string', 'pattern': '^[a-zA-Z0-9_.:-]{8,160}$'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Returned scene links open this workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Returned scene links open this workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['kind'], 'properties': {'kind': {'enum': ['model', 'concept', 'texture', 'rig', 'animation'], 'type': 'string'}, 'count': {'type': 'integer', 'maximum': 20, 'minimum': 1}, 'provider': {'enum': ['meshy', 'tripo', 'xai', 'openai'], 'type': 'string'}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Authorized workspace; defaults to the connected workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}, 'preview_view': {'enum': ['overview', 'top_down', 'entrance', 'objective', 'front_right', 'front_left', 'rear_right', 'rear_left'], 'type': 'string'}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Returned scene links open this workspace.'}, 'include_preview': {'type': 'boolean'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Returned scene links open this workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'id': {'type': 'string', 'description': 'Library id of a loadout / bind / character (lib_â\x80¦)'}, 'attach_id': {'type': 'string', 'description': 'Library armed bind id'}, 'character_id': {'type': 'string', 'description': 'Library character/enemy id'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'preset': {'type': 'string', 'const': 'survivor', 'description': 'v1: survivor only (default)'}, 'minimap': {'type': 'boolean', 'description': 'default false'}, 'out_dir': {'type': 'string', 'description': 'Suggested folder (hosted returns contents only; npm writes)'}, 'portrait': {'type': 'boolean', 'description': 'default true'}, 'currencies': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 6, 'description': 'default ["gem","mushroom","drop"] â\x80\x94 unknown ids get the empty hex chip'}, 'health_max': {'type': 'integer', 'maximum': 20, 'minimum': 1, 'description': 'default 5'}, 'health_type': {'enum': ['hearts', 'bar'], 'type': 'string', 'description': 'default hearts'}, 'health_style': {'type': 'string', 'description': 'skin of the health display. For hearts: round, pixel, shield, star, orb, potion, skull, croix, goutte, eclair, feuille, losange, soleil, lune, patte, os, flamme, flocon, trefle, couronne, anneau, pomme, viande, bonbon, oeil, plume, gland, cloche, poing, aile, hexplaque, rune, bougie, champi, bouclier_pique, coeur_gel, coeur_or, coeur_ombre, batterie, retro. For bar: ronde, segments, scifi, pixel_bar, fantasy, tube, fleches, cellules_hex, oblique, double, fine, crantee, crochets, capsule, rivets, retro_rouge, retro_vert, retro_bleu, retro_jaune, gothique, scifi_energie, cartoon_aventure, horreur. Also accepts "custom:<slug>" from gripforge_hud_bar. Default: round (hearts) / ronde (bar).'}}}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['hud', 'files', 'assets', 'unreal_plugin_url', 'preview_url'], 'properties': {'hud': {'type': 'object', 'description': 'hud.json v1 â\x80\x94 layout, anchors, slot ids. No pixels.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'files': {'type': 'object', 'description': 'File contents keyed by filename (hud.json, hud.tscn, engine snippets)', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'string'}}, 'assets': {'type': 'object', 'description': 'PNG URLs (GripForge original cartoon set)', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'string'}}, 'preview_url': {'type': 'string', 'description': 'Studio live preview matching the json'}, 'unreal_plugin_url': {'type': 'string', 'description': 'Zip of the GripForgeHUD runtime plugin (UE 5.3+)'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['theme'], 'properties': {'name': {'type': 'string', 'maxLength': 60, 'description': 'Slug for the saved Library items'}, 'theme': {'type': 'string', 'maxLength': 300, 'minLength': 3, 'description': 'Visual theme of the frame (genre, materials, ornaments)'}, 'colors': {'type': 'array', 'items': {'type': 'string', 'pattern': '^#[0-9a-fA-F]{6}$'}, 'maxItems': 3, 'minItems': 3, 'description': 'Fill gradient [light, mid, dark] hex â\x80\x94 default blood red'}}}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['frame_url', 'fill_url', 'size', 'hud_snippet'], 'properties': {'size': {'type': 'object', 'required': ['w', 'h'], 'properties': {'h': {'type': 'number'}, 'w': {'type': 'number'}}, 'additionalProperties': False}, 'notes': {'type': 'array', 'items': {'type': 'string'}}, 'fill_url': {'type': 'string', 'description': 'PNG fill (full-width, engine crops) download URL'}, 'frame_url': {'type': 'string', 'description': 'PNG frame (empty ornate bar) download URL'}, 'hud_snippet': {'type': 'object', 'description': 'Ready-to-paste hud.json health block', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['action'], 'properties': {'id': {'type': 'string', 'description': 'get / shot: the HUD (hud_â\x80¦); import: re-import into that existing HUD â\x80\x94 its name, level, role and capture stay, its elements are replaced'}, 'name': {'type': 'string', 'maxLength': 120, 'description': 'import: name of the HUD in the studio'}, 'role': {'enum': ['screen', 'widget'], 'type': 'string', 'description': 'import: "screen" (a menu, a loading screen, the in-game HUD, a page) or "widget" (a component: a bar, a minimap, a button, a damage number); the studio lists a level\'s screens first and its widgets apart. Inferred from the footprint when omitted: a screen spans â\x89¥ 45 % of the width or â\x89¥ 60 % of the height'}, 'text': {'type': 'string', 'maxLength': 6291456, 'description': 'import: the engine file content'}, 'level': {'type': 'string', 'maxLength': 80, 'description': "import: the level / map where this screen shows (MainMenu, Desert_Castleâ\x80¦) â\x80\x94 the studio groups a project's screens by level; the Unreal bridge /hud/list gives it from the asset registry (widget â\x86\x90 blueprints â\x86\x90 map), otherwise trace which map references the screen"}, 'action': {'enum': ['import', 'list', 'get', 'shot'], 'type': 'string', 'description': 'import a screen · list the workspace HUDs · get one · shot = attach a capture of the screen in play to an existing HUD (id + screenshot)'}, 'embeds': {'type': 'object', 'description': 'import (Unreal): the nested Widget Blueprints this screen places (asset name â\x86\x92 their T3D export, e.g. { WBP_Menu: "Begin Objectâ\x80¦" }) so their buttons, bars and texts become elements of the screen instead of an empty box; the Unreal bridge /hud/get returns them as embeds', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'string'}}, 'project': {'type': 'string', 'maxLength': 80, 'description': 'import: game project name (e.g. the .uproject / project folder) â\x80\x94 the studio groups HUDs by project'}, 'filename': {'type': 'string', 'maxLength': 200, 'description': 'import: original file name (hud.tscn, HUD.prefab, GameHud.uxml, umg.txtâ\x80¦)'}, 'pictures': {'type': 'object', 'description': "import: texture name â\x86\x92 base64 PNG/JPEG of that picture (â\x89¤ 6 MB each, 60 max): stored in the Library and linked to the screen's images, buttons and bars â\x80\x94 one call gives the screen its real art", 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'string'}}, 'textures': {'type': 'object', 'description': "import: texture name â\x86\x92 lib_â\x80¦ id of that picture pushed with gripforge_library_push (kind hud); links the screen's images, buttons and bars to their real art", 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'string'}}, 'screenshot': {'type': 'string', 'description': 'import / shot: base64 PNG or JPEG (â\x89¤ 16 MB, data URL accepted; stored packed to 1080p JPEG) of this screen captured while the game runs â\x80\x94 becomes its thumbnail in My HUDs and the backdrop of the editor preview. Capture it in the engine: Unreal bridge GET http://127.0.0.1:8439/shot?play=1&level=/Game/Maps/MainMenu&wait=5 (opens that map, starts Play In Editor, captures with the UI, stops; without play=1 it captures the editor viewport), or an Unreal MCP capture_viewport during PIE; Godot get_viewport().get_texture().get_image().save_png(); Unity ScreenCapture.CaptureScreenshot'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['prompt'], 'properties': {'prompt': {'type': 'string', 'maxLength': 240, 'minLength': 2, 'description': 'e.g. "fps" or "counter-strike dust2"'}, 'third_person': {'type': 'boolean', 'description': 'Include character-facing JavaScript and Three.js usage (default false; existing input map unchanged).'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Library id (lib_â\x80¦) of a GLB'}, 'sheet': {'type': 'boolean', 'description': 'include the multi-angle PNG (default true)'}, 'angles': {'type': 'array', 'items': {'type': 'number'}, 'maxItems': 6, 'description': 'yaw angles in degrees (default [0,90,180,270])'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['target'], 'properties': {'accent': {'type': 'string', 'default': '#ff681f', 'pattern': '^#[\\da-f]{6}$', 'description': 'Thumb color, six-digit hexadecimal RGB.'}, 'layout': {'enum': ['move', 'dual'], 'type': 'string', 'default': 'dual', 'description': 'One movement stick, or independent movement + camera sticks.'}, 'radius': {'type': 'number', 'default': 72, 'maximum': 160, 'minimum': 32, 'description': 'Stick radius in CSS/UI logical pixels, before engine DPI scaling.'}, 'target': {'enum': ['threejs', 'godot', 'unity', 'unreal', 'all'], 'type': 'string', 'description': 'Engine delivery. all returns each of the four source kits.'}, 'deadzone': {'type': 'number', 'default': 0.15, 'maximum': 0.5, 'minimum': 0, 'description': 'Radial deadzone, continuously rescaled to a unit disc.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['action'], 'properties': {'id': {'type': 'string', 'maxLength': 80, 'description': 'kit id (lib_â\x80¦) â\x80\x94 get/patch'}, 'name': {'type': 'string', 'maxLength': 160}, 'rules': {'anyOf': [{'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, {'type': 'null'}], 'description': 'GameRules document or partial patch'}, 'slots': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'itemId'], 'properties': {'id': {'type': 'string', 'maxLength': 40}, 'itemId': {'anyOf': [{'type': 'string', 'maxLength': 64}, {'type': 'null'}]}}}, 'description': 'slot assignments'}, 'style': {'type': 'string', 'maxLength': 64, 'description': 'create: preset style (arena-car, mario-kart, customâ\x80¦)'}, 'action': {'enum': ['list', 'get', 'create', 'patch'], 'type': 'string', 'description': 'what to do'}, 'prompts': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'string', 'maxLength': 4000}}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['prompt'], 'properties': {'seed': {'type': 'number'}, 'floors': {'type': 'number'}, 'prompt': {'type': 'string', 'description': 'e.g. "gothic castle dungeon, 3 combat rooms, one boss"'}, 'combat_rooms': {'type': 'number'}, 'optional_branches': {'type': 'number'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Library id (lib_â\x80¦)'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'q': {'type': 'string', 'description': 'Search name/filename/description/tags'}, 'kind': {'enum': ['character', 'fps-arms', 'enemy', 'weapon', 'equipment', 'prop', 'texture', 'skybox', 'loading', 'hud', 'button', 'bind', 'vfx', 'animation', 'audio'], 'type': 'string', 'description': 'Filter by kind'}, 'sort': {'enum': ['newest', 'rank'], 'type': 'string', 'description': 'newest (default) or rank: best fit for a GripForge game first'}, 'style': {'type': 'string', 'description': 'Game look id or alias (devil-may-cry, dmc, genshin)'}, 'target': {'enum': ['mobile', 'desktop'], 'type': 'string', 'description': 'Platform for the rank budgets (triangles, file size). Defaults to mobile.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Library id (lib_â\x80¦)'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['kind', 'name'], 'properties': {'kind': {'enum': ['character', 'fps-arms', 'enemy', 'weapon', 'equipment', 'prop', 'texture', 'skybox', 'loading', 'hud', 'button', 'bind', 'vfx', 'animation', 'audio'], 'type': 'string', 'description': 'Locker kind'}, 'name': {'type': 'string', 'description': 'Display name'}, 'base64': {'type': 'string', 'description': 'Raw file as base64 (small files only)'}, 'file_url': {'type': 'string', 'description': 'https URL of the file to store'}, 'filename': {'type': 'string', 'description': 'Original filename'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Library id (lib_â\x80¦)'}, 'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Replace tags (canonicalized). Omit to keep existing and just add style.'}, 'style': {'type': 'string', 'description': 'Game look id or alias (devil-may-cry, dmc, genshin)'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['prompt'], 'properties': {'prompt': {'type': 'string', 'maxLength': 240, 'minLength': 2, 'description': 'e.g. "devil may cry like"'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['prompt'], 'properties': {'prompt': {'type': 'string', 'maxLength': 240, 'minLength': 2, 'description': 'e.g. "devil may cry like"'}, 'character_id': {'type': 'string', 'description': 'Library character / enemy / loadout bind id â\x80\x94 generates background still (1 credit)'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['character_id', 'sets'], 'properties': {'name': {'type': 'string'}, 'sets': {'type': 'object', 'description': 'set name â\x86\x92 props held in that set', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'array', 'items': {'type': 'object', 'required': ['prop_id'], 'properties': {'hand': {'enum': ['left', 'right'], 'type': 'string'}, 'style': {'enum': ['melee', 'gun', 'shield', 'staff'], 'type': 'string'}, 'prop_id': {'type': 'string'}}}}}, 'animate': {'type': 'boolean', 'description': 'Also retarget the standard clip pack (default true)'}, 'default': {'type': 'string', 'description': 'Set visible by default (first set otherwise)'}, 'archetype': {'enum': ['sword', 'claws', 'heavy', 'brawler', 'puppet'], 'type': 'string', 'description': 'Movement/strike archetype â\x80\x94 remaps the base slots (default sword)'}, 'character_id': {'type': 'string', 'description': 'Library character id (lib_â\x80¦)'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'band': {'type': 'number', 'maximum': 0.25, 'minimum': 0.02, 'description': 'Blend band as a fraction of the side (default 0.08)'}, 'name': {'type': 'string', 'description': 'Name for the Library item (default <source>_seamless)'}, 'size': {'type': 'number', 'description': 'Force a power-of-two side: 512, 1024, 2048â\x80¦'}, 'image_url': {'type': 'string', 'description': 'https URL of the image (PNG/JPG)'}, 'texture_id': {'type': 'string', 'description': 'Library id of a texture (lib_â\x80¦)'}}}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'width': {'type': 'number'}, 'height': {'type': 'number'}, 'file_url': {'type': 'string', 'description': 'Download URL of the seamless PNG'}, 'library_id': {'type': 'string', 'description': 'Library id of the seamless texture'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['prompt'], 'properties': {'prompt': {'type': 'string', 'maxLength': 400, 'minLength': 3, 'description': 'e.g. "moroccan desert village bomb map, tight alleys, two plazas"'}, 'extent_m': {'type': 'number', 'maximum': 300, 'minimum': 40, 'description': 'Playfield size in metres (default 110)'}, 'threshold': {'type': 'number', 'maximum': 240, 'minimum': 30, 'description': 'Wall luminance threshold (default 110)'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['prompt', 'wizard'], 'properties': {'seed': {'type': 'integer', 'maximum': 2147483647, 'minimum': -2147483647}, 'stage': {'enum': ['concept', 'build'], 'type': 'string'}, 'views': {'type': 'array', 'items': {'enum': ['overview', 'top_down', 'entrance', 'objective'], 'type': 'string'}, 'maxItems': 4, 'minItems': 1, 'description': 'Unique requested views, stage=concept only. The master overview is always included; omitting views keeps overview only.'}, 'prompt': {'type': 'string', 'maxLength': 4000, 'minLength': 3}, 'wizard': {'type': 'object', 'properties': {'boss': {'type': 'boolean'}, 'size': {'enum': ['small', 'medium', 'large'], 'type': 'string'}, 'spawn': {'enum': ['single', 'teams'], 'type': 'string'}, 'style': {'enum': ['realistic', 'stylized', 'lowpoly', 'handpainted'], 'type': 'string'}, 'teams': {'anyOf': [{'type': 'number', 'const': 2}, {'type': 'number', 'const': 4}]}, 'world': {'enum': ['open_world', 'closed_arena', 'dungeon', 'linear', 'battle_map'], 'type': 'string'}, 'terrain': {'enum': ['auto', 'plains', 'desert_canyon', 'forest', 'snow', 'island', 'volcanic'], 'type': 'string'}, 'boundary': {'enum': ['fixed', 'infinite'], 'type': 'string'}, 'safeZone': {'type': 'boolean'}, 'dimensions': {'type': 'object', 'required': ['width', 'depth'], 'properties': {'depth': {'type': 'number', 'maximum': 5000, 'minimum': 100}, 'width': {'type': 'number', 'maximum': 5000, 'minimum': 100}}, 'description': 'Explicit ground footprint in metres. Overrides size presets and world multipliers. Example: {width:500,depth:500}. Four-team maps require a square.'}, 'extraction': {'type': 'boolean'}}, 'additionalProperties': {}}, 'concept': {'type': 'object', 'required': ['assetId', 'revisionId'], 'properties': {'assetId': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}, 'fileRole': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}, 'revisionId': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}}, 'description': 'Exact chosen concept revision for stage=build. Mutually exclusive with concept_item.'}, 'sources': {'type': 'array', 'items': {'enum': ['catalog', 'workspace', 'community'], 'type': 'string'}, 'maxItems': 3, 'minItems': 1}, 'reference': {'type': 'object', 'required': ['assetId', 'revisionId'], 'properties': {'assetId': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}, 'fileRole': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}, 'revisionId': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}}, 'description': 'Pinned source-environment screenshot for stage=concept only. Upload to Library and pin first.'}, 'structure': {'type': 'object', 'description': 'Optional explicit gripforge.map-structures.v1 plan for stage=build: terraces with polygon/elevation and separate ramp/bridge connections. Read gripforge_map_schema for the contract. Preserves canyon voids; validates bridge clearance, endpoints and slopes. Uses durable per-piece assets and the common SceneDocument. Dimensions must match wizard.dimensions. Solo maps only; result is a structural work version requiring visual review.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'concept_item': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$', 'description': 'Legacy Library concept image ID. Prefer an immutable concept reference.'}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Returned scene links open this workspace.'}, 'source_concept': {'type': 'object', 'required': ['assetId', 'revisionId'], 'properties': {'assetId': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}, 'fileRole': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}, 'revisionId': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}}, 'description': 'Existing immutable master to add views to, stage=concept only. Mutually exclusive with reference; never regenerate this master.'}, 'idempotency_key': {'type': 'string', 'maxLength': 160, 'minLength': 8}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Returned scene links open this workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['schema', 'document', 'source'], 'properties': {'schema': {'type': 'string', 'const': 'gripforge.unreal-studio-import.v1'}, 'source': {'type': 'object', 'required': ['engine', 'level', 'sha256', 'warnings'], 'properties': {'level': {'type': 'string', 'pattern': '^\\/Game(?:\\/[\\w-]+)+$'}, 'engine': {'type': 'string', 'const': 'unreal'}, 'sha256': {'type': 'string', 'pattern': '^[a-f0-9]{64}$'}, 'warnings': {'type': 'array', 'items': {'type': 'string', 'maxLength': 2000}, 'maxItems': 100}}}, 'document': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Returned scene links open this workspace.'}, 'idempotency_key': {'type': 'string', 'maxLength': 160, 'minLength': 8}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Returned scene links open this workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['prompt'], 'properties': {'shot': {'type': 'string', 'maxLength': 80, 'minLength': 2, 'description': 'shot21a | a-site | shot1a | catwalk | URL fragment'}, 'prompt': {'type': 'string', 'maxLength': 240, 'minLength': 2, 'description': 'e.g. "dust2"'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['prompt'], 'properties': {'item': {'type': 'string', 'description': 'lib_â\x80¦ traced plan from gripforge_map_concept (overrides the preset)'}, 'prompt': {'type': 'string', 'maxLength': 240, 'minLength': 2, 'description': 'e.g. "counter-strike dust2 bomb defusal"'}, 'windows': {'enum': ['shuttered', 'barred', 'none'], 'type': 'string', 'description': 'Boundary windows: volets entrouverts (default), grilles bois, ou aucune'}, 'window_density': {'type': 'number', 'maximum': 1, 'minimum': 0, 'description': 'Share of boundary segments that get a window (default 0.25)'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['prompt'], 'properties': {'prompt': {'type': 'string', 'maxLength': 240, 'minLength': 2, 'description': 'e.g. "counter-strike dust2"'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['prompt'], 'properties': {'zone': {'type': 'string', 'maxLength': 40, 'minLength': 2, 'description': 'LONG_A | A_SITE | CATWALK | T_SPAWN | â\x80¦'}, 'stage': {'enum': ['collect', 'graph', 'greybox', 'zone', 'validate', 'capture', 'dress', 'all'], 'type': 'string', 'description': 'collect | graph | greybox | zone | validate | capture | dress | all (default all)'}, 'prompt': {'type': 'string', 'maxLength': 240, 'minLength': 2, 'description': 'e.g. "Reconstruct map: Counter-Strike 2 Dust II"'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['prompt'], 'properties': {'live': {'type': 'boolean', 'description': 'HEAD-check URLs (default false)'}, 'prompt': {'type': 'string', 'maxLength': 240, 'minLength': 2, 'description': 'e.g. "dust2"'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Returned scene links open this workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['prompt'], 'properties': {'prompt': {'type': 'string', 'maxLength': 240, 'minLength': 2, 'description': 'e.g. "counter-strike dust2"'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'maxLength': 80, 'minLength': 4, 'description': 'Game server id (srv_â\x80¦)'}, 'map': {'type': 'string', 'maxLength': 120}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Never infer another userâ\x80\x99s workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id', 'match_id'], 'properties': {'id': {'type': 'string', 'maxLength': 80, 'minLength': 4, 'description': 'Game server id (srv_â\x80¦)'}, 'match_id': {'type': 'string', 'maxLength': 80, 'minLength': 4, 'description': 'Match id (mtc_â\x80¦)'}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Never infer another userâ\x80\x99s workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['prompt'], 'properties': {'prompt': {'type': 'string', 'maxLength': 240, 'minLength': 2, 'description': 'e.g. counter-strike, deathmatch, ranked 5v5'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'maxLength': 80, 'minLength': 4, 'description': 'Game server id (srv_â\x80¦)'}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Never infer another userâ\x80\x99s workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id', 'match_id'], 'properties': {'id': {'type': 'string', 'maxLength': 80, 'minLength': 4, 'description': 'Game server id (srv_â\x80¦)'}, 'match_id': {'type': 'string', 'maxLength': 80, 'minLength': 4, 'description': 'Match id (mtc_â\x80¦)'}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Never infer another userâ\x80\x99s workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['prompt'], 'properties': {'prompt': {'type': 'string', 'maxLength': 240, 'minLength': 2, 'description': 'e.g. counter-strike, minimal'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['prompt'], 'properties': {'prompt': {'type': 'string', 'maxLength': 240, 'minLength': 2, 'description': 'e.g. "devil may cry like"'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['prompt'], 'properties': {'prompt': {'type': 'string', 'maxLength': 240, 'minLength': 2, 'description': 'e.g. counter-strike, deathmatch, fps'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'kit_id': {'type': 'string', 'pattern': '^[A-Za-z0-9_.:-]+$', 'maxLength': 128, 'minLength': 1, 'description': 'Optional kit/library id to select a recent capture; omitted selects latest in your workspace.'}, 'report': {'type': 'object', 'required': ['samples'], 'properties': {'game': {'type': 'string', 'maxLength': 80}, 'samples': {'type': 'array', 'items': {'type': 'object', 'properties': {'fps': {'type': 'number', 'maximum': 1000, 'minimum': 0}, 'cpuMs': {'type': 'number', 'maximum': 60000, 'minimum': 0}, 'gpuMs': {'anyOf': [{'type': 'number', 'maximum': 60000, 'minimum': 0}, {'type': 'null'}]}, 'level': {'type': 'integer', 'maximum': 10, 'minimum': 0}, 'p95Ms': {'type': 'number', 'maximum': 60000, 'minimum': 0}, 'frameMs': {'type': 'number', 'maximum': 60000, 'minimum': 0}, 'quality': {'enum': ['auto', 'high', 'performance'], 'type': 'string'}, 'submitMs': {'type': 'number', 'maximum': 60000, 'minimum': 0}, 'drawCalls': {'type': 'integer', 'maximum': 1000000, 'minimum': 0}, 'networkMs': {'anyOf': [{'type': 'number', 'maximum': 60000, 'minimum': 0}, {'type': 'null'}]}, 'triangles': {'type': 'integer', 'maximum': 1000000000, 'minimum': 0}, 'pixelRatio': {'type': 'number', 'maximum': 8, 'minimum': 0.01}, 'snapshotAgeMs': {'type': 'number', 'maximum': 60000, 'minimum': 0}}}, 'maxItems': 120, 'minItems': 1}, 'version': {'type': 'string', 'maxLength': 80}, 'viewport': {'type': 'object', 'required': ['width', 'height'], 'properties': {'width': {'type': 'integer', 'maximum': 32768, 'minimum': 1}, 'height': {'type': 'integer', 'maximum': 32768, 'minimum': 1}}}}, 'description': 'Optional measured report with 1â\x80\x93120 sample windows. Omit to read a recent workspace capture.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id', 'player_id'], 'properties': {'id': {'type': 'string', 'maxLength': 80, 'minLength': 4, 'description': 'Game server id (srv_â\x80¦)'}, 'player_id': {'type': 'string', 'maxLength': 80, 'minLength': 4, 'description': 'Player session id (ses_â\x80¦)'}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Never infer another userâ\x80\x99s workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id', 'player_id'], 'properties': {'id': {'type': 'string', 'maxLength': 80, 'minLength': 4, 'description': 'Game server id (srv_â\x80¦)'}, 'player_id': {'type': 'string', 'maxLength': 80, 'minLength': 4, 'description': 'Player session id (ses_â\x80¦)'}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Never infer another userâ\x80\x99s workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id', 'player_id'], 'properties': {'id': {'type': 'string', 'maxLength': 80, 'minLength': 4, 'description': 'Game server id (srv_â\x80¦)'}, 'player_id': {'type': 'string', 'maxLength': 80, 'minLength': 4, 'description': 'Player session id (ses_â\x80¦)'}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Never infer another userâ\x80\x99s workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'maxLength': 80, 'minLength': 4, 'description': 'Game server id (srv_â\x80¦)'}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Never infer another userâ\x80\x99s workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['source'], 'properties': {'yaw': {'type': 'number', 'maximum': 180, 'minimum': -180}, 'cuts': {'type': 'array', 'items': {'type': 'object', 'required': ['role', 'outline', 'depth'], 'properties': {'role': {'enum': ['Door_FL', 'Door_FR', 'Door_RL', 'Door_RR'], 'type': 'string'}, 'depth': {'type': 'array', 'prefixItems': [{'type': 'number'}, {'type': 'number'}]}, 'outline': {'type': 'array', 'items': {'type': 'array', 'prefixItems': [{'type': 'number'}, {'type': 'number'}]}, 'maxItems': 12, 'minItems': 3}}}, 'maxItems': 4}, 'parts': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'array', 'items': {'type': 'string', 'maxLength': 160, 'minLength': 1}, 'maxItems': 64, 'minItems': 1}}, 'hinges': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'array', 'prefixItems': [{'type': 'number'}, {'type': 'number'}, {'type': 'number'}]}}, 'length': {'type': 'number', 'maximum': 7, 'minimum': 2.8}, 'source': {'type': 'object', 'required': ['assetId', 'revisionId'], 'properties': {'assetId': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}, 'fileRole': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}, 'revisionId': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}}}, 'openAngle': {'type': 'number', 'maximum': 85, 'minimum': 20}, 'thickness': {'type': 'number', 'maximum': 0.04, 'minimum': 0}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Returned scene links open this workspace.'}, 'idempotency_key': {'type': 'string', 'maxLength': 160, 'minLength': 8}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'maxLength': 80, 'minLength': 4, 'description': 'Game project id (gpj_â\x80¦)'}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Never infer another userâ\x80\x99s workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'name': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'save': {'type': 'boolean'}, 'config': {'type': 'object', 'properties': {'seed': {'type': 'integer', 'maximum': 65535, 'minimum': 0}, 'color': {'type': 'string', 'pattern': '^#[a-f\\d]{6}$'}, 'style': {'enum': ['fire', 'ice', 'arcane', 'poison'], 'type': 'string'}, 'accent': {'type': 'string', 'pattern': '^#[a-f\\d]{6}$'}, 'radius': {'type': 'number', 'maximum': 1, 'minimum': 0.04}, 'quality': {'enum': ['low', 'high'], 'type': 'string'}, 'variant': {'enum': ['elemental', 'arcane-dart', 'ember-dart', 'venom-dart', 'crimson-bullet', 'frost-bullet', 'frost-orb', 'arcane-orb', 'solar-wisp', 'frost-wisp', 'carrot-shot', 'arcane-disc', 'ice-spear', 'venom-spear', 'venom-orb', 'void-comet', 'solar-comet', 'flame-coil', 'frost-coil', 'storm-bolt', 'solar-bolt'], 'type': 'string'}, 'version': {'type': 'number', 'const': 1}, 'trailLifetime': {'type': 'number', 'maximum': 1, 'minimum': 0.06}, 'impactDuration': {'type': 'number', 'maximum': 2, 'minimum': 0.15}}, 'additionalProperties': False}, 'variants': {'type': 'array', 'items': {'type': 'string', 'maxLength': 40, 'minLength': 1}, 'maxItems': 20, 'minItems': 1}, 'workspace_id': {'type': 'string', 'maxLength': 100}, 'idempotency_key': {'type': 'string', 'maxLength': 160, 'minLength': 8}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Library id (lib_â\x80¦)'}, 'width': {'type': 'number'}, 'height': {'type': 'number'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['character_id'], 'properties': {'name': {'type': 'string'}, 'character_id': {'type': 'string', 'description': 'Library character, enemy, or armed bind'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['source_id', 'target_id'], 'properties': {'clip': {'type': 'string', 'description': 'Clip name on the source (default: first clip)'}, 'name': {'type': 'string'}, 'source_id': {'type': 'string', 'description': 'Library GLB that already has clips'}, 'target_id': {'type': 'string', 'description': 'Library character/enemy to drive'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['assetId'], 'properties': {'assetId': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}, 'version': {'enum': ['current', 'work'], 'type': 'string', 'default': 'current'}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Returned scene links open this workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['assetId', 'revisionId', 'expectedCurrent'], 'properties': {'assetId': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}, 'revisionId': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Returned scene links open this workspace.'}, 'expectedCurrent': {'anyOf': [{'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}, {'type': 'null'}]}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['assetId', 'revisionId'], 'properties': {'assetId': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}, 'revisionId': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Returned scene links open this workspace.'}, 'idempotency_key': {'type': 'string', 'maxLength': 160, 'minLength': 8}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['assetId'], 'properties': {'assetId': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Returned scene links open this workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['document'], 'properties': {'document': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Returned scene links open this workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['prompt'], 'properties': {'prompt': {'type': 'string', 'maxLength': 240, 'minLength': 2, 'description': 'e.g. "devil may cry like", "genshin plaza"'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Returned scene links open this workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id', 'expectedRevision', 'nodeIds', 'prompt'], 'properties': {'id': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}, 'prompt': {'type': 'string', 'maxLength': 4000, 'minLength': 3}, 'nodeIds': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}, 'maxItems': 100, 'minItems': 1}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Returned scene links open this workspace.'}, 'blendDistance': {'type': 'number', 'maximum': 1000, 'exclusiveMinimum': 0}, 'idempotency_key': {'type': 'string', 'maxLength': 160, 'minLength': 8}, 'expectedRevision': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id', 'expectedRevision'], 'properties': {'id': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Returned scene links open this workspace.'}, 'idempotency_key': {'type': 'string', 'maxLength': 160, 'minLength': 8}, 'expectedRevision': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id', 'baseRevision', 'commands'], 'properties': {'id': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}, 'scope': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'commands': {'type': 'array', 'items': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'maxItems': 20000, 'minItems': 1}, 'baseRevision': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Returned scene links open this workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id', 'revision', 'expectedCurrent'], 'properties': {'id': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}, 'revision': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Returned scene links open this workspace.'}, 'expectedCurrent': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, {'type': 'null'}]}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id', 'proposal', 'action'], 'properties': {'id': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}, 'action': {'enum': ['accept', 'discard'], 'type': 'string'}, 'proposal': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Returned scene links open this workspace.'}, 'expectedRevision': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id', 'proposal'], 'properties': {'id': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}, 'proposal': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Returned scene links open this workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Returned scene links open this workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}, 'version': {'anyOf': [{'enum': ['work', 'validated'], 'type': 'string'}, {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}]}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Returned scene links open this workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id', 'expectedRevision'], 'properties': {'id': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}, 'quality': {'anyOf': [{'type': 'object', 'required': ['preset'], 'properties': {'preset': {'enum': ['performance', 'balanced', 'quality'], 'type': 'string'}, 'sharpness': {'type': 'number', 'maximum': 0.5, 'minimum': 0}, 'resolutionScale': {'type': 'number', 'maximum': 1, 'minimum': 0.5}}}, {'type': 'null'}]}, 'assignments': {'type': 'array', 'items': {'type': 'object', 'required': ['nodeId', 'surface'], 'properties': {'nodeId': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}, 'surface': {'anyOf': [{'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, {'type': 'null'}]}, 'material': {'type': 'string', 'maxLength': 256, 'minLength': 1}}}, 'maxItems': 100}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Returned scene links open this workspace.'}, 'ambientOcclusion': {'anyOf': [{'type': 'object', 'required': ['enabled', 'radius', 'intensity', 'quality'], 'properties': {'radius': {'type': 'number', 'maximum': 3, 'minimum': 0.02}, 'enabled': {'type': 'boolean'}, 'quality': {'enum': ['low', 'medium', 'high'], 'type': 'string'}, 'intensity': {'type': 'number', 'maximum': 1, 'minimum': 0}}}, {'type': 'null'}]}, 'expectedRevision': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id', 'expectedRevision'], 'properties': {'id': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}, 'prompt': {'type': 'string', 'maxLength': 4000}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Returned scene links open this workspace.'}, 'idempotency_key': {'type': 'string', 'maxLength': 160, 'minLength': 8}, 'expectedRevision': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Returned scene links open this workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Returned scene links open this workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id', 'document', 'expectedRevision'], 'properties': {'id': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}, 'document': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Returned scene links open this workspace.'}, 'expectedRevision': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['name'], 'properties': {'demo': {'type': 'boolean'}, 'name': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'hints': {'type': 'string', 'maxLength': 2000}, 'image': {'type': 'string', 'maxLength': 200}, 'engine': {'enum': ['unity', 'unreal', 'godot', 'custom'], 'type': 'string'}, 'region': {'type': 'string', 'maxLength': 40}, 'gamePort': {'type': 'integer', 'maximum': 65535, 'minimum': 1}, 'maxPlayers': {'type': 'integer', 'maximum': 200, 'minimum': 1}, 'networking': {'enum': ['fishnet', 'ngo', 'mirror', 'photon', 'enet', 'custom', 'unknown'], 'type': 'string'}, 'sourceKind': {'enum': ['project', 'git', 'upload', 'docker'], 'type': 'string'}, 'environment': {'enum': ['production', 'staging', 'development'], 'type': 'string'}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Never infer another userâ\x80\x99s workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id', 'confirm'], 'properties': {'id': {'type': 'string', 'maxLength': 80, 'minLength': 4, 'description': 'Game server id (srv_â\x80¦)'}, 'confirm': {'type': 'boolean', 'const': True, 'description': 'Must be true. Production-destructive.'}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Never infer another userâ\x80\x99s workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'maxLength': 80, 'minLength': 4, 'description': 'Game server id (srv_â\x80¦)'}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Never infer another userâ\x80\x99s workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'maxLength': 80, 'minLength': 4, 'description': 'Game server id (srv_â\x80¦)'}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Never infer another userâ\x80\x99s workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'maxLength': 80, 'minLength': 4, 'description': 'Game server id (srv_â\x80¦)'}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Never infer another userâ\x80\x99s workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Never infer another userâ\x80\x99s workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'maxLength': 80, 'minLength': 4, 'description': 'Game server id (srv_â\x80¦)'}, 'tail': {'type': 'integer', 'maximum': 2000, 'minimum': 20}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Never infer another userâ\x80\x99s workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'maxLength': 80, 'minLength': 4, 'description': 'Game server id (srv_â\x80¦)'}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Never infer another userâ\x80\x99s workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'maxLength': 80, 'minLength': 4, 'description': 'Game server id (srv_â\x80¦)'}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Never infer another userâ\x80\x99s workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id', 'maxPlayers'], 'properties': {'id': {'type': 'string', 'maxLength': 80, 'minLength': 4, 'description': 'Game server id (srv_â\x80¦)'}, 'maxPlayers': {'type': 'integer', 'maximum': 200, 'minimum': 1}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Never infer another userâ\x80\x99s workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'maxLength': 80, 'minLength': 4, 'description': 'Game server id (srv_â\x80¦)'}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Never infer another userâ\x80\x99s workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'maxLength': 80, 'minLength': 4, 'description': 'Game server id (srv_â\x80¦)'}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Never infer another userâ\x80\x99s workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'menu': {'anyOf': [{'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, {'type': 'null'}], 'description': '{title, preset, hud:{â\x80¦}} â\x80\x94 null resets'}, 'genre': {'anyOf': [{'type': 'string', 'maxLength': 64}, {'type': 'null'}], 'description': 'game kit style id (cs, mario-kart, arena-carâ\x80¦) â\x80\x94 null resets'}, 'match': {'anyOf': [{'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, {'type': 'null'}], 'description': 'partial match rules â\x80\x94 null resets'}, 'controls': {'anyOf': [{'type': 'object', 'required': ['actions'], 'properties': {'kit_id': {'type': 'string', 'maxLength': 32}, 'actions': {'type': 'array', 'items': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}}}}, {'type': 'null'}], 'description': 'full InputKit actions (InputBind[]) â\x80\x94 null resets to genre preset'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id', 'engine'], 'properties': {'id': {'type': 'string', 'description': 'Shader id or alias (slash_reveal, â\x80¦)'}, 'engine': {'enum': ['godot', 'unity', 'three'], 'type': 'string', 'description': 'Target engine'}, 'out_dir': {'type': 'string', 'description': 'Suggested folder (hosted returns contents only; npm writes)'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'q': {'type': 'string', 'description': 'Search id/name/alias (e.g. slash_reveal)'}, 'type': {'enum': ['canvas_item', 'spatial', 'sky', 'particles', 'fog'], 'type': 'string', 'description': 'Godot shader_type'}, 'limit': {'type': 'number', 'description': 'Page size (default 50, max 200)'}, 'offset': {'type': 'number', 'description': 'Offset'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['engine'], 'properties': {'config': {'type': 'object', 'properties': {'seed': {'type': 'integer', 'maximum': 65535, 'minimum': 0}, 'color': {'type': 'string', 'pattern': '^#[a-f\\d]{6}$'}, 'speed': {'type': 'number', 'maximum': 4, 'minimum': 0.1}, 'style': {'enum': ['fire', 'water', 'water-petal', 'blood', 'cat', 'cosmic', 'cyber', 'cyber-grid', 'holy', 'ice', 'ink', 'light', 'lightning', 'poison', 'rock', 'void', 'wind'], 'type': 'string'}, 'accent': {'type': 'string', 'pattern': '^#[a-f\\d]{6}$'}, 'radius': {'type': 'number', 'maximum': 5, 'minimum': 0.15}, 'opacity': {'type': 'number', 'maximum': 1, 'minimum': 0}, 'quality': {'enum': ['low', 'high'], 'type': 'string'}, 'stretch': {'type': 'array', 'prefixItems': [{'type': 'number', 'maximum': 2, 'minimum': 0.25}, {'type': 'number', 'maximum': 2, 'minimum': 0.25}, {'type': 'number', 'maximum': 2, 'minimum': 0.25}]}, 'version': {'type': 'number', 'const': 1}, 'intensity': {'type': 'number', 'maximum': 3, 'minimum': 0.1}}, 'additionalProperties': False}, 'engine': {'enum': ['threejs', 'godot', 'unity', 'unreal'], 'type': 'string'}, 'workspace_id': {'type': 'string', 'maxLength': 100}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'save': {'type': 'boolean'}, 'config': {'type': 'object', 'properties': {'seed': {'type': 'integer', 'maximum': 65535, 'minimum': 0}, 'color': {'type': 'string', 'pattern': '^#[a-f\\d]{6}$'}, 'speed': {'type': 'number', 'maximum': 4, 'minimum': 0.1}, 'style': {'enum': ['fire', 'water', 'water-petal', 'blood', 'cat', 'cosmic', 'cyber', 'cyber-grid', 'holy', 'ice', 'ink', 'light', 'lightning', 'poison', 'rock', 'void', 'wind'], 'type': 'string'}, 'accent': {'type': 'string', 'pattern': '^#[a-f\\d]{6}$'}, 'radius': {'type': 'number', 'maximum': 5, 'minimum': 0.15}, 'opacity': {'type': 'number', 'maximum': 1, 'minimum': 0}, 'quality': {'enum': ['low', 'high'], 'type': 'string'}, 'stretch': {'type': 'array', 'prefixItems': [{'type': 'number', 'maximum': 2, 'minimum': 0.25}, {'type': 'number', 'maximum': 2, 'minimum': 0.25}, {'type': 'number', 'maximum': 2, 'minimum': 0.25}]}, 'version': {'type': 'number', 'const': 1}, 'intensity': {'type': 'number', 'maximum': 3, 'minimum': 0.1}}, 'additionalProperties': False}, 'workspace_id': {'type': 'string', 'maxLength': 100}, 'idempotency_key': {'type': 'string', 'maxLength': 160, 'minLength': 8}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'refs': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 5, 'description': 'pinned reference lib ids'}, 'clear': {'type': 'boolean', 'description': 'remove the workspace style'}, 'edges': {'enum': ['soft', 'hard'], 'type': 'string'}, 'palette': {'type': 'array', 'items': {'type': 'object', 'required': ['hex'], 'properties': {'hex': {'type': 'string'}, 'name': {'type': 'string'}}}, 'maxItems': 6, 'description': '2-6 colors, e.g. [{hex:"#8b1a1a",name:"blood red"}]'}, 'realism': {'enum': ['stylized', 'semi', 'realistic'], 'type': 'string'}, 'direction': {'type': 'string', 'maxLength': 500, 'description': 'art direction, e.g. "DMC gothic, worn leather, tarnished metal"'}, 'saturation': {'enum': ['muted', 'balanced', 'vivid'], 'type': 'string'}, 'extract_from': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 5, 'description': 'image lib ids â\x80\x94 extract the palette from them'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['prompt'], 'properties': {'prompt': {'type': 'string', 'maxLength': 240, 'minLength': 2, 'description': 'e.g. "devil may cry like", "un ennemi genshin", "elden ring"'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'name': {'type': 'string', 'description': 'Library name (default <source>_tile)'}, 'save': {'type': 'boolean', 'description': 'Save to Library (default true on hosted MCP)'}, 'size': {'anyOf': [{'type': 'number', 'const': 1024}, {'type': 'number', 'const': 2048}], 'description': 'Max output side (default 1024)'}, 'scale': {'anyOf': [{'type': 'number', 'const': 1}, {'type': 'number', 'const': 2}, {'type': 'number', 'const': 4}], 'description': 'Upscale factor (default 1)'}, 'seamless': {'type': 'boolean', 'description': '50% offset + seam blend (default true)'}, 'image_url': {'type': 'string', 'description': 'https URL of the image (PNG/JPG/WebP)'}, 'texture_id': {'type': 'string', 'description': 'Library id of a texture (lib_â\x80¦)'}}}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'id': {'type': 'string'}, 'width': {'type': 'number'}, 'height': {'type': 'number'}, 'file_url': {'type': 'string', 'description': 'Albedo PNG URL'}, 'library_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'id': {'type': 'string', 'description': 'Library id of the vehicle/kart GLB (lib_â\x80¦)'}, 'prop_id': {'type': 'string', 'description': 'Same as id'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Returned scene links open this workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['source'], 'properties': {'stage': {'enum': ['plan', 'build'], 'type': 'string', 'default': 'plan'}, 'budget': {'type': 'object', 'properties': {'usd': {'type': 'number', 'minimum': 0}, 'credits': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}}, 'source': {'type': 'object', 'required': ['assetId', 'revisionId'], 'properties': {'assetId': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}, 'fileRole': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}, 'revisionId': {'type': 'string', 'pattern': '^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,159}$'}}}, 'granularity': {'enum': ['simple', 'balanced', 'detailed'], 'type': 'string'}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Returned scene links open this workspace.'}, 'idempotency_key': {'type': 'string', 'maxLength': 160, 'minLength': 8}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'core': {'type': 'number', 'maximum': 0.4, 'minimum': 0.02, 'description': 'portal only: shadow-core radius as a fraction of the portal (default 0.09)'}, 'look': {'enum': ['toon', 'solid', 'crystal', 'flame', 'pulse', 'firejet', 'impact'], 'type': 'string', 'description': 'toon: stylized ribbon/lightning; solid: filled beam; crystal: faceted weapon trail; flame: burning crescent; pulse: released electric orb; firejet: flared fire stream with torn tongues and pressure rings; impact: slam-family comic explosion with red telegraph, violet core, ink debris and optional impact frames'}, 'name': {'type': 'string', 'maxLength': 80}, 'type': {'enum': ['slash', 'thrust', 'spin', 'meteor', 'beam', 'swing', 'claw', 'charge', 'shield', 'portal', 'slam'], 'type': 'string', 'description': 'Strike type (default slash). portal = standing blood rift / demonic seal (world-space, loops); slam = ground-impact eruption: light pillar + fireball + sparks/debris (world-space, one-shot)'}, 'color': {'type': 'string', 'description': 'Hex color'}, 'style': {'enum': ['energy', 'metal', 'magic'], 'type': 'string', 'description': 'Look (default energy)'}, 'width': {'type': 'number', 'description': 'Ribbon width in metres'}, 'prompt': {'type': 'string', 'description': 'Natural-language VFX prompt. Fills type/style/color/emitters when omitted.'}, 'duration': {'type': 'number', 'description': 'Seconds (default 0.25)'}, 'emitters': {'type': 'array', 'items': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'maxItems': 6, 'description': 'Emitters returned by gripforge_vfx_generate.'}, 'attach_id': {'type': 'string', 'description': 'Library bind id (lib_â\x80¦). Not required for meteor.'}, 'generation': {'type': 'object', 'description': 'Generation provenance returned by gripforge_vfx_generate.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}}}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'id': {'type': 'string'}, 'vfx': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'urls': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'snippets': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'string'}}, 'studio_url': {'type': 'string', 'description': 'Direct link to the saved effect in the GripForge VFX Studio; requires an authorized user session.'}, 'workspace_id': {'type': 'string'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'preset': {'enum': ['slash-trail', 'slash-emerald', 'slash-steel', 'slash-fire', 'slash-ice', 'slash-nature', 'arc-pulse', 'fire-breath', 'neon-impact'], 'type': 'string', 'description': 'Load a ready-to-play preset instantly, without AI. Supply this field alone.'}, 'prompt': {'type': 'string', 'maxLength': 500, 'description': 'Effect description; optional with an image.'}, 'image_id': {'type': 'string', 'description': 'Owned Library image id; use instead of image_data.'}, 'image_data': {'type': 'string', 'maxLength': 12582912, 'description': 'PNG/JPEG/WebP base64 data URI, up to 8 MB decoded.'}, 'visual_style': {'enum': ['realistic', 'stylized', 'anime', 'lowpoly'], 'type': 'string'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['bind'], 'properties': {'t': {'type': 'number', 'description': 'Seconds on the timeline (default 0)'}, 'bind': {'type': 'object', 'description': 'Attach bind.json object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'type': {'enum': ['slash', 'thrust', 'spin', 'meteor', 'beam', 'swing', 'claw', 'charge', 'shield'], 'type': 'string'}, 'style': {'enum': ['energy', 'metal', 'magic'], 'type': 'string'}, 'duration': {'type': 'number'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'id': {'type': 'string', 'pattern': '^lib_[A-Za-z0-9_-]+$'}, 'prompt': {'type': 'string', 'maxLength': 2000}, 'image_id': {'type': 'string', 'pattern': '^lib_[A-Za-z0-9_-]+$'}, 'image_data': {'type': 'string', 'maxLength': 12582912}, 'image_mode': {'enum': ['spatial', 'animated-artwork'], 'type': 'string', 'description': 'Default spatial: build a 3D effect. animated-artwork explicitly opts into a flat animated illustration.'}, 'visual_style': {'enum': ['realistic', 'stylized', 'anime', 'lowpoly'], 'type': 'string'}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Explicit workspace id. The key must have access to this workspace; never infer another userâ\x80\x99s workspace.'}, 'idempotency_key': {'type': 'string', 'maxLength': 160, 'minLength': 8}, 'expected_revision': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id', 'revision', 'expectedCurrent'], 'properties': {'id': {'type': 'string', 'pattern': '^lib_[A-Za-z0-9_-]+$'}, 'revision': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Explicit workspace id. The key must have access to this workspace; never infer another userâ\x80\x99s workspace.'}, 'expectedCurrent': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, {'type': 'null'}]}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'pattern': '^lib_[A-Za-z0-9_-]+$'}, 'revision': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Explicit workspace id. The key must have access to this workspace; never infer another userâ\x80\x99s workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'id': {'type': 'string', 'pattern': '^lib_[A-Za-z0-9_-]+$'}, 'times': {'type': 'array', 'items': {'type': 'number', 'maximum': 12, 'minimum': 0}, 'maxItems': 4, 'minItems': 1, 'description': 'Render timestamps in seconds. Defaults to anticipation, middle and decay samples.'}, 'project': {'type': 'object', 'description': 'Complete editable project JSON. Read gripforge_vfx_project_schema for the format and a working example.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Explicit workspace id. The key must have access to this workspace; never infer another userâ\x80\x99s workspace.'}, 'idempotency_key': {'type': 'string', 'maxLength': 160, 'minLength': 8}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id', 'expected_revision'], 'properties': {'id': {'type': 'string', 'pattern': '^lib_[A-Za-z0-9_-]+$'}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Explicit workspace id. The key must have access to this workspace; never infer another userâ\x80\x99s workspace.'}, 'idempotency_key': {'type': 'string', 'maxLength': 160, 'minLength': 8}, 'expected_revision': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Explicit workspace id. The key must have access to this workspace; never infer another userâ\x80\x99s workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'id': {'type': 'string', 'pattern': '^lib_[A-Za-z0-9_-]+$'}, 'note': {'type': 'string', 'maxLength': 1000}, 'edits': {'type': 'array', 'items': {'type': 'object', 'required': ['path', 'content'], 'properties': {'path': {'type': 'string', 'maxLength': 100}, 'content': {'type': 'string', 'maxLength': 400000}}}, 'maxItems': 24, 'minItems': 1}, 'times': {'type': 'array', 'items': {'type': 'number', 'maximum': 12, 'minimum': 0}, 'maxItems': 4, 'minItems': 1, 'description': 'Render timestamps in seconds. Defaults to anticipation, middle and decay samples.'}, 'project': {'type': 'object', 'description': 'Complete editable project JSON. Read gripforge_vfx_project_schema for the format and a working example.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Explicit workspace id. The key must have access to this workspace; never infer another userâ\x80\x99s workspace.'}, 'idempotency_key': {'type': 'string', 'maxLength': 160, 'minLength': 8}, 'expected_revision': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['prompt'], 'properties': {'prompt': {'type': 'string', 'maxLength': 240, 'minLength': 2, 'description': 'e.g. "fps" or "counter-strike dust2"'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['source_id'], 'properties': {'hand': {'enum': ['left', 'right'], 'type': 'string'}, 'name': {'type': 'string', 'maxLength': 150}, 'hands': {'anyOf': [{'type': 'number', 'const': 1}, {'type': 'number', 'const': 2}]}, 'slots': {'type': 'array', 'items': {'enum': ['idle', 'walk', 'run', 'attack1', 'attack2', 'attack3', 'hit', 'death', 'dodge', 'block', 'jump_start', 'jump_loop', 'jump_land'], 'type': 'string'}, 'maxItems': 13, 'minItems': 1}, 'family': {'enum': ['axe', 'sword', 'hammer', 'staff'], 'type': 'string', 'description': 'Required on the first call. Never infer axe vs sword from geometry alone.'}, 'edgeAxis': {'type': 'array', 'prefixItems': [{'type': 'number'}, {'type': 'number'}, {'type': 'number'}]}, 'source_id': {'type': 'string', 'pattern': '^lib_[A-Za-z0-9_-]{8,64}$'}, 'handleAxis': {'type': 'array', 'prefixItems': [{'type': 'number'}, {'type': 'number'}, {'type': 'number'}]}, 'weaponNode': {'type': 'string', 'maxLength': 150}, 'workspace_id': {'type': 'string', 'maxLength': 100}, 'primaryAnchor': {'type': 'array', 'prefixItems': [{'type': 'number'}, {'type': 'number'}, {'type': 'number'}]}, 'idempotency_key': {'type': 'string', 'pattern': '^[a-zA-Z0-9_.:-]{8,160}$'}, 'secondaryAnchor': {'type': 'array', 'description': 'Required for two hands; weapon-node local coordinates.', 'prefixItems': [{'type': 'number'}, {'type': 'number'}, {'type': 'number'}]}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['source_id'], 'properties': {'source_id': {'type': 'string', 'pattern': '^lib_[A-Za-z0-9_-]{8,64}$'}, 'workspace_id': {'type': 'string', 'maxLength': 100}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['source_id'], 'properties': {'hand': {'enum': ['left', 'right'], 'type': 'string'}, 'hands': {'anyOf': [{'type': 'number', 'const': 1}, {'type': 'number', 'const': 2}]}, 'family': {'enum': ['axe', 'sword', 'hammer', 'staff'], 'type': 'string', 'description': 'Required on the first call. Never infer axe vs sword from geometry alone.'}, 'edgeAxis': {'type': 'array', 'prefixItems': [{'type': 'number'}, {'type': 'number'}, {'type': 'number'}]}, 'source_id': {'type': 'string', 'pattern': '^lib_[A-Za-z0-9_-]{8,64}$'}, 'handleAxis': {'type': 'array', 'prefixItems': [{'type': 'number'}, {'type': 'number'}, {'type': 'number'}]}, 'weaponNode': {'type': 'string', 'maxLength': 150}, 'workspace_id': {'type': 'string', 'maxLength': 100}, 'primaryAnchor': {'type': 'array', 'prefixItems': [{'type': 'number'}, {'type': 'number'}, {'type': 'number'}]}, 'secondaryAnchor': {'type': 'array', 'description': 'Required for two hands; weapon-node local coordinates.', 'prefixItems': [{'type': 'number'}, {'type': 'number'}, {'type': 'number'}]}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'maxLength': 80, 'minLength': 4, 'description': 'Game server id (srv_â\x80¦)'}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Never infer another userâ\x80\x99s workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'maxLength': 80, 'minLength': 4, 'description': 'Game server id (srv_â\x80¦)'}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Never infer another userâ\x80\x99s workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'id': {'type': 'string', 'maxLength': 80, 'minLength': 4, 'description': 'Game server id (srv_â\x80¦)'}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Never infer another userâ\x80\x99s workspace.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'maxLength': 80, 'minLength': 4, 'description': 'Game server id (srv_â\x80¦)'}, 'workspace_id': {'type': 'string', 'maxLength': 100, 'description': 'Workspace authorized by the current key. Never infer another userâ\x80\x99s workspace.'}}}
Recent tool changes
Similar MCP servers
spriteship
Generates and manages 2D game characters, assets, animations, tilesets, UI packs, maps, and engine-ready exports for multiple gam…
3DAssets.dev
Searches and delivers free CC0 GLB models and game asset packs, with licensing details, CDN links, scene layouts, and loader usag…
AXIS Avatar Foundry
Generates, repairs, rigs, validates, retargets, compares, and exports production-ready 3D avatars and meshes for game platforms.
Blixtworks
Offers pay-per-call utilities for text, image processing and analysis, data conversion, validation, web inspection, cryptography,…
Compose Preview Catalogs
Browses, renders, compares, audits, and edits Jetpack Compose preview catalogs and associated UI designs.
arch-tools-mcp
Provides general-purpose agent APIs for browser automation, web and PDF extraction, data conversion, email operations, fact check…
kernelcad
Authors, evaluates, reviews, simulates, edits, and exports parametric CAD assemblies and geometry from editable TypeScript-based …
floot
Creates, edits, previews, databases, and publishes full-stack web and mobile applications with hosted resources and deployment wo…