Creation
用于创建形状、框架和文本节点的工具
此分类共 5 个工具。
create_section
Section titled “create_section” create
Create section nodes to organize content on the canvas. Default: no fill (transparent).
| Parameter | Type | Required | Description |
|---|---|---|---|
items | object[] | ✓ | Array of sections to create |
↳ name | string | ✗ | Name (default: 'Section') |
↳ x | number | ✗ | X position (default: 0) |
↳ y | number | ✗ | Y position (default: 0) |
↳ width | number | ✗ | Width (default: 500) |
↳ height | number | ✗ | Height (default: 500) |
↳ parentId | string | ✗ | Parent node ID. Omit to place on current page. |
↳ fillColor | object | ✗ | Fill color. Default: no fill (transparent). |
↳ r | number | ✓ | |
↳ g | number | ✓ | |
↳ b | number | ✓ | |
↳ a | number | ✗ | |
↳ fillStyleName | string | ✗ | Apply a fill paint style by name (case-insensitive). |
↳ fillVariableId | string | ✗ | Bind a color variable to the fill. |
depth | number | ✗ | Response detail: omit for id+name only. 0=properties + child stubs. N=recurse N levels. -1=unlimited. |
JSON Schema
{
"type": "object",
"properties": {
"items": {
"description": "Array of sections to create",
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"description": "Name (default: 'Section')",
"type": "string"
},
"x": {
"description": "X position (default: 0)",
"type": "number"
},
"y": {
"description": "Y position (default: 0)",
"type": "number"
},
"width": {
"description": "Width (default: 500)",
"type": "number"
},
"height": {
"description": "Height (default: 500)",
"type": "number"
},
"parentId": {
"description": "Parent node ID. Omit to place on current page.",
"type": "string"
},
"fillColor": {
"description": "Fill color. Default: no fill (transparent).",
"type": "object",
"properties": {
"r": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"g": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"b": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"a": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"r",
"g",
"b"
]
},
"fillStyleName": {
"description": "Apply a fill paint style by name (case-insensitive).",
"type": "string"
},
"fillVariableId": {
"description": "Bind a color variable to the fill.",
"type": "string"
}
}
}
},
"depth": {
"description": "Response detail: omit for id+name only. 0=properties + child stubs. N=recurse N levels. -1=unlimited.",
"type": "number"
}
},
"required": [
"items"
]
} 返回值 仅供参考 — 不包含在工具定义中
| Field | Type | Description |
|---|---|---|
results | (success | error)[] | Per-item results. |
↳ id | string | Node ID |
↳ error | string | Error message for this item |
warnings | string[] | Deduplicated warnings hoisted from individual results |
示例返回
{
"results": [
{
"id": "10:4"
}
]
} 返回值 JSON Schema
{
"type": "object",
"properties": {
"results": {
"type": "array",
"description": "Per-item results.",
"items": {
"oneOf": [
{
"title": "success",
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Node ID"
}
}
},
{
"title": "error",
"type": "object",
"properties": {
"error": {
"type": "string",
"description": "Error message for this item"
}
},
"required": [
"error"
]
}
]
}
},
"warnings": {
"type": "array",
"description": "Deduplicated warnings hoisted from individual results",
"items": {
"type": "string"
}
}
},
"required": [
"results"
]
} create_node_from_svg
Section titled “create_node_from_svg” create
Create nodes from SVG strings.
| Parameter | Type | Required | Description |
|---|---|---|---|
items | object[] | ✓ | Array of SVG items to create |
↳ svg | string | ✓ | SVG markup string |
↳ name | string | ✗ | Layer name (default: 'SVG') |
↳ x | number | ✗ | X position (default: 0) |
↳ y | number | ✗ | Y position (default: 0) |
↳ parentId | string | ✗ | Parent node ID. Omit to place on current page. |
depth | number | ✗ | Response detail: omit for id+name only. 0=properties + child stubs. N=recurse N levels. -1=unlimited. |
JSON Schema
{
"type": "object",
"properties": {
"items": {
"description": "Array of SVG items to create",
"type": "array",
"items": {
"type": "object",
"properties": {
"svg": {
"type": "string",
"description": "SVG markup string"
},
"name": {
"description": "Layer name (default: 'SVG')",
"type": "string"
},
"x": {
"description": "X position (default: 0)",
"type": "number"
},
"y": {
"description": "Y position (default: 0)",
"type": "number"
},
"parentId": {
"description": "Parent node ID. Omit to place on current page.",
"type": "string"
}
},
"required": [
"svg"
]
}
},
"depth": {
"description": "Response detail: omit for id+name only. 0=properties + child stubs. N=recurse N levels. -1=unlimited.",
"type": "number"
}
},
"required": [
"items"
]
} 返回值 仅供参考 — 不包含在工具定义中
| Field | Type | Description |
|---|---|---|
results | ("ok" | error)[] | Per-item results. |
↳ error | string | Error message for this item |
warnings | string[] | Deduplicated warnings hoisted from individual results |
示例返回
{
"results": [
"ok"
]
} 返回值 JSON Schema
{
"type": "object",
"properties": {
"results": {
"type": "array",
"description": "Per-item results.",
"items": {
"oneOf": [
{
"type": "string",
"const": "ok"
},
{
"title": "error",
"type": "object",
"properties": {
"error": {
"type": "string",
"description": "Error message for this item"
}
},
"required": [
"error"
]
}
]
}
},
"warnings": {
"type": "array",
"description": "Deduplicated warnings hoisted from individual results",
"items": {
"type": "string"
}
}
},
"required": [
"results"
]
} create_frame
Section titled “create_frame” create
Create frames in Figma. Batch supported. Use fillStyleName/fillVariableId and strokeStyleName/strokeVariableId instead of hardcoded colors — hardcoded values skip design tokens and will trigger lint warnings.
| Parameter | Type | Required | Description |
|---|---|---|---|
items | object[] | ✓ | Array of frames to create |
↳ name | string | ✗ | Frame name (default: 'Frame') |
↳ x | number | ✗ | X position (default: 0) |
↳ y | number | ✗ | Y position (default: 0) |
↳ width | number | ✗ | Width (default: 100) |
↳ height | number | ✗ | Height (default: 100) |
↳ parentId | string | ✗ | Parent node ID. Omit to place on current page. |
↳ fillColor | object | ✗ | Fill color. Default: no fill. |
↳ r | number | ✓ | |
↳ g | number | ✓ | |
↳ b | number | ✓ | |
↳ a | number | ✗ | |
↳ strokeColor | object | ✗ | Stroke color. Default: none. |
↳ r | number | ✓ | |
↳ g | number | ✓ | |
↳ b | number | ✓ | |
↳ a | number | ✗ | |
↳ strokeWeight | number | ✗ | Stroke weight (default: 1) |
↳ cornerRadius | number | ✗ | Corner radius (default: 0) |
↳ layoutMode | "NONE" | "HORIZONTAL" | "VERTICAL" | ✗ | Auto-layout direction (default: NONE) |
↳ layoutWrap | "NO_WRAP" | "WRAP" | ✗ | Wrap (default: NO_WRAP) |
↳ paddingTop | number | ✗ | Top padding (default: 0) |
↳ paddingRight | number | ✗ | Right padding (default: 0) |
↳ paddingBottom | number | ✗ | Bottom padding (default: 0) |
↳ paddingLeft | number | ✗ | Left padding (default: 0) |
↳ primaryAxisAlignItems | "MIN" | "MAX" | "CENTER" | "SPACE_BETWEEN" | ✗ | |
↳ counterAxisAlignItems | "MIN" | "MAX" | "CENTER" | "BASELINE" | ✗ | |
↳ layoutSizingHorizontal | "FIXED" | "HUG" | "FILL" | ✗ | |
↳ layoutSizingVertical | "FIXED" | "HUG" | "FILL" | ✗ | |
↳ itemSpacing | number | ✗ | Spacing between children (default: 0) |
↳ fillStyleName | string | ✗ | Apply a fill paint style by name (case-insensitive). Omit to skip. |
↳ strokeStyleName | string | ✗ | Apply a stroke paint style by name. Omit to skip. |
↳ fillVariableId | string | ✗ | Bind a color variable to the fill. Creates a solid fill and binds the variable to fills/0/color. |
↳ strokeVariableId | string | ✗ | Bind a color variable to the stroke. Creates a solid stroke and binds the variable to strokes/0/color. |
depth | number | ✗ | Response detail: omit for id+name only. 0=properties + child stubs. N=recurse N levels. -1=unlimited. |
JSON Schema
{
"type": "object",
"properties": {
"items": {
"description": "Array of frames to create",
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"description": "Frame name (default: 'Frame')",
"type": "string"
},
"x": {
"description": "X position (default: 0)",
"type": "number"
},
"y": {
"description": "Y position (default: 0)",
"type": "number"
},
"width": {
"description": "Width (default: 100)",
"type": "number"
},
"height": {
"description": "Height (default: 100)",
"type": "number"
},
"parentId": {
"description": "Parent node ID. Omit to place on current page.",
"type": "string"
},
"fillColor": {
"description": "Fill color. Default: no fill.",
"type": "object",
"properties": {
"r": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"g": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"b": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"a": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"r",
"g",
"b"
]
},
"strokeColor": {
"description": "Stroke color. Default: none.",
"type": "object",
"properties": {
"r": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"g": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"b": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"a": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"r",
"g",
"b"
]
},
"strokeWeight": {
"description": "Stroke weight (default: 1)",
"type": "number",
"exclusiveMinimum": 0
},
"cornerRadius": {
"description": "Corner radius (default: 0)",
"type": "number",
"minimum": 0
},
"layoutMode": {
"description": "Auto-layout direction (default: NONE)",
"type": "string",
"enum": [
"NONE",
"HORIZONTAL",
"VERTICAL"
]
},
"layoutWrap": {
"description": "Wrap (default: NO_WRAP)",
"type": "string",
"enum": [
"NO_WRAP",
"WRAP"
]
},
"paddingTop": {
"description": "Top padding (default: 0)",
"type": "number"
},
"paddingRight": {
"description": "Right padding (default: 0)",
"type": "number"
},
"paddingBottom": {
"description": "Bottom padding (default: 0)",
"type": "number"
},
"paddingLeft": {
"description": "Left padding (default: 0)",
"type": "number"
},
"primaryAxisAlignItems": {
"type": "string",
"enum": [
"MIN",
"MAX",
"CENTER",
"SPACE_BETWEEN"
]
},
"counterAxisAlignItems": {
"type": "string",
"enum": [
"MIN",
"MAX",
"CENTER",
"BASELINE"
]
},
"layoutSizingHorizontal": {
"type": "string",
"enum": [
"FIXED",
"HUG",
"FILL"
]
},
"layoutSizingVertical": {
"type": "string",
"enum": [
"FIXED",
"HUG",
"FILL"
]
},
"itemSpacing": {
"description": "Spacing between children (default: 0)",
"type": "number"
},
"fillStyleName": {
"description": "Apply a fill paint style by name (case-insensitive). Omit to skip.",
"type": "string"
},
"strokeStyleName": {
"description": "Apply a stroke paint style by name. Omit to skip.",
"type": "string"
},
"fillVariableId": {
"description": "Bind a color variable to the fill. Creates a solid fill and binds the variable to fills/0/color.",
"type": "string"
},
"strokeVariableId": {
"description": "Bind a color variable to the stroke. Creates a solid stroke and binds the variable to strokes/0/color.",
"type": "string"
}
}
}
},
"depth": {
"description": "Response detail: omit for id+name only. 0=properties + child stubs. N=recurse N levels. -1=unlimited.",
"type": "number"
}
},
"required": [
"items"
]
} 返回值 仅供参考 — 不包含在工具定义中
| Field | Type | Description |
|---|---|---|
results | (success | error)[] | Per-item results. |
↳ id | string | Node ID |
↳ error | string | Error message for this item |
warnings | string[] | Deduplicated warnings hoisted from individual results |
示例返回
{
"results": [
{
"id": "10:7"
}
]
} 返回值 JSON Schema
{
"type": "object",
"properties": {
"results": {
"type": "array",
"description": "Per-item results.",
"items": {
"oneOf": [
{
"title": "success",
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Node ID"
}
}
},
{
"title": "error",
"type": "object",
"properties": {
"error": {
"type": "string",
"description": "Error message for this item"
}
},
"required": [
"error"
]
}
]
}
},
"warnings": {
"type": "array",
"description": "Deduplicated warnings hoisted from individual results",
"items": {
"type": "string"
}
}
},
"required": [
"results"
]
} create_auto_layout
Section titled “create_auto_layout” create
Wrap existing nodes in an auto-layout frame. One call replaces create_frame + update_frame + insert_child × N.
| Parameter | Type | Required | Description |
|---|---|---|---|
items | object[] | ✓ | Array of auto-layout wraps to perform |
↳ nodeIds | string[] | ✓ | Array of node IDs to wrap |
↳ name | string | ✗ | Frame name (default: 'Auto Layout') |
↳ layoutMode | "HORIZONTAL" | "VERTICAL" | ✗ | Direction (default: VERTICAL) |
↳ itemSpacing | number | ✗ | Spacing between children (default: 0) |
↳ paddingTop | number | ✗ | Top padding (default: 0) |
↳ paddingRight | number | ✗ | Right padding (default: 0) |
↳ paddingBottom | number | ✗ | Bottom padding (default: 0) |
↳ paddingLeft | number | ✗ | Left padding (default: 0) |
↳ primaryAxisAlignItems | "MIN" | "MAX" | "CENTER" | "SPACE_BETWEEN" | ✗ | |
↳ counterAxisAlignItems | "MIN" | "MAX" | "CENTER" | "BASELINE" | ✗ | |
↳ layoutSizingHorizontal | "FIXED" | "HUG" | "FILL" | ✗ | |
↳ layoutSizingVertical | "FIXED" | "HUG" | "FILL" | ✗ | |
↳ layoutWrap | "NO_WRAP" | "WRAP" | ✗ | |
depth | number | ✗ | Response detail: omit for id+name only. 0=properties + child stubs. N=recurse N levels. -1=unlimited. |
JSON Schema
{
"type": "object",
"properties": {
"items": {
"description": "Array of auto-layout wraps to perform",
"type": "array",
"items": {
"type": "object",
"properties": {
"nodeIds": {
"description": "Array of node IDs to wrap",
"type": "array",
"items": {
"type": "string"
}
},
"name": {
"description": "Frame name (default: 'Auto Layout')",
"type": "string"
},
"layoutMode": {
"description": "Direction (default: VERTICAL)",
"type": "string",
"enum": [
"HORIZONTAL",
"VERTICAL"
]
},
"itemSpacing": {
"description": "Spacing between children (default: 0)",
"type": "number"
},
"paddingTop": {
"description": "Top padding (default: 0)",
"type": "number"
},
"paddingRight": {
"description": "Right padding (default: 0)",
"type": "number"
},
"paddingBottom": {
"description": "Bottom padding (default: 0)",
"type": "number"
},
"paddingLeft": {
"description": "Left padding (default: 0)",
"type": "number"
},
"primaryAxisAlignItems": {
"type": "string",
"enum": [
"MIN",
"MAX",
"CENTER",
"SPACE_BETWEEN"
]
},
"counterAxisAlignItems": {
"type": "string",
"enum": [
"MIN",
"MAX",
"CENTER",
"BASELINE"
]
},
"layoutSizingHorizontal": {
"type": "string",
"enum": [
"FIXED",
"HUG",
"FILL"
]
},
"layoutSizingVertical": {
"type": "string",
"enum": [
"FIXED",
"HUG",
"FILL"
]
},
"layoutWrap": {
"type": "string",
"enum": [
"NO_WRAP",
"WRAP"
]
}
},
"required": [
"nodeIds"
]
}
},
"depth": {
"description": "Response detail: omit for id+name only. 0=properties + child stubs. N=recurse N levels. -1=unlimited.",
"type": "number"
}
},
"required": [
"items"
]
} 返回值 仅供参考 — 不包含在工具定义中
| Field | Type | Description |
|---|---|---|
results | (success | error)[] | Per-item results. |
↳ id | string | Node ID |
↳ error | string | Error message for this item |
warnings | string[] | Deduplicated warnings hoisted from individual results |
示例返回
{
"results": [
{
"id": "10:8"
}
]
} 返回值 JSON Schema
{
"type": "object",
"properties": {
"results": {
"type": "array",
"description": "Per-item results.",
"items": {
"oneOf": [
{
"title": "success",
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Node ID"
}
}
},
{
"title": "error",
"type": "object",
"properties": {
"error": {
"type": "string",
"description": "Error message for this item"
}
},
"required": [
"error"
]
}
]
}
},
"warnings": {
"type": "array",
"description": "Deduplicated warnings hoisted from individual results",
"items": {
"type": "string"
}
}
},
"required": [
"results"
]
} create_text
Section titled “create_text” create
Create text nodes. Prefer textStyleName for typography and fontColorStyleName or fontColorVariableId for color — hardcoded values skip design tokens. Supports custom fonts via fontFamily.
| Parameter | Type | Required | Description |
|---|---|---|---|
items | object[] | ✓ | Array of text nodes to create |
↳ text | string | ✓ | Text content |
↳ name | string | ✗ | Layer name (default: text content) |
↳ x | number | ✗ | X position (default: 0) |
↳ y | number | ✗ | Y position (default: 0) |
↳ fontFamily | string | ✗ | Font family (default: Inter). Use get_available_fonts to list installed fonts. |
↳ fontStyle | string | ✗ | Font style, e.g. 'Regular', 'Bold', 'Italic' (default: derived from fontWeight). Overrides fontWeight when set. |
↳ fontSize | number | ✗ | Font size (default: 14) |
↳ fontWeight | number | ✗ | Font weight: 100-900 (default: 400). Ignored when fontStyle is set. |
↳ fontColor | object | ✗ | Font color. Default: black. |
↳ r | number | ✓ | |
↳ g | number | ✓ | |
↳ b | number | ✓ | |
↳ a | number | ✗ | |
↳ fontColorVariableId | string | ✗ | Bind a color variable to the text fill instead of hardcoded fontColor. |
↳ fontColorStyleName | string | ✗ | Apply a paint style to the text fill by name (case-insensitive). Overrides fontColor. |
↳ parentId | string | ✗ | Parent node ID. Omit to place on current page. |
↳ textStyleId | string | ✗ | Text style ID to apply (overrides fontSize/fontWeight). Omit to skip. |
↳ textStyleName | string | ✗ | Text style name (case-insensitive match). Omit to skip. |
↳ textAlignHorizontal | "LEFT" | "CENTER" | "RIGHT" | "JUSTIFIED" | ✗ | Horizontal text alignment (default: LEFT) |
↳ textAlignVertical | "TOP" | "CENTER" | "BOTTOM" | ✗ | Vertical text alignment (default: TOP) |
↳ layoutSizingHorizontal | "FIXED" | "HUG" | "FILL" | ✗ | Horizontal sizing. FILL auto-sets textAutoResize to HEIGHT. |
↳ layoutSizingVertical | "FIXED" | "HUG" | "FILL" | ✗ | Vertical sizing (default: HUG) |
↳ textAutoResize | "NONE" | "WIDTH_AND_HEIGHT" | "HEIGHT" | "TRUNCATE" | ✗ | Text auto-resize behavior (default: WIDTH_AND_HEIGHT when FILL) |
depth | number | ✗ | Response detail: omit for id+name only. 0=properties + child stubs. N=recurse N levels. -1=unlimited. |
JSON Schema
{
"type": "object",
"properties": {
"items": {
"description": "Array of text nodes to create",
"type": "array",
"items": {
"type": "object",
"properties": {
"text": {
"type": "string",
"description": "Text content"
},
"name": {
"description": "Layer name (default: text content)",
"type": "string"
},
"x": {
"description": "X position (default: 0)",
"type": "number"
},
"y": {
"description": "Y position (default: 0)",
"type": "number"
},
"fontFamily": {
"description": "Font family (default: Inter). Use get_available_fonts to list installed fonts.",
"type": "string"
},
"fontStyle": {
"description": "Font style, e.g. 'Regular', 'Bold', 'Italic' (default: derived from fontWeight). Overrides fontWeight when set.",
"type": "string"
},
"fontSize": {
"description": "Font size (default: 14)",
"type": "number"
},
"fontWeight": {
"description": "Font weight: 100-900 (default: 400). Ignored when fontStyle is set.",
"type": "number"
},
"fontColor": {
"description": "Font color. Default: black.",
"type": "object",
"properties": {
"r": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"g": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"b": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"a": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"r",
"g",
"b"
]
},
"fontColorVariableId": {
"description": "Bind a color variable to the text fill instead of hardcoded fontColor.",
"type": "string"
},
"fontColorStyleName": {
"description": "Apply a paint style to the text fill by name (case-insensitive). Overrides fontColor.",
"type": "string"
},
"parentId": {
"description": "Parent node ID. Omit to place on current page.",
"type": "string"
},
"textStyleId": {
"description": "Text style ID to apply (overrides fontSize/fontWeight). Omit to skip.",
"type": "string"
},
"textStyleName": {
"description": "Text style name (case-insensitive match). Omit to skip.",
"type": "string"
},
"textAlignHorizontal": {
"description": "Horizontal text alignment (default: LEFT)",
"type": "string",
"enum": [
"LEFT",
"CENTER",
"RIGHT",
"JUSTIFIED"
]
},
"textAlignVertical": {
"description": "Vertical text alignment (default: TOP)",
"type": "string",
"enum": [
"TOP",
"CENTER",
"BOTTOM"
]
},
"layoutSizingHorizontal": {
"description": "Horizontal sizing. FILL auto-sets textAutoResize to HEIGHT.",
"type": "string",
"enum": [
"FIXED",
"HUG",
"FILL"
]
},
"layoutSizingVertical": {
"description": "Vertical sizing (default: HUG)",
"type": "string",
"enum": [
"FIXED",
"HUG",
"FILL"
]
},
"textAutoResize": {
"description": "Text auto-resize behavior (default: WIDTH_AND_HEIGHT when FILL)",
"type": "string",
"enum": [
"NONE",
"WIDTH_AND_HEIGHT",
"HEIGHT",
"TRUNCATE"
]
}
},
"required": [
"text"
]
}
},
"depth": {
"description": "Response detail: omit for id+name only. 0=properties + child stubs. N=recurse N levels. -1=unlimited.",
"type": "number"
}
},
"required": [
"items"
]
} 返回值 仅供参考 — 不包含在工具定义中
| Field | Type | Description |
|---|---|---|
results | (success | error)[] | Per-item results. |
↳ id | string | Node ID |
↳ linkedTextStyle | string | Name of auto-linked text style |
↳ linkedFontColor | string | Name of auto-linked font color style |
↳ error | string | Error message for this item |
warnings | string[] | Deduplicated warnings hoisted from individual results |
示例返回
{
"results": [
{
"id": "10:9"
}
],
"warnings": [
"Hint: textStyleName 'Body' matches — use it for design token consistency."
]
} 返回值 JSON Schema
{
"type": "object",
"properties": {
"results": {
"type": "array",
"description": "Per-item results.",
"items": {
"oneOf": [
{
"title": "success",
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Node ID"
},
"linkedTextStyle": {
"type": "string",
"description": "Name of auto-linked text style"
},
"linkedFontColor": {
"type": "string",
"description": "Name of auto-linked font color style"
}
}
},
{
"title": "error",
"type": "object",
"properties": {
"error": {
"type": "string",
"description": "Error message for this item"
}
},
"required": [
"error"
]
}
]
}
},
"warnings": {
"type": "array",
"description": "Deduplicated warnings hoisted from individual results",
"items": {
"type": "string"
}
}
},
"required": [
"results"
]
}