OptionalgroupPalette grouping key. Tools sharing a group render contiguously with separators between groups. Free-form string; the kit recommends 'select' | 'shape' | 'draw' | 'type' | 'view'.
OptionaliconInline-SVG icon component output. May be a static ReactNode or a
function of scratch state (rare; useful for shape-aware affordances).
OptionallabelHuman-readable label, distinct from the id. Falls back to id.
OptionalshortcutDisplay override for the keyboard shortcut. When omitted the palette
derives one from Tool.keybinding via its own formatter.
Presentation metadata for tool palettes / menus. Optional on every tool — consumers that render a palette (
<ToolPalette>) read these fields to display the tool; consumers that don't can ignore them.Note: cursor is NOT here. The top-level
Tool.cursorfield below is already plumbed through<Canvas>tostyle.cursoron the host.