---
title: "Get file JSON"
method: GET
path: "/v1/files/{file_key}"
tags: ["Files"]
---

# Get file JSON

`GET /v1/files/{file_key}`

Returns the document identified by `file_key` as a JSON object. The file key can be parsed from any Figma file url: `https://www.figma.com/file/{file_key}/{title}`.

The `document` property contains a node of type `DOCUMENT`.

The `components` property contains a mapping from node IDs to component metadata. This is to help you determine which components each instance comes from.

## Path parameters

- `file_key` string, required

## Query parameters

- `version` string
- `ids` string
- `depth` number
- `geometry` string
- `plugin_data` string
- `branch_data` boolean

## Response `200`

Response from the GET /v1/files/{file_key} endpoint.

- object
  - `name` string, required — The name of the file as it appears in the editor.
  - `role` 'owner' | 'editor' | 'viewer', required — The role of the user making the API request in relation to the file.
  - `lastModified` string, date-time, required — The UTC ISO 8601 time at which the file was last modified.
  - `editorType` 'figma' | 'figjam', required — The type of editor associated with this file.
  - `thumbnailUrl` string — A URL to a thumbnail image of the file.
  - `version` string, required — The version number of the file. This number is incremented when a file is modified and can be used to check if the file has changed between requests.
  - `document` DocumentNode, required
    - `type` 'DOCUMENT', required — The type of the node
    - `children` CanvasNode[], required
      - `type` 'CANVAS', required — The type of the node
      - `children` SubcanvasNode[], required
        - union
          - BooleanOperationNode
            - `type` 'BOOLEAN_OPERATION', required — The type of the node
            - `booleanOperation` 'UNION' | 'INTERSECT' | 'SUBTRACT' | 'EXCLUDE', required — A string enum indicating the type of boolean operation applied.
            - `id` string, required — A string uniquely identifying this node within the document.
            - `name` string, required — The name given to the node by the user in the tool.
            - `visible` boolean — Whether or not the node is visible on the canvas.
            - `locked` boolean — If true, layer is locked and cannot be edited
            - `isFixed` boolean — Whether the layer is fixed while the parent is scrolling
            - `scrollBehavior` 'SCROLLS' | 'FIXED' | 'STICKY_SCROLLS', required — How layer should be treated when the frame is resized
            - `rotation` number — The rotation of the node, if not 0.
            - `componentPropertyReferences` object — A mapping of a layer's property to component property name of component properties attached to this node. The component property name can be used to look up more information on the corresponding component's or component set's componentPropertyDefinitions.
            - `pluginData` unknown
            - `sharedPluginData` unknown
            - `boundVariables` object — A mapping of field to the variables applied to this field. Most fields will only map to a single `VariableAlias`. However, for properties like `fills`, `strokes`, `size`, `componentProperties`, and `textRangeFills`, it is possible to have multiple variables bound to the field.
              - …
            - `explicitVariableModes` object — A mapping of variable collection ID to mode ID representing the explicitly set modes for this node.
            - `blendMode` 'PASS_THROUGH' | 'NORMAL' | 'DARKEN' | 'MULTIPLY' | 'LINEAR_BURN' | 'COLOR_BURN' | 'LIGHTEN' | 'SCREEN' | 'LINEAR_DODGE' | 'COLOR_DODGE' | 'OVERLAY' | 'SOFT_LIGHT' | 'HARD_LIGHT' | 'DIFFERENCE' | 'EXCLUSION' | 'HUE' | 'SATURATION' | 'COLOR' | 'LUMINOSITY', required — This type is a string enum with the following possible values Normal blends: - `PASS_THROUGH` (only applicable to objects with children) - `NORMAL` Darken: - `DARKEN` - `MULTIPLY` - `LINEAR_BURN` - `COLOR_BURN` Lighten: - `LIGHTEN` - `SCREEN` - `LINEAR_DODGE` - `COLOR_DODGE` Contrast: - `OVERLAY` - `SOFT_LIGHT` - `HARD_LIGHT` Inversion: - `DIFFERENCE` - `EXCLUSION` Component: - `HUE` - `SATURATION` - `COLOR` - `LUMINOSITY`
            - `opacity` number — Opacity of the node
            - `children` SubcanvasNode[], required — An array of nodes that are direct children of this node
            - `absoluteBoundingBox` Rectangle, required — A rectangle that expresses a bounding box in absolute coordinates.
              - …
            - `absoluteRenderBounds` Rectangle, required — A rectangle that expresses a bounding box in absolute coordinates.
              - …
            - `preserveRatio` boolean — Keep height and width constrained to same ratio.
            - `constraints` LayoutConstraint — Layout constraint relative to containing Frame
              - …
            - `relativeTransform` array[] — A transformation matrix is standard way in computer graphics to represent translation and rotation. These are the top two rows of a 3x3 matrix. The bottom row of the matrix is assumed to be [0, 0, 1]. This is known as an affine transform and is enough to represent translation, rotation, and skew. The identity transform is [[1, 0, 0], [0, 1, 0]]. A translation matrix will typically look like: ``` [[1, 0, tx], [0, 1, ty]] ``` and a rotation matrix will typically look like: ``` [[cos(angle), sin(angle), 0], [-sin(angle), cos(angle), 0]] ``` Another way to think about this transform is as three vectors: - The x axis (t[0][0], t[1][0]) - The y axis (t[0][1], t[1][1]) - The translation offset (t[0][2], t[1][2]) The most common usage of the Transform matrix is the `relativeTransform property`. This particular usage of the matrix has a few additional restrictions. The translation offset can take on any value but we do enforce that the axis vectors are unit vectors (i.e. have length 1). The axes are not required to be at 90° angles to each other.
              - …
            - `size` Vector — A 2d vector.
              - …
            - `layoutAlign` 'INHERIT' | 'STRETCH' | 'MIN' | 'CENTER' | 'MAX' — Determines if the layer should stretch along the parent's counter axis. This property is only provided for direct children of auto-layout frames. - `INHERIT` - `STRETCH` In previous versions of auto layout, determined how the layer is aligned inside an auto-layout frame. This property is only provided for direct children of auto-layout frames. - `MIN` - `CENTER` - `MAX` - `STRETCH` In horizontal auto-layout frames, "MIN" and "MAX" correspond to "TOP" and "BOTTOM". In vertical auto-layout frames, "MIN" and "MAX" correspond to "LEFT" and "RIGHT".
            - `layoutGrow` 0 | 1 — This property is applicable only for direct children of auto-layout frames, ignored otherwise. Determines whether a layer should stretch along the parent's primary axis. A `0` corresponds to a fixed size and `1` corresponds to stretch.
            - `layoutPositioning` 'AUTO' | 'ABSOLUTE' — Determines whether a layer's size and position should be determined by auto-layout settings or manually adjustable.
            - `minWidth` number — The minimum width of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `maxWidth` number — The maximum width of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `minHeight` number — The minimum height of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `maxHeight` number — The maximum height of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `layoutSizingHorizontal` 'FIXED' | 'HUG' | 'FILL' — The horizontal sizing setting on this auto-layout frame or frame child. - `FIXED` - `HUG`: only valid on auto-layout frames and text nodes - `FILL`: only valid on auto-layout frame children
            - `layoutSizingVertical` 'FIXED' | 'HUG' | 'FILL' — The vertical sizing setting on this auto-layout frame or frame child. - `FIXED` - `HUG`: only valid on auto-layout frames and text nodes - `FILL`: only valid on auto-layout frame children
            - `fills` Paint[], required — An array of fill paints applied to the node.
              - …
            - `styles` object — A mapping of a StyleType to style ID (see Style) of styles present on this node. The style ID can be used to look up more information about the style in the top-level styles field.
            - `strokes` Paint[] — An array of stroke paints applied to the node.
              - …
            - `strokeWeight` number — The weight of strokes on the node.
            - `strokeAlign` 'INSIDE' | 'OUTSIDE' | 'CENTER' — Position of stroke relative to vector outline, as a string enum - `INSIDE`: stroke drawn inside the shape boundary - `OUTSIDE`: stroke drawn outside the shape boundary - `CENTER`: stroke drawn centered along the shape boundary
            - `strokeJoin` 'MITER' | 'BEVEL' | 'ROUND' — A string enum with value of "MITER", "BEVEL", or "ROUND", describing how corners in vector paths are rendered.
            - `strokeDashes` number[] — An array of floating point numbers describing the pattern of dash length and gap lengths that the vector stroke will use when drawn. For example a value of [1, 2] indicates that the stroke will be drawn with a dash of length 1 followed by a gap of length 2, repeated.
            - `fillOverrideTable` object — Map from ID to PaintOverride for looking up fill overrides. To see which regions are overriden, you must use the `geometry=paths` option. Each path returned may have an `overrideID` which maps to this table.
            - `fillGeometry` Path[] — Only specified if parameter `geometry=paths` is used. An array of paths representing the object fill.
              - …
            - `strokeGeometry` Path[] — Only specified if parameter `geometry=paths` is used. An array of paths representing the object stroke.
              - …
            - `strokeCap` 'NONE' | 'ROUND' | 'SQUARE' | 'LINE_ARROW' | 'TRIANGLE_ARROW' | 'DIAMOND_FILLED' | 'CIRCLE_FILLED' | 'TRIANGLE_FILLED' | 'WASHI_TAPE_1' | 'WASHI_TAPE_2' | 'WASHI_TAPE_3' | 'WASHI_TAPE_4' | 'WASHI_TAPE_5' | 'WASHI_TAPE_6' — A string enum describing the end caps of vector paths.
            - `strokeMiterAngle` number — Only valid if `strokeJoin` is "MITER". The corner angle, in degrees, below which `strokeJoin` will be set to "BEVEL" to avoid super sharp corners. By default this is 28.96 degrees.
            - `exportSettings` ExportSetting[] — An array of export settings representing images to export from the node.
              - …
            - `effects` Effect[], required — An array of effects attached to this node (see effects section for more details)
              - …
            - `isMask` boolean — Does this node mask sibling nodes in front of it?
            - `maskType` 'ALPHA' | 'VECTOR' | 'LUMINANCE' — If this layer is a mask, this property describes the operation used to mask the layer's siblings. The value may be one of the following: - ALPHA: the mask node's alpha channel will be used to determine the opacity of each pixel in the masked result. - VECTOR: if the mask node has visible fill paints, every pixel inside the node's fill regions will be fully visible in the masked result. If the mask has visible stroke paints, every pixel inside the node's stroke regions will be fully visible in the masked result. - LUMINANCE: the luminance value of each pixel of the mask node will be used to determine the opacity of that pixel in the masked result.
            - `isMaskOutline` boolean — True if maskType is VECTOR. This field is deprecated; use maskType instead.
            - `transitionNodeID` string — Node ID of node to transition to in prototyping
            - `transitionDuration` number — The duration of the prototyping transition on this node (in milliseconds). This will override the default transition duration on the prototype, for this node.
            - `transitionEasing` 'EASE_IN' | 'EASE_OUT' | 'EASE_IN_AND_OUT' | 'LINEAR' | 'EASE_IN_BACK' | 'EASE_OUT_BACK' | 'EASE_IN_AND_OUT_BACK' | 'CUSTOM_CUBIC_BEZIER' | 'GENTLE' | 'QUICK' | 'BOUNCY' | 'SLOW' | 'CUSTOM_SPRING' — This type is a string enum with the following possible values: - `EASE_IN`: Ease in with an animation curve similar to CSS ease-in. - `EASE_OUT`: Ease out with an animation curve similar to CSS ease-out. - `EASE_IN_AND_OUT`: Ease in and then out with an animation curve similar to CSS ease-in-out. - `LINEAR`: No easing, similar to CSS linear. - `EASE_IN_BACK`: Ease in with an animation curve that moves past the initial keyframe's value and then accelerates as it reaches the end. - `EASE_OUT_BACK`: Ease out with an animation curve that starts fast, then slows and goes past the ending keyframe's value. - `EASE_IN_AND_OUT_BACK`: Ease in and then out with an animation curve that overshoots the initial keyframe's value, then accelerates quickly before it slows and overshoots the ending keyframes value. - `CUSTOM_CUBIC_BEZIER`: User-defined cubic bezier curve. - `GENTLE`: Gentle animation similar to react-spring. - `QUICK`: Quick spring animation, great for toasts and notifications. - `BOUNCY`: Bouncy spring, for delightful animations like a heart bounce. - `SLOW`: Slow spring, useful as a steady, natural way to scale up fullscreen content. - `CUSTOM_SPRING`: User-defined spring animation.
            - `interactions` Interaction[]
              - …
          - ComponentNode
            - `type` 'COMPONENT', required — The type of the node
            - `id` string, required — A string uniquely identifying this node within the document.
            - `name` string, required — The name given to the node by the user in the tool.
            - `visible` boolean — Whether or not the node is visible on the canvas.
            - `locked` boolean — If true, layer is locked and cannot be edited
            - `isFixed` boolean — Whether the layer is fixed while the parent is scrolling
            - `scrollBehavior` 'SCROLLS' | 'FIXED' | 'STICKY_SCROLLS', required — How layer should be treated when the frame is resized
            - `rotation` number — The rotation of the node, if not 0.
            - `componentPropertyReferences` object — A mapping of a layer's property to component property name of component properties attached to this node. The component property name can be used to look up more information on the corresponding component's or component set's componentPropertyDefinitions.
            - `pluginData` unknown
            - `sharedPluginData` unknown
            - `boundVariables` object — A mapping of field to the variables applied to this field. Most fields will only map to a single `VariableAlias`. However, for properties like `fills`, `strokes`, `size`, `componentProperties`, and `textRangeFills`, it is possible to have multiple variables bound to the field.
              - …
            - `explicitVariableModes` object — A mapping of variable collection ID to mode ID representing the explicitly set modes for this node.
            - `blendMode` 'PASS_THROUGH' | 'NORMAL' | 'DARKEN' | 'MULTIPLY' | 'LINEAR_BURN' | 'COLOR_BURN' | 'LIGHTEN' | 'SCREEN' | 'LINEAR_DODGE' | 'COLOR_DODGE' | 'OVERLAY' | 'SOFT_LIGHT' | 'HARD_LIGHT' | 'DIFFERENCE' | 'EXCLUSION' | 'HUE' | 'SATURATION' | 'COLOR' | 'LUMINOSITY', required — This type is a string enum with the following possible values Normal blends: - `PASS_THROUGH` (only applicable to objects with children) - `NORMAL` Darken: - `DARKEN` - `MULTIPLY` - `LINEAR_BURN` - `COLOR_BURN` Lighten: - `LIGHTEN` - `SCREEN` - `LINEAR_DODGE` - `COLOR_DODGE` Contrast: - `OVERLAY` - `SOFT_LIGHT` - `HARD_LIGHT` Inversion: - `DIFFERENCE` - `EXCLUSION` Component: - `HUE` - `SATURATION` - `COLOR` - `LUMINOSITY`
            - `opacity` number — Opacity of the node
            - `children` SubcanvasNode[], required — An array of nodes that are direct children of this node
            - `absoluteBoundingBox` Rectangle, required — A rectangle that expresses a bounding box in absolute coordinates.
              - …
            - `absoluteRenderBounds` Rectangle, required — A rectangle that expresses a bounding box in absolute coordinates.
              - …
            - `preserveRatio` boolean — Keep height and width constrained to same ratio.
            - `constraints` LayoutConstraint — Layout constraint relative to containing Frame
              - …
            - `relativeTransform` array[] — A transformation matrix is standard way in computer graphics to represent translation and rotation. These are the top two rows of a 3x3 matrix. The bottom row of the matrix is assumed to be [0, 0, 1]. This is known as an affine transform and is enough to represent translation, rotation, and skew. The identity transform is [[1, 0, 0], [0, 1, 0]]. A translation matrix will typically look like: ``` [[1, 0, tx], [0, 1, ty]] ``` and a rotation matrix will typically look like: ``` [[cos(angle), sin(angle), 0], [-sin(angle), cos(angle), 0]] ``` Another way to think about this transform is as three vectors: - The x axis (t[0][0], t[1][0]) - The y axis (t[0][1], t[1][1]) - The translation offset (t[0][2], t[1][2]) The most common usage of the Transform matrix is the `relativeTransform property`. This particular usage of the matrix has a few additional restrictions. The translation offset can take on any value but we do enforce that the axis vectors are unit vectors (i.e. have length 1). The axes are not required to be at 90° angles to each other.
              - …
            - `size` Vector — A 2d vector.
              - …
            - `layoutAlign` 'INHERIT' | 'STRETCH' | 'MIN' | 'CENTER' | 'MAX' — Determines if the layer should stretch along the parent's counter axis. This property is only provided for direct children of auto-layout frames. - `INHERIT` - `STRETCH` In previous versions of auto layout, determined how the layer is aligned inside an auto-layout frame. This property is only provided for direct children of auto-layout frames. - `MIN` - `CENTER` - `MAX` - `STRETCH` In horizontal auto-layout frames, "MIN" and "MAX" correspond to "TOP" and "BOTTOM". In vertical auto-layout frames, "MIN" and "MAX" correspond to "LEFT" and "RIGHT".
            - `layoutGrow` 0 | 1 — This property is applicable only for direct children of auto-layout frames, ignored otherwise. Determines whether a layer should stretch along the parent's primary axis. A `0` corresponds to a fixed size and `1` corresponds to stretch.
            - `layoutPositioning` 'AUTO' | 'ABSOLUTE' — Determines whether a layer's size and position should be determined by auto-layout settings or manually adjustable.
            - `minWidth` number — The minimum width of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `maxWidth` number — The maximum width of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `minHeight` number — The minimum height of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `maxHeight` number — The maximum height of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `layoutSizingHorizontal` 'FIXED' | 'HUG' | 'FILL' — The horizontal sizing setting on this auto-layout frame or frame child. - `FIXED` - `HUG`: only valid on auto-layout frames and text nodes - `FILL`: only valid on auto-layout frame children
            - `layoutSizingVertical` 'FIXED' | 'HUG' | 'FILL' — The vertical sizing setting on this auto-layout frame or frame child. - `FIXED` - `HUG`: only valid on auto-layout frames and text nodes - `FILL`: only valid on auto-layout frame children
            - `clipsContent` boolean, required — Whether or not this node clip content outside of its bounds
            - `background` Paint[] — Background of the node. This is deprecated, as backgrounds for frames are now in the `fills` field.
              - …
            - `backgroundColor` RGBA — An RGBA color
              - …
            - `layoutGrids` LayoutGrid[] — An array of layout grids attached to this node (see layout grids section for more details). GROUP nodes do not have this attribute
              - …
            - `overflowDirection` 'HORIZONTAL_SCROLLING' | 'VERTICAL_SCROLLING' | 'HORIZONTAL_AND_VERTICAL_SCROLLING' | 'NONE' — Whether a node has primary axis scrolling, horizontal or vertical.
            - `layoutMode` 'NONE' | 'HORIZONTAL' | 'VERTICAL' — Whether this layer uses auto-layout to position its children.
            - `primaryAxisSizingMode` 'FIXED' | 'AUTO' — Whether the primary axis has a fixed length (determined by the user) or an automatic length (determined by the layout engine). This property is only applicable for auto-layout frames.
            - `counterAxisSizingMode` 'FIXED' | 'AUTO' — Whether the counter axis has a fixed length (determined by the user) or an automatic length (determined by the layout engine). This property is only applicable for auto-layout frames.
            - `primaryAxisAlignItems` 'MIN' | 'CENTER' | 'MAX' | 'SPACE_BETWEEN' — Determines how the auto-layout frame's children should be aligned in the primary axis direction. This property is only applicable for auto-layout frames.
            - `counterAxisAlignItems` 'MIN' | 'CENTER' | 'MAX' | 'BASELINE' — Determines how the auto-layout frame's children should be aligned in the counter axis direction. This property is only applicable for auto-layout frames.
            - `paddingLeft` number — The padding between the left border of the frame and its children. This property is only applicable for auto-layout frames.
            - `paddingRight` number — The padding between the right border of the frame and its children. This property is only applicable for auto-layout frames.
            - `paddingTop` number — The padding between the top border of the frame and its children. This property is only applicable for auto-layout frames.
            - `paddingBottom` number — The padding between the bottom border of the frame and its children. This property is only applicable for auto-layout frames.
            - `itemSpacing` number — The distance between children of the frame. Can be negative. This property is only applicable for auto-layout frames.
            - `itemReverseZIndex` boolean — Determines the canvas stacking order of layers in this frame. When true, the first layer will be draw on top. This property is only applicable for auto-layout frames.
            - `strokesIncludedInLayout` boolean — Determines whether strokes are included in layout calculations. When true, auto-layout frames behave like css "box-sizing: border-box". This property is only applicable for auto-layout frames.
            - `layoutWrap` 'NO_WRAP' | 'WRAP' — Whether this auto-layout frame has wrapping enabled.
            - `counterAxisSpacing` number — The distance between wrapped tracks of an auto-layout frame. This property is only applicable for auto-layout frames with `layoutWrap: "WRAP"`
            - `counterAxisAlignContent` 'AUTO' | 'SPACE_BETWEEN' — Determines how the auto-layout frame’s wrapped tracks should be aligned in the counter axis direction. This property is only applicable for auto-layout frames with `layoutWrap: "WRAP"`.
            - `cornerRadius` number — Radius of each corner if a single radius is set for all corners
            - `cornerSmoothing` number — A value that lets you control how "smooth" the corners are. Ranges from 0 to 1. 0 is the default and means that the corner is perfectly circular. A value of 0.6 means the corner matches the iOS 7 "squircle" icon shape. Other values produce various other curves.
            - `rectangleCornerRadii` number[] — Array of length 4 of the radius of each corner of the frame, starting in the top left and proceeding clockwise. Values are given in the order top-left, top-right, bottom-right, bottom-left.
            - `fills` Paint[], required — An array of fill paints applied to the node.
              - …
            - `styles` object — A mapping of a StyleType to style ID (see Style) of styles present on this node. The style ID can be used to look up more information about the style in the top-level styles field.
            - `strokes` Paint[] — An array of stroke paints applied to the node.
              - …
            - `strokeWeight` number — The weight of strokes on the node.
            - `strokeAlign` 'INSIDE' | 'OUTSIDE' | 'CENTER' — Position of stroke relative to vector outline, as a string enum - `INSIDE`: stroke drawn inside the shape boundary - `OUTSIDE`: stroke drawn outside the shape boundary - `CENTER`: stroke drawn centered along the shape boundary
            - `strokeJoin` 'MITER' | 'BEVEL' | 'ROUND' — A string enum with value of "MITER", "BEVEL", or "ROUND", describing how corners in vector paths are rendered.
            - `strokeDashes` number[] — An array of floating point numbers describing the pattern of dash length and gap lengths that the vector stroke will use when drawn. For example a value of [1, 2] indicates that the stroke will be drawn with a dash of length 1 followed by a gap of length 2, repeated.
            - `fillOverrideTable` object — Map from ID to PaintOverride for looking up fill overrides. To see which regions are overriden, you must use the `geometry=paths` option. Each path returned may have an `overrideID` which maps to this table.
            - `fillGeometry` Path[] — Only specified if parameter `geometry=paths` is used. An array of paths representing the object fill.
              - …
            - `strokeGeometry` Path[] — Only specified if parameter `geometry=paths` is used. An array of paths representing the object stroke.
              - …
            - `strokeCap` 'NONE' | 'ROUND' | 'SQUARE' | 'LINE_ARROW' | 'TRIANGLE_ARROW' | 'DIAMOND_FILLED' | 'CIRCLE_FILLED' | 'TRIANGLE_FILLED' | 'WASHI_TAPE_1' | 'WASHI_TAPE_2' | 'WASHI_TAPE_3' | 'WASHI_TAPE_4' | 'WASHI_TAPE_5' | 'WASHI_TAPE_6' — A string enum describing the end caps of vector paths.
            - `strokeMiterAngle` number — Only valid if `strokeJoin` is "MITER". The corner angle, in degrees, below which `strokeJoin` will be set to "BEVEL" to avoid super sharp corners. By default this is 28.96 degrees.
            - `exportSettings` ExportSetting[] — An array of export settings representing images to export from the node.
              - …
            - `effects` Effect[], required — An array of effects attached to this node (see effects section for more details)
              - …
            - `isMask` boolean — Does this node mask sibling nodes in front of it?
            - `maskType` 'ALPHA' | 'VECTOR' | 'LUMINANCE' — If this layer is a mask, this property describes the operation used to mask the layer's siblings. The value may be one of the following: - ALPHA: the mask node's alpha channel will be used to determine the opacity of each pixel in the masked result. - VECTOR: if the mask node has visible fill paints, every pixel inside the node's fill regions will be fully visible in the masked result. If the mask has visible stroke paints, every pixel inside the node's stroke regions will be fully visible in the masked result. - LUMINANCE: the luminance value of each pixel of the mask node will be used to determine the opacity of that pixel in the masked result.
            - `isMaskOutline` boolean — True if maskType is VECTOR. This field is deprecated; use maskType instead.
            - `transitionNodeID` string — Node ID of node to transition to in prototyping
            - `transitionDuration` number — The duration of the prototyping transition on this node (in milliseconds). This will override the default transition duration on the prototype, for this node.
            - `transitionEasing` 'EASE_IN' | 'EASE_OUT' | 'EASE_IN_AND_OUT' | 'LINEAR' | 'EASE_IN_BACK' | 'EASE_OUT_BACK' | 'EASE_IN_AND_OUT_BACK' | 'CUSTOM_CUBIC_BEZIER' | 'GENTLE' | 'QUICK' | 'BOUNCY' | 'SLOW' | 'CUSTOM_SPRING' — This type is a string enum with the following possible values: - `EASE_IN`: Ease in with an animation curve similar to CSS ease-in. - `EASE_OUT`: Ease out with an animation curve similar to CSS ease-out. - `EASE_IN_AND_OUT`: Ease in and then out with an animation curve similar to CSS ease-in-out. - `LINEAR`: No easing, similar to CSS linear. - `EASE_IN_BACK`: Ease in with an animation curve that moves past the initial keyframe's value and then accelerates as it reaches the end. - `EASE_OUT_BACK`: Ease out with an animation curve that starts fast, then slows and goes past the ending keyframe's value. - `EASE_IN_AND_OUT_BACK`: Ease in and then out with an animation curve that overshoots the initial keyframe's value, then accelerates quickly before it slows and overshoots the ending keyframes value. - `CUSTOM_CUBIC_BEZIER`: User-defined cubic bezier curve. - `GENTLE`: Gentle animation similar to react-spring. - `QUICK`: Quick spring animation, great for toasts and notifications. - `BOUNCY`: Bouncy spring, for delightful animations like a heart bounce. - `SLOW`: Slow spring, useful as a steady, natural way to scale up fullscreen content. - `CUSTOM_SPRING`: User-defined spring animation.
            - `interactions` Interaction[]
              - …
            - `individualStrokeWeights` StrokeWeights — Individual stroke weights
              - …
            - `devStatus` object — Represents whether or not a node has a particular handoff (or dev) status applied to it.
              - …
            - `componentPropertyDefinitions` object — A mapping of name to `ComponentPropertyDefinition` for every component property on this component. Each property has a type, defaultValue, and other optional values.
          - ComponentSetNode
            - `type` 'COMPONENT_SET', required — The type of the node
            - `id` string, required — A string uniquely identifying this node within the document.
            - `name` string, required — The name given to the node by the user in the tool.
            - `visible` boolean — Whether or not the node is visible on the canvas.
            - `locked` boolean — If true, layer is locked and cannot be edited
            - `isFixed` boolean — Whether the layer is fixed while the parent is scrolling
            - `scrollBehavior` 'SCROLLS' | 'FIXED' | 'STICKY_SCROLLS', required — How layer should be treated when the frame is resized
            - `rotation` number — The rotation of the node, if not 0.
            - `componentPropertyReferences` object — A mapping of a layer's property to component property name of component properties attached to this node. The component property name can be used to look up more information on the corresponding component's or component set's componentPropertyDefinitions.
            - `pluginData` unknown
            - `sharedPluginData` unknown
            - `boundVariables` object — A mapping of field to the variables applied to this field. Most fields will only map to a single `VariableAlias`. However, for properties like `fills`, `strokes`, `size`, `componentProperties`, and `textRangeFills`, it is possible to have multiple variables bound to the field.
              - …
            - `explicitVariableModes` object — A mapping of variable collection ID to mode ID representing the explicitly set modes for this node.
            - `blendMode` 'PASS_THROUGH' | 'NORMAL' | 'DARKEN' | 'MULTIPLY' | 'LINEAR_BURN' | 'COLOR_BURN' | 'LIGHTEN' | 'SCREEN' | 'LINEAR_DODGE' | 'COLOR_DODGE' | 'OVERLAY' | 'SOFT_LIGHT' | 'HARD_LIGHT' | 'DIFFERENCE' | 'EXCLUSION' | 'HUE' | 'SATURATION' | 'COLOR' | 'LUMINOSITY', required — This type is a string enum with the following possible values Normal blends: - `PASS_THROUGH` (only applicable to objects with children) - `NORMAL` Darken: - `DARKEN` - `MULTIPLY` - `LINEAR_BURN` - `COLOR_BURN` Lighten: - `LIGHTEN` - `SCREEN` - `LINEAR_DODGE` - `COLOR_DODGE` Contrast: - `OVERLAY` - `SOFT_LIGHT` - `HARD_LIGHT` Inversion: - `DIFFERENCE` - `EXCLUSION` Component: - `HUE` - `SATURATION` - `COLOR` - `LUMINOSITY`
            - `opacity` number — Opacity of the node
            - `children` SubcanvasNode[], required — An array of nodes that are direct children of this node
            - `absoluteBoundingBox` Rectangle, required — A rectangle that expresses a bounding box in absolute coordinates.
              - …
            - `absoluteRenderBounds` Rectangle, required — A rectangle that expresses a bounding box in absolute coordinates.
              - …
            - `preserveRatio` boolean — Keep height and width constrained to same ratio.
            - `constraints` LayoutConstraint — Layout constraint relative to containing Frame
              - …
            - `relativeTransform` array[] — A transformation matrix is standard way in computer graphics to represent translation and rotation. These are the top two rows of a 3x3 matrix. The bottom row of the matrix is assumed to be [0, 0, 1]. This is known as an affine transform and is enough to represent translation, rotation, and skew. The identity transform is [[1, 0, 0], [0, 1, 0]]. A translation matrix will typically look like: ``` [[1, 0, tx], [0, 1, ty]] ``` and a rotation matrix will typically look like: ``` [[cos(angle), sin(angle), 0], [-sin(angle), cos(angle), 0]] ``` Another way to think about this transform is as three vectors: - The x axis (t[0][0], t[1][0]) - The y axis (t[0][1], t[1][1]) - The translation offset (t[0][2], t[1][2]) The most common usage of the Transform matrix is the `relativeTransform property`. This particular usage of the matrix has a few additional restrictions. The translation offset can take on any value but we do enforce that the axis vectors are unit vectors (i.e. have length 1). The axes are not required to be at 90° angles to each other.
              - …
            - `size` Vector — A 2d vector.
              - …
            - `layoutAlign` 'INHERIT' | 'STRETCH' | 'MIN' | 'CENTER' | 'MAX' — Determines if the layer should stretch along the parent's counter axis. This property is only provided for direct children of auto-layout frames. - `INHERIT` - `STRETCH` In previous versions of auto layout, determined how the layer is aligned inside an auto-layout frame. This property is only provided for direct children of auto-layout frames. - `MIN` - `CENTER` - `MAX` - `STRETCH` In horizontal auto-layout frames, "MIN" and "MAX" correspond to "TOP" and "BOTTOM". In vertical auto-layout frames, "MIN" and "MAX" correspond to "LEFT" and "RIGHT".
            - `layoutGrow` 0 | 1 — This property is applicable only for direct children of auto-layout frames, ignored otherwise. Determines whether a layer should stretch along the parent's primary axis. A `0` corresponds to a fixed size and `1` corresponds to stretch.
            - `layoutPositioning` 'AUTO' | 'ABSOLUTE' — Determines whether a layer's size and position should be determined by auto-layout settings or manually adjustable.
            - `minWidth` number — The minimum width of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `maxWidth` number — The maximum width of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `minHeight` number — The minimum height of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `maxHeight` number — The maximum height of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `layoutSizingHorizontal` 'FIXED' | 'HUG' | 'FILL' — The horizontal sizing setting on this auto-layout frame or frame child. - `FIXED` - `HUG`: only valid on auto-layout frames and text nodes - `FILL`: only valid on auto-layout frame children
            - `layoutSizingVertical` 'FIXED' | 'HUG' | 'FILL' — The vertical sizing setting on this auto-layout frame or frame child. - `FIXED` - `HUG`: only valid on auto-layout frames and text nodes - `FILL`: only valid on auto-layout frame children
            - `clipsContent` boolean, required — Whether or not this node clip content outside of its bounds
            - `background` Paint[] — Background of the node. This is deprecated, as backgrounds for frames are now in the `fills` field.
              - …
            - `backgroundColor` RGBA — An RGBA color
              - …
            - `layoutGrids` LayoutGrid[] — An array of layout grids attached to this node (see layout grids section for more details). GROUP nodes do not have this attribute
              - …
            - `overflowDirection` 'HORIZONTAL_SCROLLING' | 'VERTICAL_SCROLLING' | 'HORIZONTAL_AND_VERTICAL_SCROLLING' | 'NONE' — Whether a node has primary axis scrolling, horizontal or vertical.
            - `layoutMode` 'NONE' | 'HORIZONTAL' | 'VERTICAL' — Whether this layer uses auto-layout to position its children.
            - `primaryAxisSizingMode` 'FIXED' | 'AUTO' — Whether the primary axis has a fixed length (determined by the user) or an automatic length (determined by the layout engine). This property is only applicable for auto-layout frames.
            - `counterAxisSizingMode` 'FIXED' | 'AUTO' — Whether the counter axis has a fixed length (determined by the user) or an automatic length (determined by the layout engine). This property is only applicable for auto-layout frames.
            - `primaryAxisAlignItems` 'MIN' | 'CENTER' | 'MAX' | 'SPACE_BETWEEN' — Determines how the auto-layout frame's children should be aligned in the primary axis direction. This property is only applicable for auto-layout frames.
            - `counterAxisAlignItems` 'MIN' | 'CENTER' | 'MAX' | 'BASELINE' — Determines how the auto-layout frame's children should be aligned in the counter axis direction. This property is only applicable for auto-layout frames.
            - `paddingLeft` number — The padding between the left border of the frame and its children. This property is only applicable for auto-layout frames.
            - `paddingRight` number — The padding between the right border of the frame and its children. This property is only applicable for auto-layout frames.
            - `paddingTop` number — The padding between the top border of the frame and its children. This property is only applicable for auto-layout frames.
            - `paddingBottom` number — The padding between the bottom border of the frame and its children. This property is only applicable for auto-layout frames.
            - `itemSpacing` number — The distance between children of the frame. Can be negative. This property is only applicable for auto-layout frames.
            - `itemReverseZIndex` boolean — Determines the canvas stacking order of layers in this frame. When true, the first layer will be draw on top. This property is only applicable for auto-layout frames.
            - `strokesIncludedInLayout` boolean — Determines whether strokes are included in layout calculations. When true, auto-layout frames behave like css "box-sizing: border-box". This property is only applicable for auto-layout frames.
            - `layoutWrap` 'NO_WRAP' | 'WRAP' — Whether this auto-layout frame has wrapping enabled.
            - `counterAxisSpacing` number — The distance between wrapped tracks of an auto-layout frame. This property is only applicable for auto-layout frames with `layoutWrap: "WRAP"`
            - `counterAxisAlignContent` 'AUTO' | 'SPACE_BETWEEN' — Determines how the auto-layout frame’s wrapped tracks should be aligned in the counter axis direction. This property is only applicable for auto-layout frames with `layoutWrap: "WRAP"`.
            - `cornerRadius` number — Radius of each corner if a single radius is set for all corners
            - `cornerSmoothing` number — A value that lets you control how "smooth" the corners are. Ranges from 0 to 1. 0 is the default and means that the corner is perfectly circular. A value of 0.6 means the corner matches the iOS 7 "squircle" icon shape. Other values produce various other curves.
            - `rectangleCornerRadii` number[] — Array of length 4 of the radius of each corner of the frame, starting in the top left and proceeding clockwise. Values are given in the order top-left, top-right, bottom-right, bottom-left.
            - `fills` Paint[], required — An array of fill paints applied to the node.
              - …
            - `styles` object — A mapping of a StyleType to style ID (see Style) of styles present on this node. The style ID can be used to look up more information about the style in the top-level styles field.
            - `strokes` Paint[] — An array of stroke paints applied to the node.
              - …
            - `strokeWeight` number — The weight of strokes on the node.
            - `strokeAlign` 'INSIDE' | 'OUTSIDE' | 'CENTER' — Position of stroke relative to vector outline, as a string enum - `INSIDE`: stroke drawn inside the shape boundary - `OUTSIDE`: stroke drawn outside the shape boundary - `CENTER`: stroke drawn centered along the shape boundary
            - `strokeJoin` 'MITER' | 'BEVEL' | 'ROUND' — A string enum with value of "MITER", "BEVEL", or "ROUND", describing how corners in vector paths are rendered.
            - `strokeDashes` number[] — An array of floating point numbers describing the pattern of dash length and gap lengths that the vector stroke will use when drawn. For example a value of [1, 2] indicates that the stroke will be drawn with a dash of length 1 followed by a gap of length 2, repeated.
            - `fillOverrideTable` object — Map from ID to PaintOverride for looking up fill overrides. To see which regions are overriden, you must use the `geometry=paths` option. Each path returned may have an `overrideID` which maps to this table.
            - `fillGeometry` Path[] — Only specified if parameter `geometry=paths` is used. An array of paths representing the object fill.
              - …
            - `strokeGeometry` Path[] — Only specified if parameter `geometry=paths` is used. An array of paths representing the object stroke.
              - …
            - `strokeCap` 'NONE' | 'ROUND' | 'SQUARE' | 'LINE_ARROW' | 'TRIANGLE_ARROW' | 'DIAMOND_FILLED' | 'CIRCLE_FILLED' | 'TRIANGLE_FILLED' | 'WASHI_TAPE_1' | 'WASHI_TAPE_2' | 'WASHI_TAPE_3' | 'WASHI_TAPE_4' | 'WASHI_TAPE_5' | 'WASHI_TAPE_6' — A string enum describing the end caps of vector paths.
            - `strokeMiterAngle` number — Only valid if `strokeJoin` is "MITER". The corner angle, in degrees, below which `strokeJoin` will be set to "BEVEL" to avoid super sharp corners. By default this is 28.96 degrees.
            - `exportSettings` ExportSetting[] — An array of export settings representing images to export from the node.
              - …
            - `effects` Effect[], required — An array of effects attached to this node (see effects section for more details)
              - …
            - `isMask` boolean — Does this node mask sibling nodes in front of it?
            - `maskType` 'ALPHA' | 'VECTOR' | 'LUMINANCE' — If this layer is a mask, this property describes the operation used to mask the layer's siblings. The value may be one of the following: - ALPHA: the mask node's alpha channel will be used to determine the opacity of each pixel in the masked result. - VECTOR: if the mask node has visible fill paints, every pixel inside the node's fill regions will be fully visible in the masked result. If the mask has visible stroke paints, every pixel inside the node's stroke regions will be fully visible in the masked result. - LUMINANCE: the luminance value of each pixel of the mask node will be used to determine the opacity of that pixel in the masked result.
            - `isMaskOutline` boolean — True if maskType is VECTOR. This field is deprecated; use maskType instead.
            - `transitionNodeID` string — Node ID of node to transition to in prototyping
            - `transitionDuration` number — The duration of the prototyping transition on this node (in milliseconds). This will override the default transition duration on the prototype, for this node.
            - `transitionEasing` 'EASE_IN' | 'EASE_OUT' | 'EASE_IN_AND_OUT' | 'LINEAR' | 'EASE_IN_BACK' | 'EASE_OUT_BACK' | 'EASE_IN_AND_OUT_BACK' | 'CUSTOM_CUBIC_BEZIER' | 'GENTLE' | 'QUICK' | 'BOUNCY' | 'SLOW' | 'CUSTOM_SPRING' — This type is a string enum with the following possible values: - `EASE_IN`: Ease in with an animation curve similar to CSS ease-in. - `EASE_OUT`: Ease out with an animation curve similar to CSS ease-out. - `EASE_IN_AND_OUT`: Ease in and then out with an animation curve similar to CSS ease-in-out. - `LINEAR`: No easing, similar to CSS linear. - `EASE_IN_BACK`: Ease in with an animation curve that moves past the initial keyframe's value and then accelerates as it reaches the end. - `EASE_OUT_BACK`: Ease out with an animation curve that starts fast, then slows and goes past the ending keyframe's value. - `EASE_IN_AND_OUT_BACK`: Ease in and then out with an animation curve that overshoots the initial keyframe's value, then accelerates quickly before it slows and overshoots the ending keyframes value. - `CUSTOM_CUBIC_BEZIER`: User-defined cubic bezier curve. - `GENTLE`: Gentle animation similar to react-spring. - `QUICK`: Quick spring animation, great for toasts and notifications. - `BOUNCY`: Bouncy spring, for delightful animations like a heart bounce. - `SLOW`: Slow spring, useful as a steady, natural way to scale up fullscreen content. - `CUSTOM_SPRING`: User-defined spring animation.
            - `interactions` Interaction[]
              - …
            - `individualStrokeWeights` StrokeWeights — Individual stroke weights
              - …
            - `devStatus` object — Represents whether or not a node has a particular handoff (or dev) status applied to it.
              - …
            - `componentPropertyDefinitions` object — A mapping of name to `ComponentPropertyDefinition` for every component property on this component. Each property has a type, defaultValue, and other optional values.
          - ConnectorNode
            - `type` 'CONNECTOR', required — The type of the node
            - `connectorStart` union, required — Stores canvas location for a connector start/end point.
              - …
            - `connectorEnd` union, required — Stores canvas location for a connector start/end point.
              - …
            - `connectorStartStrokeCap` 'NONE' | 'LINE_ARROW' | 'TRIANGLE_ARROW' | 'DIAMOND_FILLED' | 'CIRCLE_FILLED' | 'TRIANGLE_FILLED', required — A string enum describing the end cap of the start of the connector.
            - `connectorEndStrokeCap` 'NONE' | 'LINE_ARROW' | 'TRIANGLE_ARROW' | 'DIAMOND_FILLED' | 'CIRCLE_FILLED' | 'TRIANGLE_FILLED', required — A string enum describing the end cap of the end of the connector.
            - `connectorLineType` 'STRAIGHT' | 'ELBOWED', required — Connector line type.
            - `textBackground` ConnectorTextBackground
              - …
            - `id` string, required — A string uniquely identifying this node within the document.
            - `name` string, required — The name given to the node by the user in the tool.
            - `visible` boolean — Whether or not the node is visible on the canvas.
            - `locked` boolean — If true, layer is locked and cannot be edited
            - `isFixed` boolean — Whether the layer is fixed while the parent is scrolling
            - `scrollBehavior` 'SCROLLS' | 'FIXED' | 'STICKY_SCROLLS', required — How layer should be treated when the frame is resized
            - `rotation` number — The rotation of the node, if not 0.
            - `componentPropertyReferences` object — A mapping of a layer's property to component property name of component properties attached to this node. The component property name can be used to look up more information on the corresponding component's or component set's componentPropertyDefinitions.
            - `pluginData` unknown
            - `sharedPluginData` unknown
            - `boundVariables` object — A mapping of field to the variables applied to this field. Most fields will only map to a single `VariableAlias`. However, for properties like `fills`, `strokes`, `size`, `componentProperties`, and `textRangeFills`, it is possible to have multiple variables bound to the field.
              - …
            - `explicitVariableModes` object — A mapping of variable collection ID to mode ID representing the explicitly set modes for this node.
            - `absoluteBoundingBox` Rectangle, required — A rectangle that expresses a bounding box in absolute coordinates.
              - …
            - `absoluteRenderBounds` Rectangle, required — A rectangle that expresses a bounding box in absolute coordinates.
              - …
            - `preserveRatio` boolean — Keep height and width constrained to same ratio.
            - `constraints` LayoutConstraint — Layout constraint relative to containing Frame
              - …
            - `relativeTransform` array[] — A transformation matrix is standard way in computer graphics to represent translation and rotation. These are the top two rows of a 3x3 matrix. The bottom row of the matrix is assumed to be [0, 0, 1]. This is known as an affine transform and is enough to represent translation, rotation, and skew. The identity transform is [[1, 0, 0], [0, 1, 0]]. A translation matrix will typically look like: ``` [[1, 0, tx], [0, 1, ty]] ``` and a rotation matrix will typically look like: ``` [[cos(angle), sin(angle), 0], [-sin(angle), cos(angle), 0]] ``` Another way to think about this transform is as three vectors: - The x axis (t[0][0], t[1][0]) - The y axis (t[0][1], t[1][1]) - The translation offset (t[0][2], t[1][2]) The most common usage of the Transform matrix is the `relativeTransform property`. This particular usage of the matrix has a few additional restrictions. The translation offset can take on any value but we do enforce that the axis vectors are unit vectors (i.e. have length 1). The axes are not required to be at 90° angles to each other.
              - …
            - `size` Vector — A 2d vector.
              - …
            - `layoutAlign` 'INHERIT' | 'STRETCH' | 'MIN' | 'CENTER' | 'MAX' — Determines if the layer should stretch along the parent's counter axis. This property is only provided for direct children of auto-layout frames. - `INHERIT` - `STRETCH` In previous versions of auto layout, determined how the layer is aligned inside an auto-layout frame. This property is only provided for direct children of auto-layout frames. - `MIN` - `CENTER` - `MAX` - `STRETCH` In horizontal auto-layout frames, "MIN" and "MAX" correspond to "TOP" and "BOTTOM". In vertical auto-layout frames, "MIN" and "MAX" correspond to "LEFT" and "RIGHT".
            - `layoutGrow` 0 | 1 — This property is applicable only for direct children of auto-layout frames, ignored otherwise. Determines whether a layer should stretch along the parent's primary axis. A `0` corresponds to a fixed size and `1` corresponds to stretch.
            - `layoutPositioning` 'AUTO' | 'ABSOLUTE' — Determines whether a layer's size and position should be determined by auto-layout settings or manually adjustable.
            - `minWidth` number — The minimum width of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `maxWidth` number — The maximum width of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `minHeight` number — The minimum height of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `maxHeight` number — The maximum height of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `layoutSizingHorizontal` 'FIXED' | 'HUG' | 'FILL' — The horizontal sizing setting on this auto-layout frame or frame child. - `FIXED` - `HUG`: only valid on auto-layout frames and text nodes - `FILL`: only valid on auto-layout frame children
            - `layoutSizingVertical` 'FIXED' | 'HUG' | 'FILL' — The vertical sizing setting on this auto-layout frame or frame child. - `FIXED` - `HUG`: only valid on auto-layout frames and text nodes - `FILL`: only valid on auto-layout frame children
            - `blendMode` 'PASS_THROUGH' | 'NORMAL' | 'DARKEN' | 'MULTIPLY' | 'LINEAR_BURN' | 'COLOR_BURN' | 'LIGHTEN' | 'SCREEN' | 'LINEAR_DODGE' | 'COLOR_DODGE' | 'OVERLAY' | 'SOFT_LIGHT' | 'HARD_LIGHT' | 'DIFFERENCE' | 'EXCLUSION' | 'HUE' | 'SATURATION' | 'COLOR' | 'LUMINOSITY', required — This type is a string enum with the following possible values Normal blends: - `PASS_THROUGH` (only applicable to objects with children) - `NORMAL` Darken: - `DARKEN` - `MULTIPLY` - `LINEAR_BURN` - `COLOR_BURN` Lighten: - `LIGHTEN` - `SCREEN` - `LINEAR_DODGE` - `COLOR_DODGE` Contrast: - `OVERLAY` - `SOFT_LIGHT` - `HARD_LIGHT` Inversion: - `DIFFERENCE` - `EXCLUSION` Component: - `HUE` - `SATURATION` - `COLOR` - `LUMINOSITY`
            - `opacity` number — Opacity of the node
            - `effects` Effect[], required — An array of effects attached to this node (see effects section for more details)
              - …
            - `exportSettings` ExportSetting[] — An array of export settings representing images to export from the node.
              - …
            - `characters` string, required — Text contained within a text box.
            - `strokes` Paint[] — An array of stroke paints applied to the node.
              - …
            - `strokeWeight` number — The weight of strokes on the node.
            - `strokeAlign` 'INSIDE' | 'OUTSIDE' | 'CENTER' — Position of stroke relative to vector outline, as a string enum - `INSIDE`: stroke drawn inside the shape boundary - `OUTSIDE`: stroke drawn outside the shape boundary - `CENTER`: stroke drawn centered along the shape boundary
            - `strokeJoin` 'MITER' | 'BEVEL' | 'ROUND' — A string enum with value of "MITER", "BEVEL", or "ROUND", describing how corners in vector paths are rendered.
            - `strokeDashes` number[] — An array of floating point numbers describing the pattern of dash length and gap lengths that the vector stroke will use when drawn. For example a value of [1, 2] indicates that the stroke will be drawn with a dash of length 1 followed by a gap of length 2, repeated.
          - EllipseNode
            - `type` 'ELLIPSE', required — The type of the node
            - `arcData` ArcData, required — Information about the arc properties of an ellipse. 0° is the x axis and increasing angles rotate clockwise.
              - …
            - `id` string, required — A string uniquely identifying this node within the document.
            - `name` string, required — The name given to the node by the user in the tool.
            - `visible` boolean — Whether or not the node is visible on the canvas.
            - `locked` boolean — If true, layer is locked and cannot be edited
            - `isFixed` boolean — Whether the layer is fixed while the parent is scrolling
            - `scrollBehavior` 'SCROLLS' | 'FIXED' | 'STICKY_SCROLLS', required — How layer should be treated when the frame is resized
            - `rotation` number — The rotation of the node, if not 0.
            - `componentPropertyReferences` object — A mapping of a layer's property to component property name of component properties attached to this node. The component property name can be used to look up more information on the corresponding component's or component set's componentPropertyDefinitions.
            - `pluginData` unknown
            - `sharedPluginData` unknown
            - `boundVariables` object — A mapping of field to the variables applied to this field. Most fields will only map to a single `VariableAlias`. However, for properties like `fills`, `strokes`, `size`, `componentProperties`, and `textRangeFills`, it is possible to have multiple variables bound to the field.
              - …
            - `explicitVariableModes` object — A mapping of variable collection ID to mode ID representing the explicitly set modes for this node.
            - `blendMode` 'PASS_THROUGH' | 'NORMAL' | 'DARKEN' | 'MULTIPLY' | 'LINEAR_BURN' | 'COLOR_BURN' | 'LIGHTEN' | 'SCREEN' | 'LINEAR_DODGE' | 'COLOR_DODGE' | 'OVERLAY' | 'SOFT_LIGHT' | 'HARD_LIGHT' | 'DIFFERENCE' | 'EXCLUSION' | 'HUE' | 'SATURATION' | 'COLOR' | 'LUMINOSITY', required — This type is a string enum with the following possible values Normal blends: - `PASS_THROUGH` (only applicable to objects with children) - `NORMAL` Darken: - `DARKEN` - `MULTIPLY` - `LINEAR_BURN` - `COLOR_BURN` Lighten: - `LIGHTEN` - `SCREEN` - `LINEAR_DODGE` - `COLOR_DODGE` Contrast: - `OVERLAY` - `SOFT_LIGHT` - `HARD_LIGHT` Inversion: - `DIFFERENCE` - `EXCLUSION` Component: - `HUE` - `SATURATION` - `COLOR` - `LUMINOSITY`
            - `opacity` number — Opacity of the node
            - `absoluteBoundingBox` Rectangle, required — A rectangle that expresses a bounding box in absolute coordinates.
              - …
            - `absoluteRenderBounds` Rectangle, required — A rectangle that expresses a bounding box in absolute coordinates.
              - …
            - `preserveRatio` boolean — Keep height and width constrained to same ratio.
            - `constraints` LayoutConstraint — Layout constraint relative to containing Frame
              - …
            - `relativeTransform` array[] — A transformation matrix is standard way in computer graphics to represent translation and rotation. These are the top two rows of a 3x3 matrix. The bottom row of the matrix is assumed to be [0, 0, 1]. This is known as an affine transform and is enough to represent translation, rotation, and skew. The identity transform is [[1, 0, 0], [0, 1, 0]]. A translation matrix will typically look like: ``` [[1, 0, tx], [0, 1, ty]] ``` and a rotation matrix will typically look like: ``` [[cos(angle), sin(angle), 0], [-sin(angle), cos(angle), 0]] ``` Another way to think about this transform is as three vectors: - The x axis (t[0][0], t[1][0]) - The y axis (t[0][1], t[1][1]) - The translation offset (t[0][2], t[1][2]) The most common usage of the Transform matrix is the `relativeTransform property`. This particular usage of the matrix has a few additional restrictions. The translation offset can take on any value but we do enforce that the axis vectors are unit vectors (i.e. have length 1). The axes are not required to be at 90° angles to each other.
              - …
            - `size` Vector — A 2d vector.
              - …
            - `layoutAlign` 'INHERIT' | 'STRETCH' | 'MIN' | 'CENTER' | 'MAX' — Determines if the layer should stretch along the parent's counter axis. This property is only provided for direct children of auto-layout frames. - `INHERIT` - `STRETCH` In previous versions of auto layout, determined how the layer is aligned inside an auto-layout frame. This property is only provided for direct children of auto-layout frames. - `MIN` - `CENTER` - `MAX` - `STRETCH` In horizontal auto-layout frames, "MIN" and "MAX" correspond to "TOP" and "BOTTOM". In vertical auto-layout frames, "MIN" and "MAX" correspond to "LEFT" and "RIGHT".
            - `layoutGrow` 0 | 1 — This property is applicable only for direct children of auto-layout frames, ignored otherwise. Determines whether a layer should stretch along the parent's primary axis. A `0` corresponds to a fixed size and `1` corresponds to stretch.
            - `layoutPositioning` 'AUTO' | 'ABSOLUTE' — Determines whether a layer's size and position should be determined by auto-layout settings or manually adjustable.
            - `minWidth` number — The minimum width of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `maxWidth` number — The maximum width of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `minHeight` number — The minimum height of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `maxHeight` number — The maximum height of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `layoutSizingHorizontal` 'FIXED' | 'HUG' | 'FILL' — The horizontal sizing setting on this auto-layout frame or frame child. - `FIXED` - `HUG`: only valid on auto-layout frames and text nodes - `FILL`: only valid on auto-layout frame children
            - `layoutSizingVertical` 'FIXED' | 'HUG' | 'FILL' — The vertical sizing setting on this auto-layout frame or frame child. - `FIXED` - `HUG`: only valid on auto-layout frames and text nodes - `FILL`: only valid on auto-layout frame children
            - `fills` Paint[], required — An array of fill paints applied to the node.
              - …
            - `styles` object — A mapping of a StyleType to style ID (see Style) of styles present on this node. The style ID can be used to look up more information about the style in the top-level styles field.
            - `strokes` Paint[] — An array of stroke paints applied to the node.
              - …
            - `strokeWeight` number — The weight of strokes on the node.
            - `strokeAlign` 'INSIDE' | 'OUTSIDE' | 'CENTER' — Position of stroke relative to vector outline, as a string enum - `INSIDE`: stroke drawn inside the shape boundary - `OUTSIDE`: stroke drawn outside the shape boundary - `CENTER`: stroke drawn centered along the shape boundary
            - `strokeJoin` 'MITER' | 'BEVEL' | 'ROUND' — A string enum with value of "MITER", "BEVEL", or "ROUND", describing how corners in vector paths are rendered.
            - `strokeDashes` number[] — An array of floating point numbers describing the pattern of dash length and gap lengths that the vector stroke will use when drawn. For example a value of [1, 2] indicates that the stroke will be drawn with a dash of length 1 followed by a gap of length 2, repeated.
            - `fillOverrideTable` object — Map from ID to PaintOverride for looking up fill overrides. To see which regions are overriden, you must use the `geometry=paths` option. Each path returned may have an `overrideID` which maps to this table.
            - `fillGeometry` Path[] — Only specified if parameter `geometry=paths` is used. An array of paths representing the object fill.
              - …
            - `strokeGeometry` Path[] — Only specified if parameter `geometry=paths` is used. An array of paths representing the object stroke.
              - …
            - `strokeCap` 'NONE' | 'ROUND' | 'SQUARE' | 'LINE_ARROW' | 'TRIANGLE_ARROW' | 'DIAMOND_FILLED' | 'CIRCLE_FILLED' | 'TRIANGLE_FILLED' | 'WASHI_TAPE_1' | 'WASHI_TAPE_2' | 'WASHI_TAPE_3' | 'WASHI_TAPE_4' | 'WASHI_TAPE_5' | 'WASHI_TAPE_6' — A string enum describing the end caps of vector paths.
            - `strokeMiterAngle` number — Only valid if `strokeJoin` is "MITER". The corner angle, in degrees, below which `strokeJoin` will be set to "BEVEL" to avoid super sharp corners. By default this is 28.96 degrees.
            - `exportSettings` ExportSetting[] — An array of export settings representing images to export from the node.
              - …
            - `effects` Effect[], required — An array of effects attached to this node (see effects section for more details)
              - …
            - `isMask` boolean — Does this node mask sibling nodes in front of it?
            - `maskType` 'ALPHA' | 'VECTOR' | 'LUMINANCE' — If this layer is a mask, this property describes the operation used to mask the layer's siblings. The value may be one of the following: - ALPHA: the mask node's alpha channel will be used to determine the opacity of each pixel in the masked result. - VECTOR: if the mask node has visible fill paints, every pixel inside the node's fill regions will be fully visible in the masked result. If the mask has visible stroke paints, every pixel inside the node's stroke regions will be fully visible in the masked result. - LUMINANCE: the luminance value of each pixel of the mask node will be used to determine the opacity of that pixel in the masked result.
            - `isMaskOutline` boolean — True if maskType is VECTOR. This field is deprecated; use maskType instead.
            - `transitionNodeID` string — Node ID of node to transition to in prototyping
            - `transitionDuration` number — The duration of the prototyping transition on this node (in milliseconds). This will override the default transition duration on the prototype, for this node.
            - `transitionEasing` 'EASE_IN' | 'EASE_OUT' | 'EASE_IN_AND_OUT' | 'LINEAR' | 'EASE_IN_BACK' | 'EASE_OUT_BACK' | 'EASE_IN_AND_OUT_BACK' | 'CUSTOM_CUBIC_BEZIER' | 'GENTLE' | 'QUICK' | 'BOUNCY' | 'SLOW' | 'CUSTOM_SPRING' — This type is a string enum with the following possible values: - `EASE_IN`: Ease in with an animation curve similar to CSS ease-in. - `EASE_OUT`: Ease out with an animation curve similar to CSS ease-out. - `EASE_IN_AND_OUT`: Ease in and then out with an animation curve similar to CSS ease-in-out. - `LINEAR`: No easing, similar to CSS linear. - `EASE_IN_BACK`: Ease in with an animation curve that moves past the initial keyframe's value and then accelerates as it reaches the end. - `EASE_OUT_BACK`: Ease out with an animation curve that starts fast, then slows and goes past the ending keyframe's value. - `EASE_IN_AND_OUT_BACK`: Ease in and then out with an animation curve that overshoots the initial keyframe's value, then accelerates quickly before it slows and overshoots the ending keyframes value. - `CUSTOM_CUBIC_BEZIER`: User-defined cubic bezier curve. - `GENTLE`: Gentle animation similar to react-spring. - `QUICK`: Quick spring animation, great for toasts and notifications. - `BOUNCY`: Bouncy spring, for delightful animations like a heart bounce. - `SLOW`: Slow spring, useful as a steady, natural way to scale up fullscreen content. - `CUSTOM_SPRING`: User-defined spring animation.
            - `interactions` Interaction[]
              - …
          - EmbedNode
            - `type` 'EMBED', required — The type of the node
            - `id` string, required — A string uniquely identifying this node within the document.
            - `name` string, required — The name given to the node by the user in the tool.
            - `visible` boolean — Whether or not the node is visible on the canvas.
            - `locked` boolean — If true, layer is locked and cannot be edited
            - `isFixed` boolean — Whether the layer is fixed while the parent is scrolling
            - `scrollBehavior` 'SCROLLS' | 'FIXED' | 'STICKY_SCROLLS', required — How layer should be treated when the frame is resized
            - `rotation` number — The rotation of the node, if not 0.
            - `componentPropertyReferences` object — A mapping of a layer's property to component property name of component properties attached to this node. The component property name can be used to look up more information on the corresponding component's or component set's componentPropertyDefinitions.
            - `pluginData` unknown
            - `sharedPluginData` unknown
            - `boundVariables` object — A mapping of field to the variables applied to this field. Most fields will only map to a single `VariableAlias`. However, for properties like `fills`, `strokes`, `size`, `componentProperties`, and `textRangeFills`, it is possible to have multiple variables bound to the field.
              - …
            - `explicitVariableModes` object — A mapping of variable collection ID to mode ID representing the explicitly set modes for this node.
            - `exportSettings` ExportSetting[] — An array of export settings representing images to export from the node.
              - …
          - FrameNode
            - `type` 'FRAME', required — The type of the node
            - `id` string, required — A string uniquely identifying this node within the document.
            - `name` string, required — The name given to the node by the user in the tool.
            - `visible` boolean — Whether or not the node is visible on the canvas.
            - `locked` boolean — If true, layer is locked and cannot be edited
            - `isFixed` boolean — Whether the layer is fixed while the parent is scrolling
            - `scrollBehavior` 'SCROLLS' | 'FIXED' | 'STICKY_SCROLLS', required — How layer should be treated when the frame is resized
            - `rotation` number — The rotation of the node, if not 0.
            - `componentPropertyReferences` object — A mapping of a layer's property to component property name of component properties attached to this node. The component property name can be used to look up more information on the corresponding component's or component set's componentPropertyDefinitions.
            - `pluginData` unknown
            - `sharedPluginData` unknown
            - `boundVariables` object — A mapping of field to the variables applied to this field. Most fields will only map to a single `VariableAlias`. However, for properties like `fills`, `strokes`, `size`, `componentProperties`, and `textRangeFills`, it is possible to have multiple variables bound to the field.
              - …
            - `explicitVariableModes` object — A mapping of variable collection ID to mode ID representing the explicitly set modes for this node.
            - `blendMode` 'PASS_THROUGH' | 'NORMAL' | 'DARKEN' | 'MULTIPLY' | 'LINEAR_BURN' | 'COLOR_BURN' | 'LIGHTEN' | 'SCREEN' | 'LINEAR_DODGE' | 'COLOR_DODGE' | 'OVERLAY' | 'SOFT_LIGHT' | 'HARD_LIGHT' | 'DIFFERENCE' | 'EXCLUSION' | 'HUE' | 'SATURATION' | 'COLOR' | 'LUMINOSITY', required — This type is a string enum with the following possible values Normal blends: - `PASS_THROUGH` (only applicable to objects with children) - `NORMAL` Darken: - `DARKEN` - `MULTIPLY` - `LINEAR_BURN` - `COLOR_BURN` Lighten: - `LIGHTEN` - `SCREEN` - `LINEAR_DODGE` - `COLOR_DODGE` Contrast: - `OVERLAY` - `SOFT_LIGHT` - `HARD_LIGHT` Inversion: - `DIFFERENCE` - `EXCLUSION` Component: - `HUE` - `SATURATION` - `COLOR` - `LUMINOSITY`
            - `opacity` number — Opacity of the node
            - `children` SubcanvasNode[], required — An array of nodes that are direct children of this node
            - `absoluteBoundingBox` Rectangle, required — A rectangle that expresses a bounding box in absolute coordinates.
              - …
            - `absoluteRenderBounds` Rectangle, required — A rectangle that expresses a bounding box in absolute coordinates.
              - …
            - `preserveRatio` boolean — Keep height and width constrained to same ratio.
            - `constraints` LayoutConstraint — Layout constraint relative to containing Frame
              - …
            - `relativeTransform` array[] — A transformation matrix is standard way in computer graphics to represent translation and rotation. These are the top two rows of a 3x3 matrix. The bottom row of the matrix is assumed to be [0, 0, 1]. This is known as an affine transform and is enough to represent translation, rotation, and skew. The identity transform is [[1, 0, 0], [0, 1, 0]]. A translation matrix will typically look like: ``` [[1, 0, tx], [0, 1, ty]] ``` and a rotation matrix will typically look like: ``` [[cos(angle), sin(angle), 0], [-sin(angle), cos(angle), 0]] ``` Another way to think about this transform is as three vectors: - The x axis (t[0][0], t[1][0]) - The y axis (t[0][1], t[1][1]) - The translation offset (t[0][2], t[1][2]) The most common usage of the Transform matrix is the `relativeTransform property`. This particular usage of the matrix has a few additional restrictions. The translation offset can take on any value but we do enforce that the axis vectors are unit vectors (i.e. have length 1). The axes are not required to be at 90° angles to each other.
              - …
            - `size` Vector — A 2d vector.
              - …
            - `layoutAlign` 'INHERIT' | 'STRETCH' | 'MIN' | 'CENTER' | 'MAX' — Determines if the layer should stretch along the parent's counter axis. This property is only provided for direct children of auto-layout frames. - `INHERIT` - `STRETCH` In previous versions of auto layout, determined how the layer is aligned inside an auto-layout frame. This property is only provided for direct children of auto-layout frames. - `MIN` - `CENTER` - `MAX` - `STRETCH` In horizontal auto-layout frames, "MIN" and "MAX" correspond to "TOP" and "BOTTOM". In vertical auto-layout frames, "MIN" and "MAX" correspond to "LEFT" and "RIGHT".
            - `layoutGrow` 0 | 1 — This property is applicable only for direct children of auto-layout frames, ignored otherwise. Determines whether a layer should stretch along the parent's primary axis. A `0` corresponds to a fixed size and `1` corresponds to stretch.
            - `layoutPositioning` 'AUTO' | 'ABSOLUTE' — Determines whether a layer's size and position should be determined by auto-layout settings or manually adjustable.
            - `minWidth` number — The minimum width of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `maxWidth` number — The maximum width of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `minHeight` number — The minimum height of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `maxHeight` number — The maximum height of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `layoutSizingHorizontal` 'FIXED' | 'HUG' | 'FILL' — The horizontal sizing setting on this auto-layout frame or frame child. - `FIXED` - `HUG`: only valid on auto-layout frames and text nodes - `FILL`: only valid on auto-layout frame children
            - `layoutSizingVertical` 'FIXED' | 'HUG' | 'FILL' — The vertical sizing setting on this auto-layout frame or frame child. - `FIXED` - `HUG`: only valid on auto-layout frames and text nodes - `FILL`: only valid on auto-layout frame children
            - `clipsContent` boolean, required — Whether or not this node clip content outside of its bounds
            - `background` Paint[] — Background of the node. This is deprecated, as backgrounds for frames are now in the `fills` field.
              - …
            - `backgroundColor` RGBA — An RGBA color
              - …
            - `layoutGrids` LayoutGrid[] — An array of layout grids attached to this node (see layout grids section for more details). GROUP nodes do not have this attribute
              - …
            - `overflowDirection` 'HORIZONTAL_SCROLLING' | 'VERTICAL_SCROLLING' | 'HORIZONTAL_AND_VERTICAL_SCROLLING' | 'NONE' — Whether a node has primary axis scrolling, horizontal or vertical.
            - `layoutMode` 'NONE' | 'HORIZONTAL' | 'VERTICAL' — Whether this layer uses auto-layout to position its children.
            - `primaryAxisSizingMode` 'FIXED' | 'AUTO' — Whether the primary axis has a fixed length (determined by the user) or an automatic length (determined by the layout engine). This property is only applicable for auto-layout frames.
            - `counterAxisSizingMode` 'FIXED' | 'AUTO' — Whether the counter axis has a fixed length (determined by the user) or an automatic length (determined by the layout engine). This property is only applicable for auto-layout frames.
            - `primaryAxisAlignItems` 'MIN' | 'CENTER' | 'MAX' | 'SPACE_BETWEEN' — Determines how the auto-layout frame's children should be aligned in the primary axis direction. This property is only applicable for auto-layout frames.
            - `counterAxisAlignItems` 'MIN' | 'CENTER' | 'MAX' | 'BASELINE' — Determines how the auto-layout frame's children should be aligned in the counter axis direction. This property is only applicable for auto-layout frames.
            - `paddingLeft` number — The padding between the left border of the frame and its children. This property is only applicable for auto-layout frames.
            - `paddingRight` number — The padding between the right border of the frame and its children. This property is only applicable for auto-layout frames.
            - `paddingTop` number — The padding between the top border of the frame and its children. This property is only applicable for auto-layout frames.
            - `paddingBottom` number — The padding between the bottom border of the frame and its children. This property is only applicable for auto-layout frames.
            - `itemSpacing` number — The distance between children of the frame. Can be negative. This property is only applicable for auto-layout frames.
            - `itemReverseZIndex` boolean — Determines the canvas stacking order of layers in this frame. When true, the first layer will be draw on top. This property is only applicable for auto-layout frames.
            - `strokesIncludedInLayout` boolean — Determines whether strokes are included in layout calculations. When true, auto-layout frames behave like css "box-sizing: border-box". This property is only applicable for auto-layout frames.
            - `layoutWrap` 'NO_WRAP' | 'WRAP' — Whether this auto-layout frame has wrapping enabled.
            - `counterAxisSpacing` number — The distance between wrapped tracks of an auto-layout frame. This property is only applicable for auto-layout frames with `layoutWrap: "WRAP"`
            - `counterAxisAlignContent` 'AUTO' | 'SPACE_BETWEEN' — Determines how the auto-layout frame’s wrapped tracks should be aligned in the counter axis direction. This property is only applicable for auto-layout frames with `layoutWrap: "WRAP"`.
            - `cornerRadius` number — Radius of each corner if a single radius is set for all corners
            - `cornerSmoothing` number — A value that lets you control how "smooth" the corners are. Ranges from 0 to 1. 0 is the default and means that the corner is perfectly circular. A value of 0.6 means the corner matches the iOS 7 "squircle" icon shape. Other values produce various other curves.
            - `rectangleCornerRadii` number[] — Array of length 4 of the radius of each corner of the frame, starting in the top left and proceeding clockwise. Values are given in the order top-left, top-right, bottom-right, bottom-left.
            - `fills` Paint[], required — An array of fill paints applied to the node.
              - …
            - `styles` object — A mapping of a StyleType to style ID (see Style) of styles present on this node. The style ID can be used to look up more information about the style in the top-level styles field.
            - `strokes` Paint[] — An array of stroke paints applied to the node.
              - …
            - `strokeWeight` number — The weight of strokes on the node.
            - `strokeAlign` 'INSIDE' | 'OUTSIDE' | 'CENTER' — Position of stroke relative to vector outline, as a string enum - `INSIDE`: stroke drawn inside the shape boundary - `OUTSIDE`: stroke drawn outside the shape boundary - `CENTER`: stroke drawn centered along the shape boundary
            - `strokeJoin` 'MITER' | 'BEVEL' | 'ROUND' — A string enum with value of "MITER", "BEVEL", or "ROUND", describing how corners in vector paths are rendered.
            - `strokeDashes` number[] — An array of floating point numbers describing the pattern of dash length and gap lengths that the vector stroke will use when drawn. For example a value of [1, 2] indicates that the stroke will be drawn with a dash of length 1 followed by a gap of length 2, repeated.
            - `fillOverrideTable` object — Map from ID to PaintOverride for looking up fill overrides. To see which regions are overriden, you must use the `geometry=paths` option. Each path returned may have an `overrideID` which maps to this table.
            - `fillGeometry` Path[] — Only specified if parameter `geometry=paths` is used. An array of paths representing the object fill.
              - …
            - `strokeGeometry` Path[] — Only specified if parameter `geometry=paths` is used. An array of paths representing the object stroke.
              - …
            - `strokeCap` 'NONE' | 'ROUND' | 'SQUARE' | 'LINE_ARROW' | 'TRIANGLE_ARROW' | 'DIAMOND_FILLED' | 'CIRCLE_FILLED' | 'TRIANGLE_FILLED' | 'WASHI_TAPE_1' | 'WASHI_TAPE_2' | 'WASHI_TAPE_3' | 'WASHI_TAPE_4' | 'WASHI_TAPE_5' | 'WASHI_TAPE_6' — A string enum describing the end caps of vector paths.
            - `strokeMiterAngle` number — Only valid if `strokeJoin` is "MITER". The corner angle, in degrees, below which `strokeJoin` will be set to "BEVEL" to avoid super sharp corners. By default this is 28.96 degrees.
            - `exportSettings` ExportSetting[] — An array of export settings representing images to export from the node.
              - …
            - `effects` Effect[], required — An array of effects attached to this node (see effects section for more details)
              - …
            - `isMask` boolean — Does this node mask sibling nodes in front of it?
            - `maskType` 'ALPHA' | 'VECTOR' | 'LUMINANCE' — If this layer is a mask, this property describes the operation used to mask the layer's siblings. The value may be one of the following: - ALPHA: the mask node's alpha channel will be used to determine the opacity of each pixel in the masked result. - VECTOR: if the mask node has visible fill paints, every pixel inside the node's fill regions will be fully visible in the masked result. If the mask has visible stroke paints, every pixel inside the node's stroke regions will be fully visible in the masked result. - LUMINANCE: the luminance value of each pixel of the mask node will be used to determine the opacity of that pixel in the masked result.
            - `isMaskOutline` boolean — True if maskType is VECTOR. This field is deprecated; use maskType instead.
            - `transitionNodeID` string — Node ID of node to transition to in prototyping
            - `transitionDuration` number — The duration of the prototyping transition on this node (in milliseconds). This will override the default transition duration on the prototype, for this node.
            - `transitionEasing` 'EASE_IN' | 'EASE_OUT' | 'EASE_IN_AND_OUT' | 'LINEAR' | 'EASE_IN_BACK' | 'EASE_OUT_BACK' | 'EASE_IN_AND_OUT_BACK' | 'CUSTOM_CUBIC_BEZIER' | 'GENTLE' | 'QUICK' | 'BOUNCY' | 'SLOW' | 'CUSTOM_SPRING' — This type is a string enum with the following possible values: - `EASE_IN`: Ease in with an animation curve similar to CSS ease-in. - `EASE_OUT`: Ease out with an animation curve similar to CSS ease-out. - `EASE_IN_AND_OUT`: Ease in and then out with an animation curve similar to CSS ease-in-out. - `LINEAR`: No easing, similar to CSS linear. - `EASE_IN_BACK`: Ease in with an animation curve that moves past the initial keyframe's value and then accelerates as it reaches the end. - `EASE_OUT_BACK`: Ease out with an animation curve that starts fast, then slows and goes past the ending keyframe's value. - `EASE_IN_AND_OUT_BACK`: Ease in and then out with an animation curve that overshoots the initial keyframe's value, then accelerates quickly before it slows and overshoots the ending keyframes value. - `CUSTOM_CUBIC_BEZIER`: User-defined cubic bezier curve. - `GENTLE`: Gentle animation similar to react-spring. - `QUICK`: Quick spring animation, great for toasts and notifications. - `BOUNCY`: Bouncy spring, for delightful animations like a heart bounce. - `SLOW`: Slow spring, useful as a steady, natural way to scale up fullscreen content. - `CUSTOM_SPRING`: User-defined spring animation.
            - `interactions` Interaction[]
              - …
            - `individualStrokeWeights` StrokeWeights — Individual stroke weights
              - …
            - `devStatus` object — Represents whether or not a node has a particular handoff (or dev) status applied to it.
              - …
          - GroupNode
            - `type` 'GROUP', required — The type of the node
            - `id` string, required — A string uniquely identifying this node within the document.
            - `name` string, required — The name given to the node by the user in the tool.
            - `visible` boolean — Whether or not the node is visible on the canvas.
            - `locked` boolean — If true, layer is locked and cannot be edited
            - `isFixed` boolean — Whether the layer is fixed while the parent is scrolling
            - `scrollBehavior` 'SCROLLS' | 'FIXED' | 'STICKY_SCROLLS', required — How layer should be treated when the frame is resized
            - `rotation` number — The rotation of the node, if not 0.
            - `componentPropertyReferences` object — A mapping of a layer's property to component property name of component properties attached to this node. The component property name can be used to look up more information on the corresponding component's or component set's componentPropertyDefinitions.
            - `pluginData` unknown
            - `sharedPluginData` unknown
            - `boundVariables` object — A mapping of field to the variables applied to this field. Most fields will only map to a single `VariableAlias`. However, for properties like `fills`, `strokes`, `size`, `componentProperties`, and `textRangeFills`, it is possible to have multiple variables bound to the field.
              - …
            - `explicitVariableModes` object — A mapping of variable collection ID to mode ID representing the explicitly set modes for this node.
            - `blendMode` 'PASS_THROUGH' | 'NORMAL' | 'DARKEN' | 'MULTIPLY' | 'LINEAR_BURN' | 'COLOR_BURN' | 'LIGHTEN' | 'SCREEN' | 'LINEAR_DODGE' | 'COLOR_DODGE' | 'OVERLAY' | 'SOFT_LIGHT' | 'HARD_LIGHT' | 'DIFFERENCE' | 'EXCLUSION' | 'HUE' | 'SATURATION' | 'COLOR' | 'LUMINOSITY', required — This type is a string enum with the following possible values Normal blends: - `PASS_THROUGH` (only applicable to objects with children) - `NORMAL` Darken: - `DARKEN` - `MULTIPLY` - `LINEAR_BURN` - `COLOR_BURN` Lighten: - `LIGHTEN` - `SCREEN` - `LINEAR_DODGE` - `COLOR_DODGE` Contrast: - `OVERLAY` - `SOFT_LIGHT` - `HARD_LIGHT` Inversion: - `DIFFERENCE` - `EXCLUSION` Component: - `HUE` - `SATURATION` - `COLOR` - `LUMINOSITY`
            - `opacity` number — Opacity of the node
            - `children` SubcanvasNode[], required — An array of nodes that are direct children of this node
            - `absoluteBoundingBox` Rectangle, required — A rectangle that expresses a bounding box in absolute coordinates.
              - …
            - `absoluteRenderBounds` Rectangle, required — A rectangle that expresses a bounding box in absolute coordinates.
              - …
            - `preserveRatio` boolean — Keep height and width constrained to same ratio.
            - `constraints` LayoutConstraint — Layout constraint relative to containing Frame
              - …
            - `relativeTransform` array[] — A transformation matrix is standard way in computer graphics to represent translation and rotation. These are the top two rows of a 3x3 matrix. The bottom row of the matrix is assumed to be [0, 0, 1]. This is known as an affine transform and is enough to represent translation, rotation, and skew. The identity transform is [[1, 0, 0], [0, 1, 0]]. A translation matrix will typically look like: ``` [[1, 0, tx], [0, 1, ty]] ``` and a rotation matrix will typically look like: ``` [[cos(angle), sin(angle), 0], [-sin(angle), cos(angle), 0]] ``` Another way to think about this transform is as three vectors: - The x axis (t[0][0], t[1][0]) - The y axis (t[0][1], t[1][1]) - The translation offset (t[0][2], t[1][2]) The most common usage of the Transform matrix is the `relativeTransform property`. This particular usage of the matrix has a few additional restrictions. The translation offset can take on any value but we do enforce that the axis vectors are unit vectors (i.e. have length 1). The axes are not required to be at 90° angles to each other.
              - …
            - `size` Vector — A 2d vector.
              - …
            - `layoutAlign` 'INHERIT' | 'STRETCH' | 'MIN' | 'CENTER' | 'MAX' — Determines if the layer should stretch along the parent's counter axis. This property is only provided for direct children of auto-layout frames. - `INHERIT` - `STRETCH` In previous versions of auto layout, determined how the layer is aligned inside an auto-layout frame. This property is only provided for direct children of auto-layout frames. - `MIN` - `CENTER` - `MAX` - `STRETCH` In horizontal auto-layout frames, "MIN" and "MAX" correspond to "TOP" and "BOTTOM". In vertical auto-layout frames, "MIN" and "MAX" correspond to "LEFT" and "RIGHT".
            - `layoutGrow` 0 | 1 — This property is applicable only for direct children of auto-layout frames, ignored otherwise. Determines whether a layer should stretch along the parent's primary axis. A `0` corresponds to a fixed size and `1` corresponds to stretch.
            - `layoutPositioning` 'AUTO' | 'ABSOLUTE' — Determines whether a layer's size and position should be determined by auto-layout settings or manually adjustable.
            - `minWidth` number — The minimum width of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `maxWidth` number — The maximum width of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `minHeight` number — The minimum height of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `maxHeight` number — The maximum height of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `layoutSizingHorizontal` 'FIXED' | 'HUG' | 'FILL' — The horizontal sizing setting on this auto-layout frame or frame child. - `FIXED` - `HUG`: only valid on auto-layout frames and text nodes - `FILL`: only valid on auto-layout frame children
            - `layoutSizingVertical` 'FIXED' | 'HUG' | 'FILL' — The vertical sizing setting on this auto-layout frame or frame child. - `FIXED` - `HUG`: only valid on auto-layout frames and text nodes - `FILL`: only valid on auto-layout frame children
            - `clipsContent` boolean, required — Whether or not this node clip content outside of its bounds
            - `background` Paint[] — Background of the node. This is deprecated, as backgrounds for frames are now in the `fills` field.
              - …
            - `backgroundColor` RGBA — An RGBA color
              - …
            - `layoutGrids` LayoutGrid[] — An array of layout grids attached to this node (see layout grids section for more details). GROUP nodes do not have this attribute
              - …
            - `overflowDirection` 'HORIZONTAL_SCROLLING' | 'VERTICAL_SCROLLING' | 'HORIZONTAL_AND_VERTICAL_SCROLLING' | 'NONE' — Whether a node has primary axis scrolling, horizontal or vertical.
            - `layoutMode` 'NONE' | 'HORIZONTAL' | 'VERTICAL' — Whether this layer uses auto-layout to position its children.
            - `primaryAxisSizingMode` 'FIXED' | 'AUTO' — Whether the primary axis has a fixed length (determined by the user) or an automatic length (determined by the layout engine). This property is only applicable for auto-layout frames.
            - `counterAxisSizingMode` 'FIXED' | 'AUTO' — Whether the counter axis has a fixed length (determined by the user) or an automatic length (determined by the layout engine). This property is only applicable for auto-layout frames.
            - `primaryAxisAlignItems` 'MIN' | 'CENTER' | 'MAX' | 'SPACE_BETWEEN' — Determines how the auto-layout frame's children should be aligned in the primary axis direction. This property is only applicable for auto-layout frames.
            - `counterAxisAlignItems` 'MIN' | 'CENTER' | 'MAX' | 'BASELINE' — Determines how the auto-layout frame's children should be aligned in the counter axis direction. This property is only applicable for auto-layout frames.
            - `paddingLeft` number — The padding between the left border of the frame and its children. This property is only applicable for auto-layout frames.
            - `paddingRight` number — The padding between the right border of the frame and its children. This property is only applicable for auto-layout frames.
            - `paddingTop` number — The padding between the top border of the frame and its children. This property is only applicable for auto-layout frames.
            - `paddingBottom` number — The padding between the bottom border of the frame and its children. This property is only applicable for auto-layout frames.
            - `itemSpacing` number — The distance between children of the frame. Can be negative. This property is only applicable for auto-layout frames.
            - `itemReverseZIndex` boolean — Determines the canvas stacking order of layers in this frame. When true, the first layer will be draw on top. This property is only applicable for auto-layout frames.
            - `strokesIncludedInLayout` boolean — Determines whether strokes are included in layout calculations. When true, auto-layout frames behave like css "box-sizing: border-box". This property is only applicable for auto-layout frames.
            - `layoutWrap` 'NO_WRAP' | 'WRAP' — Whether this auto-layout frame has wrapping enabled.
            - `counterAxisSpacing` number — The distance between wrapped tracks of an auto-layout frame. This property is only applicable for auto-layout frames with `layoutWrap: "WRAP"`
            - `counterAxisAlignContent` 'AUTO' | 'SPACE_BETWEEN' — Determines how the auto-layout frame’s wrapped tracks should be aligned in the counter axis direction. This property is only applicable for auto-layout frames with `layoutWrap: "WRAP"`.
            - `cornerRadius` number — Radius of each corner if a single radius is set for all corners
            - `cornerSmoothing` number — A value that lets you control how "smooth" the corners are. Ranges from 0 to 1. 0 is the default and means that the corner is perfectly circular. A value of 0.6 means the corner matches the iOS 7 "squircle" icon shape. Other values produce various other curves.
            - `rectangleCornerRadii` number[] — Array of length 4 of the radius of each corner of the frame, starting in the top left and proceeding clockwise. Values are given in the order top-left, top-right, bottom-right, bottom-left.
            - `fills` Paint[], required — An array of fill paints applied to the node.
              - …
            - `styles` object — A mapping of a StyleType to style ID (see Style) of styles present on this node. The style ID can be used to look up more information about the style in the top-level styles field.
            - `strokes` Paint[] — An array of stroke paints applied to the node.
              - …
            - `strokeWeight` number — The weight of strokes on the node.
            - `strokeAlign` 'INSIDE' | 'OUTSIDE' | 'CENTER' — Position of stroke relative to vector outline, as a string enum - `INSIDE`: stroke drawn inside the shape boundary - `OUTSIDE`: stroke drawn outside the shape boundary - `CENTER`: stroke drawn centered along the shape boundary
            - `strokeJoin` 'MITER' | 'BEVEL' | 'ROUND' — A string enum with value of "MITER", "BEVEL", or "ROUND", describing how corners in vector paths are rendered.
            - `strokeDashes` number[] — An array of floating point numbers describing the pattern of dash length and gap lengths that the vector stroke will use when drawn. For example a value of [1, 2] indicates that the stroke will be drawn with a dash of length 1 followed by a gap of length 2, repeated.
            - `fillOverrideTable` object — Map from ID to PaintOverride for looking up fill overrides. To see which regions are overriden, you must use the `geometry=paths` option. Each path returned may have an `overrideID` which maps to this table.
            - `fillGeometry` Path[] — Only specified if parameter `geometry=paths` is used. An array of paths representing the object fill.
              - …
            - `strokeGeometry` Path[] — Only specified if parameter `geometry=paths` is used. An array of paths representing the object stroke.
              - …
            - `strokeCap` 'NONE' | 'ROUND' | 'SQUARE' | 'LINE_ARROW' | 'TRIANGLE_ARROW' | 'DIAMOND_FILLED' | 'CIRCLE_FILLED' | 'TRIANGLE_FILLED' | 'WASHI_TAPE_1' | 'WASHI_TAPE_2' | 'WASHI_TAPE_3' | 'WASHI_TAPE_4' | 'WASHI_TAPE_5' | 'WASHI_TAPE_6' — A string enum describing the end caps of vector paths.
            - `strokeMiterAngle` number — Only valid if `strokeJoin` is "MITER". The corner angle, in degrees, below which `strokeJoin` will be set to "BEVEL" to avoid super sharp corners. By default this is 28.96 degrees.
            - `exportSettings` ExportSetting[] — An array of export settings representing images to export from the node.
              - …
            - `effects` Effect[], required — An array of effects attached to this node (see effects section for more details)
              - …
            - `isMask` boolean — Does this node mask sibling nodes in front of it?
            - `maskType` 'ALPHA' | 'VECTOR' | 'LUMINANCE' — If this layer is a mask, this property describes the operation used to mask the layer's siblings. The value may be one of the following: - ALPHA: the mask node's alpha channel will be used to determine the opacity of each pixel in the masked result. - VECTOR: if the mask node has visible fill paints, every pixel inside the node's fill regions will be fully visible in the masked result. If the mask has visible stroke paints, every pixel inside the node's stroke regions will be fully visible in the masked result. - LUMINANCE: the luminance value of each pixel of the mask node will be used to determine the opacity of that pixel in the masked result.
            - `isMaskOutline` boolean — True if maskType is VECTOR. This field is deprecated; use maskType instead.
            - `transitionNodeID` string — Node ID of node to transition to in prototyping
            - `transitionDuration` number — The duration of the prototyping transition on this node (in milliseconds). This will override the default transition duration on the prototype, for this node.
            - `transitionEasing` 'EASE_IN' | 'EASE_OUT' | 'EASE_IN_AND_OUT' | 'LINEAR' | 'EASE_IN_BACK' | 'EASE_OUT_BACK' | 'EASE_IN_AND_OUT_BACK' | 'CUSTOM_CUBIC_BEZIER' | 'GENTLE' | 'QUICK' | 'BOUNCY' | 'SLOW' | 'CUSTOM_SPRING' — This type is a string enum with the following possible values: - `EASE_IN`: Ease in with an animation curve similar to CSS ease-in. - `EASE_OUT`: Ease out with an animation curve similar to CSS ease-out. - `EASE_IN_AND_OUT`: Ease in and then out with an animation curve similar to CSS ease-in-out. - `LINEAR`: No easing, similar to CSS linear. - `EASE_IN_BACK`: Ease in with an animation curve that moves past the initial keyframe's value and then accelerates as it reaches the end. - `EASE_OUT_BACK`: Ease out with an animation curve that starts fast, then slows and goes past the ending keyframe's value. - `EASE_IN_AND_OUT_BACK`: Ease in and then out with an animation curve that overshoots the initial keyframe's value, then accelerates quickly before it slows and overshoots the ending keyframes value. - `CUSTOM_CUBIC_BEZIER`: User-defined cubic bezier curve. - `GENTLE`: Gentle animation similar to react-spring. - `QUICK`: Quick spring animation, great for toasts and notifications. - `BOUNCY`: Bouncy spring, for delightful animations like a heart bounce. - `SLOW`: Slow spring, useful as a steady, natural way to scale up fullscreen content. - `CUSTOM_SPRING`: User-defined spring animation.
            - `interactions` Interaction[]
              - …
            - `individualStrokeWeights` StrokeWeights — Individual stroke weights
              - …
            - `devStatus` object — Represents whether or not a node has a particular handoff (or dev) status applied to it.
              - …
          - InstanceNode
            - `type` 'INSTANCE', required — The type of the node
            - `componentId` string, required — ID of component that this instance came from.
            - `isExposedInstance` boolean — If true, this node has been marked as exposed to its containing component or component set.
            - `exposedInstances` string[] — IDs of instances that have been exposed to this node's level.
            - `componentProperties` object — A mapping of name to `ComponentProperty` for all component properties on this instance. Each property has a type, value, and other optional values.
            - `overrides` Overrides[], required — An array of all of the fields directly overridden on this instance. Inherited overrides are not included.
              - …
            - `id` string, required — A string uniquely identifying this node within the document.
            - `name` string, required — The name given to the node by the user in the tool.
            - `visible` boolean — Whether or not the node is visible on the canvas.
            - `locked` boolean — If true, layer is locked and cannot be edited
            - `isFixed` boolean — Whether the layer is fixed while the parent is scrolling
            - `scrollBehavior` 'SCROLLS' | 'FIXED' | 'STICKY_SCROLLS', required — How layer should be treated when the frame is resized
            - `rotation` number — The rotation of the node, if not 0.
            - `componentPropertyReferences` object — A mapping of a layer's property to component property name of component properties attached to this node. The component property name can be used to look up more information on the corresponding component's or component set's componentPropertyDefinitions.
            - `pluginData` unknown
            - `sharedPluginData` unknown
            - `boundVariables` object — A mapping of field to the variables applied to this field. Most fields will only map to a single `VariableAlias`. However, for properties like `fills`, `strokes`, `size`, `componentProperties`, and `textRangeFills`, it is possible to have multiple variables bound to the field.
              - …
            - `explicitVariableModes` object — A mapping of variable collection ID to mode ID representing the explicitly set modes for this node.
            - `blendMode` 'PASS_THROUGH' | 'NORMAL' | 'DARKEN' | 'MULTIPLY' | 'LINEAR_BURN' | 'COLOR_BURN' | 'LIGHTEN' | 'SCREEN' | 'LINEAR_DODGE' | 'COLOR_DODGE' | 'OVERLAY' | 'SOFT_LIGHT' | 'HARD_LIGHT' | 'DIFFERENCE' | 'EXCLUSION' | 'HUE' | 'SATURATION' | 'COLOR' | 'LUMINOSITY', required — This type is a string enum with the following possible values Normal blends: - `PASS_THROUGH` (only applicable to objects with children) - `NORMAL` Darken: - `DARKEN` - `MULTIPLY` - `LINEAR_BURN` - `COLOR_BURN` Lighten: - `LIGHTEN` - `SCREEN` - `LINEAR_DODGE` - `COLOR_DODGE` Contrast: - `OVERLAY` - `SOFT_LIGHT` - `HARD_LIGHT` Inversion: - `DIFFERENCE` - `EXCLUSION` Component: - `HUE` - `SATURATION` - `COLOR` - `LUMINOSITY`
            - `opacity` number — Opacity of the node
            - `children` SubcanvasNode[], required — An array of nodes that are direct children of this node
            - `absoluteBoundingBox` Rectangle, required — A rectangle that expresses a bounding box in absolute coordinates.
              - …
            - `absoluteRenderBounds` Rectangle, required — A rectangle that expresses a bounding box in absolute coordinates.
              - …
            - `preserveRatio` boolean — Keep height and width constrained to same ratio.
            - `constraints` LayoutConstraint — Layout constraint relative to containing Frame
              - …
            - `relativeTransform` array[] — A transformation matrix is standard way in computer graphics to represent translation and rotation. These are the top two rows of a 3x3 matrix. The bottom row of the matrix is assumed to be [0, 0, 1]. This is known as an affine transform and is enough to represent translation, rotation, and skew. The identity transform is [[1, 0, 0], [0, 1, 0]]. A translation matrix will typically look like: ``` [[1, 0, tx], [0, 1, ty]] ``` and a rotation matrix will typically look like: ``` [[cos(angle), sin(angle), 0], [-sin(angle), cos(angle), 0]] ``` Another way to think about this transform is as three vectors: - The x axis (t[0][0], t[1][0]) - The y axis (t[0][1], t[1][1]) - The translation offset (t[0][2], t[1][2]) The most common usage of the Transform matrix is the `relativeTransform property`. This particular usage of the matrix has a few additional restrictions. The translation offset can take on any value but we do enforce that the axis vectors are unit vectors (i.e. have length 1). The axes are not required to be at 90° angles to each other.
              - …
            - `size` Vector — A 2d vector.
              - …
            - `layoutAlign` 'INHERIT' | 'STRETCH' | 'MIN' | 'CENTER' | 'MAX' — Determines if the layer should stretch along the parent's counter axis. This property is only provided for direct children of auto-layout frames. - `INHERIT` - `STRETCH` In previous versions of auto layout, determined how the layer is aligned inside an auto-layout frame. This property is only provided for direct children of auto-layout frames. - `MIN` - `CENTER` - `MAX` - `STRETCH` In horizontal auto-layout frames, "MIN" and "MAX" correspond to "TOP" and "BOTTOM". In vertical auto-layout frames, "MIN" and "MAX" correspond to "LEFT" and "RIGHT".
            - `layoutGrow` 0 | 1 — This property is applicable only for direct children of auto-layout frames, ignored otherwise. Determines whether a layer should stretch along the parent's primary axis. A `0` corresponds to a fixed size and `1` corresponds to stretch.
            - `layoutPositioning` 'AUTO' | 'ABSOLUTE' — Determines whether a layer's size and position should be determined by auto-layout settings or manually adjustable.
            - `minWidth` number — The minimum width of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `maxWidth` number — The maximum width of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `minHeight` number — The minimum height of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `maxHeight` number — The maximum height of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `layoutSizingHorizontal` 'FIXED' | 'HUG' | 'FILL' — The horizontal sizing setting on this auto-layout frame or frame child. - `FIXED` - `HUG`: only valid on auto-layout frames and text nodes - `FILL`: only valid on auto-layout frame children
            - `layoutSizingVertical` 'FIXED' | 'HUG' | 'FILL' — The vertical sizing setting on this auto-layout frame or frame child. - `FIXED` - `HUG`: only valid on auto-layout frames and text nodes - `FILL`: only valid on auto-layout frame children
            - `clipsContent` boolean, required — Whether or not this node clip content outside of its bounds
            - `background` Paint[] — Background of the node. This is deprecated, as backgrounds for frames are now in the `fills` field.
              - …
            - `backgroundColor` RGBA — An RGBA color
              - …
            - `layoutGrids` LayoutGrid[] — An array of layout grids attached to this node (see layout grids section for more details). GROUP nodes do not have this attribute
              - …
            - `overflowDirection` 'HORIZONTAL_SCROLLING' | 'VERTICAL_SCROLLING' | 'HORIZONTAL_AND_VERTICAL_SCROLLING' | 'NONE' — Whether a node has primary axis scrolling, horizontal or vertical.
            - `layoutMode` 'NONE' | 'HORIZONTAL' | 'VERTICAL' — Whether this layer uses auto-layout to position its children.
            - `primaryAxisSizingMode` 'FIXED' | 'AUTO' — Whether the primary axis has a fixed length (determined by the user) or an automatic length (determined by the layout engine). This property is only applicable for auto-layout frames.
            - `counterAxisSizingMode` 'FIXED' | 'AUTO' — Whether the counter axis has a fixed length (determined by the user) or an automatic length (determined by the layout engine). This property is only applicable for auto-layout frames.
            - `primaryAxisAlignItems` 'MIN' | 'CENTER' | 'MAX' | 'SPACE_BETWEEN' — Determines how the auto-layout frame's children should be aligned in the primary axis direction. This property is only applicable for auto-layout frames.
            - `counterAxisAlignItems` 'MIN' | 'CENTER' | 'MAX' | 'BASELINE' — Determines how the auto-layout frame's children should be aligned in the counter axis direction. This property is only applicable for auto-layout frames.
            - `paddingLeft` number — The padding between the left border of the frame and its children. This property is only applicable for auto-layout frames.
            - `paddingRight` number — The padding between the right border of the frame and its children. This property is only applicable for auto-layout frames.
            - `paddingTop` number — The padding between the top border of the frame and its children. This property is only applicable for auto-layout frames.
            - `paddingBottom` number — The padding between the bottom border of the frame and its children. This property is only applicable for auto-layout frames.
            - `itemSpacing` number — The distance between children of the frame. Can be negative. This property is only applicable for auto-layout frames.
            - `itemReverseZIndex` boolean — Determines the canvas stacking order of layers in this frame. When true, the first layer will be draw on top. This property is only applicable for auto-layout frames.
            - `strokesIncludedInLayout` boolean — Determines whether strokes are included in layout calculations. When true, auto-layout frames behave like css "box-sizing: border-box". This property is only applicable for auto-layout frames.
            - `layoutWrap` 'NO_WRAP' | 'WRAP' — Whether this auto-layout frame has wrapping enabled.
            - `counterAxisSpacing` number — The distance between wrapped tracks of an auto-layout frame. This property is only applicable for auto-layout frames with `layoutWrap: "WRAP"`
            - `counterAxisAlignContent` 'AUTO' | 'SPACE_BETWEEN' — Determines how the auto-layout frame’s wrapped tracks should be aligned in the counter axis direction. This property is only applicable for auto-layout frames with `layoutWrap: "WRAP"`.
            - `cornerRadius` number — Radius of each corner if a single radius is set for all corners
            - `cornerSmoothing` number — A value that lets you control how "smooth" the corners are. Ranges from 0 to 1. 0 is the default and means that the corner is perfectly circular. A value of 0.6 means the corner matches the iOS 7 "squircle" icon shape. Other values produce various other curves.
            - `rectangleCornerRadii` number[] — Array of length 4 of the radius of each corner of the frame, starting in the top left and proceeding clockwise. Values are given in the order top-left, top-right, bottom-right, bottom-left.
            - `fills` Paint[], required — An array of fill paints applied to the node.
              - …
            - `styles` object — A mapping of a StyleType to style ID (see Style) of styles present on this node. The style ID can be used to look up more information about the style in the top-level styles field.
            - `strokes` Paint[] — An array of stroke paints applied to the node.
              - …
            - `strokeWeight` number — The weight of strokes on the node.
            - `strokeAlign` 'INSIDE' | 'OUTSIDE' | 'CENTER' — Position of stroke relative to vector outline, as a string enum - `INSIDE`: stroke drawn inside the shape boundary - `OUTSIDE`: stroke drawn outside the shape boundary - `CENTER`: stroke drawn centered along the shape boundary
            - `strokeJoin` 'MITER' | 'BEVEL' | 'ROUND' — A string enum with value of "MITER", "BEVEL", or "ROUND", describing how corners in vector paths are rendered.
            - `strokeDashes` number[] — An array of floating point numbers describing the pattern of dash length and gap lengths that the vector stroke will use when drawn. For example a value of [1, 2] indicates that the stroke will be drawn with a dash of length 1 followed by a gap of length 2, repeated.
            - `fillOverrideTable` object — Map from ID to PaintOverride for looking up fill overrides. To see which regions are overriden, you must use the `geometry=paths` option. Each path returned may have an `overrideID` which maps to this table.
            - `fillGeometry` Path[] — Only specified if parameter `geometry=paths` is used. An array of paths representing the object fill.
              - …
            - `strokeGeometry` Path[] — Only specified if parameter `geometry=paths` is used. An array of paths representing the object stroke.
              - …
            - `strokeCap` 'NONE' | 'ROUND' | 'SQUARE' | 'LINE_ARROW' | 'TRIANGLE_ARROW' | 'DIAMOND_FILLED' | 'CIRCLE_FILLED' | 'TRIANGLE_FILLED' | 'WASHI_TAPE_1' | 'WASHI_TAPE_2' | 'WASHI_TAPE_3' | 'WASHI_TAPE_4' | 'WASHI_TAPE_5' | 'WASHI_TAPE_6' — A string enum describing the end caps of vector paths.
            - `strokeMiterAngle` number — Only valid if `strokeJoin` is "MITER". The corner angle, in degrees, below which `strokeJoin` will be set to "BEVEL" to avoid super sharp corners. By default this is 28.96 degrees.
            - `exportSettings` ExportSetting[] — An array of export settings representing images to export from the node.
              - …
            - `effects` Effect[], required — An array of effects attached to this node (see effects section for more details)
              - …
            - `isMask` boolean — Does this node mask sibling nodes in front of it?
            - `maskType` 'ALPHA' | 'VECTOR' | 'LUMINANCE' — If this layer is a mask, this property describes the operation used to mask the layer's siblings. The value may be one of the following: - ALPHA: the mask node's alpha channel will be used to determine the opacity of each pixel in the masked result. - VECTOR: if the mask node has visible fill paints, every pixel inside the node's fill regions will be fully visible in the masked result. If the mask has visible stroke paints, every pixel inside the node's stroke regions will be fully visible in the masked result. - LUMINANCE: the luminance value of each pixel of the mask node will be used to determine the opacity of that pixel in the masked result.
            - `isMaskOutline` boolean — True if maskType is VECTOR. This field is deprecated; use maskType instead.
            - `transitionNodeID` string — Node ID of node to transition to in prototyping
            - `transitionDuration` number — The duration of the prototyping transition on this node (in milliseconds). This will override the default transition duration on the prototype, for this node.
            - `transitionEasing` 'EASE_IN' | 'EASE_OUT' | 'EASE_IN_AND_OUT' | 'LINEAR' | 'EASE_IN_BACK' | 'EASE_OUT_BACK' | 'EASE_IN_AND_OUT_BACK' | 'CUSTOM_CUBIC_BEZIER' | 'GENTLE' | 'QUICK' | 'BOUNCY' | 'SLOW' | 'CUSTOM_SPRING' — This type is a string enum with the following possible values: - `EASE_IN`: Ease in with an animation curve similar to CSS ease-in. - `EASE_OUT`: Ease out with an animation curve similar to CSS ease-out. - `EASE_IN_AND_OUT`: Ease in and then out with an animation curve similar to CSS ease-in-out. - `LINEAR`: No easing, similar to CSS linear. - `EASE_IN_BACK`: Ease in with an animation curve that moves past the initial keyframe's value and then accelerates as it reaches the end. - `EASE_OUT_BACK`: Ease out with an animation curve that starts fast, then slows and goes past the ending keyframe's value. - `EASE_IN_AND_OUT_BACK`: Ease in and then out with an animation curve that overshoots the initial keyframe's value, then accelerates quickly before it slows and overshoots the ending keyframes value. - `CUSTOM_CUBIC_BEZIER`: User-defined cubic bezier curve. - `GENTLE`: Gentle animation similar to react-spring. - `QUICK`: Quick spring animation, great for toasts and notifications. - `BOUNCY`: Bouncy spring, for delightful animations like a heart bounce. - `SLOW`: Slow spring, useful as a steady, natural way to scale up fullscreen content. - `CUSTOM_SPRING`: User-defined spring animation.
            - `interactions` Interaction[]
              - …
            - `individualStrokeWeights` StrokeWeights — Individual stroke weights
              - …
            - `devStatus` object — Represents whether or not a node has a particular handoff (or dev) status applied to it.
              - …
          - LineNode
            - `type` 'LINE', required — The type of the node
            - `id` string, required — A string uniquely identifying this node within the document.
            - `name` string, required — The name given to the node by the user in the tool.
            - `visible` boolean — Whether or not the node is visible on the canvas.
            - `locked` boolean — If true, layer is locked and cannot be edited
            - `isFixed` boolean — Whether the layer is fixed while the parent is scrolling
            - `scrollBehavior` 'SCROLLS' | 'FIXED' | 'STICKY_SCROLLS', required — How layer should be treated when the frame is resized
            - `rotation` number — The rotation of the node, if not 0.
            - `componentPropertyReferences` object — A mapping of a layer's property to component property name of component properties attached to this node. The component property name can be used to look up more information on the corresponding component's or component set's componentPropertyDefinitions.
            - `pluginData` unknown
            - `sharedPluginData` unknown
            - `boundVariables` object — A mapping of field to the variables applied to this field. Most fields will only map to a single `VariableAlias`. However, for properties like `fills`, `strokes`, `size`, `componentProperties`, and `textRangeFills`, it is possible to have multiple variables bound to the field.
              - …
            - `explicitVariableModes` object — A mapping of variable collection ID to mode ID representing the explicitly set modes for this node.
            - `blendMode` 'PASS_THROUGH' | 'NORMAL' | 'DARKEN' | 'MULTIPLY' | 'LINEAR_BURN' | 'COLOR_BURN' | 'LIGHTEN' | 'SCREEN' | 'LINEAR_DODGE' | 'COLOR_DODGE' | 'OVERLAY' | 'SOFT_LIGHT' | 'HARD_LIGHT' | 'DIFFERENCE' | 'EXCLUSION' | 'HUE' | 'SATURATION' | 'COLOR' | 'LUMINOSITY', required — This type is a string enum with the following possible values Normal blends: - `PASS_THROUGH` (only applicable to objects with children) - `NORMAL` Darken: - `DARKEN` - `MULTIPLY` - `LINEAR_BURN` - `COLOR_BURN` Lighten: - `LIGHTEN` - `SCREEN` - `LINEAR_DODGE` - `COLOR_DODGE` Contrast: - `OVERLAY` - `SOFT_LIGHT` - `HARD_LIGHT` Inversion: - `DIFFERENCE` - `EXCLUSION` Component: - `HUE` - `SATURATION` - `COLOR` - `LUMINOSITY`
            - `opacity` number — Opacity of the node
            - `absoluteBoundingBox` Rectangle, required — A rectangle that expresses a bounding box in absolute coordinates.
              - …
            - `absoluteRenderBounds` Rectangle, required — A rectangle that expresses a bounding box in absolute coordinates.
              - …
            - `preserveRatio` boolean — Keep height and width constrained to same ratio.
            - `constraints` LayoutConstraint — Layout constraint relative to containing Frame
              - …
            - `relativeTransform` array[] — A transformation matrix is standard way in computer graphics to represent translation and rotation. These are the top two rows of a 3x3 matrix. The bottom row of the matrix is assumed to be [0, 0, 1]. This is known as an affine transform and is enough to represent translation, rotation, and skew. The identity transform is [[1, 0, 0], [0, 1, 0]]. A translation matrix will typically look like: ``` [[1, 0, tx], [0, 1, ty]] ``` and a rotation matrix will typically look like: ``` [[cos(angle), sin(angle), 0], [-sin(angle), cos(angle), 0]] ``` Another way to think about this transform is as three vectors: - The x axis (t[0][0], t[1][0]) - The y axis (t[0][1], t[1][1]) - The translation offset (t[0][2], t[1][2]) The most common usage of the Transform matrix is the `relativeTransform property`. This particular usage of the matrix has a few additional restrictions. The translation offset can take on any value but we do enforce that the axis vectors are unit vectors (i.e. have length 1). The axes are not required to be at 90° angles to each other.
              - …
            - `size` Vector — A 2d vector.
              - …
            - `layoutAlign` 'INHERIT' | 'STRETCH' | 'MIN' | 'CENTER' | 'MAX' — Determines if the layer should stretch along the parent's counter axis. This property is only provided for direct children of auto-layout frames. - `INHERIT` - `STRETCH` In previous versions of auto layout, determined how the layer is aligned inside an auto-layout frame. This property is only provided for direct children of auto-layout frames. - `MIN` - `CENTER` - `MAX` - `STRETCH` In horizontal auto-layout frames, "MIN" and "MAX" correspond to "TOP" and "BOTTOM". In vertical auto-layout frames, "MIN" and "MAX" correspond to "LEFT" and "RIGHT".
            - `layoutGrow` 0 | 1 — This property is applicable only for direct children of auto-layout frames, ignored otherwise. Determines whether a layer should stretch along the parent's primary axis. A `0` corresponds to a fixed size and `1` corresponds to stretch.
            - `layoutPositioning` 'AUTO' | 'ABSOLUTE' — Determines whether a layer's size and position should be determined by auto-layout settings or manually adjustable.
            - `minWidth` number — The minimum width of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `maxWidth` number — The maximum width of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `minHeight` number — The minimum height of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `maxHeight` number — The maximum height of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `layoutSizingHorizontal` 'FIXED' | 'HUG' | 'FILL' — The horizontal sizing setting on this auto-layout frame or frame child. - `FIXED` - `HUG`: only valid on auto-layout frames and text nodes - `FILL`: only valid on auto-layout frame children
            - `layoutSizingVertical` 'FIXED' | 'HUG' | 'FILL' — The vertical sizing setting on this auto-layout frame or frame child. - `FIXED` - `HUG`: only valid on auto-layout frames and text nodes - `FILL`: only valid on auto-layout frame children
            - `fills` Paint[], required — An array of fill paints applied to the node.
              - …
            - `styles` object — A mapping of a StyleType to style ID (see Style) of styles present on this node. The style ID can be used to look up more information about the style in the top-level styles field.
            - `strokes` Paint[] — An array of stroke paints applied to the node.
              - …
            - `strokeWeight` number — The weight of strokes on the node.
            - `strokeAlign` 'INSIDE' | 'OUTSIDE' | 'CENTER' — Position of stroke relative to vector outline, as a string enum - `INSIDE`: stroke drawn inside the shape boundary - `OUTSIDE`: stroke drawn outside the shape boundary - `CENTER`: stroke drawn centered along the shape boundary
            - `strokeJoin` 'MITER' | 'BEVEL' | 'ROUND' — A string enum with value of "MITER", "BEVEL", or "ROUND", describing how corners in vector paths are rendered.
            - `strokeDashes` number[] — An array of floating point numbers describing the pattern of dash length and gap lengths that the vector stroke will use when drawn. For example a value of [1, 2] indicates that the stroke will be drawn with a dash of length 1 followed by a gap of length 2, repeated.
            - `fillOverrideTable` object — Map from ID to PaintOverride for looking up fill overrides. To see which regions are overriden, you must use the `geometry=paths` option. Each path returned may have an `overrideID` which maps to this table.
            - `fillGeometry` Path[] — Only specified if parameter `geometry=paths` is used. An array of paths representing the object fill.
              - …
            - `strokeGeometry` Path[] — Only specified if parameter `geometry=paths` is used. An array of paths representing the object stroke.
              - …
            - `strokeCap` 'NONE' | 'ROUND' | 'SQUARE' | 'LINE_ARROW' | 'TRIANGLE_ARROW' | 'DIAMOND_FILLED' | 'CIRCLE_FILLED' | 'TRIANGLE_FILLED' | 'WASHI_TAPE_1' | 'WASHI_TAPE_2' | 'WASHI_TAPE_3' | 'WASHI_TAPE_4' | 'WASHI_TAPE_5' | 'WASHI_TAPE_6' — A string enum describing the end caps of vector paths.
            - `strokeMiterAngle` number — Only valid if `strokeJoin` is "MITER". The corner angle, in degrees, below which `strokeJoin` will be set to "BEVEL" to avoid super sharp corners. By default this is 28.96 degrees.
            - `exportSettings` ExportSetting[] — An array of export settings representing images to export from the node.
              - …
            - `effects` Effect[], required — An array of effects attached to this node (see effects section for more details)
              - …
            - `isMask` boolean — Does this node mask sibling nodes in front of it?
            - `maskType` 'ALPHA' | 'VECTOR' | 'LUMINANCE' — If this layer is a mask, this property describes the operation used to mask the layer's siblings. The value may be one of the following: - ALPHA: the mask node's alpha channel will be used to determine the opacity of each pixel in the masked result. - VECTOR: if the mask node has visible fill paints, every pixel inside the node's fill regions will be fully visible in the masked result. If the mask has visible stroke paints, every pixel inside the node's stroke regions will be fully visible in the masked result. - LUMINANCE: the luminance value of each pixel of the mask node will be used to determine the opacity of that pixel in the masked result.
            - `isMaskOutline` boolean — True if maskType is VECTOR. This field is deprecated; use maskType instead.
            - `transitionNodeID` string — Node ID of node to transition to in prototyping
            - `transitionDuration` number — The duration of the prototyping transition on this node (in milliseconds). This will override the default transition duration on the prototype, for this node.
            - `transitionEasing` 'EASE_IN' | 'EASE_OUT' | 'EASE_IN_AND_OUT' | 'LINEAR' | 'EASE_IN_BACK' | 'EASE_OUT_BACK' | 'EASE_IN_AND_OUT_BACK' | 'CUSTOM_CUBIC_BEZIER' | 'GENTLE' | 'QUICK' | 'BOUNCY' | 'SLOW' | 'CUSTOM_SPRING' — This type is a string enum with the following possible values: - `EASE_IN`: Ease in with an animation curve similar to CSS ease-in. - `EASE_OUT`: Ease out with an animation curve similar to CSS ease-out. - `EASE_IN_AND_OUT`: Ease in and then out with an animation curve similar to CSS ease-in-out. - `LINEAR`: No easing, similar to CSS linear. - `EASE_IN_BACK`: Ease in with an animation curve that moves past the initial keyframe's value and then accelerates as it reaches the end. - `EASE_OUT_BACK`: Ease out with an animation curve that starts fast, then slows and goes past the ending keyframe's value. - `EASE_IN_AND_OUT_BACK`: Ease in and then out with an animation curve that overshoots the initial keyframe's value, then accelerates quickly before it slows and overshoots the ending keyframes value. - `CUSTOM_CUBIC_BEZIER`: User-defined cubic bezier curve. - `GENTLE`: Gentle animation similar to react-spring. - `QUICK`: Quick spring animation, great for toasts and notifications. - `BOUNCY`: Bouncy spring, for delightful animations like a heart bounce. - `SLOW`: Slow spring, useful as a steady, natural way to scale up fullscreen content. - `CUSTOM_SPRING`: User-defined spring animation.
            - `interactions` Interaction[]
              - …
          - LinkUnfurlNode
            - `type` 'LINK_UNFURL', required — The type of the node
            - `id` string, required — A string uniquely identifying this node within the document.
            - `name` string, required — The name given to the node by the user in the tool.
            - `visible` boolean — Whether or not the node is visible on the canvas.
            - `locked` boolean — If true, layer is locked and cannot be edited
            - `isFixed` boolean — Whether the layer is fixed while the parent is scrolling
            - `scrollBehavior` 'SCROLLS' | 'FIXED' | 'STICKY_SCROLLS', required — How layer should be treated when the frame is resized
            - `rotation` number — The rotation of the node, if not 0.
            - `componentPropertyReferences` object — A mapping of a layer's property to component property name of component properties attached to this node. The component property name can be used to look up more information on the corresponding component's or component set's componentPropertyDefinitions.
            - `pluginData` unknown
            - `sharedPluginData` unknown
            - `boundVariables` object — A mapping of field to the variables applied to this field. Most fields will only map to a single `VariableAlias`. However, for properties like `fills`, `strokes`, `size`, `componentProperties`, and `textRangeFills`, it is possible to have multiple variables bound to the field.
              - …
            - `explicitVariableModes` object — A mapping of variable collection ID to mode ID representing the explicitly set modes for this node.
            - `exportSettings` ExportSetting[] — An array of export settings representing images to export from the node.
              - …
          - RectangleNode
            - `type` 'RECTANGLE', required — The type of the node
            - `id` string, required — A string uniquely identifying this node within the document.
            - `name` string, required — The name given to the node by the user in the tool.
            - `visible` boolean — Whether or not the node is visible on the canvas.
            - `locked` boolean — If true, layer is locked and cannot be edited
            - `isFixed` boolean — Whether the layer is fixed while the parent is scrolling
            - `scrollBehavior` 'SCROLLS' | 'FIXED' | 'STICKY_SCROLLS', required — How layer should be treated when the frame is resized
            - `rotation` number — The rotation of the node, if not 0.
            - `componentPropertyReferences` object — A mapping of a layer's property to component property name of component properties attached to this node. The component property name can be used to look up more information on the corresponding component's or component set's componentPropertyDefinitions.
            - `pluginData` unknown
            - `sharedPluginData` unknown
            - `boundVariables` object — A mapping of field to the variables applied to this field. Most fields will only map to a single `VariableAlias`. However, for properties like `fills`, `strokes`, `size`, `componentProperties`, and `textRangeFills`, it is possible to have multiple variables bound to the field.
              - …
            - `explicitVariableModes` object — A mapping of variable collection ID to mode ID representing the explicitly set modes for this node.
            - `blendMode` 'PASS_THROUGH' | 'NORMAL' | 'DARKEN' | 'MULTIPLY' | 'LINEAR_BURN' | 'COLOR_BURN' | 'LIGHTEN' | 'SCREEN' | 'LINEAR_DODGE' | 'COLOR_DODGE' | 'OVERLAY' | 'SOFT_LIGHT' | 'HARD_LIGHT' | 'DIFFERENCE' | 'EXCLUSION' | 'HUE' | 'SATURATION' | 'COLOR' | 'LUMINOSITY', required — This type is a string enum with the following possible values Normal blends: - `PASS_THROUGH` (only applicable to objects with children) - `NORMAL` Darken: - `DARKEN` - `MULTIPLY` - `LINEAR_BURN` - `COLOR_BURN` Lighten: - `LIGHTEN` - `SCREEN` - `LINEAR_DODGE` - `COLOR_DODGE` Contrast: - `OVERLAY` - `SOFT_LIGHT` - `HARD_LIGHT` Inversion: - `DIFFERENCE` - `EXCLUSION` Component: - `HUE` - `SATURATION` - `COLOR` - `LUMINOSITY`
            - `opacity` number — Opacity of the node
            - `absoluteBoundingBox` Rectangle, required — A rectangle that expresses a bounding box in absolute coordinates.
              - …
            - `absoluteRenderBounds` Rectangle, required — A rectangle that expresses a bounding box in absolute coordinates.
              - …
            - `preserveRatio` boolean — Keep height and width constrained to same ratio.
            - `constraints` LayoutConstraint — Layout constraint relative to containing Frame
              - …
            - `relativeTransform` array[] — A transformation matrix is standard way in computer graphics to represent translation and rotation. These are the top two rows of a 3x3 matrix. The bottom row of the matrix is assumed to be [0, 0, 1]. This is known as an affine transform and is enough to represent translation, rotation, and skew. The identity transform is [[1, 0, 0], [0, 1, 0]]. A translation matrix will typically look like: ``` [[1, 0, tx], [0, 1, ty]] ``` and a rotation matrix will typically look like: ``` [[cos(angle), sin(angle), 0], [-sin(angle), cos(angle), 0]] ``` Another way to think about this transform is as three vectors: - The x axis (t[0][0], t[1][0]) - The y axis (t[0][1], t[1][1]) - The translation offset (t[0][2], t[1][2]) The most common usage of the Transform matrix is the `relativeTransform property`. This particular usage of the matrix has a few additional restrictions. The translation offset can take on any value but we do enforce that the axis vectors are unit vectors (i.e. have length 1). The axes are not required to be at 90° angles to each other.
              - …
            - `size` Vector — A 2d vector.
              - …
            - `layoutAlign` 'INHERIT' | 'STRETCH' | 'MIN' | 'CENTER' | 'MAX' — Determines if the layer should stretch along the parent's counter axis. This property is only provided for direct children of auto-layout frames. - `INHERIT` - `STRETCH` In previous versions of auto layout, determined how the layer is aligned inside an auto-layout frame. This property is only provided for direct children of auto-layout frames. - `MIN` - `CENTER` - `MAX` - `STRETCH` In horizontal auto-layout frames, "MIN" and "MAX" correspond to "TOP" and "BOTTOM". In vertical auto-layout frames, "MIN" and "MAX" correspond to "LEFT" and "RIGHT".
            - `layoutGrow` 0 | 1 — This property is applicable only for direct children of auto-layout frames, ignored otherwise. Determines whether a layer should stretch along the parent's primary axis. A `0` corresponds to a fixed size and `1` corresponds to stretch.
            - `layoutPositioning` 'AUTO' | 'ABSOLUTE' — Determines whether a layer's size and position should be determined by auto-layout settings or manually adjustable.
            - `minWidth` number — The minimum width of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `maxWidth` number — The maximum width of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `minHeight` number — The minimum height of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `maxHeight` number — The maximum height of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `layoutSizingHorizontal` 'FIXED' | 'HUG' | 'FILL' — The horizontal sizing setting on this auto-layout frame or frame child. - `FIXED` - `HUG`: only valid on auto-layout frames and text nodes - `FILL`: only valid on auto-layout frame children
            - `layoutSizingVertical` 'FIXED' | 'HUG' | 'FILL' — The vertical sizing setting on this auto-layout frame or frame child. - `FIXED` - `HUG`: only valid on auto-layout frames and text nodes - `FILL`: only valid on auto-layout frame children
            - `fills` Paint[], required — An array of fill paints applied to the node.
              - …
            - `styles` object — A mapping of a StyleType to style ID (see Style) of styles present on this node. The style ID can be used to look up more information about the style in the top-level styles field.
            - `strokes` Paint[] — An array of stroke paints applied to the node.
              - …
            - `strokeWeight` number — The weight of strokes on the node.
            - `strokeAlign` 'INSIDE' | 'OUTSIDE' | 'CENTER' — Position of stroke relative to vector outline, as a string enum - `INSIDE`: stroke drawn inside the shape boundary - `OUTSIDE`: stroke drawn outside the shape boundary - `CENTER`: stroke drawn centered along the shape boundary
            - `strokeJoin` 'MITER' | 'BEVEL' | 'ROUND' — A string enum with value of "MITER", "BEVEL", or "ROUND", describing how corners in vector paths are rendered.
            - `strokeDashes` number[] — An array of floating point numbers describing the pattern of dash length and gap lengths that the vector stroke will use when drawn. For example a value of [1, 2] indicates that the stroke will be drawn with a dash of length 1 followed by a gap of length 2, repeated.
            - `fillOverrideTable` object — Map from ID to PaintOverride for looking up fill overrides. To see which regions are overriden, you must use the `geometry=paths` option. Each path returned may have an `overrideID` which maps to this table.
            - `fillGeometry` Path[] — Only specified if parameter `geometry=paths` is used. An array of paths representing the object fill.
              - …
            - `strokeGeometry` Path[] — Only specified if parameter `geometry=paths` is used. An array of paths representing the object stroke.
              - …
            - `strokeCap` 'NONE' | 'ROUND' | 'SQUARE' | 'LINE_ARROW' | 'TRIANGLE_ARROW' | 'DIAMOND_FILLED' | 'CIRCLE_FILLED' | 'TRIANGLE_FILLED' | 'WASHI_TAPE_1' | 'WASHI_TAPE_2' | 'WASHI_TAPE_3' | 'WASHI_TAPE_4' | 'WASHI_TAPE_5' | 'WASHI_TAPE_6' — A string enum describing the end caps of vector paths.
            - `strokeMiterAngle` number — Only valid if `strokeJoin` is "MITER". The corner angle, in degrees, below which `strokeJoin` will be set to "BEVEL" to avoid super sharp corners. By default this is 28.96 degrees.
            - `exportSettings` ExportSetting[] — An array of export settings representing images to export from the node.
              - …
            - `effects` Effect[], required — An array of effects attached to this node (see effects section for more details)
              - …
            - `isMask` boolean — Does this node mask sibling nodes in front of it?
            - `maskType` 'ALPHA' | 'VECTOR' | 'LUMINANCE' — If this layer is a mask, this property describes the operation used to mask the layer's siblings. The value may be one of the following: - ALPHA: the mask node's alpha channel will be used to determine the opacity of each pixel in the masked result. - VECTOR: if the mask node has visible fill paints, every pixel inside the node's fill regions will be fully visible in the masked result. If the mask has visible stroke paints, every pixel inside the node's stroke regions will be fully visible in the masked result. - LUMINANCE: the luminance value of each pixel of the mask node will be used to determine the opacity of that pixel in the masked result.
            - `isMaskOutline` boolean — True if maskType is VECTOR. This field is deprecated; use maskType instead.
            - `transitionNodeID` string — Node ID of node to transition to in prototyping
            - `transitionDuration` number — The duration of the prototyping transition on this node (in milliseconds). This will override the default transition duration on the prototype, for this node.
            - `transitionEasing` 'EASE_IN' | 'EASE_OUT' | 'EASE_IN_AND_OUT' | 'LINEAR' | 'EASE_IN_BACK' | 'EASE_OUT_BACK' | 'EASE_IN_AND_OUT_BACK' | 'CUSTOM_CUBIC_BEZIER' | 'GENTLE' | 'QUICK' | 'BOUNCY' | 'SLOW' | 'CUSTOM_SPRING' — This type is a string enum with the following possible values: - `EASE_IN`: Ease in with an animation curve similar to CSS ease-in. - `EASE_OUT`: Ease out with an animation curve similar to CSS ease-out. - `EASE_IN_AND_OUT`: Ease in and then out with an animation curve similar to CSS ease-in-out. - `LINEAR`: No easing, similar to CSS linear. - `EASE_IN_BACK`: Ease in with an animation curve that moves past the initial keyframe's value and then accelerates as it reaches the end. - `EASE_OUT_BACK`: Ease out with an animation curve that starts fast, then slows and goes past the ending keyframe's value. - `EASE_IN_AND_OUT_BACK`: Ease in and then out with an animation curve that overshoots the initial keyframe's value, then accelerates quickly before it slows and overshoots the ending keyframes value. - `CUSTOM_CUBIC_BEZIER`: User-defined cubic bezier curve. - `GENTLE`: Gentle animation similar to react-spring. - `QUICK`: Quick spring animation, great for toasts and notifications. - `BOUNCY`: Bouncy spring, for delightful animations like a heart bounce. - `SLOW`: Slow spring, useful as a steady, natural way to scale up fullscreen content. - `CUSTOM_SPRING`: User-defined spring animation.
            - `interactions` Interaction[]
              - …
            - `cornerRadius` number — Radius of each corner if a single radius is set for all corners
            - `cornerSmoothing` number — A value that lets you control how "smooth" the corners are. Ranges from 0 to 1. 0 is the default and means that the corner is perfectly circular. A value of 0.6 means the corner matches the iOS 7 "squircle" icon shape. Other values produce various other curves.
            - `rectangleCornerRadii` number[] — Array of length 4 of the radius of each corner of the frame, starting in the top left and proceeding clockwise. Values are given in the order top-left, top-right, bottom-right, bottom-left.
            - `individualStrokeWeights` StrokeWeights — Individual stroke weights
              - …
          - RegularPolygonNode
            - `type` 'REGULAR_POLYGON', required — The type of the node
            - `id` string, required — A string uniquely identifying this node within the document.
            - `name` string, required — The name given to the node by the user in the tool.
            - `visible` boolean — Whether or not the node is visible on the canvas.
            - `locked` boolean — If true, layer is locked and cannot be edited
            - `isFixed` boolean — Whether the layer is fixed while the parent is scrolling
            - `scrollBehavior` 'SCROLLS' | 'FIXED' | 'STICKY_SCROLLS', required — How layer should be treated when the frame is resized
            - `rotation` number — The rotation of the node, if not 0.
            - `componentPropertyReferences` object — A mapping of a layer's property to component property name of component properties attached to this node. The component property name can be used to look up more information on the corresponding component's or component set's componentPropertyDefinitions.
            - `pluginData` unknown
            - `sharedPluginData` unknown
            - `boundVariables` object — A mapping of field to the variables applied to this field. Most fields will only map to a single `VariableAlias`. However, for properties like `fills`, `strokes`, `size`, `componentProperties`, and `textRangeFills`, it is possible to have multiple variables bound to the field.
              - …
            - `explicitVariableModes` object — A mapping of variable collection ID to mode ID representing the explicitly set modes for this node.
            - `blendMode` 'PASS_THROUGH' | 'NORMAL' | 'DARKEN' | 'MULTIPLY' | 'LINEAR_BURN' | 'COLOR_BURN' | 'LIGHTEN' | 'SCREEN' | 'LINEAR_DODGE' | 'COLOR_DODGE' | 'OVERLAY' | 'SOFT_LIGHT' | 'HARD_LIGHT' | 'DIFFERENCE' | 'EXCLUSION' | 'HUE' | 'SATURATION' | 'COLOR' | 'LUMINOSITY', required — This type is a string enum with the following possible values Normal blends: - `PASS_THROUGH` (only applicable to objects with children) - `NORMAL` Darken: - `DARKEN` - `MULTIPLY` - `LINEAR_BURN` - `COLOR_BURN` Lighten: - `LIGHTEN` - `SCREEN` - `LINEAR_DODGE` - `COLOR_DODGE` Contrast: - `OVERLAY` - `SOFT_LIGHT` - `HARD_LIGHT` Inversion: - `DIFFERENCE` - `EXCLUSION` Component: - `HUE` - `SATURATION` - `COLOR` - `LUMINOSITY`
            - `opacity` number — Opacity of the node
            - `absoluteBoundingBox` Rectangle, required — A rectangle that expresses a bounding box in absolute coordinates.
              - …
            - `absoluteRenderBounds` Rectangle, required — A rectangle that expresses a bounding box in absolute coordinates.
              - …
            - `preserveRatio` boolean — Keep height and width constrained to same ratio.
            - `constraints` LayoutConstraint — Layout constraint relative to containing Frame
              - …
            - `relativeTransform` array[] — A transformation matrix is standard way in computer graphics to represent translation and rotation. These are the top two rows of a 3x3 matrix. The bottom row of the matrix is assumed to be [0, 0, 1]. This is known as an affine transform and is enough to represent translation, rotation, and skew. The identity transform is [[1, 0, 0], [0, 1, 0]]. A translation matrix will typically look like: ``` [[1, 0, tx], [0, 1, ty]] ``` and a rotation matrix will typically look like: ``` [[cos(angle), sin(angle), 0], [-sin(angle), cos(angle), 0]] ``` Another way to think about this transform is as three vectors: - The x axis (t[0][0], t[1][0]) - The y axis (t[0][1], t[1][1]) - The translation offset (t[0][2], t[1][2]) The most common usage of the Transform matrix is the `relativeTransform property`. This particular usage of the matrix has a few additional restrictions. The translation offset can take on any value but we do enforce that the axis vectors are unit vectors (i.e. have length 1). The axes are not required to be at 90° angles to each other.
              - …
            - `size` Vector — A 2d vector.
              - …
            - `layoutAlign` 'INHERIT' | 'STRETCH' | 'MIN' | 'CENTER' | 'MAX' — Determines if the layer should stretch along the parent's counter axis. This property is only provided for direct children of auto-layout frames. - `INHERIT` - `STRETCH` In previous versions of auto layout, determined how the layer is aligned inside an auto-layout frame. This property is only provided for direct children of auto-layout frames. - `MIN` - `CENTER` - `MAX` - `STRETCH` In horizontal auto-layout frames, "MIN" and "MAX" correspond to "TOP" and "BOTTOM". In vertical auto-layout frames, "MIN" and "MAX" correspond to "LEFT" and "RIGHT".
            - `layoutGrow` 0 | 1 — This property is applicable only for direct children of auto-layout frames, ignored otherwise. Determines whether a layer should stretch along the parent's primary axis. A `0` corresponds to a fixed size and `1` corresponds to stretch.
            - `layoutPositioning` 'AUTO' | 'ABSOLUTE' — Determines whether a layer's size and position should be determined by auto-layout settings or manually adjustable.
            - `minWidth` number — The minimum width of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `maxWidth` number — The maximum width of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `minHeight` number — The minimum height of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `maxHeight` number — The maximum height of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `layoutSizingHorizontal` 'FIXED' | 'HUG' | 'FILL' — The horizontal sizing setting on this auto-layout frame or frame child. - `FIXED` - `HUG`: only valid on auto-layout frames and text nodes - `FILL`: only valid on auto-layout frame children
            - `layoutSizingVertical` 'FIXED' | 'HUG' | 'FILL' — The vertical sizing setting on this auto-layout frame or frame child. - `FIXED` - `HUG`: only valid on auto-layout frames and text nodes - `FILL`: only valid on auto-layout frame children
            - `fills` Paint[], required — An array of fill paints applied to the node.
              - …
            - `styles` object — A mapping of a StyleType to style ID (see Style) of styles present on this node. The style ID can be used to look up more information about the style in the top-level styles field.
            - `strokes` Paint[] — An array of stroke paints applied to the node.
              - …
            - `strokeWeight` number — The weight of strokes on the node.
            - `strokeAlign` 'INSIDE' | 'OUTSIDE' | 'CENTER' — Position of stroke relative to vector outline, as a string enum - `INSIDE`: stroke drawn inside the shape boundary - `OUTSIDE`: stroke drawn outside the shape boundary - `CENTER`: stroke drawn centered along the shape boundary
            - `strokeJoin` 'MITER' | 'BEVEL' | 'ROUND' — A string enum with value of "MITER", "BEVEL", or "ROUND", describing how corners in vector paths are rendered.
            - `strokeDashes` number[] — An array of floating point numbers describing the pattern of dash length and gap lengths that the vector stroke will use when drawn. For example a value of [1, 2] indicates that the stroke will be drawn with a dash of length 1 followed by a gap of length 2, repeated.
            - `fillOverrideTable` object — Map from ID to PaintOverride for looking up fill overrides. To see which regions are overriden, you must use the `geometry=paths` option. Each path returned may have an `overrideID` which maps to this table.
            - `fillGeometry` Path[] — Only specified if parameter `geometry=paths` is used. An array of paths representing the object fill.
              - …
            - `strokeGeometry` Path[] — Only specified if parameter `geometry=paths` is used. An array of paths representing the object stroke.
              - …
            - `strokeCap` 'NONE' | 'ROUND' | 'SQUARE' | 'LINE_ARROW' | 'TRIANGLE_ARROW' | 'DIAMOND_FILLED' | 'CIRCLE_FILLED' | 'TRIANGLE_FILLED' | 'WASHI_TAPE_1' | 'WASHI_TAPE_2' | 'WASHI_TAPE_3' | 'WASHI_TAPE_4' | 'WASHI_TAPE_5' | 'WASHI_TAPE_6' — A string enum describing the end caps of vector paths.
            - `strokeMiterAngle` number — Only valid if `strokeJoin` is "MITER". The corner angle, in degrees, below which `strokeJoin` will be set to "BEVEL" to avoid super sharp corners. By default this is 28.96 degrees.
            - `exportSettings` ExportSetting[] — An array of export settings representing images to export from the node.
              - …
            - `effects` Effect[], required — An array of effects attached to this node (see effects section for more details)
              - …
            - `isMask` boolean — Does this node mask sibling nodes in front of it?
            - `maskType` 'ALPHA' | 'VECTOR' | 'LUMINANCE' — If this layer is a mask, this property describes the operation used to mask the layer's siblings. The value may be one of the following: - ALPHA: the mask node's alpha channel will be used to determine the opacity of each pixel in the masked result. - VECTOR: if the mask node has visible fill paints, every pixel inside the node's fill regions will be fully visible in the masked result. If the mask has visible stroke paints, every pixel inside the node's stroke regions will be fully visible in the masked result. - LUMINANCE: the luminance value of each pixel of the mask node will be used to determine the opacity of that pixel in the masked result.
            - `isMaskOutline` boolean — True if maskType is VECTOR. This field is deprecated; use maskType instead.
            - `transitionNodeID` string — Node ID of node to transition to in prototyping
            - `transitionDuration` number — The duration of the prototyping transition on this node (in milliseconds). This will override the default transition duration on the prototype, for this node.
            - `transitionEasing` 'EASE_IN' | 'EASE_OUT' | 'EASE_IN_AND_OUT' | 'LINEAR' | 'EASE_IN_BACK' | 'EASE_OUT_BACK' | 'EASE_IN_AND_OUT_BACK' | 'CUSTOM_CUBIC_BEZIER' | 'GENTLE' | 'QUICK' | 'BOUNCY' | 'SLOW' | 'CUSTOM_SPRING' — This type is a string enum with the following possible values: - `EASE_IN`: Ease in with an animation curve similar to CSS ease-in. - `EASE_OUT`: Ease out with an animation curve similar to CSS ease-out. - `EASE_IN_AND_OUT`: Ease in and then out with an animation curve similar to CSS ease-in-out. - `LINEAR`: No easing, similar to CSS linear. - `EASE_IN_BACK`: Ease in with an animation curve that moves past the initial keyframe's value and then accelerates as it reaches the end. - `EASE_OUT_BACK`: Ease out with an animation curve that starts fast, then slows and goes past the ending keyframe's value. - `EASE_IN_AND_OUT_BACK`: Ease in and then out with an animation curve that overshoots the initial keyframe's value, then accelerates quickly before it slows and overshoots the ending keyframes value. - `CUSTOM_CUBIC_BEZIER`: User-defined cubic bezier curve. - `GENTLE`: Gentle animation similar to react-spring. - `QUICK`: Quick spring animation, great for toasts and notifications. - `BOUNCY`: Bouncy spring, for delightful animations like a heart bounce. - `SLOW`: Slow spring, useful as a steady, natural way to scale up fullscreen content. - `CUSTOM_SPRING`: User-defined spring animation.
            - `interactions` Interaction[]
              - …
            - `cornerRadius` number — Radius of each corner if a single radius is set for all corners
            - `cornerSmoothing` number — A value that lets you control how "smooth" the corners are. Ranges from 0 to 1. 0 is the default and means that the corner is perfectly circular. A value of 0.6 means the corner matches the iOS 7 "squircle" icon shape. Other values produce various other curves.
            - `rectangleCornerRadii` number[] — Array of length 4 of the radius of each corner of the frame, starting in the top left and proceeding clockwise. Values are given in the order top-left, top-right, bottom-right, bottom-left.
          - SectionNode
            - `type` 'SECTION', required — The type of the node
            - `sectionContentsHidden` boolean, required — Whether the contents of the section are visible
            - `id` string, required — A string uniquely identifying this node within the document.
            - `name` string, required — The name given to the node by the user in the tool.
            - `visible` boolean — Whether or not the node is visible on the canvas.
            - `locked` boolean — If true, layer is locked and cannot be edited
            - `isFixed` boolean — Whether the layer is fixed while the parent is scrolling
            - `scrollBehavior` 'SCROLLS' | 'FIXED' | 'STICKY_SCROLLS', required — How layer should be treated when the frame is resized
            - `rotation` number — The rotation of the node, if not 0.
            - `componentPropertyReferences` object — A mapping of a layer's property to component property name of component properties attached to this node. The component property name can be used to look up more information on the corresponding component's or component set's componentPropertyDefinitions.
            - `pluginData` unknown
            - `sharedPluginData` unknown
            - `boundVariables` object — A mapping of field to the variables applied to this field. Most fields will only map to a single `VariableAlias`. However, for properties like `fills`, `strokes`, `size`, `componentProperties`, and `textRangeFills`, it is possible to have multiple variables bound to the field.
              - …
            - `explicitVariableModes` object — A mapping of variable collection ID to mode ID representing the explicitly set modes for this node.
            - `fills` Paint[], required — An array of fill paints applied to the node.
              - …
            - `styles` object — A mapping of a StyleType to style ID (see Style) of styles present on this node. The style ID can be used to look up more information about the style in the top-level styles field.
            - `strokes` Paint[] — An array of stroke paints applied to the node.
              - …
            - `strokeWeight` number — The weight of strokes on the node.
            - `strokeAlign` 'INSIDE' | 'OUTSIDE' | 'CENTER' — Position of stroke relative to vector outline, as a string enum - `INSIDE`: stroke drawn inside the shape boundary - `OUTSIDE`: stroke drawn outside the shape boundary - `CENTER`: stroke drawn centered along the shape boundary
            - `strokeJoin` 'MITER' | 'BEVEL' | 'ROUND' — A string enum with value of "MITER", "BEVEL", or "ROUND", describing how corners in vector paths are rendered.
            - `strokeDashes` number[] — An array of floating point numbers describing the pattern of dash length and gap lengths that the vector stroke will use when drawn. For example a value of [1, 2] indicates that the stroke will be drawn with a dash of length 1 followed by a gap of length 2, repeated.
            - `fillOverrideTable` object — Map from ID to PaintOverride for looking up fill overrides. To see which regions are overriden, you must use the `geometry=paths` option. Each path returned may have an `overrideID` which maps to this table.
            - `fillGeometry` Path[] — Only specified if parameter `geometry=paths` is used. An array of paths representing the object fill.
              - …
            - `strokeGeometry` Path[] — Only specified if parameter `geometry=paths` is used. An array of paths representing the object stroke.
              - …
            - `strokeCap` 'NONE' | 'ROUND' | 'SQUARE' | 'LINE_ARROW' | 'TRIANGLE_ARROW' | 'DIAMOND_FILLED' | 'CIRCLE_FILLED' | 'TRIANGLE_FILLED' | 'WASHI_TAPE_1' | 'WASHI_TAPE_2' | 'WASHI_TAPE_3' | 'WASHI_TAPE_4' | 'WASHI_TAPE_5' | 'WASHI_TAPE_6' — A string enum describing the end caps of vector paths.
            - `strokeMiterAngle` number — Only valid if `strokeJoin` is "MITER". The corner angle, in degrees, below which `strokeJoin` will be set to "BEVEL" to avoid super sharp corners. By default this is 28.96 degrees.
            - `children` SubcanvasNode[], required — An array of nodes that are direct children of this node
            - `absoluteBoundingBox` Rectangle, required — A rectangle that expresses a bounding box in absolute coordinates.
              - …
            - `absoluteRenderBounds` Rectangle, required — A rectangle that expresses a bounding box in absolute coordinates.
              - …
            - `preserveRatio` boolean — Keep height and width constrained to same ratio.
            - `constraints` LayoutConstraint — Layout constraint relative to containing Frame
              - …
            - `relativeTransform` array[] — A transformation matrix is standard way in computer graphics to represent translation and rotation. These are the top two rows of a 3x3 matrix. The bottom row of the matrix is assumed to be [0, 0, 1]. This is known as an affine transform and is enough to represent translation, rotation, and skew. The identity transform is [[1, 0, 0], [0, 1, 0]]. A translation matrix will typically look like: ``` [[1, 0, tx], [0, 1, ty]] ``` and a rotation matrix will typically look like: ``` [[cos(angle), sin(angle), 0], [-sin(angle), cos(angle), 0]] ``` Another way to think about this transform is as three vectors: - The x axis (t[0][0], t[1][0]) - The y axis (t[0][1], t[1][1]) - The translation offset (t[0][2], t[1][2]) The most common usage of the Transform matrix is the `relativeTransform property`. This particular usage of the matrix has a few additional restrictions. The translation offset can take on any value but we do enforce that the axis vectors are unit vectors (i.e. have length 1). The axes are not required to be at 90° angles to each other.
              - …
            - `size` Vector — A 2d vector.
              - …
            - `layoutAlign` 'INHERIT' | 'STRETCH' | 'MIN' | 'CENTER' | 'MAX' — Determines if the layer should stretch along the parent's counter axis. This property is only provided for direct children of auto-layout frames. - `INHERIT` - `STRETCH` In previous versions of auto layout, determined how the layer is aligned inside an auto-layout frame. This property is only provided for direct children of auto-layout frames. - `MIN` - `CENTER` - `MAX` - `STRETCH` In horizontal auto-layout frames, "MIN" and "MAX" correspond to "TOP" and "BOTTOM". In vertical auto-layout frames, "MIN" and "MAX" correspond to "LEFT" and "RIGHT".
            - `layoutGrow` 0 | 1 — This property is applicable only for direct children of auto-layout frames, ignored otherwise. Determines whether a layer should stretch along the parent's primary axis. A `0` corresponds to a fixed size and `1` corresponds to stretch.
            - `layoutPositioning` 'AUTO' | 'ABSOLUTE' — Determines whether a layer's size and position should be determined by auto-layout settings or manually adjustable.
            - `minWidth` number — The minimum width of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `maxWidth` number — The maximum width of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `minHeight` number — The minimum height of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `maxHeight` number — The maximum height of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `layoutSizingHorizontal` 'FIXED' | 'HUG' | 'FILL' — The horizontal sizing setting on this auto-layout frame or frame child. - `FIXED` - `HUG`: only valid on auto-layout frames and text nodes - `FILL`: only valid on auto-layout frame children
            - `layoutSizingVertical` 'FIXED' | 'HUG' | 'FILL' — The vertical sizing setting on this auto-layout frame or frame child. - `FIXED` - `HUG`: only valid on auto-layout frames and text nodes - `FILL`: only valid on auto-layout frame children
            - `devStatus` object — Represents whether or not a node has a particular handoff (or dev) status applied to it.
              - …
          - ShapeWithTextNode
            - `type` 'SHAPE_WITH_TEXT', required — The type of the node
            - `shapeType` 'SQUARE' | 'ELLIPSE' | 'ROUNDED_RECTANGLE' | 'DIAMOND' | 'TRIANGLE_UP' | 'TRIANGLE_DOWN' | 'PARALLELOGRAM_RIGHT' | 'PARALLELOGRAM_LEFT' | 'ENG_DATABASE' | 'ENG_QUEUE' | 'ENG_FILE' | 'ENG_FOLDER' | 'TRAPEZOID' | 'PREDEFINED_PROCESS' | 'SHIELD' | 'DOCUMENT_SINGLE' | 'DOCUMENT_MULTIPLE' | 'MANUAL_INPUT' | 'HEXAGON' | 'CHEVRON' | 'PENTAGON' | 'OCTAGON' | 'STAR' | 'PLUS' | 'ARROW_LEFT' | 'ARROW_RIGHT' | 'SUMMING_JUNCTION' | 'OR' | 'SPEECH_BUBBLE' | 'INTERNAL_STORAGE', required — Geometric shape type.
            - `id` string, required — A string uniquely identifying this node within the document.
            - `name` string, required — The name given to the node by the user in the tool.
            - `visible` boolean — Whether or not the node is visible on the canvas.
            - `locked` boolean — If true, layer is locked and cannot be edited
            - `isFixed` boolean — Whether the layer is fixed while the parent is scrolling
            - `scrollBehavior` 'SCROLLS' | 'FIXED' | 'STICKY_SCROLLS', required — How layer should be treated when the frame is resized
            - `rotation` number — The rotation of the node, if not 0.
            - `componentPropertyReferences` object — A mapping of a layer's property to component property name of component properties attached to this node. The component property name can be used to look up more information on the corresponding component's or component set's componentPropertyDefinitions.
            - `pluginData` unknown
            - `sharedPluginData` unknown
            - `boundVariables` object — A mapping of field to the variables applied to this field. Most fields will only map to a single `VariableAlias`. However, for properties like `fills`, `strokes`, `size`, `componentProperties`, and `textRangeFills`, it is possible to have multiple variables bound to the field.
              - …
            - `explicitVariableModes` object — A mapping of variable collection ID to mode ID representing the explicitly set modes for this node.
            - `absoluteBoundingBox` Rectangle, required — A rectangle that expresses a bounding box in absolute coordinates.
              - …
            - `absoluteRenderBounds` Rectangle, required — A rectangle that expresses a bounding box in absolute coordinates.
              - …
            - `preserveRatio` boolean — Keep height and width constrained to same ratio.
            - `constraints` LayoutConstraint — Layout constraint relative to containing Frame
              - …
            - `relativeTransform` array[] — A transformation matrix is standard way in computer graphics to represent translation and rotation. These are the top two rows of a 3x3 matrix. The bottom row of the matrix is assumed to be [0, 0, 1]. This is known as an affine transform and is enough to represent translation, rotation, and skew. The identity transform is [[1, 0, 0], [0, 1, 0]]. A translation matrix will typically look like: ``` [[1, 0, tx], [0, 1, ty]] ``` and a rotation matrix will typically look like: ``` [[cos(angle), sin(angle), 0], [-sin(angle), cos(angle), 0]] ``` Another way to think about this transform is as three vectors: - The x axis (t[0][0], t[1][0]) - The y axis (t[0][1], t[1][1]) - The translation offset (t[0][2], t[1][2]) The most common usage of the Transform matrix is the `relativeTransform property`. This particular usage of the matrix has a few additional restrictions. The translation offset can take on any value but we do enforce that the axis vectors are unit vectors (i.e. have length 1). The axes are not required to be at 90° angles to each other.
              - …
            - `size` Vector — A 2d vector.
              - …
            - `layoutAlign` 'INHERIT' | 'STRETCH' | 'MIN' | 'CENTER' | 'MAX' — Determines if the layer should stretch along the parent's counter axis. This property is only provided for direct children of auto-layout frames. - `INHERIT` - `STRETCH` In previous versions of auto layout, determined how the layer is aligned inside an auto-layout frame. This property is only provided for direct children of auto-layout frames. - `MIN` - `CENTER` - `MAX` - `STRETCH` In horizontal auto-layout frames, "MIN" and "MAX" correspond to "TOP" and "BOTTOM". In vertical auto-layout frames, "MIN" and "MAX" correspond to "LEFT" and "RIGHT".
            - `layoutGrow` 0 | 1 — This property is applicable only for direct children of auto-layout frames, ignored otherwise. Determines whether a layer should stretch along the parent's primary axis. A `0` corresponds to a fixed size and `1` corresponds to stretch.
            - `layoutPositioning` 'AUTO' | 'ABSOLUTE' — Determines whether a layer's size and position should be determined by auto-layout settings or manually adjustable.
            - `minWidth` number — The minimum width of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `maxWidth` number — The maximum width of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `minHeight` number — The minimum height of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `maxHeight` number — The maximum height of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `layoutSizingHorizontal` 'FIXED' | 'HUG' | 'FILL' — The horizontal sizing setting on this auto-layout frame or frame child. - `FIXED` - `HUG`: only valid on auto-layout frames and text nodes - `FILL`: only valid on auto-layout frame children
            - `layoutSizingVertical` 'FIXED' | 'HUG' | 'FILL' — The vertical sizing setting on this auto-layout frame or frame child. - `FIXED` - `HUG`: only valid on auto-layout frames and text nodes - `FILL`: only valid on auto-layout frame children
            - `blendMode` 'PASS_THROUGH' | 'NORMAL' | 'DARKEN' | 'MULTIPLY' | 'LINEAR_BURN' | 'COLOR_BURN' | 'LIGHTEN' | 'SCREEN' | 'LINEAR_DODGE' | 'COLOR_DODGE' | 'OVERLAY' | 'SOFT_LIGHT' | 'HARD_LIGHT' | 'DIFFERENCE' | 'EXCLUSION' | 'HUE' | 'SATURATION' | 'COLOR' | 'LUMINOSITY', required — This type is a string enum with the following possible values Normal blends: - `PASS_THROUGH` (only applicable to objects with children) - `NORMAL` Darken: - `DARKEN` - `MULTIPLY` - `LINEAR_BURN` - `COLOR_BURN` Lighten: - `LIGHTEN` - `SCREEN` - `LINEAR_DODGE` - `COLOR_DODGE` Contrast: - `OVERLAY` - `SOFT_LIGHT` - `HARD_LIGHT` Inversion: - `DIFFERENCE` - `EXCLUSION` Component: - `HUE` - `SATURATION` - `COLOR` - `LUMINOSITY`
            - `opacity` number — Opacity of the node
            - `fills` Paint[], required — An array of fill paints applied to the node.
              - …
            - `styles` object — A mapping of a StyleType to style ID (see Style) of styles present on this node. The style ID can be used to look up more information about the style in the top-level styles field.
            - `isMask` boolean — Does this node mask sibling nodes in front of it?
            - `maskType` 'ALPHA' | 'VECTOR' | 'LUMINANCE' — If this layer is a mask, this property describes the operation used to mask the layer's siblings. The value may be one of the following: - ALPHA: the mask node's alpha channel will be used to determine the opacity of each pixel in the masked result. - VECTOR: if the mask node has visible fill paints, every pixel inside the node's fill regions will be fully visible in the masked result. If the mask has visible stroke paints, every pixel inside the node's stroke regions will be fully visible in the masked result. - LUMINANCE: the luminance value of each pixel of the mask node will be used to determine the opacity of that pixel in the masked result.
            - `isMaskOutline` boolean — True if maskType is VECTOR. This field is deprecated; use maskType instead.
            - `effects` Effect[], required — An array of effects attached to this node (see effects section for more details)
              - …
            - `exportSettings` ExportSetting[] — An array of export settings representing images to export from the node.
              - …
            - `characters` string, required — Text contained within a text box.
            - `cornerRadius` number — Radius of each corner if a single radius is set for all corners
            - `cornerSmoothing` number — A value that lets you control how "smooth" the corners are. Ranges from 0 to 1. 0 is the default and means that the corner is perfectly circular. A value of 0.6 means the corner matches the iOS 7 "squircle" icon shape. Other values produce various other curves.
            - `rectangleCornerRadii` number[] — Array of length 4 of the radius of each corner of the frame, starting in the top left and proceeding clockwise. Values are given in the order top-left, top-right, bottom-right, bottom-left.
            - `strokes` Paint[] — An array of stroke paints applied to the node.
              - …
            - `strokeWeight` number — The weight of strokes on the node.
            - `strokeAlign` 'INSIDE' | 'OUTSIDE' | 'CENTER' — Position of stroke relative to vector outline, as a string enum - `INSIDE`: stroke drawn inside the shape boundary - `OUTSIDE`: stroke drawn outside the shape boundary - `CENTER`: stroke drawn centered along the shape boundary
            - `strokeJoin` 'MITER' | 'BEVEL' | 'ROUND' — A string enum with value of "MITER", "BEVEL", or "ROUND", describing how corners in vector paths are rendered.
            - `strokeDashes` number[] — An array of floating point numbers describing the pattern of dash length and gap lengths that the vector stroke will use when drawn. For example a value of [1, 2] indicates that the stroke will be drawn with a dash of length 1 followed by a gap of length 2, repeated.
          - SliceNode
            - `type` 'SLICE', required — The type of the node
            - `id` string, required — A string uniquely identifying this node within the document.
            - `name` string, required — The name given to the node by the user in the tool.
            - `visible` boolean — Whether or not the node is visible on the canvas.
            - `locked` boolean — If true, layer is locked and cannot be edited
            - `isFixed` boolean — Whether the layer is fixed while the parent is scrolling
            - `scrollBehavior` 'SCROLLS' | 'FIXED' | 'STICKY_SCROLLS', required — How layer should be treated when the frame is resized
            - `rotation` number — The rotation of the node, if not 0.
            - `componentPropertyReferences` object — A mapping of a layer's property to component property name of component properties attached to this node. The component property name can be used to look up more information on the corresponding component's or component set's componentPropertyDefinitions.
            - `pluginData` unknown
            - `sharedPluginData` unknown
            - `boundVariables` object — A mapping of field to the variables applied to this field. Most fields will only map to a single `VariableAlias`. However, for properties like `fills`, `strokes`, `size`, `componentProperties`, and `textRangeFills`, it is possible to have multiple variables bound to the field.
              - …
            - `explicitVariableModes` object — A mapping of variable collection ID to mode ID representing the explicitly set modes for this node.
          - StarNode
            - `type` 'STAR', required — The type of the node
            - `id` string, required — A string uniquely identifying this node within the document.
            - `name` string, required — The name given to the node by the user in the tool.
            - `visible` boolean — Whether or not the node is visible on the canvas.
            - `locked` boolean — If true, layer is locked and cannot be edited
            - `isFixed` boolean — Whether the layer is fixed while the parent is scrolling
            - `scrollBehavior` 'SCROLLS' | 'FIXED' | 'STICKY_SCROLLS', required — How layer should be treated when the frame is resized
            - `rotation` number — The rotation of the node, if not 0.
            - `componentPropertyReferences` object — A mapping of a layer's property to component property name of component properties attached to this node. The component property name can be used to look up more information on the corresponding component's or component set's componentPropertyDefinitions.
            - `pluginData` unknown
            - `sharedPluginData` unknown
            - `boundVariables` object — A mapping of field to the variables applied to this field. Most fields will only map to a single `VariableAlias`. However, for properties like `fills`, `strokes`, `size`, `componentProperties`, and `textRangeFills`, it is possible to have multiple variables bound to the field.
              - …
            - `explicitVariableModes` object — A mapping of variable collection ID to mode ID representing the explicitly set modes for this node.
            - `blendMode` 'PASS_THROUGH' | 'NORMAL' | 'DARKEN' | 'MULTIPLY' | 'LINEAR_BURN' | 'COLOR_BURN' | 'LIGHTEN' | 'SCREEN' | 'LINEAR_DODGE' | 'COLOR_DODGE' | 'OVERLAY' | 'SOFT_LIGHT' | 'HARD_LIGHT' | 'DIFFERENCE' | 'EXCLUSION' | 'HUE' | 'SATURATION' | 'COLOR' | 'LUMINOSITY', required — This type is a string enum with the following possible values Normal blends: - `PASS_THROUGH` (only applicable to objects with children) - `NORMAL` Darken: - `DARKEN` - `MULTIPLY` - `LINEAR_BURN` - `COLOR_BURN` Lighten: - `LIGHTEN` - `SCREEN` - `LINEAR_DODGE` - `COLOR_DODGE` Contrast: - `OVERLAY` - `SOFT_LIGHT` - `HARD_LIGHT` Inversion: - `DIFFERENCE` - `EXCLUSION` Component: - `HUE` - `SATURATION` - `COLOR` - `LUMINOSITY`
            - `opacity` number — Opacity of the node
            - `absoluteBoundingBox` Rectangle, required — A rectangle that expresses a bounding box in absolute coordinates.
              - …
            - `absoluteRenderBounds` Rectangle, required — A rectangle that expresses a bounding box in absolute coordinates.
              - …
            - `preserveRatio` boolean — Keep height and width constrained to same ratio.
            - `constraints` LayoutConstraint — Layout constraint relative to containing Frame
              - …
            - `relativeTransform` array[] — A transformation matrix is standard way in computer graphics to represent translation and rotation. These are the top two rows of a 3x3 matrix. The bottom row of the matrix is assumed to be [0, 0, 1]. This is known as an affine transform and is enough to represent translation, rotation, and skew. The identity transform is [[1, 0, 0], [0, 1, 0]]. A translation matrix will typically look like: ``` [[1, 0, tx], [0, 1, ty]] ``` and a rotation matrix will typically look like: ``` [[cos(angle), sin(angle), 0], [-sin(angle), cos(angle), 0]] ``` Another way to think about this transform is as three vectors: - The x axis (t[0][0], t[1][0]) - The y axis (t[0][1], t[1][1]) - The translation offset (t[0][2], t[1][2]) The most common usage of the Transform matrix is the `relativeTransform property`. This particular usage of the matrix has a few additional restrictions. The translation offset can take on any value but we do enforce that the axis vectors are unit vectors (i.e. have length 1). The axes are not required to be at 90° angles to each other.
              - …
            - `size` Vector — A 2d vector.
              - …
            - `layoutAlign` 'INHERIT' | 'STRETCH' | 'MIN' | 'CENTER' | 'MAX' — Determines if the layer should stretch along the parent's counter axis. This property is only provided for direct children of auto-layout frames. - `INHERIT` - `STRETCH` In previous versions of auto layout, determined how the layer is aligned inside an auto-layout frame. This property is only provided for direct children of auto-layout frames. - `MIN` - `CENTER` - `MAX` - `STRETCH` In horizontal auto-layout frames, "MIN" and "MAX" correspond to "TOP" and "BOTTOM". In vertical auto-layout frames, "MIN" and "MAX" correspond to "LEFT" and "RIGHT".
            - `layoutGrow` 0 | 1 — This property is applicable only for direct children of auto-layout frames, ignored otherwise. Determines whether a layer should stretch along the parent's primary axis. A `0` corresponds to a fixed size and `1` corresponds to stretch.
            - `layoutPositioning` 'AUTO' | 'ABSOLUTE' — Determines whether a layer's size and position should be determined by auto-layout settings or manually adjustable.
            - `minWidth` number — The minimum width of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `maxWidth` number — The maximum width of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `minHeight` number — The minimum height of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `maxHeight` number — The maximum height of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `layoutSizingHorizontal` 'FIXED' | 'HUG' | 'FILL' — The horizontal sizing setting on this auto-layout frame or frame child. - `FIXED` - `HUG`: only valid on auto-layout frames and text nodes - `FILL`: only valid on auto-layout frame children
            - `layoutSizingVertical` 'FIXED' | 'HUG' | 'FILL' — The vertical sizing setting on this auto-layout frame or frame child. - `FIXED` - `HUG`: only valid on auto-layout frames and text nodes - `FILL`: only valid on auto-layout frame children
            - `fills` Paint[], required — An array of fill paints applied to the node.
              - …
            - `styles` object — A mapping of a StyleType to style ID (see Style) of styles present on this node. The style ID can be used to look up more information about the style in the top-level styles field.
            - `strokes` Paint[] — An array of stroke paints applied to the node.
              - …
            - `strokeWeight` number — The weight of strokes on the node.
            - `strokeAlign` 'INSIDE' | 'OUTSIDE' | 'CENTER' — Position of stroke relative to vector outline, as a string enum - `INSIDE`: stroke drawn inside the shape boundary - `OUTSIDE`: stroke drawn outside the shape boundary - `CENTER`: stroke drawn centered along the shape boundary
            - `strokeJoin` 'MITER' | 'BEVEL' | 'ROUND' — A string enum with value of "MITER", "BEVEL", or "ROUND", describing how corners in vector paths are rendered.
            - `strokeDashes` number[] — An array of floating point numbers describing the pattern of dash length and gap lengths that the vector stroke will use when drawn. For example a value of [1, 2] indicates that the stroke will be drawn with a dash of length 1 followed by a gap of length 2, repeated.
            - `fillOverrideTable` object — Map from ID to PaintOverride for looking up fill overrides. To see which regions are overriden, you must use the `geometry=paths` option. Each path returned may have an `overrideID` which maps to this table.
            - `fillGeometry` Path[] — Only specified if parameter `geometry=paths` is used. An array of paths representing the object fill.
              - …
            - `strokeGeometry` Path[] — Only specified if parameter `geometry=paths` is used. An array of paths representing the object stroke.
              - …
            - `strokeCap` 'NONE' | 'ROUND' | 'SQUARE' | 'LINE_ARROW' | 'TRIANGLE_ARROW' | 'DIAMOND_FILLED' | 'CIRCLE_FILLED' | 'TRIANGLE_FILLED' | 'WASHI_TAPE_1' | 'WASHI_TAPE_2' | 'WASHI_TAPE_3' | 'WASHI_TAPE_4' | 'WASHI_TAPE_5' | 'WASHI_TAPE_6' — A string enum describing the end caps of vector paths.
            - `strokeMiterAngle` number — Only valid if `strokeJoin` is "MITER". The corner angle, in degrees, below which `strokeJoin` will be set to "BEVEL" to avoid super sharp corners. By default this is 28.96 degrees.
            - `exportSettings` ExportSetting[] — An array of export settings representing images to export from the node.
              - …
            - `effects` Effect[], required — An array of effects attached to this node (see effects section for more details)
              - …
            - `isMask` boolean — Does this node mask sibling nodes in front of it?
            - `maskType` 'ALPHA' | 'VECTOR' | 'LUMINANCE' — If this layer is a mask, this property describes the operation used to mask the layer's siblings. The value may be one of the following: - ALPHA: the mask node's alpha channel will be used to determine the opacity of each pixel in the masked result. - VECTOR: if the mask node has visible fill paints, every pixel inside the node's fill regions will be fully visible in the masked result. If the mask has visible stroke paints, every pixel inside the node's stroke regions will be fully visible in the masked result. - LUMINANCE: the luminance value of each pixel of the mask node will be used to determine the opacity of that pixel in the masked result.
            - `isMaskOutline` boolean — True if maskType is VECTOR. This field is deprecated; use maskType instead.
            - `transitionNodeID` string — Node ID of node to transition to in prototyping
            - `transitionDuration` number — The duration of the prototyping transition on this node (in milliseconds). This will override the default transition duration on the prototype, for this node.
            - `transitionEasing` 'EASE_IN' | 'EASE_OUT' | 'EASE_IN_AND_OUT' | 'LINEAR' | 'EASE_IN_BACK' | 'EASE_OUT_BACK' | 'EASE_IN_AND_OUT_BACK' | 'CUSTOM_CUBIC_BEZIER' | 'GENTLE' | 'QUICK' | 'BOUNCY' | 'SLOW' | 'CUSTOM_SPRING' — This type is a string enum with the following possible values: - `EASE_IN`: Ease in with an animation curve similar to CSS ease-in. - `EASE_OUT`: Ease out with an animation curve similar to CSS ease-out. - `EASE_IN_AND_OUT`: Ease in and then out with an animation curve similar to CSS ease-in-out. - `LINEAR`: No easing, similar to CSS linear. - `EASE_IN_BACK`: Ease in with an animation curve that moves past the initial keyframe's value and then accelerates as it reaches the end. - `EASE_OUT_BACK`: Ease out with an animation curve that starts fast, then slows and goes past the ending keyframe's value. - `EASE_IN_AND_OUT_BACK`: Ease in and then out with an animation curve that overshoots the initial keyframe's value, then accelerates quickly before it slows and overshoots the ending keyframes value. - `CUSTOM_CUBIC_BEZIER`: User-defined cubic bezier curve. - `GENTLE`: Gentle animation similar to react-spring. - `QUICK`: Quick spring animation, great for toasts and notifications. - `BOUNCY`: Bouncy spring, for delightful animations like a heart bounce. - `SLOW`: Slow spring, useful as a steady, natural way to scale up fullscreen content. - `CUSTOM_SPRING`: User-defined spring animation.
            - `interactions` Interaction[]
              - …
            - `cornerRadius` number — Radius of each corner if a single radius is set for all corners
            - `cornerSmoothing` number — A value that lets you control how "smooth" the corners are. Ranges from 0 to 1. 0 is the default and means that the corner is perfectly circular. A value of 0.6 means the corner matches the iOS 7 "squircle" icon shape. Other values produce various other curves.
            - `rectangleCornerRadii` number[] — Array of length 4 of the radius of each corner of the frame, starting in the top left and proceeding clockwise. Values are given in the order top-left, top-right, bottom-right, bottom-left.
          - StickyNode
            - `type` 'STICKY', required — The type of the node
            - `authorVisible` boolean — If true, author name is visible.
            - `id` string, required — A string uniquely identifying this node within the document.
            - `name` string, required — The name given to the node by the user in the tool.
            - `visible` boolean — Whether or not the node is visible on the canvas.
            - `locked` boolean — If true, layer is locked and cannot be edited
            - `isFixed` boolean — Whether the layer is fixed while the parent is scrolling
            - `scrollBehavior` 'SCROLLS' | 'FIXED' | 'STICKY_SCROLLS', required — How layer should be treated when the frame is resized
            - `rotation` number — The rotation of the node, if not 0.
            - `componentPropertyReferences` object — A mapping of a layer's property to component property name of component properties attached to this node. The component property name can be used to look up more information on the corresponding component's or component set's componentPropertyDefinitions.
            - `pluginData` unknown
            - `sharedPluginData` unknown
            - `boundVariables` object — A mapping of field to the variables applied to this field. Most fields will only map to a single `VariableAlias`. However, for properties like `fills`, `strokes`, `size`, `componentProperties`, and `textRangeFills`, it is possible to have multiple variables bound to the field.
              - …
            - `explicitVariableModes` object — A mapping of variable collection ID to mode ID representing the explicitly set modes for this node.
            - `absoluteBoundingBox` Rectangle, required — A rectangle that expresses a bounding box in absolute coordinates.
              - …
            - `absoluteRenderBounds` Rectangle, required — A rectangle that expresses a bounding box in absolute coordinates.
              - …
            - `preserveRatio` boolean — Keep height and width constrained to same ratio.
            - `constraints` LayoutConstraint — Layout constraint relative to containing Frame
              - …
            - `relativeTransform` array[] — A transformation matrix is standard way in computer graphics to represent translation and rotation. These are the top two rows of a 3x3 matrix. The bottom row of the matrix is assumed to be [0, 0, 1]. This is known as an affine transform and is enough to represent translation, rotation, and skew. The identity transform is [[1, 0, 0], [0, 1, 0]]. A translation matrix will typically look like: ``` [[1, 0, tx], [0, 1, ty]] ``` and a rotation matrix will typically look like: ``` [[cos(angle), sin(angle), 0], [-sin(angle), cos(angle), 0]] ``` Another way to think about this transform is as three vectors: - The x axis (t[0][0], t[1][0]) - The y axis (t[0][1], t[1][1]) - The translation offset (t[0][2], t[1][2]) The most common usage of the Transform matrix is the `relativeTransform property`. This particular usage of the matrix has a few additional restrictions. The translation offset can take on any value but we do enforce that the axis vectors are unit vectors (i.e. have length 1). The axes are not required to be at 90° angles to each other.
              - …
            - `size` Vector — A 2d vector.
              - …
            - `layoutAlign` 'INHERIT' | 'STRETCH' | 'MIN' | 'CENTER' | 'MAX' — Determines if the layer should stretch along the parent's counter axis. This property is only provided for direct children of auto-layout frames. - `INHERIT` - `STRETCH` In previous versions of auto layout, determined how the layer is aligned inside an auto-layout frame. This property is only provided for direct children of auto-layout frames. - `MIN` - `CENTER` - `MAX` - `STRETCH` In horizontal auto-layout frames, "MIN" and "MAX" correspond to "TOP" and "BOTTOM". In vertical auto-layout frames, "MIN" and "MAX" correspond to "LEFT" and "RIGHT".
            - `layoutGrow` 0 | 1 — This property is applicable only for direct children of auto-layout frames, ignored otherwise. Determines whether a layer should stretch along the parent's primary axis. A `0` corresponds to a fixed size and `1` corresponds to stretch.
            - `layoutPositioning` 'AUTO' | 'ABSOLUTE' — Determines whether a layer's size and position should be determined by auto-layout settings or manually adjustable.
            - `minWidth` number — The minimum width of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `maxWidth` number — The maximum width of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `minHeight` number — The minimum height of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `maxHeight` number — The maximum height of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `layoutSizingHorizontal` 'FIXED' | 'HUG' | 'FILL' — The horizontal sizing setting on this auto-layout frame or frame child. - `FIXED` - `HUG`: only valid on auto-layout frames and text nodes - `FILL`: only valid on auto-layout frame children
            - `layoutSizingVertical` 'FIXED' | 'HUG' | 'FILL' — The vertical sizing setting on this auto-layout frame or frame child. - `FIXED` - `HUG`: only valid on auto-layout frames and text nodes - `FILL`: only valid on auto-layout frame children
            - `blendMode` 'PASS_THROUGH' | 'NORMAL' | 'DARKEN' | 'MULTIPLY' | 'LINEAR_BURN' | 'COLOR_BURN' | 'LIGHTEN' | 'SCREEN' | 'LINEAR_DODGE' | 'COLOR_DODGE' | 'OVERLAY' | 'SOFT_LIGHT' | 'HARD_LIGHT' | 'DIFFERENCE' | 'EXCLUSION' | 'HUE' | 'SATURATION' | 'COLOR' | 'LUMINOSITY', required — This type is a string enum with the following possible values Normal blends: - `PASS_THROUGH` (only applicable to objects with children) - `NORMAL` Darken: - `DARKEN` - `MULTIPLY` - `LINEAR_BURN` - `COLOR_BURN` Lighten: - `LIGHTEN` - `SCREEN` - `LINEAR_DODGE` - `COLOR_DODGE` Contrast: - `OVERLAY` - `SOFT_LIGHT` - `HARD_LIGHT` Inversion: - `DIFFERENCE` - `EXCLUSION` Component: - `HUE` - `SATURATION` - `COLOR` - `LUMINOSITY`
            - `opacity` number — Opacity of the node
            - `fills` Paint[], required — An array of fill paints applied to the node.
              - …
            - `styles` object — A mapping of a StyleType to style ID (see Style) of styles present on this node. The style ID can be used to look up more information about the style in the top-level styles field.
            - `isMask` boolean — Does this node mask sibling nodes in front of it?
            - `maskType` 'ALPHA' | 'VECTOR' | 'LUMINANCE' — If this layer is a mask, this property describes the operation used to mask the layer's siblings. The value may be one of the following: - ALPHA: the mask node's alpha channel will be used to determine the opacity of each pixel in the masked result. - VECTOR: if the mask node has visible fill paints, every pixel inside the node's fill regions will be fully visible in the masked result. If the mask has visible stroke paints, every pixel inside the node's stroke regions will be fully visible in the masked result. - LUMINANCE: the luminance value of each pixel of the mask node will be used to determine the opacity of that pixel in the masked result.
            - `isMaskOutline` boolean — True if maskType is VECTOR. This field is deprecated; use maskType instead.
            - `effects` Effect[], required — An array of effects attached to this node (see effects section for more details)
              - …
            - `exportSettings` ExportSetting[] — An array of export settings representing images to export from the node.
              - …
            - `characters` string, required — Text contained within a text box.
          - TableNode
            - `type` 'TABLE', required — The type of the node
            - `id` string, required — A string uniquely identifying this node within the document.
            - `name` string, required — The name given to the node by the user in the tool.
            - `visible` boolean — Whether or not the node is visible on the canvas.
            - `locked` boolean — If true, layer is locked and cannot be edited
            - `isFixed` boolean — Whether the layer is fixed while the parent is scrolling
            - `scrollBehavior` 'SCROLLS' | 'FIXED' | 'STICKY_SCROLLS', required — How layer should be treated when the frame is resized
            - `rotation` number — The rotation of the node, if not 0.
            - `componentPropertyReferences` object — A mapping of a layer's property to component property name of component properties attached to this node. The component property name can be used to look up more information on the corresponding component's or component set's componentPropertyDefinitions.
            - `pluginData` unknown
            - `sharedPluginData` unknown
            - `boundVariables` object — A mapping of field to the variables applied to this field. Most fields will only map to a single `VariableAlias`. However, for properties like `fills`, `strokes`, `size`, `componentProperties`, and `textRangeFills`, it is possible to have multiple variables bound to the field.
              - …
            - `explicitVariableModes` object — A mapping of variable collection ID to mode ID representing the explicitly set modes for this node.
            - `children` SubcanvasNode[], required — An array of nodes that are direct children of this node
            - `absoluteBoundingBox` Rectangle, required — A rectangle that expresses a bounding box in absolute coordinates.
              - …
            - `absoluteRenderBounds` Rectangle, required — A rectangle that expresses a bounding box in absolute coordinates.
              - …
            - `preserveRatio` boolean — Keep height and width constrained to same ratio.
            - `constraints` LayoutConstraint — Layout constraint relative to containing Frame
              - …
            - `relativeTransform` array[] — A transformation matrix is standard way in computer graphics to represent translation and rotation. These are the top two rows of a 3x3 matrix. The bottom row of the matrix is assumed to be [0, 0, 1]. This is known as an affine transform and is enough to represent translation, rotation, and skew. The identity transform is [[1, 0, 0], [0, 1, 0]]. A translation matrix will typically look like: ``` [[1, 0, tx], [0, 1, ty]] ``` and a rotation matrix will typically look like: ``` [[cos(angle), sin(angle), 0], [-sin(angle), cos(angle), 0]] ``` Another way to think about this transform is as three vectors: - The x axis (t[0][0], t[1][0]) - The y axis (t[0][1], t[1][1]) - The translation offset (t[0][2], t[1][2]) The most common usage of the Transform matrix is the `relativeTransform property`. This particular usage of the matrix has a few additional restrictions. The translation offset can take on any value but we do enforce that the axis vectors are unit vectors (i.e. have length 1). The axes are not required to be at 90° angles to each other.
              - …
            - `size` Vector — A 2d vector.
              - …
            - `layoutAlign` 'INHERIT' | 'STRETCH' | 'MIN' | 'CENTER' | 'MAX' — Determines if the layer should stretch along the parent's counter axis. This property is only provided for direct children of auto-layout frames. - `INHERIT` - `STRETCH` In previous versions of auto layout, determined how the layer is aligned inside an auto-layout frame. This property is only provided for direct children of auto-layout frames. - `MIN` - `CENTER` - `MAX` - `STRETCH` In horizontal auto-layout frames, "MIN" and "MAX" correspond to "TOP" and "BOTTOM". In vertical auto-layout frames, "MIN" and "MAX" correspond to "LEFT" and "RIGHT".
            - `layoutGrow` 0 | 1 — This property is applicable only for direct children of auto-layout frames, ignored otherwise. Determines whether a layer should stretch along the parent's primary axis. A `0` corresponds to a fixed size and `1` corresponds to stretch.
            - `layoutPositioning` 'AUTO' | 'ABSOLUTE' — Determines whether a layer's size and position should be determined by auto-layout settings or manually adjustable.
            - `minWidth` number — The minimum width of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `maxWidth` number — The maximum width of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `minHeight` number — The minimum height of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `maxHeight` number — The maximum height of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `layoutSizingHorizontal` 'FIXED' | 'HUG' | 'FILL' — The horizontal sizing setting on this auto-layout frame or frame child. - `FIXED` - `HUG`: only valid on auto-layout frames and text nodes - `FILL`: only valid on auto-layout frame children
            - `layoutSizingVertical` 'FIXED' | 'HUG' | 'FILL' — The vertical sizing setting on this auto-layout frame or frame child. - `FIXED` - `HUG`: only valid on auto-layout frames and text nodes - `FILL`: only valid on auto-layout frame children
            - `strokes` Paint[] — An array of stroke paints applied to the node.
              - …
            - `strokeWeight` number — The weight of strokes on the node.
            - `strokeAlign` 'INSIDE' | 'OUTSIDE' | 'CENTER' — Position of stroke relative to vector outline, as a string enum - `INSIDE`: stroke drawn inside the shape boundary - `OUTSIDE`: stroke drawn outside the shape boundary - `CENTER`: stroke drawn centered along the shape boundary
            - `strokeJoin` 'MITER' | 'BEVEL' | 'ROUND' — A string enum with value of "MITER", "BEVEL", or "ROUND", describing how corners in vector paths are rendered.
            - `strokeDashes` number[] — An array of floating point numbers describing the pattern of dash length and gap lengths that the vector stroke will use when drawn. For example a value of [1, 2] indicates that the stroke will be drawn with a dash of length 1 followed by a gap of length 2, repeated.
            - `effects` Effect[], required — An array of effects attached to this node (see effects section for more details)
              - …
            - `blendMode` 'PASS_THROUGH' | 'NORMAL' | 'DARKEN' | 'MULTIPLY' | 'LINEAR_BURN' | 'COLOR_BURN' | 'LIGHTEN' | 'SCREEN' | 'LINEAR_DODGE' | 'COLOR_DODGE' | 'OVERLAY' | 'SOFT_LIGHT' | 'HARD_LIGHT' | 'DIFFERENCE' | 'EXCLUSION' | 'HUE' | 'SATURATION' | 'COLOR' | 'LUMINOSITY', required — This type is a string enum with the following possible values Normal blends: - `PASS_THROUGH` (only applicable to objects with children) - `NORMAL` Darken: - `DARKEN` - `MULTIPLY` - `LINEAR_BURN` - `COLOR_BURN` Lighten: - `LIGHTEN` - `SCREEN` - `LINEAR_DODGE` - `COLOR_DODGE` Contrast: - `OVERLAY` - `SOFT_LIGHT` - `HARD_LIGHT` Inversion: - `DIFFERENCE` - `EXCLUSION` Component: - `HUE` - `SATURATION` - `COLOR` - `LUMINOSITY`
            - `opacity` number — Opacity of the node
            - `exportSettings` ExportSetting[] — An array of export settings representing images to export from the node.
              - …
          - TableCellNode
            - `type` 'TABLE_CELL', required — The type of the node
            - `id` string, required — A string uniquely identifying this node within the document.
            - `name` string, required — The name given to the node by the user in the tool.
            - `visible` boolean — Whether or not the node is visible on the canvas.
            - `locked` boolean — If true, layer is locked and cannot be edited
            - `isFixed` boolean — Whether the layer is fixed while the parent is scrolling
            - `scrollBehavior` 'SCROLLS' | 'FIXED' | 'STICKY_SCROLLS', required — How layer should be treated when the frame is resized
            - `rotation` number — The rotation of the node, if not 0.
            - `componentPropertyReferences` object — A mapping of a layer's property to component property name of component properties attached to this node. The component property name can be used to look up more information on the corresponding component's or component set's componentPropertyDefinitions.
            - `pluginData` unknown
            - `sharedPluginData` unknown
            - `boundVariables` object — A mapping of field to the variables applied to this field. Most fields will only map to a single `VariableAlias`. However, for properties like `fills`, `strokes`, `size`, `componentProperties`, and `textRangeFills`, it is possible to have multiple variables bound to the field.
              - …
            - `explicitVariableModes` object — A mapping of variable collection ID to mode ID representing the explicitly set modes for this node.
            - `fills` Paint[], required — An array of fill paints applied to the node.
              - …
            - `styles` object — A mapping of a StyleType to style ID (see Style) of styles present on this node. The style ID can be used to look up more information about the style in the top-level styles field.
            - `absoluteBoundingBox` Rectangle, required — A rectangle that expresses a bounding box in absolute coordinates.
              - …
            - `absoluteRenderBounds` Rectangle, required — A rectangle that expresses a bounding box in absolute coordinates.
              - …
            - `preserveRatio` boolean — Keep height and width constrained to same ratio.
            - `constraints` LayoutConstraint — Layout constraint relative to containing Frame
              - …
            - `relativeTransform` array[] — A transformation matrix is standard way in computer graphics to represent translation and rotation. These are the top two rows of a 3x3 matrix. The bottom row of the matrix is assumed to be [0, 0, 1]. This is known as an affine transform and is enough to represent translation, rotation, and skew. The identity transform is [[1, 0, 0], [0, 1, 0]]. A translation matrix will typically look like: ``` [[1, 0, tx], [0, 1, ty]] ``` and a rotation matrix will typically look like: ``` [[cos(angle), sin(angle), 0], [-sin(angle), cos(angle), 0]] ``` Another way to think about this transform is as three vectors: - The x axis (t[0][0], t[1][0]) - The y axis (t[0][1], t[1][1]) - The translation offset (t[0][2], t[1][2]) The most common usage of the Transform matrix is the `relativeTransform property`. This particular usage of the matrix has a few additional restrictions. The translation offset can take on any value but we do enforce that the axis vectors are unit vectors (i.e. have length 1). The axes are not required to be at 90° angles to each other.
              - …
            - `size` Vector — A 2d vector.
              - …
            - `layoutAlign` 'INHERIT' | 'STRETCH' | 'MIN' | 'CENTER' | 'MAX' — Determines if the layer should stretch along the parent's counter axis. This property is only provided for direct children of auto-layout frames. - `INHERIT` - `STRETCH` In previous versions of auto layout, determined how the layer is aligned inside an auto-layout frame. This property is only provided for direct children of auto-layout frames. - `MIN` - `CENTER` - `MAX` - `STRETCH` In horizontal auto-layout frames, "MIN" and "MAX" correspond to "TOP" and "BOTTOM". In vertical auto-layout frames, "MIN" and "MAX" correspond to "LEFT" and "RIGHT".
            - `layoutGrow` 0 | 1 — This property is applicable only for direct children of auto-layout frames, ignored otherwise. Determines whether a layer should stretch along the parent's primary axis. A `0` corresponds to a fixed size and `1` corresponds to stretch.
            - `layoutPositioning` 'AUTO' | 'ABSOLUTE' — Determines whether a layer's size and position should be determined by auto-layout settings or manually adjustable.
            - `minWidth` number — The minimum width of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `maxWidth` number — The maximum width of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `minHeight` number — The minimum height of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `maxHeight` number — The maximum height of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `layoutSizingHorizontal` 'FIXED' | 'HUG' | 'FILL' — The horizontal sizing setting on this auto-layout frame or frame child. - `FIXED` - `HUG`: only valid on auto-layout frames and text nodes - `FILL`: only valid on auto-layout frame children
            - `layoutSizingVertical` 'FIXED' | 'HUG' | 'FILL' — The vertical sizing setting on this auto-layout frame or frame child. - `FIXED` - `HUG`: only valid on auto-layout frames and text nodes - `FILL`: only valid on auto-layout frame children
            - `characters` string, required — Text contained within a text box.
          - TextNode
            - `type` 'TEXT', required — The type of the node
            - `id` string, required — A string uniquely identifying this node within the document.
            - `name` string, required — The name given to the node by the user in the tool.
            - `visible` boolean — Whether or not the node is visible on the canvas.
            - `locked` boolean — If true, layer is locked and cannot be edited
            - `isFixed` boolean — Whether the layer is fixed while the parent is scrolling
            - `scrollBehavior` 'SCROLLS' | 'FIXED' | 'STICKY_SCROLLS', required — How layer should be treated when the frame is resized
            - `rotation` number — The rotation of the node, if not 0.
            - `componentPropertyReferences` object — A mapping of a layer's property to component property name of component properties attached to this node. The component property name can be used to look up more information on the corresponding component's or component set's componentPropertyDefinitions.
            - `pluginData` unknown
            - `sharedPluginData` unknown
            - `boundVariables` object — A mapping of field to the variables applied to this field. Most fields will only map to a single `VariableAlias`. However, for properties like `fills`, `strokes`, `size`, `componentProperties`, and `textRangeFills`, it is possible to have multiple variables bound to the field.
              - …
            - `explicitVariableModes` object — A mapping of variable collection ID to mode ID representing the explicitly set modes for this node.
            - `blendMode` 'PASS_THROUGH' | 'NORMAL' | 'DARKEN' | 'MULTIPLY' | 'LINEAR_BURN' | 'COLOR_BURN' | 'LIGHTEN' | 'SCREEN' | 'LINEAR_DODGE' | 'COLOR_DODGE' | 'OVERLAY' | 'SOFT_LIGHT' | 'HARD_LIGHT' | 'DIFFERENCE' | 'EXCLUSION' | 'HUE' | 'SATURATION' | 'COLOR' | 'LUMINOSITY', required — This type is a string enum with the following possible values Normal blends: - `PASS_THROUGH` (only applicable to objects with children) - `NORMAL` Darken: - `DARKEN` - `MULTIPLY` - `LINEAR_BURN` - `COLOR_BURN` Lighten: - `LIGHTEN` - `SCREEN` - `LINEAR_DODGE` - `COLOR_DODGE` Contrast: - `OVERLAY` - `SOFT_LIGHT` - `HARD_LIGHT` Inversion: - `DIFFERENCE` - `EXCLUSION` Component: - `HUE` - `SATURATION` - `COLOR` - `LUMINOSITY`
            - `opacity` number — Opacity of the node
            - `absoluteBoundingBox` Rectangle, required — A rectangle that expresses a bounding box in absolute coordinates.
              - …
            - `absoluteRenderBounds` Rectangle, required — A rectangle that expresses a bounding box in absolute coordinates.
              - …
            - `preserveRatio` boolean — Keep height and width constrained to same ratio.
            - `constraints` LayoutConstraint — Layout constraint relative to containing Frame
              - …
            - `relativeTransform` array[] — A transformation matrix is standard way in computer graphics to represent translation and rotation. These are the top two rows of a 3x3 matrix. The bottom row of the matrix is assumed to be [0, 0, 1]. This is known as an affine transform and is enough to represent translation, rotation, and skew. The identity transform is [[1, 0, 0], [0, 1, 0]]. A translation matrix will typically look like: ``` [[1, 0, tx], [0, 1, ty]] ``` and a rotation matrix will typically look like: ``` [[cos(angle), sin(angle), 0], [-sin(angle), cos(angle), 0]] ``` Another way to think about this transform is as three vectors: - The x axis (t[0][0], t[1][0]) - The y axis (t[0][1], t[1][1]) - The translation offset (t[0][2], t[1][2]) The most common usage of the Transform matrix is the `relativeTransform property`. This particular usage of the matrix has a few additional restrictions. The translation offset can take on any value but we do enforce that the axis vectors are unit vectors (i.e. have length 1). The axes are not required to be at 90° angles to each other.
              - …
            - `size` Vector — A 2d vector.
              - …
            - `layoutAlign` 'INHERIT' | 'STRETCH' | 'MIN' | 'CENTER' | 'MAX' — Determines if the layer should stretch along the parent's counter axis. This property is only provided for direct children of auto-layout frames. - `INHERIT` - `STRETCH` In previous versions of auto layout, determined how the layer is aligned inside an auto-layout frame. This property is only provided for direct children of auto-layout frames. - `MIN` - `CENTER` - `MAX` - `STRETCH` In horizontal auto-layout frames, "MIN" and "MAX" correspond to "TOP" and "BOTTOM". In vertical auto-layout frames, "MIN" and "MAX" correspond to "LEFT" and "RIGHT".
            - `layoutGrow` 0 | 1 — This property is applicable only for direct children of auto-layout frames, ignored otherwise. Determines whether a layer should stretch along the parent's primary axis. A `0` corresponds to a fixed size and `1` corresponds to stretch.
            - `layoutPositioning` 'AUTO' | 'ABSOLUTE' — Determines whether a layer's size and position should be determined by auto-layout settings or manually adjustable.
            - `minWidth` number — The minimum width of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `maxWidth` number — The maximum width of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `minHeight` number — The minimum height of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `maxHeight` number — The maximum height of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `layoutSizingHorizontal` 'FIXED' | 'HUG' | 'FILL' — The horizontal sizing setting on this auto-layout frame or frame child. - `FIXED` - `HUG`: only valid on auto-layout frames and text nodes - `FILL`: only valid on auto-layout frame children
            - `layoutSizingVertical` 'FIXED' | 'HUG' | 'FILL' — The vertical sizing setting on this auto-layout frame or frame child. - `FIXED` - `HUG`: only valid on auto-layout frames and text nodes - `FILL`: only valid on auto-layout frame children
            - `fills` Paint[], required — An array of fill paints applied to the node.
              - …
            - `styles` object — A mapping of a StyleType to style ID (see Style) of styles present on this node. The style ID can be used to look up more information about the style in the top-level styles field.
            - `strokes` Paint[] — An array of stroke paints applied to the node.
              - …
            - `strokeWeight` number — The weight of strokes on the node.
            - `strokeAlign` 'INSIDE' | 'OUTSIDE' | 'CENTER' — Position of stroke relative to vector outline, as a string enum - `INSIDE`: stroke drawn inside the shape boundary - `OUTSIDE`: stroke drawn outside the shape boundary - `CENTER`: stroke drawn centered along the shape boundary
            - `strokeJoin` 'MITER' | 'BEVEL' | 'ROUND' — A string enum with value of "MITER", "BEVEL", or "ROUND", describing how corners in vector paths are rendered.
            - `strokeDashes` number[] — An array of floating point numbers describing the pattern of dash length and gap lengths that the vector stroke will use when drawn. For example a value of [1, 2] indicates that the stroke will be drawn with a dash of length 1 followed by a gap of length 2, repeated.
            - `fillOverrideTable` object — Map from ID to PaintOverride for looking up fill overrides. To see which regions are overriden, you must use the `geometry=paths` option. Each path returned may have an `overrideID` which maps to this table.
            - `fillGeometry` Path[] — Only specified if parameter `geometry=paths` is used. An array of paths representing the object fill.
              - …
            - `strokeGeometry` Path[] — Only specified if parameter `geometry=paths` is used. An array of paths representing the object stroke.
              - …
            - `strokeCap` 'NONE' | 'ROUND' | 'SQUARE' | 'LINE_ARROW' | 'TRIANGLE_ARROW' | 'DIAMOND_FILLED' | 'CIRCLE_FILLED' | 'TRIANGLE_FILLED' | 'WASHI_TAPE_1' | 'WASHI_TAPE_2' | 'WASHI_TAPE_3' | 'WASHI_TAPE_4' | 'WASHI_TAPE_5' | 'WASHI_TAPE_6' — A string enum describing the end caps of vector paths.
            - `strokeMiterAngle` number — Only valid if `strokeJoin` is "MITER". The corner angle, in degrees, below which `strokeJoin` will be set to "BEVEL" to avoid super sharp corners. By default this is 28.96 degrees.
            - `exportSettings` ExportSetting[] — An array of export settings representing images to export from the node.
              - …
            - `effects` Effect[], required — An array of effects attached to this node (see effects section for more details)
              - …
            - `isMask` boolean — Does this node mask sibling nodes in front of it?
            - `maskType` 'ALPHA' | 'VECTOR' | 'LUMINANCE' — If this layer is a mask, this property describes the operation used to mask the layer's siblings. The value may be one of the following: - ALPHA: the mask node's alpha channel will be used to determine the opacity of each pixel in the masked result. - VECTOR: if the mask node has visible fill paints, every pixel inside the node's fill regions will be fully visible in the masked result. If the mask has visible stroke paints, every pixel inside the node's stroke regions will be fully visible in the masked result. - LUMINANCE: the luminance value of each pixel of the mask node will be used to determine the opacity of that pixel in the masked result.
            - `isMaskOutline` boolean — True if maskType is VECTOR. This field is deprecated; use maskType instead.
            - `transitionNodeID` string — Node ID of node to transition to in prototyping
            - `transitionDuration` number — The duration of the prototyping transition on this node (in milliseconds). This will override the default transition duration on the prototype, for this node.
            - `transitionEasing` 'EASE_IN' | 'EASE_OUT' | 'EASE_IN_AND_OUT' | 'LINEAR' | 'EASE_IN_BACK' | 'EASE_OUT_BACK' | 'EASE_IN_AND_OUT_BACK' | 'CUSTOM_CUBIC_BEZIER' | 'GENTLE' | 'QUICK' | 'BOUNCY' | 'SLOW' | 'CUSTOM_SPRING' — This type is a string enum with the following possible values: - `EASE_IN`: Ease in with an animation curve similar to CSS ease-in. - `EASE_OUT`: Ease out with an animation curve similar to CSS ease-out. - `EASE_IN_AND_OUT`: Ease in and then out with an animation curve similar to CSS ease-in-out. - `LINEAR`: No easing, similar to CSS linear. - `EASE_IN_BACK`: Ease in with an animation curve that moves past the initial keyframe's value and then accelerates as it reaches the end. - `EASE_OUT_BACK`: Ease out with an animation curve that starts fast, then slows and goes past the ending keyframe's value. - `EASE_IN_AND_OUT_BACK`: Ease in and then out with an animation curve that overshoots the initial keyframe's value, then accelerates quickly before it slows and overshoots the ending keyframes value. - `CUSTOM_CUBIC_BEZIER`: User-defined cubic bezier curve. - `GENTLE`: Gentle animation similar to react-spring. - `QUICK`: Quick spring animation, great for toasts and notifications. - `BOUNCY`: Bouncy spring, for delightful animations like a heart bounce. - `SLOW`: Slow spring, useful as a steady, natural way to scale up fullscreen content. - `CUSTOM_SPRING`: User-defined spring animation.
            - `interactions` Interaction[]
              - …
            - `characters` string, required — The raw characters in the text node.
            - `style` TypeStyle, required — Metadata for character formatting.
              - …
            - `characterStyleOverrides` number[], required — The array corresponds to characters in the text box, where each element references the 'styleOverrideTable' to apply specific styles to each character. The array's length can be less than or equal to the number of characters due to the removal of trailing zeros. Elements with a value of 0 indicate characters that use the default type style. If the array is shorter than the total number of characters, the characters beyond the array's length also use the default style.
            - `layoutVersion` number — Internal property, preserved for backward compatibility. Avoid using this value.
            - `styleOverrideTable` object, required — Map from ID to TypeStyle for looking up style overrides.
            - `lineTypes` string[], required — An array with the same number of elements as lines in the text node, where lines are delimited by newline or paragraph separator characters. Each element in the array corresponds to the list type of a specific line. List types are represented as string enums with one of these possible values: - `NONE`: Not a list item. - `ORDERED`: Text is an ordered list (numbered). - `UNORDERED`: Text is an unordered list (bulleted).
            - `lineIndentations` number[], required — An array with the same number of elements as lines in the text node, where lines are delimited by newline or paragraph separator characters. Each element in the array corresponds to the indentation level of a specific line.
          - VectorNode
            - `type` 'VECTOR', required — The type of the node
            - `id` string, required — A string uniquely identifying this node within the document.
            - `name` string, required — The name given to the node by the user in the tool.
            - `visible` boolean — Whether or not the node is visible on the canvas.
            - `locked` boolean — If true, layer is locked and cannot be edited
            - `isFixed` boolean — Whether the layer is fixed while the parent is scrolling
            - `scrollBehavior` 'SCROLLS' | 'FIXED' | 'STICKY_SCROLLS', required — How layer should be treated when the frame is resized
            - `rotation` number — The rotation of the node, if not 0.
            - `componentPropertyReferences` object — A mapping of a layer's property to component property name of component properties attached to this node. The component property name can be used to look up more information on the corresponding component's or component set's componentPropertyDefinitions.
            - `pluginData` unknown
            - `sharedPluginData` unknown
            - `boundVariables` object — A mapping of field to the variables applied to this field. Most fields will only map to a single `VariableAlias`. However, for properties like `fills`, `strokes`, `size`, `componentProperties`, and `textRangeFills`, it is possible to have multiple variables bound to the field.
              - …
            - `explicitVariableModes` object — A mapping of variable collection ID to mode ID representing the explicitly set modes for this node.
            - `blendMode` 'PASS_THROUGH' | 'NORMAL' | 'DARKEN' | 'MULTIPLY' | 'LINEAR_BURN' | 'COLOR_BURN' | 'LIGHTEN' | 'SCREEN' | 'LINEAR_DODGE' | 'COLOR_DODGE' | 'OVERLAY' | 'SOFT_LIGHT' | 'HARD_LIGHT' | 'DIFFERENCE' | 'EXCLUSION' | 'HUE' | 'SATURATION' | 'COLOR' | 'LUMINOSITY', required — This type is a string enum with the following possible values Normal blends: - `PASS_THROUGH` (only applicable to objects with children) - `NORMAL` Darken: - `DARKEN` - `MULTIPLY` - `LINEAR_BURN` - `COLOR_BURN` Lighten: - `LIGHTEN` - `SCREEN` - `LINEAR_DODGE` - `COLOR_DODGE` Contrast: - `OVERLAY` - `SOFT_LIGHT` - `HARD_LIGHT` Inversion: - `DIFFERENCE` - `EXCLUSION` Component: - `HUE` - `SATURATION` - `COLOR` - `LUMINOSITY`
            - `opacity` number — Opacity of the node
            - `absoluteBoundingBox` Rectangle, required — A rectangle that expresses a bounding box in absolute coordinates.
              - …
            - `absoluteRenderBounds` Rectangle, required — A rectangle that expresses a bounding box in absolute coordinates.
              - …
            - `preserveRatio` boolean — Keep height and width constrained to same ratio.
            - `constraints` LayoutConstraint — Layout constraint relative to containing Frame
              - …
            - `relativeTransform` array[] — A transformation matrix is standard way in computer graphics to represent translation and rotation. These are the top two rows of a 3x3 matrix. The bottom row of the matrix is assumed to be [0, 0, 1]. This is known as an affine transform and is enough to represent translation, rotation, and skew. The identity transform is [[1, 0, 0], [0, 1, 0]]. A translation matrix will typically look like: ``` [[1, 0, tx], [0, 1, ty]] ``` and a rotation matrix will typically look like: ``` [[cos(angle), sin(angle), 0], [-sin(angle), cos(angle), 0]] ``` Another way to think about this transform is as three vectors: - The x axis (t[0][0], t[1][0]) - The y axis (t[0][1], t[1][1]) - The translation offset (t[0][2], t[1][2]) The most common usage of the Transform matrix is the `relativeTransform property`. This particular usage of the matrix has a few additional restrictions. The translation offset can take on any value but we do enforce that the axis vectors are unit vectors (i.e. have length 1). The axes are not required to be at 90° angles to each other.
              - …
            - `size` Vector — A 2d vector.
              - …
            - `layoutAlign` 'INHERIT' | 'STRETCH' | 'MIN' | 'CENTER' | 'MAX' — Determines if the layer should stretch along the parent's counter axis. This property is only provided for direct children of auto-layout frames. - `INHERIT` - `STRETCH` In previous versions of auto layout, determined how the layer is aligned inside an auto-layout frame. This property is only provided for direct children of auto-layout frames. - `MIN` - `CENTER` - `MAX` - `STRETCH` In horizontal auto-layout frames, "MIN" and "MAX" correspond to "TOP" and "BOTTOM". In vertical auto-layout frames, "MIN" and "MAX" correspond to "LEFT" and "RIGHT".
            - `layoutGrow` 0 | 1 — This property is applicable only for direct children of auto-layout frames, ignored otherwise. Determines whether a layer should stretch along the parent's primary axis. A `0` corresponds to a fixed size and `1` corresponds to stretch.
            - `layoutPositioning` 'AUTO' | 'ABSOLUTE' — Determines whether a layer's size and position should be determined by auto-layout settings or manually adjustable.
            - `minWidth` number — The minimum width of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `maxWidth` number — The maximum width of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `minHeight` number — The minimum height of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `maxHeight` number — The maximum height of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `layoutSizingHorizontal` 'FIXED' | 'HUG' | 'FILL' — The horizontal sizing setting on this auto-layout frame or frame child. - `FIXED` - `HUG`: only valid on auto-layout frames and text nodes - `FILL`: only valid on auto-layout frame children
            - `layoutSizingVertical` 'FIXED' | 'HUG' | 'FILL' — The vertical sizing setting on this auto-layout frame or frame child. - `FIXED` - `HUG`: only valid on auto-layout frames and text nodes - `FILL`: only valid on auto-layout frame children
            - `fills` Paint[], required — An array of fill paints applied to the node.
              - …
            - `styles` object — A mapping of a StyleType to style ID (see Style) of styles present on this node. The style ID can be used to look up more information about the style in the top-level styles field.
            - `strokes` Paint[] — An array of stroke paints applied to the node.
              - …
            - `strokeWeight` number — The weight of strokes on the node.
            - `strokeAlign` 'INSIDE' | 'OUTSIDE' | 'CENTER' — Position of stroke relative to vector outline, as a string enum - `INSIDE`: stroke drawn inside the shape boundary - `OUTSIDE`: stroke drawn outside the shape boundary - `CENTER`: stroke drawn centered along the shape boundary
            - `strokeJoin` 'MITER' | 'BEVEL' | 'ROUND' — A string enum with value of "MITER", "BEVEL", or "ROUND", describing how corners in vector paths are rendered.
            - `strokeDashes` number[] — An array of floating point numbers describing the pattern of dash length and gap lengths that the vector stroke will use when drawn. For example a value of [1, 2] indicates that the stroke will be drawn with a dash of length 1 followed by a gap of length 2, repeated.
            - `fillOverrideTable` object — Map from ID to PaintOverride for looking up fill overrides. To see which regions are overriden, you must use the `geometry=paths` option. Each path returned may have an `overrideID` which maps to this table.
            - `fillGeometry` Path[] — Only specified if parameter `geometry=paths` is used. An array of paths representing the object fill.
              - …
            - `strokeGeometry` Path[] — Only specified if parameter `geometry=paths` is used. An array of paths representing the object stroke.
              - …
            - `strokeCap` 'NONE' | 'ROUND' | 'SQUARE' | 'LINE_ARROW' | 'TRIANGLE_ARROW' | 'DIAMOND_FILLED' | 'CIRCLE_FILLED' | 'TRIANGLE_FILLED' | 'WASHI_TAPE_1' | 'WASHI_TAPE_2' | 'WASHI_TAPE_3' | 'WASHI_TAPE_4' | 'WASHI_TAPE_5' | 'WASHI_TAPE_6' — A string enum describing the end caps of vector paths.
            - `strokeMiterAngle` number — Only valid if `strokeJoin` is "MITER". The corner angle, in degrees, below which `strokeJoin` will be set to "BEVEL" to avoid super sharp corners. By default this is 28.96 degrees.
            - `exportSettings` ExportSetting[] — An array of export settings representing images to export from the node.
              - …
            - `effects` Effect[], required — An array of effects attached to this node (see effects section for more details)
              - …
            - `isMask` boolean — Does this node mask sibling nodes in front of it?
            - `maskType` 'ALPHA' | 'VECTOR' | 'LUMINANCE' — If this layer is a mask, this property describes the operation used to mask the layer's siblings. The value may be one of the following: - ALPHA: the mask node's alpha channel will be used to determine the opacity of each pixel in the masked result. - VECTOR: if the mask node has visible fill paints, every pixel inside the node's fill regions will be fully visible in the masked result. If the mask has visible stroke paints, every pixel inside the node's stroke regions will be fully visible in the masked result. - LUMINANCE: the luminance value of each pixel of the mask node will be used to determine the opacity of that pixel in the masked result.
            - `isMaskOutline` boolean — True if maskType is VECTOR. This field is deprecated; use maskType instead.
            - `transitionNodeID` string — Node ID of node to transition to in prototyping
            - `transitionDuration` number — The duration of the prototyping transition on this node (in milliseconds). This will override the default transition duration on the prototype, for this node.
            - `transitionEasing` 'EASE_IN' | 'EASE_OUT' | 'EASE_IN_AND_OUT' | 'LINEAR' | 'EASE_IN_BACK' | 'EASE_OUT_BACK' | 'EASE_IN_AND_OUT_BACK' | 'CUSTOM_CUBIC_BEZIER' | 'GENTLE' | 'QUICK' | 'BOUNCY' | 'SLOW' | 'CUSTOM_SPRING' — This type is a string enum with the following possible values: - `EASE_IN`: Ease in with an animation curve similar to CSS ease-in. - `EASE_OUT`: Ease out with an animation curve similar to CSS ease-out. - `EASE_IN_AND_OUT`: Ease in and then out with an animation curve similar to CSS ease-in-out. - `LINEAR`: No easing, similar to CSS linear. - `EASE_IN_BACK`: Ease in with an animation curve that moves past the initial keyframe's value and then accelerates as it reaches the end. - `EASE_OUT_BACK`: Ease out with an animation curve that starts fast, then slows and goes past the ending keyframe's value. - `EASE_IN_AND_OUT_BACK`: Ease in and then out with an animation curve that overshoots the initial keyframe's value, then accelerates quickly before it slows and overshoots the ending keyframes value. - `CUSTOM_CUBIC_BEZIER`: User-defined cubic bezier curve. - `GENTLE`: Gentle animation similar to react-spring. - `QUICK`: Quick spring animation, great for toasts and notifications. - `BOUNCY`: Bouncy spring, for delightful animations like a heart bounce. - `SLOW`: Slow spring, useful as a steady, natural way to scale up fullscreen content. - `CUSTOM_SPRING`: User-defined spring animation.
            - `interactions` Interaction[]
              - …
            - `cornerRadius` number — Radius of each corner if a single radius is set for all corners
            - `cornerSmoothing` number — A value that lets you control how "smooth" the corners are. Ranges from 0 to 1. 0 is the default and means that the corner is perfectly circular. A value of 0.6 means the corner matches the iOS 7 "squircle" icon shape. Other values produce various other curves.
            - `rectangleCornerRadii` number[] — Array of length 4 of the radius of each corner of the frame, starting in the top left and proceeding clockwise. Values are given in the order top-left, top-right, bottom-right, bottom-left.
          - WashiTapeNode
            - `type` 'WASHI_TAPE', required — The type of the node
            - `id` string, required — A string uniquely identifying this node within the document.
            - `name` string, required — The name given to the node by the user in the tool.
            - `visible` boolean — Whether or not the node is visible on the canvas.
            - `locked` boolean — If true, layer is locked and cannot be edited
            - `isFixed` boolean — Whether the layer is fixed while the parent is scrolling
            - `scrollBehavior` 'SCROLLS' | 'FIXED' | 'STICKY_SCROLLS', required — How layer should be treated when the frame is resized
            - `rotation` number — The rotation of the node, if not 0.
            - `componentPropertyReferences` object — A mapping of a layer's property to component property name of component properties attached to this node. The component property name can be used to look up more information on the corresponding component's or component set's componentPropertyDefinitions.
            - `pluginData` unknown
            - `sharedPluginData` unknown
            - `boundVariables` object — A mapping of field to the variables applied to this field. Most fields will only map to a single `VariableAlias`. However, for properties like `fills`, `strokes`, `size`, `componentProperties`, and `textRangeFills`, it is possible to have multiple variables bound to the field.
              - …
            - `explicitVariableModes` object — A mapping of variable collection ID to mode ID representing the explicitly set modes for this node.
            - `blendMode` 'PASS_THROUGH' | 'NORMAL' | 'DARKEN' | 'MULTIPLY' | 'LINEAR_BURN' | 'COLOR_BURN' | 'LIGHTEN' | 'SCREEN' | 'LINEAR_DODGE' | 'COLOR_DODGE' | 'OVERLAY' | 'SOFT_LIGHT' | 'HARD_LIGHT' | 'DIFFERENCE' | 'EXCLUSION' | 'HUE' | 'SATURATION' | 'COLOR' | 'LUMINOSITY', required — This type is a string enum with the following possible values Normal blends: - `PASS_THROUGH` (only applicable to objects with children) - `NORMAL` Darken: - `DARKEN` - `MULTIPLY` - `LINEAR_BURN` - `COLOR_BURN` Lighten: - `LIGHTEN` - `SCREEN` - `LINEAR_DODGE` - `COLOR_DODGE` Contrast: - `OVERLAY` - `SOFT_LIGHT` - `HARD_LIGHT` Inversion: - `DIFFERENCE` - `EXCLUSION` Component: - `HUE` - `SATURATION` - `COLOR` - `LUMINOSITY`
            - `opacity` number — Opacity of the node
            - `absoluteBoundingBox` Rectangle, required — A rectangle that expresses a bounding box in absolute coordinates.
              - …
            - `absoluteRenderBounds` Rectangle, required — A rectangle that expresses a bounding box in absolute coordinates.
              - …
            - `preserveRatio` boolean — Keep height and width constrained to same ratio.
            - `constraints` LayoutConstraint — Layout constraint relative to containing Frame
              - …
            - `relativeTransform` array[] — A transformation matrix is standard way in computer graphics to represent translation and rotation. These are the top two rows of a 3x3 matrix. The bottom row of the matrix is assumed to be [0, 0, 1]. This is known as an affine transform and is enough to represent translation, rotation, and skew. The identity transform is [[1, 0, 0], [0, 1, 0]]. A translation matrix will typically look like: ``` [[1, 0, tx], [0, 1, ty]] ``` and a rotation matrix will typically look like: ``` [[cos(angle), sin(angle), 0], [-sin(angle), cos(angle), 0]] ``` Another way to think about this transform is as three vectors: - The x axis (t[0][0], t[1][0]) - The y axis (t[0][1], t[1][1]) - The translation offset (t[0][2], t[1][2]) The most common usage of the Transform matrix is the `relativeTransform property`. This particular usage of the matrix has a few additional restrictions. The translation offset can take on any value but we do enforce that the axis vectors are unit vectors (i.e. have length 1). The axes are not required to be at 90° angles to each other.
              - …
            - `size` Vector — A 2d vector.
              - …
            - `layoutAlign` 'INHERIT' | 'STRETCH' | 'MIN' | 'CENTER' | 'MAX' — Determines if the layer should stretch along the parent's counter axis. This property is only provided for direct children of auto-layout frames. - `INHERIT` - `STRETCH` In previous versions of auto layout, determined how the layer is aligned inside an auto-layout frame. This property is only provided for direct children of auto-layout frames. - `MIN` - `CENTER` - `MAX` - `STRETCH` In horizontal auto-layout frames, "MIN" and "MAX" correspond to "TOP" and "BOTTOM". In vertical auto-layout frames, "MIN" and "MAX" correspond to "LEFT" and "RIGHT".
            - `layoutGrow` 0 | 1 — This property is applicable only for direct children of auto-layout frames, ignored otherwise. Determines whether a layer should stretch along the parent's primary axis. A `0` corresponds to a fixed size and `1` corresponds to stretch.
            - `layoutPositioning` 'AUTO' | 'ABSOLUTE' — Determines whether a layer's size and position should be determined by auto-layout settings or manually adjustable.
            - `minWidth` number — The minimum width of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `maxWidth` number — The maximum width of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `minHeight` number — The minimum height of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `maxHeight` number — The maximum height of the frame. This property is only applicable for auto-layout frames or direct children of auto-layout frames.
            - `layoutSizingHorizontal` 'FIXED' | 'HUG' | 'FILL' — The horizontal sizing setting on this auto-layout frame or frame child. - `FIXED` - `HUG`: only valid on auto-layout frames and text nodes - `FILL`: only valid on auto-layout frame children
            - `layoutSizingVertical` 'FIXED' | 'HUG' | 'FILL' — The vertical sizing setting on this auto-layout frame or frame child. - `FIXED` - `HUG`: only valid on auto-layout frames and text nodes - `FILL`: only valid on auto-layout frame children
            - `fills` Paint[], required — An array of fill paints applied to the node.
              - …
            - `styles` object — A mapping of a StyleType to style ID (see Style) of styles present on this node. The style ID can be used to look up more information about the style in the top-level styles field.
            - `strokes` Paint[] — An array of stroke paints applied to the node.
              - …
            - `strokeWeight` number — The weight of strokes on the node.
            - `strokeAlign` 'INSIDE' | 'OUTSIDE' | 'CENTER' — Position of stroke relative to vector outline, as a string enum - `INSIDE`: stroke drawn inside the shape boundary - `OUTSIDE`: stroke drawn outside the shape boundary - `CENTER`: stroke drawn centered along the shape boundary
            - `strokeJoin` 'MITER' | 'BEVEL' | 'ROUND' — A string enum with value of "MITER", "BEVEL", or "ROUND", describing how corners in vector paths are rendered.
            - `strokeDashes` number[] — An array of floating point numbers describing the pattern of dash length and gap lengths that the vector stroke will use when drawn. For example a value of [1, 2] indicates that the stroke will be drawn with a dash of length 1 followed by a gap of length 2, repeated.
            - `fillOverrideTable` object — Map from ID to PaintOverride for looking up fill overrides. To see which regions are overriden, you must use the `geometry=paths` option. Each path returned may have an `overrideID` which maps to this table.
            - `fillGeometry` Path[] — Only specified if parameter `geometry=paths` is used. An array of paths representing the object fill.
              - …
            - `strokeGeometry` Path[] — Only specified if parameter `geometry=paths` is used. An array of paths representing the object stroke.
              - …
            - `strokeCap` 'NONE' | 'ROUND' | 'SQUARE' | 'LINE_ARROW' | 'TRIANGLE_ARROW' | 'DIAMOND_FILLED' | 'CIRCLE_FILLED' | 'TRIANGLE_FILLED' | 'WASHI_TAPE_1' | 'WASHI_TAPE_2' | 'WASHI_TAPE_3' | 'WASHI_TAPE_4' | 'WASHI_TAPE_5' | 'WASHI_TAPE_6' — A string enum describing the end caps of vector paths.
            - `strokeMiterAngle` number — Only valid if `strokeJoin` is "MITER". The corner angle, in degrees, below which `strokeJoin` will be set to "BEVEL" to avoid super sharp corners. By default this is 28.96 degrees.
            - `exportSettings` ExportSetting[] — An array of export settings representing images to export from the node.
              - …
            - `effects` Effect[], required — An array of effects attached to this node (see effects section for more details)
              - …
            - `isMask` boolean — Does this node mask sibling nodes in front of it?
            - `maskType` 'ALPHA' | 'VECTOR' | 'LUMINANCE' — If this layer is a mask, this property describes the operation used to mask the layer's siblings. The value may be one of the following: - ALPHA: the mask node's alpha channel will be used to determine the opacity of each pixel in the masked result. - VECTOR: if the mask node has visible fill paints, every pixel inside the node's fill regions will be fully visible in the masked result. If the mask has visible stroke paints, every pixel inside the node's stroke regions will be fully visible in the masked result. - LUMINANCE: the luminance value of each pixel of the mask node will be used to determine the opacity of that pixel in the masked result.
            - `isMaskOutline` boolean — True if maskType is VECTOR. This field is deprecated; use maskType instead.
            - `transitionNodeID` string — Node ID of node to transition to in prototyping
            - `transitionDuration` number — The duration of the prototyping transition on this node (in milliseconds). This will override the default transition duration on the prototype, for this node.
            - `transitionEasing` 'EASE_IN' | 'EASE_OUT' | 'EASE_IN_AND_OUT' | 'LINEAR' | 'EASE_IN_BACK' | 'EASE_OUT_BACK' | 'EASE_IN_AND_OUT_BACK' | 'CUSTOM_CUBIC_BEZIER' | 'GENTLE' | 'QUICK' | 'BOUNCY' | 'SLOW' | 'CUSTOM_SPRING' — This type is a string enum with the following possible values: - `EASE_IN`: Ease in with an animation curve similar to CSS ease-in. - `EASE_OUT`: Ease out with an animation curve similar to CSS ease-out. - `EASE_IN_AND_OUT`: Ease in and then out with an animation curve similar to CSS ease-in-out. - `LINEAR`: No easing, similar to CSS linear. - `EASE_IN_BACK`: Ease in with an animation curve that moves past the initial keyframe's value and then accelerates as it reaches the end. - `EASE_OUT_BACK`: Ease out with an animation curve that starts fast, then slows and goes past the ending keyframe's value. - `EASE_IN_AND_OUT_BACK`: Ease in and then out with an animation curve that overshoots the initial keyframe's value, then accelerates quickly before it slows and overshoots the ending keyframes value. - `CUSTOM_CUBIC_BEZIER`: User-defined cubic bezier curve. - `GENTLE`: Gentle animation similar to react-spring. - `QUICK`: Quick spring animation, great for toasts and notifications. - `BOUNCY`: Bouncy spring, for delightful animations like a heart bounce. - `SLOW`: Slow spring, useful as a steady, natural way to scale up fullscreen content. - `CUSTOM_SPRING`: User-defined spring animation.
            - `interactions` Interaction[]
              - …
          - WidgetNode
            - `type` 'WIDGET', required — The type of the node
            - `id` string, required — A string uniquely identifying this node within the document.
            - `name` string, required — The name given to the node by the user in the tool.
            - `visible` boolean — Whether or not the node is visible on the canvas.
            - `locked` boolean — If true, layer is locked and cannot be edited
            - `isFixed` boolean — Whether the layer is fixed while the parent is scrolling
            - `scrollBehavior` 'SCROLLS' | 'FIXED' | 'STICKY_SCROLLS', required — How layer should be treated when the frame is resized
            - `rotation` number — The rotation of the node, if not 0.
            - `componentPropertyReferences` object — A mapping of a layer's property to component property name of component properties attached to this node. The component property name can be used to look up more information on the corresponding component's or component set's componentPropertyDefinitions.
            - `pluginData` unknown
            - `sharedPluginData` unknown
            - `boundVariables` object — A mapping of field to the variables applied to this field. Most fields will only map to a single `VariableAlias`. However, for properties like `fills`, `strokes`, `size`, `componentProperties`, and `textRangeFills`, it is possible to have multiple variables bound to the field.
              - …
            - `explicitVariableModes` object — A mapping of variable collection ID to mode ID representing the explicitly set modes for this node.
            - `exportSettings` ExportSetting[] — An array of export settings representing images to export from the node.
              - …
            - `children` SubcanvasNode[], required — An array of nodes that are direct children of this node
      - `backgroundColor` RGBA, required — An RGBA color
        - `r` number, required — Red channel value, between 0 and 1.
        - `g` number, required — Green channel value, between 0 and 1.
        - `b` number, required — Blue channel value, between 0 and 1.
        - `a` number, required — Alpha channel value, between 0 and 1.
      - `prototypeStartNodeID` string, nullable, required — Node ID that corresponds to the start frame for prototypes. This is deprecated with the introduction of multiple flows. Please use the `flowStartingPoints` field.
      - `flowStartingPoints` FlowStartingPoint[], required — An array of flow starting points sorted by its position in the prototype settings panel.
        - `nodeId` string, required — Unique identifier specifying the frame.
        - `name` string, required — Name of flow.
      - `prototypeDevice` PrototypeDevice, required — The device used to view a prototype.
        - `type` 'NONE' | 'PRESET' | 'CUSTOM' | 'PRESENTATION', required
        - `size` Size — A width and a height.
          - `width` number, required — The width of a size.
          - `height` number, required — the height of a size.
        - `presetIdentifier` string
        - `rotation` 'NONE' | 'CCW_90', required
      - `measurements` Measurement[]
        - `id` string, required
        - `start` MeasurementStartEnd, required — The node and side a measurement is pinned to
          - `nodeId` string, required
          - `side` 'TOP' | 'RIGHT' | 'BOTTOM' | 'LEFT', required
        - `end` MeasurementStartEnd, required — The node and side a measurement is pinned to
          - `nodeId` string, required
          - `side` 'TOP' | 'RIGHT' | 'BOTTOM' | 'LEFT', required
        - `offset` union, required
          - MeasurementOffsetInner — Measurement offset relative to the inside of the start node
            - `type` 'INNER', required
            - `relative` number, required
          - MeasurementOffsetOuter — Measurement offset relative to the outside of the start node
            - `type` 'OUTER', required
            - `fixed` number, required
        - `freeText` string — When manually overridden, the displayed value of the measurement
      - `id` string, required — A string uniquely identifying this node within the document.
      - `name` string, required — The name given to the node by the user in the tool.
      - `visible` boolean — Whether or not the node is visible on the canvas.
      - `locked` boolean — If true, layer is locked and cannot be edited
      - `isFixed` boolean — Whether the layer is fixed while the parent is scrolling
      - `scrollBehavior` 'SCROLLS' | 'FIXED' | 'STICKY_SCROLLS', required — How layer should be treated when the frame is resized
      - `rotation` number — The rotation of the node, if not 0.
      - `componentPropertyReferences` object — A mapping of a layer's property to component property name of component properties attached to this node. The component property name can be used to look up more information on the corresponding component's or component set's componentPropertyDefinitions.
      - `pluginData` unknown
      - `sharedPluginData` unknown
      - `boundVariables` object — A mapping of field to the variables applied to this field. Most fields will only map to a single `VariableAlias`. However, for properties like `fills`, `strokes`, `size`, `componentProperties`, and `textRangeFills`, it is possible to have multiple variables bound to the field.
        - `size` object
          - `x` VariableAlias — Contains a variable alias
            - `type` 'VARIABLE_ALIAS', required
            - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
          - `y` VariableAlias — Contains a variable alias
            - `type` 'VARIABLE_ALIAS', required
            - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
        - `individualStrokeWeights` object
          - `top` VariableAlias — Contains a variable alias
            - `type` 'VARIABLE_ALIAS', required
            - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
          - `bottom` VariableAlias — Contains a variable alias
            - `type` 'VARIABLE_ALIAS', required
            - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
          - `left` VariableAlias — Contains a variable alias
            - `type` 'VARIABLE_ALIAS', required
            - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
          - `right` VariableAlias — Contains a variable alias
            - `type` 'VARIABLE_ALIAS', required
            - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
        - `characters` VariableAlias — Contains a variable alias
          - `type` 'VARIABLE_ALIAS', required
          - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
        - `itemSpacing` VariableAlias — Contains a variable alias
          - `type` 'VARIABLE_ALIAS', required
          - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
        - `paddingLeft` VariableAlias — Contains a variable alias
          - `type` 'VARIABLE_ALIAS', required
          - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
        - `paddingRight` VariableAlias — Contains a variable alias
          - `type` 'VARIABLE_ALIAS', required
          - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
        - `paddingTop` VariableAlias — Contains a variable alias
          - `type` 'VARIABLE_ALIAS', required
          - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
        - `paddingBottom` VariableAlias — Contains a variable alias
          - `type` 'VARIABLE_ALIAS', required
          - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
        - `visible` VariableAlias — Contains a variable alias
          - `type` 'VARIABLE_ALIAS', required
          - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
        - `topLeftRadius` VariableAlias — Contains a variable alias
          - `type` 'VARIABLE_ALIAS', required
          - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
        - `topRightRadius` VariableAlias — Contains a variable alias
          - `type` 'VARIABLE_ALIAS', required
          - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
        - `bottomLeftRadius` VariableAlias — Contains a variable alias
          - `type` 'VARIABLE_ALIAS', required
          - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
        - `bottomRightRadius` VariableAlias — Contains a variable alias
          - `type` 'VARIABLE_ALIAS', required
          - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
        - `minWidth` VariableAlias — Contains a variable alias
          - `type` 'VARIABLE_ALIAS', required
          - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
        - `maxWidth` VariableAlias — Contains a variable alias
          - `type` 'VARIABLE_ALIAS', required
          - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
        - `minHeight` VariableAlias — Contains a variable alias
          - `type` 'VARIABLE_ALIAS', required
          - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
        - `maxHeight` VariableAlias — Contains a variable alias
          - `type` 'VARIABLE_ALIAS', required
          - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
        - `counterAxisSpacing` VariableAlias — Contains a variable alias
          - `type` 'VARIABLE_ALIAS', required
          - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
        - `opacity` VariableAlias — Contains a variable alias
          - `type` 'VARIABLE_ALIAS', required
          - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
        - `fontFamily` VariableAlias[]
          - `type` 'VARIABLE_ALIAS', required
          - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
        - `fontSize` VariableAlias[]
          - `type` 'VARIABLE_ALIAS', required
          - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
        - `fontStyle` VariableAlias[]
          - `type` 'VARIABLE_ALIAS', required
          - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
        - `fontWeight` VariableAlias[]
          - `type` 'VARIABLE_ALIAS', required
          - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
        - `letterSpacing` VariableAlias[]
          - `type` 'VARIABLE_ALIAS', required
          - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
        - `lineHeight` VariableAlias[]
          - `type` 'VARIABLE_ALIAS', required
          - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
        - `paragraphSpacing` VariableAlias[]
          - `type` 'VARIABLE_ALIAS', required
          - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
        - `paragraphIndent` VariableAlias[]
          - `type` 'VARIABLE_ALIAS', required
          - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
        - `fills` VariableAlias[]
          - `type` 'VARIABLE_ALIAS', required
          - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
        - `strokes` VariableAlias[]
          - `type` 'VARIABLE_ALIAS', required
          - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
        - `componentProperties` object
        - `textRangeFills` VariableAlias[]
          - `type` 'VARIABLE_ALIAS', required
          - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
        - `effects` VariableAlias[]
          - `type` 'VARIABLE_ALIAS', required
          - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
        - `layoutGrids` VariableAlias[]
          - `type` 'VARIABLE_ALIAS', required
          - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
      - `explicitVariableModes` object — A mapping of variable collection ID to mode ID representing the explicitly set modes for this node.
      - `exportSettings` ExportSetting[] — An array of export settings representing images to export from the node.
        - `suffix` string, required
        - `format` 'JPG' | 'PNG' | 'SVG' | 'PDF', required
        - `constraint` Constraint, required — Sizing constraint for exports.
          - `type` 'SCALE' | 'WIDTH' | 'HEIGHT', required — Type of constraint to apply: - `SCALE`: Scale by `value`. - `WIDTH`: Scale proportionally and set width to `value`. - `HEIGHT`: Scale proportionally and set height to `value`.
          - `value` number, required — See type property for effect of this field.
    - `id` string, required — A string uniquely identifying this node within the document.
    - `name` string, required — The name given to the node by the user in the tool.
    - `visible` boolean — Whether or not the node is visible on the canvas.
    - `locked` boolean — If true, layer is locked and cannot be edited
    - `isFixed` boolean — Whether the layer is fixed while the parent is scrolling
    - `scrollBehavior` 'SCROLLS' | 'FIXED' | 'STICKY_SCROLLS', required — How layer should be treated when the frame is resized
    - `rotation` number — The rotation of the node, if not 0.
    - `componentPropertyReferences` object — A mapping of a layer's property to component property name of component properties attached to this node. The component property name can be used to look up more information on the corresponding component's or component set's componentPropertyDefinitions.
    - `pluginData` unknown
    - `sharedPluginData` unknown
    - `boundVariables` object — A mapping of field to the variables applied to this field. Most fields will only map to a single `VariableAlias`. However, for properties like `fills`, `strokes`, `size`, `componentProperties`, and `textRangeFills`, it is possible to have multiple variables bound to the field.
      - `size` object
        - `x` VariableAlias — Contains a variable alias
          - `type` 'VARIABLE_ALIAS', required
          - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
        - `y` VariableAlias — Contains a variable alias
          - `type` 'VARIABLE_ALIAS', required
          - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
      - `individualStrokeWeights` object
        - `top` VariableAlias — Contains a variable alias
          - `type` 'VARIABLE_ALIAS', required
          - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
        - `bottom` VariableAlias — Contains a variable alias
          - `type` 'VARIABLE_ALIAS', required
          - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
        - `left` VariableAlias — Contains a variable alias
          - `type` 'VARIABLE_ALIAS', required
          - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
        - `right` VariableAlias — Contains a variable alias
          - `type` 'VARIABLE_ALIAS', required
          - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
      - `characters` VariableAlias — Contains a variable alias
        - `type` 'VARIABLE_ALIAS', required
        - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
      - `itemSpacing` VariableAlias — Contains a variable alias
        - `type` 'VARIABLE_ALIAS', required
        - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
      - `paddingLeft` VariableAlias — Contains a variable alias
        - `type` 'VARIABLE_ALIAS', required
        - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
      - `paddingRight` VariableAlias — Contains a variable alias
        - `type` 'VARIABLE_ALIAS', required
        - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
      - `paddingTop` VariableAlias — Contains a variable alias
        - `type` 'VARIABLE_ALIAS', required
        - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
      - `paddingBottom` VariableAlias — Contains a variable alias
        - `type` 'VARIABLE_ALIAS', required
        - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
      - `visible` VariableAlias — Contains a variable alias
        - `type` 'VARIABLE_ALIAS', required
        - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
      - `topLeftRadius` VariableAlias — Contains a variable alias
        - `type` 'VARIABLE_ALIAS', required
        - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
      - `topRightRadius` VariableAlias — Contains a variable alias
        - `type` 'VARIABLE_ALIAS', required
        - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
      - `bottomLeftRadius` VariableAlias — Contains a variable alias
        - `type` 'VARIABLE_ALIAS', required
        - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
      - `bottomRightRadius` VariableAlias — Contains a variable alias
        - `type` 'VARIABLE_ALIAS', required
        - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
      - `minWidth` VariableAlias — Contains a variable alias
        - `type` 'VARIABLE_ALIAS', required
        - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
      - `maxWidth` VariableAlias — Contains a variable alias
        - `type` 'VARIABLE_ALIAS', required
        - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
      - `minHeight` VariableAlias — Contains a variable alias
        - `type` 'VARIABLE_ALIAS', required
        - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
      - `maxHeight` VariableAlias — Contains a variable alias
        - `type` 'VARIABLE_ALIAS', required
        - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
      - `counterAxisSpacing` VariableAlias — Contains a variable alias
        - `type` 'VARIABLE_ALIAS', required
        - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
      - `opacity` VariableAlias — Contains a variable alias
        - `type` 'VARIABLE_ALIAS', required
        - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
      - `fontFamily` VariableAlias[]
        - `type` 'VARIABLE_ALIAS', required
        - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
      - `fontSize` VariableAlias[]
        - `type` 'VARIABLE_ALIAS', required
        - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
      - `fontStyle` VariableAlias[]
        - `type` 'VARIABLE_ALIAS', required
        - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
      - `fontWeight` VariableAlias[]
        - `type` 'VARIABLE_ALIAS', required
        - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
      - `letterSpacing` VariableAlias[]
        - `type` 'VARIABLE_ALIAS', required
        - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
      - `lineHeight` VariableAlias[]
        - `type` 'VARIABLE_ALIAS', required
        - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
      - `paragraphSpacing` VariableAlias[]
        - `type` 'VARIABLE_ALIAS', required
        - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
      - `paragraphIndent` VariableAlias[]
        - `type` 'VARIABLE_ALIAS', required
        - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
      - `fills` VariableAlias[]
        - `type` 'VARIABLE_ALIAS', required
        - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
      - `strokes` VariableAlias[]
        - `type` 'VARIABLE_ALIAS', required
        - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
      - `componentProperties` object
      - `textRangeFills` VariableAlias[]
        - `type` 'VARIABLE_ALIAS', required
        - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
      - `effects` VariableAlias[]
        - `type` 'VARIABLE_ALIAS', required
        - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
      - `layoutGrids` VariableAlias[]
        - `type` 'VARIABLE_ALIAS', required
        - `id` string, required — The id of the variable that the current variable is aliased to. This variable can be a local or remote variable, and both can be retrieved via the GET /v1/files/:file_key/variables/local endpoint.
    - `explicitVariableModes` object — A mapping of variable collection ID to mode ID representing the explicitly set modes for this node.
  - `components` object, required — A mapping from component IDs to component metadata.
  - `componentSets` object, required — A mapping from component set IDs to component set metadata.
  - `schemaVersion` number, required — The version of the file schema that this file uses.
  - `styles` object, required — A mapping from style IDs to style metadata.
  - `linkAccess` string — The share permission level of the file link.
  - `mainFileKey` string — The key of the main file for this file. If present, this file is a component or component set.
  - `branches` object[] — A list of branches for this file.
    - `key` string, required — The key of the branch.
    - `name` string, required — The name of the branch.
    - `thumbnail_url` string, required — A URL to a thumbnail image of the branch.
    - `last_modified` string, date-time, required — The UTC ISO 8601 time at which the branch was last modified.

## Other responses

- `400` — Bad request. Parameters are invalid or malformed. Please check the input formats. This error can also happen if the requested resources are too large to complete the request, which results in a timeout. Please reduce the number and size of objects requested.
- `403` — The request was valid, but the server is refusing action. The user might not have the necessary permissions for a resource, or may need an account of some sort.
- `404` — The requested file or resource was not found.
- `429` — In some cases API requests may be throttled or rate limited. Please wait a while before attempting the request again (typically a minute).
- `500` — An internal server error occurred.

---

[API](https://skmtc.net/thirdstrandstudio/apis/figma-api.md) · [All operations](https://skmtc.net/thirdstrandstudio/apis/figma-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/thirdstrandstudio/figma-api/versions/48f84f49653a/schema)
