GripForge
Was dieses MCP kann
Generates, rigs, animates, analyzes, and packages game characters, weapons, armor, effects, environments, and engine-ready assets.
Tools
Eingabeschema
{'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'}}}
Eingabeschema
{'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'}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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'}}}
Eingabeschema
{'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'}}}
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
Eingabeschema
{'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}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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)'}}}
Ausgabeschema
{'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}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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}}}
Eingabeschema
{'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'}}}
Eingabeschema
{'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'}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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'}}}
Ausgabeschema
{'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}
Eingabeschema
{'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'}}}
Ausgabeschema
{'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}
Eingabeschema
{'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'}}}
Eingabeschema
{'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}$'}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
Eingabeschema
{'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}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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"'}}}
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
Ausgabeschema
{'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}
Eingabeschema
{'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}}}
Eingabeschema
{'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'}}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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}$'}}}
Eingabeschema
{'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}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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).'}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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.'}}}
Ausgabeschema
{'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': {}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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.'}}}
Ausgabeschema
{'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': {}}
Eingabeschema
{'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}$'}}}
Eingabeschema
{'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}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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}}}
Eingabeschema
{'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.'}}}
Ausgabeschema
{'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': {}}
Eingabeschema
{'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}$'}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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'}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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'}}}
Eingabeschema
{'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).'}}}
Ausgabeschema
{'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}
Eingabeschema
{'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'}}}
Ausgabeschema
{'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}
Eingabeschema
{'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'}}}
Eingabeschema
{'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).'}}}
Eingabeschema
{'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])'}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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}}}}
Eingabeschema
{'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'}}}
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Library id (lib_â\x80¦)'}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Library id (lib_â\x80¦)'}}}
Eingabeschema
{'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'}}}
Eingabeschema
{'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)'}}}
Eingabeschema
{'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"'}}}
Eingabeschema
{'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)'}}}
Eingabeschema
{'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¦)'}}}
Eingabeschema
{'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¦)'}}}
Ausgabeschema
{'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}
Eingabeschema
{'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)'}}}
Eingabeschema
{'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}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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"'}}}
Eingabeschema
{'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)'}}}
Eingabeschema
{'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"'}}}
Eingabeschema
{'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"'}}}
Eingabeschema
{'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"'}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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"'}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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'}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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'}}}
Eingabeschema
{'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"'}}}
Eingabeschema
{'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'}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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}}}
Eingabeschema
{'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'}}}
Eingabeschema
{'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'}}}
Eingabeschema
{'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'}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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'}]}}}
Eingabeschema
{'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}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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"'}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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}}}
Eingabeschema
{'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}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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'}]}}}
Eingabeschema
{'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}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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}}}
Eingabeschema
{'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}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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'}}}
Eingabeschema
{'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)'}}}
Eingabeschema
{'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'}}}
Eingabeschema
{'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}}}
Eingabeschema
{'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}}}
Eingabeschema
{'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'}}}
Eingabeschema
{'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"'}}}
Eingabeschema
{'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¦)'}}}
Ausgabeschema
{'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}
Eingabeschema
{'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'}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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}}}
Eingabeschema
{'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': {}}}}
Ausgabeschema
{'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}
Eingabeschema
{'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'}}}
Eingabeschema
{'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'}}}
Eingabeschema
{'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}}}
Eingabeschema
{'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'}]}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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}}}
Eingabeschema
{'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}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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}}}
Eingabeschema
{'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"'}}}
Eingabeschema
{'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'}]}}}
Eingabeschema
{'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}}}
Eingabeschema
{'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'}]}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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.'}}}
Eingabeschema
{'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.'}}}
Letzte Tool-Änderungen
Ähnliche MCP-Server
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…