이 MCP로 할 수 있는 일
Generates, rigs, animates, analyzes, and packages game characters, weapons, armor, effects, environments, and engine-ready assets.
도구
입력 스키마
{'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'}}}
입력 스키마
{'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'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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'}}}
입력 스키마
{'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'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
입력 스키마
{'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}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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)'}}}
출력 스키마
{'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}
입력 스키마
{'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.'}}}
입력 스키마
{'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}}}
입력 스키마
{'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'}}}
입력 스키마
{'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'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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'}}}
출력 스키마
{'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}
입력 스키마
{'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'}}}
출력 스키마
{'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}
입력 스키마
{'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'}}}
입력 스키마
{'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}$'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
입력 스키마
{'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}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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"'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
출력 스키마
{'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}
입력 스키마
{'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}}}
입력 스키마
{'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'}}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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}$'}}}
입력 스키마
{'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}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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).'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
출력 스키마
{'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': {}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
출력 스키마
{'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': {}}
입력 스키마
{'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}$'}}}
입력 스키마
{'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}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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}}}
입력 스키마
{'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.'}}}
출력 스키마
{'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': {}}
입력 스키마
{'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}$'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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'}}}
입력 스키마
{'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).'}}}
출력 스키마
{'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}
입력 스키마
{'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'}}}
출력 스키마
{'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}
입력 스키마
{'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'}}}
입력 스키마
{'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).'}}}
입력 스키마
{'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])'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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}}}}
입력 스키마
{'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'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Library id (lib_â\x80¦)'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Library id (lib_â\x80¦)'}}}
입력 스키마
{'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'}}}
입력 스키마
{'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)'}}}
입력 스키마
{'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"'}}}
입력 스키마
{'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)'}}}
입력 스키마
{'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¦)'}}}
입력 스키마
{'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¦)'}}}
출력 스키마
{'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}
입력 스키마
{'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)'}}}
입력 스키마
{'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}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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"'}}}
입력 스키마
{'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)'}}}
입력 스키마
{'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"'}}}
입력 스키마
{'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"'}}}
입력 스키마
{'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"'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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"'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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'}}}
입력 스키마
{'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"'}}}
입력 스키마
{'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'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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}}}
입력 스키마
{'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'}}}
입력 스키마
{'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'}}}
입력 스키마
{'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'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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'}]}}}
입력 스키마
{'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}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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"'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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}}}
입력 스키마
{'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}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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'}]}}}
입력 스키마
{'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}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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}}}
입력 스키마
{'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}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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'}}}
입력 스키마
{'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)'}}}
입력 스키마
{'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'}}}
입력 스키마
{'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}}}
입력 스키마
{'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}}}
입력 스키마
{'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'}}}
입력 스키마
{'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"'}}}
입력 스키마
{'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¦)'}}}
출력 스키마
{'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}
입력 스키마
{'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'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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}}}
입력 스키마
{'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': {}}}}
출력 스키마
{'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}
입력 스키마
{'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'}}}
입력 스키마
{'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'}}}
입력 스키마
{'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}}}
입력 스키마
{'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'}]}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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}}}
입력 스키마
{'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}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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}}}
입력 스키마
{'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"'}}}
입력 스키마
{'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'}]}}}
입력 스키마
{'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}}}
입력 스키마
{'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'}]}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
최근 도구 변경
유사한 MCP 서버
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…