{"ok":true,"site":{"host":"blue1st.github.io","url":"https://blue1st.github.io/arcade-controller-button-placement/","type":"live","desc":"Arcade Controller Button Placement","tools":[{"name":"get_current_layout","kind":"answer","impl":"imperative","description":"Get details of all buttons currently on the canvas, including ID, coordinates (x,y), label, diameter, and total button count.","inputSchema":{"type":"object","properties":{},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/arcade-controller-button-placement/"},{"name":"get_preset_list","kind":"answer","impl":"imperative","description":"Get list of available arcade controller preset layouts (e.g. default, basic-lever, hori-nolva, pws-type-b, etc.).","inputSchema":{"type":"object","properties":{},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/arcade-controller-button-placement/"},{"name":"load_layout_preset","kind":"act","impl":"imperative","description":"Load a standard arcade controller button layout preset by name (e.g., \"default\", \"basic-lever\", \"hori-nolva\", \"rushbox\").","inputSchema":{"type":"object","properties":{"presetName":{"type":"string","description":"Name of the layout preset (e.g., \"default\", \"basic-lever\", \"hori-nolva\", \"rushbox\", \"pws-type-b\")"}},"required":["presetName"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/arcade-controller-button-placement/"},{"name":"add_button","kind":"act","impl":"imperative","description":"Add a new button to the controller placement canvas with specified coordinates, label, and diameter (24 or 30mm).","inputSchema":{"type":"object","properties":{"label":{"type":"string","description":"Label text written on the button (e.g., \"P1\", \"K1\", \"Up\", \"Option\")"},"diameter":{"type":"number","enum":[24,30],"description":"Button diameter in mm (24 or 30)"},"x":{"type":"number","description":"X coordinate on canvas (10-590)"},"y":{"type":"number","description":"Y coordinate on canvas (10-390)"}},"required":["label","x","y"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/arcade-controller-button-placement/"},{"name":"update_button","kind":"act","impl":"imperative","description":"Update parameters (label, diameter, x/y position) of an existing button by its ID.","inputSchema":{"type":"object","properties":{"id":{"type":"number","description":"ID of the button to modify"},"label":{"type":"string","description":"New label text"},"diameter":{"type":"number","enum":[24,30],"description":"New diameter in mm"},"x":{"type":"number","description":"New X position"},"y":{"type":"number","description":"New Y position"}},"required":["id"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/arcade-controller-button-placement/"},{"name":"remove_button","kind":"act","impl":"imperative","description":"Remove a button from the placement canvas by its ID.","inputSchema":{"type":"object","properties":{"id":{"type":"number","description":"ID of the button to remove"}},"required":["id"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/arcade-controller-button-placement/"},{"name":"clear_all_buttons","kind":"act","impl":"imperative","description":"Clear all buttons from the arcade controller layout canvas.","inputSchema":{"type":"object","properties":{},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/arcade-controller-button-placement/"},{"name":"arrange_buttons_grid","kind":"act","impl":"imperative","description":"Arrange buttons in a structured grid pattern (e.g. 2 rows x 4 columns).","inputSchema":{"type":"object","properties":{"rows":{"type":"number","description":"Number of rows"},"cols":{"type":"number","description":"Number of columns"},"startX":{"type":"number","description":"Starting X position (e.g. 200)"},"startY":{"type":"number","description":"Starting Y position (e.g. 150)"},"spacingX":{"type":"number","description":"Horizontal spacing between buttons (default: 45)"},"spacingY":{"type":"number","description":"Vertical spacing between buttons (default: 45)"},"diameter":{"type":"number","enum":[24,30],"description":"Button diameter (default: 30)"},"labelPrefix":{"type":"string","description":"Prefix for button labels (e.g., \"B\")"}},"required":["rows","cols"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/arcade-controller-button-placement/"},{"name":"export_layout_url","kind":"act","impl":"imperative","description":"Generate LZ-compressed URL for sharing or embedding the current arcade controller button placement.","inputSchema":{"type":"object","properties":{},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/arcade-controller-button-placement/"}],"apiSurface":"spec","category":"Developer Tools","toolCount":9}}