{"ok":true,"site":{"host":"app.colorwake.com","url":"https://app.colorwake.com/","type":"live","desc":"colorwake","tools":[{"name":"get_guide","kind":"answer","impl":"imperative","description":"Start here: how this studio works and how to guide the player — read it once right after you connect, before anything else. Read-only.","title":"Read the helper guide","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get_studio_state","kind":"answer","impl":"imperative","description":"Read what is on screen now: the mode (coloring or playing), every picture the player has colored (which regions have which colors, how done it is, where it stands, whether it is on the play screen — 3 at a time — and moving), the current tool and color, the scene (place, time, weather — null means not chosen yet) and placeActions the current place allows. Call this first before directing the play screen; if nextQuestion is set, ask the player that next. Read-only.","title":"Look at the studio","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"list_sketches","kind":"answer","impl":"imperative","description":"List the coloring sketches the player can pick: id, title, body type (rig), difficulty (easy = a few big regions, normal = 8–12 regions) and a few English synonyms for it. Use it to find the sketch id for pick_sketch when the player names an animal or thing in any language. Read-only.","title":"Browse sketches","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"rig":{"description":"Filter by body type","type":"string","enum":["quadruped","swimmer","winged","biped","object"]},"level":{"description":"easy = a few big regions","type":"string","enum":["easy","normal"]}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"list_motions","kind":"answer","impl":"imperative","description":"List what the play screen can do: motion presets for a character (its body type's plus universal ones) with their variants, the place actions drawn into the current scene (swing, slide, bus, inside) and where the others are, the primitives you can combine into your own motion (move, rotate, scale, bounce, shake, spin, flip, tilt, fade, wave) with limits, the body parts you may target, and scene options. Call it when the player asks for something new. Read-only.","title":"Browse motions and scenes","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"character":{"description":"Character id or sketch id; defaults to the active character","type":"string"},"all":{"description":"true = presets for every body type (larger answer)","type":"boolean"}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"set_mode","kind":"act","impl":"imperative","description":"Switch between coloring and playing, like the on-screen buttons (\"Let's play with my friends!\" and the + in My friends). mode \"play\" puts the current picture in My friends and turns the canvas into the play screen, where up to 3 friends come alive — use when the player says they are done or wants to play. mode \"color\" goes back to coloring with the sketch strip open — use when the player wants to color another picture. A picture needs at least one color before it can play.","title":"Switch between coloring and playing","inputSchema":{"type":"object","properties":{"mode":{"type":"string","enum":["play","color"]}},"required":["mode"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"pick_sketch","kind":"act","impl":"imperative","description":"Put a coloring sketch on the canvas for the player to color, exactly like tapping it in the sketch strip. Use when the player names what they want to color. If the current picture already has color it is kept in My friends (up to 20 pictures); a blank one is replaced. Switches to coloring mode if the player was playing. Does not color anything — the player does the coloring.","title":"Put a sketch on the canvas","inputSchema":{"type":"object","properties":{"sketch":{"type":"string","description":"Sketch id from list_sketches, e.g. \"cat\""}},"required":["sketch"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"set_tool","kind":"act","impl":"imperative","description":"Hand the player a drawing tool and color: fill (tap a region to fill it — the simplest), pen, brush or pencil, in a palette color (red, orange, yellow, green, sky, blue, purple, white, peach, brown, black) or any other color as a CSS name or #rrggbb hex (mint, turquoise, #ff69b4 become custom colors). Use when the player asks for a color or tool. Changes only what the next touch paints with. Does not paint anything and does not change existing colors.","title":"Change brush and color","inputSchema":{"type":"object","properties":{"tool":{"description":"Omit to keep the current tool","type":"string","enum":["fill","pen","brush","pencil"]},"color":{"description":"Palette id like \"red\" or \"sky\", a CSS color name, or #rrggbb for a color outside the palette","type":"string"},"size":{"description":"Stroke size for pen/brush/pencil","type":"string","enum":["s","m","l"]}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"apply_motion","kind":"act","impl":"imperative","description":"Animate a colored picture. Give a preset from list_motions (fly, swim, dance, jump, walk …) — any preset works on any character — with a variant, or omit it to vary. Looping presets end after a few seconds; loop: true keeps going until \"stop\". Place actions (swing, slide, bus, inside) use what is drawn in the current place. Or compose steps from primitives (e.g. \"roll\" = spin + move). Replaces the current motion; enters play mode and brings the character on stage if needed.","title":"Make a character move","inputSchema":{"type":"object","properties":{"character":{"type":"string","description":"Character id from get_studio_state (or the sketch id if only one such character)"},"motion":{"description":"Preset or place action id from list_motions, or \"stop\"","type":"string"},"variant":{"description":"Which version of the preset (ids from list_motions); omit to let the app vary it","type":"string"},"steps":{"description":"Custom motion; used when motion is omitted","minItems":1,"maxItems":8,"type":"array","items":{"type":"object","properties":{"primitive":{"type":"string","enum":["move","rotate","scale","bounce","shake","spin","flip","tilt","fade","wave"]},"part":{"description":"Body part id from list_motions; omit = whole character","type":"string"},"params":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":["number","string","boolean"]}},"durationMs":{"description":"100-8000","type":"number"},"delayMs":{"description":"0-4000","type":"number"},"ease":{"type":"string","enum":["linear","ease-in-out","ease-in","ease-out"]}},"required":["primitive"],"additionalProperties":false}},"mode":{"description":"How steps combine; default parallel","type":"string","enum":["sequence","parallel"]},"speed":{"description":"0.5-2, default 1","type":"number"},"loop":{"description":"true = until stopped (\"keep going\"), number = times; omit = preset default (looping presets run a few seconds, then end)","anyOf":[{"type":"boolean"},{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}]}},"required":["character"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"apply_motions","kind":"act","impl":"imperative","description":"Animate up to three friends in one call — each action works like apply_motion (preset from list_motions, optional variant, speed, loop). Use it whenever the player wants more than one friend moving (\"everybody dance!\") instead of calling apply_motion repeatedly. Actions start together and each reports its own result. For a single friend, or composed steps, use apply_motion.","title":"Make several characters move","inputSchema":{"type":"object","properties":{"actions":{"minItems":1,"maxItems":3,"type":"array","items":{"type":"object","properties":{"character":{"type":"string","description":"Character id (or sketch id if only one such character)"},"motion":{"type":"string","description":"Preset or place action id from list_motions, or \"stop\""},"variant":{"description":"Which version of the preset; omit to let the app vary it","type":"string"},"speed":{"description":"0.5-2, default 1","type":"number"},"loop":{"description":"true = until stopped, number = times; omit = preset default","anyOf":[{"type":"boolean"},{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}]}},"required":["character","motion"],"additionalProperties":false},"description":"One entry per friend, up to the three on stage"}},"required":["actions"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"arrange_scene","kind":"act","impl":"imperative","description":"Compose the play screen: the place (home, sea, sky …), day or night, the weather (clear, rain, snow …) and where colored pictures stand (left, center, right, sky or exact x/y) — placing one brings it on stage. Use when the player answers \"where are we? day or night? what's the weather?\" or wants characters to go somewhere or meet. Anything goes — a fish on land is fine. Only what you pass changes; nextQuestion is what to ask next. Does not change colors or motions.","title":"Set the scene","inputSchema":{"type":"object","properties":{"place":{"description":"Place id from list_motions, e.g. home, sea, sky (blank = none)","type":"string"},"time":{"type":"string","enum":["day","night"]},"weather":{"description":"Weather id from list_motions, e.g. clear, rain, snow, cloudy","type":"string"},"placements":{"maxItems":4,"type":"array","items":{"type":"object","properties":{"character":{"type":"string"},"at":{"anyOf":[{"type":"string","enum":["left","center","right","sky"]},{"type":"object","properties":{"x":{"type":"number"},"y":{"type":"number"}},"required":["x","y"],"additionalProperties":false,"description":"0-1 of the play screen, y = feet"}]},"scale":{"description":"0.5-2, default 1","type":"number"}},"required":["character","at"],"additionalProperties":false}}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"}],"category":"Media & Personal","favicon":"/favicons/app.colorwake.com.svg","apiSurface":"spec","toolCount":10}}