MCPサーバー

mcp

com.googleapis.stitch/mcp

このMCPでできること

Creates and edits Stitch UI projects and screens, generates screen variants, and manages application design systems.

apply_design_system
Applies a design system to a list of screens. Use this tool when the user wants to update one or more screens to match the style of a design system. This tool applies the selected design system's foundational design tokens (colors, fonts, shapes, etc.) to the chosen screens, modifying their appearance to align with the design system.
破壊的操作あり
入力スキーマ
{'type': 'object', '$defs': {'SelectedScreenInstance': {'type': 'object', 'required': ['id', 'sourceScreen'], 'properties': {'id': {'type': 'string', 'description': 'Required. The id of the screen instance, **NOT** the source screen id. This is available in the screen instances in the Project info, fetched by `get_project`.'}, 'sourceScreen': {'type': 'string', 'description': 'Required. The source screen of the screen instance. The resource name of the source screen. Format: projects/{project}/screens/{screen}'}}, 'description': 'A screen instance to be edited by the agent, selected by the user.'}}, 'required': ['projectId', 'selectedScreenInstances', 'assetId'], 'properties': {'assetId': {'type': 'string', 'description': "Required. The asset id of the design system to apply, can be fetched from 'list_design_systems'. Example: '15996705518239280238', without the `assets/` prefix."}, 'projectId': {'type': 'string', 'description': "Required. The project ID of screen instances to edit, example: '4044680601076201931', without the `projects/` prefix."}, 'selectedScreenInstances': {'type': 'array', 'items': {'$ref': '#/$defs/SelectedScreenInstance'}, 'description': 'Required. The screen instances to edit, which is available in the Project info, fetched by `get_project`.'}}, 'description': 'Request message for ApplyDesignSystem.'}
出力スキーマ
{'type': 'object', '$defs': {'File': {'type': 'object', 'properties': {'name': {'type': 'string', 'description': 'Identifier. The resource name of the file. Format: projects/{project}/files/{file}', 'x-google-identifier': True}, 'mimeType': {'type': 'string', 'description': 'Optional. The mime type of the file. E.g. "image/png", "text/html".'}, 'downloadUrl': {'type': 'string', 'description': 'Optional. The URL of the file for download. For image files, this would be FIFE base URLs. Only one of the following fields should be set: this field, uploadBlobId, fileContentBase64.'}, 'uploadBlobId': {'type': 'string', 'description': 'Optional. The BlobId from Scotty/contrib service file upload. This points to a temporary blobstore location of the file. Only one of the following fields should be set: this field, downloadUrl, fileContentBase64.'}, 'userFeedback': {'$ref': '#/$defs/UserFeedback', 'readOnly': True, 'description': 'Output only. The latest feedback submitted for the file.'}, 'fileContentBase64': {'type': 'string', 'writeOnly': True, 'description': 'Optional. Input only. The base64-encoded string of the file content. Only one of the following fields should be set: this field, uploadBlobId, downloadUrl.'}}, 'description': 'A File resource.'}, 'Asset': {'type': 'object', 'properties': {'name': {'type': 'string', 'description': 'Identifier. The resource name of the asset. Format: assets/{asset}', 'x-google-identifier': True}, 'version': {'type': 'string', 'format': 'int64', 'readOnly': True, 'description': 'Output only. The version of this asset. 0 indicates unversioned (legacy data). Incremented when the asset content changes.'}, 'copiedFrom': {'type': 'string', 'description': 'Optional. The resource name of the asset this was copied from, if any. Format: assets/{asset} Tracks the fork history of assets.'}, 'designSystem': {'$ref': '#/$defs/DesignSystem', 'description': 'Optional. The design system.'}}, 'description': 'An Asset resource.'}, 'Design': {'type': 'object', 'properties': {'theme': {'$ref': '#/$defs/DesignTheme', 'description': 'Optional. The theme used to generate the design.'}, 'title': {'type': 'string', 'description': 'Optional. The generated title of the design.'}, 'screens': {'type': 'array', 'items': {'$ref': '#/$defs/Screen'}, 'description': 'Optional. The screens of the design.'}, 'deviceType': {'enum': ['DEVICE_TYPE_UNSPECIFIED', 'MOBILE', 'DESKTOP', 'TABLET', 'AGNOSTIC'], 'type': 'string', 'description': 'Optional. The device type of the design.', 'x-google-enum-descriptions': ['Unspecified device type.', 'A design for a mobile device.', 'A design for a desktop device.', 'A design for a tablet device.', 'A design that is not tied to a specific device.']}}, 'description': 'A generated design, which is a collection of multiple screens. Note: do not add new fields to this message or rely on it for any logic. For any Screen property, add it to Screen message instead. Design is a deprecated hierarchical container for screens and is only used for backward compatibility.'}, 'Screen': {'type': 'object', 'properties': {'id': {'type': 'string', 'deprecated': True, 'description': 'Optional. The screen id.'}, 'name': {'type': 'string', 'description': 'Identifier. The resource name of the screen. Format: projects/{project}/screens/{screen}', 'x-google-identifier': True}, 'theme': {'$ref': '#/$defs/DesignTheme', 'description': 'Optional. The theme used to generate the screen.'}, 'title': {'type': 'string', 'description': 'Optional. The title of the screen.'}, 'width': {'type': 'string', 'description': 'Optional. The width of the screen.'}, 'height': {'type': 'string', 'description': 'Optional. The height of the screen.'}, 'prompt': {'type': 'string', 'description': 'Optional. The prompt used to generate the screen.'}, 'groupId': {'type': 'string', 'description': 'Optional. The group id of the screen. This is used to group screens that are related to each other (e.g. a group of variants of a design).'}, 'htmlCode': {'$ref': '#/$defs/File', 'description': 'Optional. The HTML code of the screen.'}, 'groupName': {'type': 'string', 'description': 'Optional. The name of the group (e.g., design package name) for display purposes.'}, 'deviceType': {'enum': ['DEVICE_TYPE_UNSPECIFIED', 'MOBILE', 'DESKTOP', 'TABLET', 'AGNOSTIC'], 'type': 'string', 'description': 'Optional. The device type of the screen.', 'x-google-enum-descriptions': ['Unspecified device type.', 'A design for a mobile device.', 'A design for a desktop device.', 'A design for a tablet device.', 'A design that is not tied to a specific device.']}, 'screenType': {'enum': ['SCREEN_TYPE_UNSPECIFIED', 'DESIGN', 'IMAGE', 'PROTOTYPE', 'DOCUMENT', 'PROTOTYPE_V2'], 'type': 'string', 'description': 'Optional. The screen type.', 'x-google-enum-descriptions': ['If the screen type is unspecified, it is assumed to be a DESIGN.', 'A design screen.', 'A pure image.', 'A design prototype.', 'A document like a PRD.', 'A design prototype v2.']}, 'screenshot': {'$ref': '#/$defs/File', 'description': 'Optional. The screenshot of the screen.'}, 'figmaExport': {'$ref': '#/$defs/File', 'description': 'Optional. The Figma export of the screen.'}, 'generatedBy': {'type': 'string', 'description': 'Optional. The generated by field of the screen.'}, 'designSystem': {'$ref': '#/$defs/Asset', 'readOnly': True, 'description': 'Output only. The design system used to generate the screen.'}, 'screenMetadata': {'$ref': '#/$defs/ScreenMetadata', 'description': 'Optional. The metadata of the screen.'}, 'isCreatedByClient': {'type': 'boolean', 'description': 'Optional. If true, the screen was created by client calling CreateScreen API for user uploads or copy paste. If false, the screen was created by the agents.'}}, 'description': 'A generated screen.'}, 'Question': {'type': 'object', 'properties': {'text': {'type': 'string', 'description': 'The question text displayed to the user.'}, 'options': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Options for MULTIPLE_CHOICE / SINGLE_CHOICE questions.'}, 'questionId': {'type': 'string', 'description': 'An optional unique identifier for correlating answers to questions.'}, 'responseType': {'enum': ['QUESTION_RESPONSE_TYPE_UNSPECIFIED', 'FREEFORM_TEXT', 'MULTIPLE_CHOICE', 'SINGLE_CHOICE', 'YES_NO', 'RATING_SCALE'], 'type': 'string', 'description': 'The expected response type.', 'x-google-enum-descriptions': ['Unspecified response type.', 'Open-ended text input.', 'Select one or more options from a list.', 'Select exactly one option from a list.', 'Simple yes / no.', 'Numeric rating on a scale.']}}, 'description': 'A single structured question the agent asks the user.'}, 'Typography': {'type': 'object', 'properties': {'fontSize': {'type': 'string', 'description': 'Optional. The CSS font-size value (e.g., "32px", "1rem").'}, 'fontFamily': {'type': 'string', 'description': 'Optional. The CSS font-family value (e.g., "Manrope", "Inter").'}, 'fontWeight': {'type': 'string', 'description': 'Optional. The CSS font-weight value (e.g., "400", "700").'}, 'lineHeight': {'type': 'string', 'description': 'Optional. The CSS line-height value (e.g., "1.5", "40px").'}, 'letterSpacing': {'type': 'string', 'description': 'Optional. The CSS letter-spacing value (e.g., "0px", "-0.02em").'}}, 'description': 'A typography style token in a design system, defining the visual properties for a single text level (e.g. "display-lg", "body-md").'}, 'BoundingBox': {'type': 'object', 'properties': {'x': {'type': 'integer', 'format': 'int32', 'description': 'The x coordinate of the bounding box, relative to the image width.'}, 'y': {'type': 'integer', 'format': 'int32', 'description': 'The y coordinate of the bounding box, relative to the image height.'}, 'width': {'type': 'integer', 'format': 'int32', 'description': 'The width of the bounding box.'}, 'height': {'type': 'integer', 'format': 'int32', 'description': 'The height of the bounding box.'}}, 'description': 'The bounding box of a component.'}, 'DesignTheme': {'type': 'object', 'properties': {'font': {'enum': ['FONT_UNSPECIFIED', 'BE_VIETNAM_PRO', 'EPILOGUE', 'INTER', 'LEXEND', 'MANROPE', 'NEWSREADER', 'NOTO_SERIF', 'PLUS_JAKARTA_SANS', 'PUBLIC_SANS', 'SPACE_GROTESK', 'SPLINE_SANS', 'WORK_SANS', 'DOMINE', 'LIBRE_CASLON_TEXT', 'EB_GARAMOND', 'LITERATA', 'SOURCE_SERIF_4', 'SOURCE_SERIF_FOUR', 'MONTSERRAT', 'METROPHOBIC', 'METROPOLIS', 'SOURCE_SANS_3', 'SOURCE_SANS_THREE', 'NUNITO_SANS', 'ARIMO', 'HANKEN_GROTESK', 'RUBIK', 'GEIST', 'DM_SANS', 'IBM_PLEX_SANS', 'SORA', 'ANYBODY', 'ANTON', 'ARCHIVO_NARROW', 'ATKINSON_HYPERLEGIBLE_NEXT', 'BARLOW_CONDENSED', 'BEBAS_NEUE', 'BODONI_MODA', 'BRICOLAGE_GROTESQUE', 'CHIVO', 'CLIMATE_CRISIS', 'COMFORTAA', 'COURIER_PRIME', 'FIRA_SANS', 'GOOGLE_SANS', 'GOOGLE_SANS_CODE', 'GOOGLE_SANS_FLEX', 'GOOGLE_SANS_MONO', 'GOOGLE_SANS_TEXT', 'IBM_PLEX_SERIF', 'JETBRAINS_MONO', 'KARLA', 'LIBRE_FRANKLIN', 'MERRIWEATHER', 'NOTO_SANS', 'OPEN_SANS', 'OSWALD', 'OUTFIT', 'PLAYFAIR_DISPLAY', 'POIRET_ONE', 'QUESTRIAL', 'QUICKSAND', 'RALEWAY', 'ROBOTO_FLEX', 'SPACE_MONO', 'SYNE', 'VOLLKORN'], 'type': 'string', 'deprecated': True, 'description': 'Optional. DEPRECATED: The font of the design. Planned to be deprecated in favor of `headline_font`, `body_font`, and `label_font`.', 'x-google-enum-deprecated': [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, True, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False], 'x-google-enum-descriptions': ['Unspecified font.', 'Be Vietnam Pro font.', 'Epilogue font.', 'Inter font.', 'Lexend font.', 'Manrope font.', 'Newsreader font.', 'Noto Serif font.', 'Plus Jakarta Sans font.', 'Public Sans font.', 'Space Grotesk font.', 'Spline Sans font.', 'Work Sans font.', 'Domine font.', 'Libre Caslon Text font.', 'EB Garamond font.', 'Literata font.', 'Source Serif 4 font.', 'Source Serif 4 font. Deprecated.', 'Montserrat font.', 'The Metrophobic font.', 'Metropolis font. Deprecated.', 'The Source Sans 3 font.', 'Source Sans 3 font. Deprecated.', 'Nunito Sans font.', 'Arimo font.', 'Hanken Grotesk font.', 'Rubik font.', 'Geist font.', 'DM Sans font.', 'IBM Plex Sans font.', 'Sora font.', 'Anybody font.', 'Anton font.', 'Archivo Narrow font.', 'Atkinson Hyperlegible Next font.', 'Barlow Condensed font.', 'Bebas Neue font.', 'Bodoni Moda font.', 'Bricolage Grotesque font.', 'Chivo font.', 'Climate Crisis font.', 'Comfortaa font.', 'Courier Prime font.', 'Fira Sans font.', 'Google Sans font.', 'Google Sans Code font.', 'Google Sans Flex font.', 'Google Sans Mono font.', 'Google Sans Text font.', 'IBM Plex Serif font.', 'JetBrains Mono font.', 'Karla font.', 'Libre Franklin font.', 'Merriweather font.', 'Noto Sans font.', 'Open Sans font.', 'Oswald font.', 'Outfit font.', 'Playfair Display font.', 'Poiret One font.', 'Questrial font.', 'Quicksand font.', 'Raleway font.', 'Roboto Flex font.', 'Space Mono font.', 'Syne font.', 'Vollkorn font.']}, 'preset': {'type': 'string', 'deprecated': True, 'description': 'Optional. DEPRECATED: The preset color of the design.'}, 'spacing': {'type': 'object', 'description': 'Optional. Spacing units for the design system. Maps spacing names to their values.', 'additionalProperties': {'type': 'string'}}, 'bodyFont': {'enum': ['FONT_UNSPECIFIED', 'BE_VIETNAM_PRO', 'EPILOGUE', 'INTER', 'LEXEND', 'MANROPE', 'NEWSREADER', 'NOTO_SERIF', 'PLUS_JAKARTA_SANS', 'PUBLIC_SANS', 'SPACE_GROTESK', 'SPLINE_SANS', 'WORK_SANS', 'DOMINE', 'LIBRE_CASLON_TEXT', 'EB_GARAMOND', 'LITERATA', 'SOURCE_SERIF_4', 'SOURCE_SERIF_FOUR', 'MONTSERRAT', 'METROPHOBIC', 'METROPOLIS', 'SOURCE_SANS_3', 'SOURCE_SANS_THREE', 'NUNITO_SANS', 'ARIMO', 'HANKEN_GROTESK', 'RUBIK', 'GEIST', 'DM_SANS', 'IBM_PLEX_SANS', 'SORA', 'ANYBODY', 'ANTON', 'ARCHIVO_NARROW', 'ATKINSON_HYPERLEGIBLE_NEXT', 'BARLOW_CONDENSED', 'BEBAS_NEUE', 'BODONI_MODA', 'BRICOLAGE_GROTESQUE', 'CHIVO', 'CLIMATE_CRISIS', 'COMFORTAA', 'COURIER_PRIME', 'FIRA_SANS', 'GOOGLE_SANS', 'GOOGLE_SANS_CODE', 'GOOGLE_SANS_FLEX', 'GOOGLE_SANS_MONO', 'GOOGLE_SANS_TEXT', 'IBM_PLEX_SERIF', 'JETBRAINS_MONO', 'KARLA', 'LIBRE_FRANKLIN', 'MERRIWEATHER', 'NOTO_SANS', 'OPEN_SANS', 'OSWALD', 'OUTFIT', 'PLAYFAIR_DISPLAY', 'POIRET_ONE', 'QUESTRIAL', 'QUICKSAND', 'RALEWAY', 'ROBOTO_FLEX', 'SPACE_MONO', 'SYNE', 'VOLLKORN'], 'type': 'string', 'description': 'Optional. Body font.', 'x-google-enum-deprecated': [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, True, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False], 'x-google-enum-descriptions': ['Unspecified font.', 'Be Vietnam Pro font.', 'Epilogue font.', 'Inter font.', 'Lexend font.', 'Manrope font.', 'Newsreader font.', 'Noto Serif font.', 'Plus Jakarta Sans font.', 'Public Sans font.', 'Space Grotesk font.', 'Spline Sans font.', 'Work Sans font.', 'Domine font.', 'Libre Caslon Text font.', 'EB Garamond font.', 'Literata font.', 'Source Serif 4 font.', 'Source Serif 4 font. Deprecated.', 'Montserrat font.', 'The Metrophobic font.', 'Metropolis font. Deprecated.', 'The Source Sans 3 font.', 'Source Sans 3 font. Deprecated.', 'Nunito Sans font.', 'Arimo font.', 'Hanken Grotesk font.', 'Rubik font.', 'Geist font.', 'DM Sans font.', 'IBM Plex Sans font.', 'Sora font.', 'Anybody font.', 'Anton font.', 'Archivo Narrow font.', 'Atkinson Hyperlegible Next font.', 'Barlow Condensed font.', 'Bebas Neue font.', 'Bodoni Moda font.', 'Bricolage Grotesque font.', 'Chivo font.', 'Climate Crisis font.', 'Comfortaa font.', 'Courier Prime font.', 'Fira Sans font.', 'Google Sans font.', 'Google Sans Code font.', 'Google Sans Flex font.', 'Google Sans Mono font.', 'Google Sans Text font.', 'IBM Plex Serif font.', 'JetBrains Mono font.', 'Karla font.', 'Libre Franklin font.', 'Merriweather font.', 'Noto Sans font.', 'Open Sans font.', 'Oswald font.', 'Outfit font.', 'Playfair Display font.', 'Poiret One font.', 'Questrial font.', 'Quicksand font.', 'Raleway font.', 'Roboto Flex font.', 'Space Mono font.', 'Syne font.', 'Vollkorn font.']}, 'designMd': {'type': 'string', 'description': 'Optional. A markdown file that describes the design system.'}, 'colorMode': {'enum': ['COLOR_MODE_UNSPECIFIED', 'LIGHT', 'DARK'], 'type': 'string', 'description': 'Required. The mode of appearance of the design.', 'x-google-enum-descriptions': ['Unspecified color mode.', 'Light mode.', 'Dark mode.']}, 'labelFont': {'enum': ['FONT_UNSPECIFIED', 'BE_VIETNAM_PRO', 'EPILOGUE', 'INTER', 'LEXEND', 'MANROPE', 'NEWSREADER', 'NOTO_SERIF', 'PLUS_JAKARTA_SANS', 'PUBLIC_SANS', 'SPACE_GROTESK', 'SPLINE_SANS', 'WORK_SANS', 'DOMINE', 'LIBRE_CASLON_TEXT', 'EB_GARAMOND', 'LITERATA', 'SOURCE_SERIF_4', 'SOURCE_SERIF_FOUR', 'MONTSERRAT', 'METROPHOBIC', 'METROPOLIS', 'SOURCE_SANS_3', 'SOURCE_SANS_THREE', 'NUNITO_SANS', 'ARIMO', 'HANKEN_GROTESK', 'RUBIK', 'GEIST', 'DM_SANS', 'IBM_PLEX_SANS', 'SORA', 'ANYBODY', 'ANTON', 'ARCHIVO_NARROW', 'ATKINSON_HYPERLEGIBLE_NEXT', 'BARLOW_CONDENSED', 'BEBAS_NEUE', 'BODONI_MODA', 'BRICOLAGE_GROTESQUE', 'CHIVO', 'CLIMATE_CRISIS', 'COMFORTAA', 'COURIER_PRIME', 'FIRA_SANS', 'GOOGLE_SANS', 'GOOGLE_SANS_CODE', 'GOOGLE_SANS_FLEX', 'GOOGLE_SANS_MONO', 'GOOGLE_SANS_TEXT', 'IBM_PLEX_SERIF', 'JETBRAINS_MONO', 'KARLA', 'LIBRE_FRANKLIN', 'MERRIWEATHER', 'NOTO_SANS', 'OPEN_SANS', 'OSWALD', 'OUTFIT', 'PLAYFAIR_DISPLAY', 'POIRET_ONE', 'QUESTRIAL', 'QUICKSAND', 'RALEWAY', 'ROBOTO_FLEX', 'SPACE_MONO', 'SYNE', 'VOLLKORN'], 'type': 'string', 'description': 'Optional. Label font.', 'x-google-enum-deprecated': [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, True, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False], 'x-google-enum-descriptions': ['Unspecified font.', 'Be Vietnam Pro font.', 'Epilogue font.', 'Inter font.', 'Lexend font.', 'Manrope font.', 'Newsreader font.', 'Noto Serif font.', 'Plus Jakarta Sans font.', 'Public Sans font.', 'Space Grotesk font.', 'Spline Sans font.', 'Work Sans font.', 'Domine font.', 'Libre Caslon Text font.', 'EB Garamond font.', 'Literata font.', 'Source Serif 4 font.', 'Source Serif 4 font. Deprecated.', 'Montserrat font.', 'The Metrophobic font.', 'Metropolis font. Deprecated.', 'The Source Sans 3 font.', 'Source Sans 3 font. Deprecated.', 'Nunito Sans font.', 'Arimo font.', 'Hanken Grotesk font.', 'Rubik font.', 'Geist font.', 'DM Sans font.', 'IBM Plex Sans font.', 'Sora font.', 'Anybody font.', 'Anton font.', 'Archivo Narrow font.', 'Atkinson Hyperlegible Next font.', 'Barlow Condensed font.', 'Bebas Neue font.', 'Bodoni Moda font.', 'Bricolage Grotesque font.', 'Chivo font.', 'Climate Crisis font.', 'Comfortaa font.', 'Courier Prime font.', 'Fira Sans font.', 'Google Sans font.', 'Google Sans Code font.', 'Google Sans Flex font.', 'Google Sans Mono font.', 'Google Sans Text font.', 'IBM Plex Serif font.', 'JetBrains Mono font.', 'Karla font.', 'Libre Franklin font.', 'Merriweather font.', 'Noto Sans font.', 'Open Sans font.', 'Oswald font.', 'Outfit font.', 'Playfair Display font.', 'Poiret One font.', 'Questrial font.', 'Quicksand font.', 'Raleway font.', 'Roboto Flex font.', 'Space Mono font.', 'Syne font.', 'Vollkorn font.']}, 'roundness': {'enum': ['ROUNDNESS_UNSPECIFIED', 'ROUND_TWO', 'ROUND_FOUR', 'ROUND_EIGHT', 'ROUND_TWELVE', 'ROUND_FULL'], 'type': 'string', 'description': 'Required. The roundness of the design.', 'x-google-enum-deprecated': [False, True, False, False, False, False], 'x-google-enum-descriptions': ['Unspecified roundness.', 'Round 2. Unused.', 'Round 4.', 'Round 8.', 'Round 12 or full', 'Round full.']}, 'components': {'type': 'object', 'description': 'Optional. Component tokens for the design system. Maps component names to their tokens.', 'additionalProperties': {'$ref': '#/$defs/ComponentTokens'}}, 'saturation': {'type': 'integer', 'format': 'int32', 'deprecated': True, 'description': 'Optional. DEPRECATED: The saturation of the design between 1 and 4.'}, 'typography': {'type': 'object', 'description': 'Optional. Typography scale for the design system. Maps level names (e.g. "display-lg", "body-md") to their Typography token.', 'additionalProperties': {'$ref': '#/$defs/Typography'}}, 'customColor': {'type': 'string', 'description': 'Optional. A custom theme primary color, or a seed color for the dynamic color system (hex format, e.g., "#ff0000").'}, 'description': {'type': 'string', 'deprecated': True, 'description': 'Optional. A brief description of the theme aesthetic.'}, 'namedColors': {'type': 'object', 'description': 'Optional. The color scheme of the design. This is a map of color names to hex color codes. Example: {"primary": "#ff0000", "secondary": "#00ff00", "tertiary": "#0000ff"}', 'additionalProperties': {'type': 'string'}}, 'colorVariant': {'enum': ['COLOR_VARIANT_UNSPECIFIED', 'MONOCHROME', 'NEUTRAL', 'TONAL_SPOT', 'VIBRANT', 'EXPRESSIVE', 'FIDELITY', 'CONTENT', 'RAINBOW', 'FRUIT_SALAD'], 'type': 'string', 'description': 'Optional. The variant of the dynamic color system.', 'x-google-enum-descriptions': ['Unspecified color variant.', 'Monochrome variant.', 'Neutral variant.', 'Tonal spot variant.', 'Vibrant variant.', 'Expressive variant.', 'Fidelity variant.', 'Content variant.', 'Rainbow variant.', 'Fruit salad variant.']}, 'headlineFont': {'enum': ['FONT_UNSPECIFIED', 'BE_VIETNAM_PRO', 'EPILOGUE', 'INTER', 'LEXEND', 'MANROPE', 'NEWSREADER', 'NOTO_SERIF', 'PLUS_JAKARTA_SANS', 'PUBLIC_SANS', 'SPACE_GROTESK', 'SPLINE_SANS', 'WORK_SANS', 'DOMINE', 'LIBRE_CASLON_TEXT', 'EB_GARAMOND', 'LITERATA', 'SOURCE_SERIF_4', 'SOURCE_SERIF_FOUR', 'MONTSERRAT', 'METROPHOBIC', 'METROPOLIS', 'SOURCE_SANS_3', 'SOURCE_SANS_THREE', 'NUNITO_SANS', 'ARIMO', 'HANKEN_GROTESK', 'RUBIK', 'GEIST', 'DM_SANS', 'IBM_PLEX_SANS', 'SORA', 'ANYBODY', 'ANTON', 'ARCHIVO_NARROW', 'ATKINSON_HYPERLEGIBLE_NEXT', 'BARLOW_CONDENSED', 'BEBAS_NEUE', 'BODONI_MODA', 'BRICOLAGE_GROTESQUE', 'CHIVO', 'CLIMATE_CRISIS', 'COMFORTAA', 'COURIER_PRIME', 'FIRA_SANS', 'GOOGLE_SANS', 'GOOGLE_SANS_CODE', 'GOOGLE_SANS_FLEX', 'GOOGLE_SANS_MONO', 'GOOGLE_SANS_TEXT', 'IBM_PLEX_SERIF', 'JETBRAINS_MONO', 'KARLA', 'LIBRE_FRANKLIN', 'MERRIWEATHER', 'NOTO_SANS', 'OPEN_SANS', 'OSWALD', 'OUTFIT', 'PLAYFAIR_DISPLAY', 'POIRET_ONE', 'QUESTRIAL', 'QUICKSAND', 'RALEWAY', 'ROBOTO_FLEX', 'SPACE_MONO', 'SYNE', 'VOLLKORN'], 'type': 'string', 'description': 'Optional. Headline font.', 'x-google-enum-deprecated': [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, True, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False], 'x-google-enum-descriptions': ['Unspecified font.', 'Be Vietnam Pro font.', 'Epilogue font.', 'Inter font.', 'Lexend font.', 'Manrope font.', 'Newsreader font.', 'Noto Serif font.', 'Plus Jakarta Sans font.', 'Public Sans font.', 'Space Grotesk font.', 'Spline Sans font.', 'Work Sans font.', 'Domine font.', 'Libre Caslon Text font.', 'EB Garamond font.', 'Literata font.', 'Source Serif 4 font.', 'Source Serif 4 font. Deprecated.', 'Montserrat font.', 'The Metrophobic font.', 'Metropolis font. Deprecated.', 'The Source Sans 3 font.', 'Source Sans 3 font. Deprecated.', 'Nunito Sans font.', 'Arimo font.', 'Hanken Grotesk font.', 'Rubik font.', 'Geist font.', 'DM Sans font.', 'IBM Plex Sans font.', 'Sora font.', 'Anybody font.', 'Anton font.', 'Archivo Narrow font.', 'Atkinson Hyperlegible Next font.', 'Barlow Condensed font.', 'Bebas Neue font.', 'Bodoni Moda font.', 'Bricolage Grotesque font.', 'Chivo font.', 'Climate Crisis font.', 'Comfortaa font.', 'Courier Prime font.', 'Fira Sans font.', 'Google Sans font.', 'Google Sans Code font.', 'Google Sans Flex font.', 'Google Sans Mono font.', 'Google Sans Text font.', 'IBM Plex Serif font.', 'JetBrains Mono font.', 'Karla font.', 'Libre Franklin font.', 'Merriweather font.', 'Noto Sans font.', 'Open Sans font.', 'Oswald font.', 'Outfit font.', 'Playfair Display font.', 'Poiret One font.', 'Questrial font.', 'Quicksand font.', 'Raleway font.', 'Roboto Flex font.', 'Space Mono font.', 'Syne font.', 'Vollkorn font.']}, 'spacingScale': {'type': 'integer', 'format': 'int32', 'description': 'Optional. The spacing scale level (0=minimal, 1=compact, 2=normal, 3=spacious).'}, 'backgroundDark': {'type': 'string', 'deprecated': True, 'description': 'Optional. DEPRECATED: The background color for dark mode (hex format, e.g., "#1a1a1a").'}, 'bodyFontFamily': {'type': 'string', 'description': 'Optional. Body font family name (e.g., "Inter", "Roboto").'}, 'backgroundLight': {'type': 'string', 'deprecated': True, 'description': 'Optional. DEPRECATED: The background color for light mode (hex format, e.g., "#f8f8f8").'}, 'labelFontFamily': {'type': 'string', 'description': 'Optional. Label font family name (e.g., "Inter", "Roboto").'}, 'headlineFontFamily': {'type': 'string', 'description': 'Optional. Headline font family name (e.g., "Inter", "Roboto").'}, 'overrideNeutralColor': {'type': 'string', 'description': 'Optional. Override neutral color for the dynamic color system (hex format, e.g., "#ffffff").'}, 'overridePrimaryColor': {'type': 'string', 'description': 'Optional. Override primary color for the dynamic color system (hex format, e.g., "#ff0000").'}, 'overrideTertiaryColor': {'type': 'string', 'description': 'Optional. Override tertiary color for the dynamic color system (hex format, e.g., "#0000ff").'}, 'overrideSecondaryColor': {'type': 'string', 'description': 'Optional. Override secondary color for the dynamic color system (hex format, e.g., "#00ff00").'}}, 'description': 'The theme of the design. Next ID: 27 LINT.IfChange'}, 'DesignSystem': {'type': 'object', 'properties': {'theme': {'$ref': '#/$defs/DesignTheme', 'description': 'Optional. The theme of the design system.'}, 'displayName': {'type': 'string', 'description': 'Optional. The display name of the design system.'}, 'designTokens': {'type': 'string', 'description': 'Optional. Serialized JSON object of the DTCG format design tokens.'}, 'styleGuidelines': {'type': 'string', 'description': 'Optional. Freeform text description of the style guidelines. This field is not displayed to the user and should not be included in MCP.'}}, 'description': "Represents a collection of guidelines, design tokens, and reusable components that define the visual and functional characteristics of a product's design. This is used to guide the generation of consistent and branded designs. LINT.IfChange"}, 'SessionEvent': {'type': 'object', 'properties': {'actor': {'type': 'string', 'readOnly': True, 'description': 'Output only. The actor who triggered the event.'}, 'eventId': {'type': 'string', 'readOnly': True, 'description': 'Output only. Unique identifier for the event.'}, 'eventTime': {'type': 'string', 'format': 'date-time', 'readOnly': True, 'description': 'Output only. Time when the event occurred.'}, 'eventType': {'type': 'string', 'readOnly': True, 'description': 'Output only. Type of the event.'}, 'eventPayload': {'type': 'object', 'readOnly': True, 'description': 'Output only. Payload carrying flexible event data.', 'additionalProperties': {'description': 'Properties of the object.'}}}, 'description': 'Flexible session events carrying JSON payload.'}, 'UserFeedback': {'type': 'object', 'properties': {'rating': {'enum': ['RATING_UNSPECIFIED', 'POSITIVE', 'NEGATIVE'], 'type': 'string', 'description': 'Optional. The user rating of the interaction.', 'x-google-enum-descriptions': ['Unspecified rating.', 'Positive rating.', 'Negative rating.']}, 'comment': {'type': 'string', 'description': 'Optional. Additional comment for the rating.'}, 'designFeedbackReason': {'enum': ['DESIGN_FEEDBACK_REASON_UNSPECIFIED', 'DESIGN_DOESNT_MATCH_PROMPT', 'EDIT_DOESNT_MATCH_PROMPT', 'DESCRIPTION_DOESNT_MATCH', 'COMPONENT_ISSUE', 'INCORRECT_THEME', 'FIGMA_EXPORT_FAILED', 'OTHER'], 'type': 'string', 'description': 'Optional. The reason for the feedback for a design, if the rating is negative.', 'x-google-enum-descriptions': ['Unspecified reason.', 'The design does not match the prompt.', 'The edit does not match the prompt.', 'The description does not match the design.', 'There is an issue with a component in the design.', 'The theme is incorrect.', 'The Figma export failed.', 'Other reason.']}}, 'description': 'User feedback for a given interaction.'}, 'PrototypeLink': {'type': 'object', 'properties': {'state': {'type': 'string', 'description': 'Optional. The state under which this link is active. Defaults to "default".'}, 'xpath': {'type': 'string', 'description': 'Required. XPath to the interactive element.'}, 'transition': {'enum': ['TRANSITION_TYPE_UNSPECIFIED', 'NONE', 'PUSH', 'PUSH_BACK', 'SLIDE_UP'], 'type': 'string', 'description': 'Optional. The transition animation to use when navigating to the target screen.', 'x-google-enum-descriptions': ['Unspecified transition type, defaults to NONE.', 'Instant switch with no animation.', 'New screen slides in from the right.', 'Current screen slides out to the right.', 'New screen slides up from the bottom.']}, 'targetScreenId': {'type': 'string', 'description': 'Required. ID of the destination screen.'}}, 'description': 'A single interactive link within a prototype screen.'}, 'ProgressUpdate': {'type': 'object', 'properties': {'status': {'enum': ['STATUS_UNSPECIFIED', 'STARTED', 'COMPLETED', 'FAILED'], 'type': 'string', 'x-google-enum-descriptions': ['', '', '', '']}, 'toolName': {'type': 'string'}, 'toolCallId': {'type': 'string'}, 'displayName': {'type': 'string'}}}, 'PrototypeLinks': {'type': 'object', 'properties': {'links': {'type': 'array', 'items': {'$ref': '#/$defs/PrototypeLink'}, 'description': 'Optional. The list of links for this screen.'}}, 'description': 'A collection of prototype links for a single screen.'}, 'PrototypeState': {'type': 'object', 'properties': {'name': {'type': 'string', 'description': 'Required. The name of the state (e.g., "default", "login-failed").'}}, 'description': 'A named state that controls link behavior in a prototype.'}, 'QuestionsAsked': {'type': 'object', 'properties': {'questions': {'type': 'array', 'items': {'$ref': '#/$defs/Question'}, 'description': 'The list of questions asked by the agent.'}}, 'description': 'A set of questions sent from the agent to the user.'}, 'ScreenMetadata': {'type': 'object', 'properties': {'status': {'enum': ['SCREEN_STATUS_UNSPECIFIED', 'IN_PROGRESS', 'COMPLETE', 'FAILED'], 'type': 'string', 'description': 'The status of the screen.', 'x-google-enum-descriptions': ['Unspecified screen status.', 'The screen is in progress.', 'The screen is complete.', 'The screen failed to generate.']}, 'summary': {'type': 'string', 'description': 'Optional. A first-person summary of what was generated or changed for the screen.'}, 'agentType': {'enum': ['DESIGN_AGENT_TYPE_UNSPECIFIED', 'TURBO_AGENT', 'PRO_AGENT', 'IMAGE_AGENT', 'GENIE_AGENT', 'IMAGE_PRO_AGENT', 'HATTER_AGENT', 'GEMINI_3_AGENT'], 'type': 'string', 'description': 'The agent type that generated the screen.', 'x-google-enum-deprecated': [False, True, False, False, False, True, False, False], 'x-google-enum-descriptions': ['Unspecified agent type. The service will pick one.', 'Deprecated: Turbo agent is no longer supported.', 'This agent uses Gemini 3.0 Flash. The "PRO" name is a legacy from when it used Gemini 2.5 Pro.', 'The image agent, produces image screens.', 'The Genie agent prototype agent.', 'Deprecated: The image pro agent is no longer supported.', 'The Hatter agent as a general assistant agent.', 'Agent powered by the Gemini 3.0 Thinking model. This became the new "Pro" agent after the Gemini 3 launch.']}, 'isRemixed': {'type': 'boolean', 'description': 'Optional. Whether this screen was created as a result of remixing or not.'}, 'displayMode': {'enum': ['DISPLAY_MODE_UNSPECIFIED', 'SCREENSHOT', 'HTML', 'CODE', 'MARKDOWN', 'STICKY_NOTE', 'SVG', 'TABLE', 'MERMAID', 'CHECKLIST', 'CHART', 'PDF', 'FIGMA'], 'type': 'string', 'description': 'Optional. Whether the frontend should display HTML or a screenshot.', 'x-google-enum-descriptions': ['Unspecified display mode. Defaults to SCREENSHOT.', 'The screen is displayed as a screenshot.', 'The screen is displayed as rendered HTML.', 'Displays the screen as code.', 'Displays the screen as markdown.', 'Displays the screen as a sticky note.', 'Displays the screen as an inline SVG graphic.', 'Displays the screen as a data table (CSV).', 'Displays the screen as a mermaid diagram.', 'Agent only: The document node is displayed as an interactive checklist.', 'Agent only: The document node is displayed as an interactive Chart.js chart.', 'Displays the screen as a PDF document.', 'Displays the screen as a Figma file.']}, 'suggestions': {'type': 'array', 'items': {'$ref': '#/$defs/DesignSuggestion'}, 'description': 'Optional. Suggested next actions for the screen.'}, 'prototypeSpec': {'$ref': '#/$defs/PrototypeV2Spec', 'description': 'Optional. The prototype spec of the screen.'}, 'statusMessage': {'type': 'string', 'description': 'Optional. A human readable status message for the screen, generated by the agent.'}, 'componentRegions': {'type': 'array', 'items': {'$ref': '#/$defs/ComponentRegion'}, 'description': 'Optional. The component regions of the screen.'}}, 'description': 'The metadata of a screen.'}, 'ComponentRegion': {'type': 'object', 'properties': {'type': {'enum': ['COMPONENT_TYPE_UNSPECIFIED', 'COMPONENT_TYPE_IMAGE', 'COMPONENT_TYPE_TEXT', 'COMPONENT_TYPE_BUTTON', 'COMPONENT_TYPE_INPUT', 'COMPONENT_TYPE_CONTAINER'], 'type': 'string', 'description': 'The type of the component region.', 'x-google-enum-descriptions': ['Unspecified component type.', 'An image component.', 'A text component.', 'A button component.', 'An input component.', 'A container component.']}, 'xpath': {'type': 'string', 'description': 'The xpath of the component region.'}, 'boundingBox': {'$ref': '#/$defs/BoundingBox', 'description': 'The bounding box of the component region.'}, 'description': {'type': 'string', 'description': 'The description of the component region.'}}, 'description': 'The region of a component region.'}, 'ComponentTokens': {'type': 'object', 'properties': {'tokens': {'type': 'object', 'description': 'Optional. A component may have these sub tokens: - backgroundColor: - textColor: - typography: - rounded: - padding: The value may be a literal value or a reference. A token reference must be wrapped in curly braces, and contain an object path to another value in the design system. The referenced object must be a primitive value, e.g. colors.primary-60, rather than an object, e.g. colors.', 'additionalProperties': {'type': 'string'}}}, 'description': 'A component style token in a design system.'}, 'ProgressUpdates': {'type': 'object', 'properties': {'updates': {'type': 'array', 'items': {'$ref': '#/$defs/ProgressUpdate'}}}}, 'PrototypeV2Spec': {'type': 'object', 'properties': {'links': {'type': 'object', 'description': 'Optional. Map of screenId to list of links.', 'additionalProperties': {'$ref': '#/$defs/PrototypeLinks'}}, 'states': {'type': 'array', 'items': {'$ref': '#/$defs/PrototypeState'}, 'description': 'Optional. The list of states available in this prototype.'}, 'screenIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Optional. List of all screen IDs.'}, 'initScreenId': {'type': 'string', 'description': 'Required. ID of the initial screen.'}}, 'description': 'The full specification for a V2 interactive prototype.'}, 'DesignSuggestion': {'type': 'object', 'properties': {'label': {'type': 'string', 'description': 'A short label for the suggestion (max 3 words, e.g. "Dark mode theme").'}, 'prompt': {'type': 'string', 'description': 'A full prompt description of the suggestion that can be sent directly to the agent (e.g. "Change the theme to dark mode with a deep navy background and white text").'}}, 'description': 'A suggested next action for a screen.'}, 'SessionOutputComponent': {'type': 'object', 'properties': {'text': {'type': 'string', 'description': 'The agent generates a text response to be displayed to the user. Only one of the following fields should be set: this field, design, suggestion, designSystem, progressUpdates, sessionEvent, questionsAsked.'}, 'design': {'$ref': '#/$defs/Design', 'description': 'The agent generates a design to be displayed to the user. Only applicable to TEXT_TO_UI and IMAGE_TO_UI projects. Only one of the following fields should be set: this field, text, suggestion, designSystem, progressUpdates, sessionEvent, questionsAsked.'}, 'suggestion': {'type': 'string', 'description': 'The agent generates a suggested response to be displayed to the user. Only one of the following fields should be set: this field, design, text, designSystem, progressUpdates, sessionEvent, questionsAsked.'}, 'designSystem': {'$ref': '#/$defs/Asset', 'readOnly': True, 'description': 'Output only. The agent generates a design system to be displayed to the user. Only one of the following fields should be set: this field, design, text, suggestion, progressUpdates, sessionEvent, questionsAsked.'}, 'sessionEvent': {'$ref': '#/$defs/SessionEvent', 'readOnly': True, 'description': 'Output only. Flexible session events carrying JSON payload. Only one of the following fields should be set: this field, design, text, suggestion, designSystem, progressUpdates, questionsAsked.'}, 'questionsAsked': {'$ref': '#/$defs/QuestionsAsked', 'readOnly': True, 'description': 'Output only. Structured questions asked by the agent. Only one of the following fields should be set: this field, design, text, suggestion, designSystem, progressUpdates, sessionEvent.'}, 'progressUpdates': {'$ref': '#/$defs/ProgressUpdates', 'readOnly': True, 'description': 'Output only. Progress updates from the agent. Only one of the following fields should be set: this field, design, text, suggestion, designSystem, sessionEvent, questionsAsked.'}}, 'description': 'A partial output of the session.'}}, 'properties': {'projectId': {'type': 'string', 'description': 'The project ID of the generated screen. This is the same as the input project ID.'}, 'sessionId': {'type': 'string', 'description': 'The session ID of the generated screen.'}, 'outputComponents': {'type': 'array', 'items': {'$ref': '#/$defs/SessionOutputComponent'}, 'description': 'The generated output components.'}}, 'description': 'The output design generated by the agent.'}
create_design_system
Creates a new design system for a project. Use this tool when the user wants to set or update the overall visual theme, style, or branding of the application. This includes configuring: - Color Palette: Presets, custom primary colors, and saturation levels. - Typography: Font families (e.g., Inter, Roboto, etc.). - Shape: Corner roundness for UI elements. - Appearance: Light and dark mode background colors. - Design MD: Free-form design instructions in markdown. This tool establishes the foundational design tokens that apply across all screens in the project. **Instructions for Tool Call:** * Call `update_design_system` tool immediately after this tool to apply the design system to the project, and display the design system in the UI.
破壊的操作あり
入力スキーマ
{'type': 'object', '$defs': {'Typography': {'type': 'object', 'properties': {'fontSize': {'type': 'string', 'description': 'Optional. The CSS font-size value (e.g., "32px", "1rem").'}, 'fontFamily': {'type': 'string', 'description': 'Optional. The CSS font-family value (e.g., "Manrope", "Inter").'}, 'fontWeight': {'type': 'string', 'description': 'Optional. The CSS font-weight value (e.g., "400", "700").'}, 'lineHeight': {'type': 'string', 'description': 'Optional. The CSS line-height value (e.g., "1.5", "40px").'}, 'letterSpacing': {'type': 'string', 'description': 'Optional. The CSS letter-spacing value (e.g., "0px", "-0.02em").'}}, 'description': 'A typography style token in a design system, defining the visual properties for a single text level (e.g. "display-lg", "body-md").'}, 'DesignTheme': {'type': 'object', 'required': ['colorMode', 'headlineFont', 'bodyFont', 'roundness', 'customColor'], 'properties': {'spacing': {'type': 'object', 'description': 'Optional. Spacing units for the design system. Maps spacing names to their values.', 'additionalProperties': {'type': 'string'}}, 'bodyFont': {'enum': ['FONT_UNSPECIFIED', 'BE_VIETNAM_PRO', 'EPILOGUE', 'INTER', 'LEXEND', 'MANROPE', 'NEWSREADER', 'NOTO_SERIF', 'PLUS_JAKARTA_SANS', 'PUBLIC_SANS', 'SPACE_GROTESK', 'SPLINE_SANS', 'WORK_SANS', 'DOMINE', 'LIBRE_CASLON_TEXT', 'EB_GARAMOND', 'LITERATA', 'SOURCE_SERIF_4', 'SOURCE_SERIF_FOUR', 'MONTSERRAT', 'METROPHOBIC', 'METROPOLIS', 'SOURCE_SANS_3', 'SOURCE_SANS_THREE', 'NUNITO_SANS', 'ARIMO', 'HANKEN_GROTESK', 'RUBIK', 'GEIST', 'DM_SANS', 'IBM_PLEX_SANS', 'SORA', 'ANYBODY', 'ANTON', 'ARCHIVO_NARROW', 'ATKINSON_HYPERLEGIBLE_NEXT', 'BARLOW_CONDENSED', 'BEBAS_NEUE', 'BODONI_MODA', 'BRICOLAGE_GROTESQUE', 'CHIVO', 'CLIMATE_CRISIS', 'COMFORTAA', 'COURIER_PRIME', 'FIRA_SANS', 'GOOGLE_SANS', 'GOOGLE_SANS_CODE', 'GOOGLE_SANS_FLEX', 'GOOGLE_SANS_MONO', 'GOOGLE_SANS_TEXT', 'IBM_PLEX_SERIF', 'JETBRAINS_MONO', 'KARLA', 'LIBRE_FRANKLIN', 'MERRIWEATHER', 'NOTO_SANS', 'OPEN_SANS', 'OSWALD', 'OUTFIT', 'PLAYFAIR_DISPLAY', 'POIRET_ONE', 'QUESTRIAL', 'QUICKSAND', 'RALEWAY', 'ROBOTO_FLEX', 'SPACE_MONO', 'SYNE', 'VOLLKORN'], 'type': 'string', 'description': 'Required. Specifies the body font.', 'x-google-enum-deprecated': [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, True, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False], 'x-google-enum-descriptions': ['Unspecified font.', 'Be Vietnam Pro font.', 'Epilogue font.', 'Inter font.', 'Lexend font.', 'Manrope font.', 'Newsreader font.', 'Noto Serif font.', 'Plus Jakarta Sans font.', 'Public Sans font.', 'Space Grotesk font.', 'Spline Sans font.', 'Work Sans font.', 'Domine font.', 'Libre Caslon Text font.', 'EB Garamond font.', 'Literata font.', 'Source Serif 4 font.', 'Source Serif 4 font. Deprecated.', 'Montserrat font.', 'The Metrophobic font.', 'Metropolis font. Deprecated.', 'The Source Sans 3 font.', 'Source Sans 3 font. Deprecated.', 'Nunito Sans font.', 'Arimo font.', 'Hanken Grotesk font.', 'Rubik font.', 'Geist font.', 'DM Sans font.', 'IBM Plex Sans font.', 'Sora font.', 'Anybody font.', 'Anton font.', 'Archivo Narrow font.', 'Atkinson Hyperlegible Next font.', 'Barlow Condensed font.', 'Bebas Neue font.', 'Bodoni Moda font.', 'Bricolage Grotesque font.', 'Chivo font.', 'Climate Crisis font.', 'Comfortaa font.', 'Courier Prime font.', 'Fira Sans font.', 'Google Sans font.', 'Google Sans Code font.', 'Google Sans Flex font.', 'Google Sans Mono font.', 'Google Sans Text font.', 'IBM Plex Serif font.', 'JetBrains Mono font.', 'Karla font.', 'Libre Franklin font.', 'Merriweather font.', 'Noto Sans font.', 'Open Sans font.', 'Oswald font.', 'Outfit font.', 'Playfair Display font.', 'Poiret One font.', 'Questrial font.', 'Quicksand font.', 'Raleway font.', 'Roboto Flex font.', 'Space Mono font.', 'Syne font.', 'Vollkorn font.']}, 'designMd': {'type': 'string', 'description': 'Optional. Specifies a markdown file that describes the design system.'}, 'colorMode': {'enum': ['COLOR_MODE_UNSPECIFIED', 'LIGHT', 'DARK'], 'type': 'string', 'description': 'Required. Specifies the mode of appearance of the design.', 'x-google-enum-descriptions': ['Unspecified color mode.', 'Light mode.', 'Dark mode.']}, 'labelFont': {'enum': ['FONT_UNSPECIFIED', 'BE_VIETNAM_PRO', 'EPILOGUE', 'INTER', 'LEXEND', 'MANROPE', 'NEWSREADER', 'NOTO_SERIF', 'PLUS_JAKARTA_SANS', 'PUBLIC_SANS', 'SPACE_GROTESK', 'SPLINE_SANS', 'WORK_SANS', 'DOMINE', 'LIBRE_CASLON_TEXT', 'EB_GARAMOND', 'LITERATA', 'SOURCE_SERIF_4', 'SOURCE_SERIF_FOUR', 'MONTSERRAT', 'METROPHOBIC', 'METROPOLIS', 'SOURCE_SANS_3', 'SOURCE_SANS_THREE', 'NUNITO_SANS', 'ARIMO', 'HANKEN_GROTESK', 'RUBIK', 'GEIST', 'DM_SANS', 'IBM_PLEX_SANS', 'SORA', 'ANYBODY', 'ANTON', 'ARCHIVO_NARROW', 'ATKINSON_HYPERLEGIBLE_NEXT', 'BARLOW_CONDENSED', 'BEBAS_NEUE', 'BODONI_MODA', 'BRICOLAGE_GROTESQUE', 'CHIVO', 'CLIMATE_CRISIS', 'COMFORTAA', 'COURIER_PRIME', 'FIRA_SANS', 'GOOGLE_SANS', 'GOOGLE_SANS_CODE', 'GOOGLE_SANS_FLEX', 'GOOGLE_SANS_MONO', 'GOOGLE_SANS_TEXT', 'IBM_PLEX_SERIF', 'JETBRAINS_MONO', 'KARLA', 'LIBRE_FRANKLIN', 'MERRIWEATHER', 'NOTO_SANS', 'OPEN_SANS', 'OSWALD', 'OUTFIT', 'PLAYFAIR_DISPLAY', 'POIRET_ONE', 'QUESTRIAL', 'QUICKSAND', 'RALEWAY', 'ROBOTO_FLEX', 'SPACE_MONO', 'SYNE', 'VOLLKORN'], 'type': 'string', 'description': 'Optional. Specifies the label font.', 'x-google-enum-deprecated': [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, True, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False], 'x-google-enum-descriptions': ['Unspecified font.', 'Be Vietnam Pro font.', 'Epilogue font.', 'Inter font.', 'Lexend font.', 'Manrope font.', 'Newsreader font.', 'Noto Serif font.', 'Plus Jakarta Sans font.', 'Public Sans font.', 'Space Grotesk font.', 'Spline Sans font.', 'Work Sans font.', 'Domine font.', 'Libre Caslon Text font.', 'EB Garamond font.', 'Literata font.', 'Source Serif 4 font.', 'Source Serif 4 font. Deprecated.', 'Montserrat font.', 'The Metrophobic font.', 'Metropolis font. Deprecated.', 'The Source Sans 3 font.', 'Source Sans 3 font. Deprecated.', 'Nunito Sans font.', 'Arimo font.', 'Hanken Grotesk font.', 'Rubik font.', 'Geist font.', 'DM Sans font.', 'IBM Plex Sans font.', 'Sora font.', 'Anybody font.', 'Anton font.', 'Archivo Narrow font.', 'Atkinson Hyperlegible Next font.', 'Barlow Condensed font.', 'Bebas Neue font.', 'Bodoni Moda font.', 'Bricolage Grotesque font.', 'Chivo font.', 'Climate Crisis font.', 'Comfortaa font.', 'Courier Prime font.', 'Fira Sans font.', 'Google Sans font.', 'Google Sans Code font.', 'Google Sans Flex font.', 'Google Sans Mono font.', 'Google Sans Text font.', 'IBM Plex Serif font.', 'JetBrains Mono font.', 'Karla font.', 'Libre Franklin font.', 'Merriweather font.', 'Noto Sans font.', 'Open Sans font.', 'Oswald font.', 'Outfit font.', 'Playfair Display font.', 'Poiret One font.', 'Questrial font.', 'Quicksand font.', 'Raleway font.', 'Roboto Flex font.', 'Space Mono font.', 'Syne font.', 'Vollkorn font.']}, 'roundness': {'enum': ['ROUNDNESS_UNSPECIFIED', 'ROUND_TWO', 'ROUND_FOUR', 'ROUND_EIGHT', 'ROUND_TWELVE', 'ROUND_FULL'], 'type': 'string', 'description': 'Required. Specifies the roundness of the design. Supported values are: "ROUND_FOUR", "ROUND_EIGHT", and "ROUND_TWELVE", and "ROUND_FULL".', 'x-google-enum-deprecated': [False, True, False, False, False, False], 'x-google-enum-descriptions': ['Unspecified roundness.', 'Round 2. Unused.', 'Round 4.', 'Round 8.', 'Round 12 or full', 'Round full.']}, 'typography': {'type': 'object', 'description': 'Optional. Typography scale for the design system. Maps level names (e.g. "display-lg", "body-md") to their Typography token.', 'additionalProperties': {'$ref': '#/$defs/Typography'}}, 'customColor': {'type': 'string', 'description': 'Required. Specifies a custom theme primary color, or a seed color for the dynamic color system (hex format, e.g., "#ff0000").'}, 'colorVariant': {'enum': ['COLOR_VARIANT_UNSPECIFIED', 'MONOCHROME', 'NEUTRAL', 'TONAL_SPOT', 'VIBRANT', 'EXPRESSIVE', 'FIDELITY', 'CONTENT', 'RAINBOW', 'FRUIT_SALAD'], 'type': 'string', 'description': 'Optional. Specifies the variant of the dynamic color system.', 'x-google-enum-descriptions': ['Unspecified color variant.', 'Monochrome variant.', 'Neutral variant.', 'Tonal spot variant.', 'Vibrant variant.', 'Expressive variant.', 'Fidelity variant.', 'Content variant.', 'Rainbow variant.', 'Fruit salad variant.']}, 'headlineFont': {'enum': ['FONT_UNSPECIFIED', 'BE_VIETNAM_PRO', 'EPILOGUE', 'INTER', 'LEXEND', 'MANROPE', 'NEWSREADER', 'NOTO_SERIF', 'PLUS_JAKARTA_SANS', 'PUBLIC_SANS', 'SPACE_GROTESK', 'SPLINE_SANS', 'WORK_SANS', 'DOMINE', 'LIBRE_CASLON_TEXT', 'EB_GARAMOND', 'LITERATA', 'SOURCE_SERIF_4', 'SOURCE_SERIF_FOUR', 'MONTSERRAT', 'METROPHOBIC', 'METROPOLIS', 'SOURCE_SANS_3', 'SOURCE_SANS_THREE', 'NUNITO_SANS', 'ARIMO', 'HANKEN_GROTESK', 'RUBIK', 'GEIST', 'DM_SANS', 'IBM_PLEX_SANS', 'SORA', 'ANYBODY', 'ANTON', 'ARCHIVO_NARROW', 'ATKINSON_HYPERLEGIBLE_NEXT', 'BARLOW_CONDENSED', 'BEBAS_NEUE', 'BODONI_MODA', 'BRICOLAGE_GROTESQUE', 'CHIVO', 'CLIMATE_CRISIS', 'COMFORTAA', 'COURIER_PRIME', 'FIRA_SANS', 'GOOGLE_SANS', 'GOOGLE_SANS_CODE', 'GOOGLE_SANS_FLEX', 'GOOGLE_SANS_MONO', 'GOOGLE_SANS_TEXT', 'IBM_PLEX_SERIF', 'JETBRAINS_MONO', 'KARLA', 'LIBRE_FRANKLIN', 'MERRIWEATHER', 'NOTO_SANS', 'OPEN_SANS', 'OSWALD', 'OUTFIT', 'PLAYFAIR_DISPLAY', 'POIRET_ONE', 'QUESTRIAL', 'QUICKSAND', 'RALEWAY', 'ROBOTO_FLEX', 'SPACE_MONO', 'SYNE', 'VOLLKORN'], 'type': 'string', 'description': 'Required. Specifies the headline font.', 'x-google-enum-deprecated': [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, True, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False], 'x-google-enum-descriptions': ['Unspecified font.', 'Be Vietnam Pro font.', 'Epilogue font.', 'Inter font.', 'Lexend font.', 'Manrope font.', 'Newsreader font.', 'Noto Serif font.', 'Plus Jakarta Sans font.', 'Public Sans font.', 'Space Grotesk font.', 'Spline Sans font.', 'Work Sans font.', 'Domine font.', 'Libre Caslon Text font.', 'EB Garamond font.', 'Literata font.', 'Source Serif 4 font.', 'Source Serif 4 font. Deprecated.', 'Montserrat font.', 'The Metrophobic font.', 'Metropolis font. Deprecated.', 'The Source Sans 3 font.', 'Source Sans 3 font. Deprecated.', 'Nunito Sans font.', 'Arimo font.', 'Hanken Grotesk font.', 'Rubik font.', 'Geist font.', 'DM Sans font.', 'IBM Plex Sans font.', 'Sora font.', 'Anybody font.', 'Anton font.', 'Archivo Narrow font.', 'Atkinson Hyperlegible Next font.', 'Barlow Condensed font.', 'Bebas Neue font.', 'Bodoni Moda font.', 'Bricolage Grotesque font.', 'Chivo font.', 'Climate Crisis font.', 'Comfortaa font.', 'Courier Prime font.', 'Fira Sans font.', 'Google Sans font.', 'Google Sans Code font.', 'Google Sans Flex font.', 'Google Sans Mono font.', 'Google Sans Text font.', 'IBM Plex Serif font.', 'JetBrains Mono font.', 'Karla font.', 'Libre Franklin font.', 'Merriweather font.', 'Noto Sans font.', 'Open Sans font.', 'Oswald font.', 'Outfit font.', 'Playfair Display font.', 'Poiret One font.', 'Questrial font.', 'Quicksand font.', 'Raleway font.', 'Roboto Flex font.', 'Space Mono font.', 'Syne font.', 'Vollkorn font.']}, 'overrideNeutralColor': {'type': 'string', 'description': 'Optional. Overrides the neutral color for the dynamic color system (hex format, e.g., "#ffffff").'}, 'overridePrimaryColor': {'type': 'string', 'description': 'Optional. Overrides the primary color for the dynamic color system (hex format, e.g., "#ff0000").'}, 'overrideTertiaryColor': {'type': 'string', 'description': 'Optional. Overrides the tertiary color for the dynamic color system (hex format, e.g., "#0000ff").'}, 'overrideSecondaryColor': {'type': 'string', 'description': 'Optional. Overrides the secondary color for the dynamic color system (hex format, e.g., "#00ff00").'}}, 'description': 'The theme of the design. Next ID: 15 LINT.IfChange'}, 'DesignSystem': {'type': 'object', 'required': ['displayName', 'theme'], 'properties': {'theme': {'$ref': '#/$defs/DesignTheme', 'description': 'Required. Specifies the theme of the design system.'}, 'displayName': {'type': 'string', 'description': 'Required. Specifies the display name of the design system.'}}, 'description': "Represents a collection of guidelines, design tokens, and reusable components that define the visual and functional characteristics of a product's design. This is used to guide the generation of consistent and branded designs. LINT.IfChange"}}, 'required': ['designSystem'], 'properties': {'projectId': {'type': 'string', 'description': "Optional. The project ID to create design system for, example: '4044680601076201931', without the `projects/` prefix. If empty, creates a global asset (not associated with any project)."}, 'designSystem': {'$ref': '#/$defs/DesignSystem', 'description': 'Required. The design system to create.'}}, 'description': 'Request message for CreateDesignSystem.'}
出力スキーマ
{'type': 'object', '$defs': {'Typography': {'type': 'object', 'properties': {'fontSize': {'type': 'string', 'description': 'Optional. The CSS font-size value (e.g., "32px", "1rem").'}, 'fontFamily': {'type': 'string', 'description': 'Optional. The CSS font-family value (e.g., "Manrope", "Inter").'}, 'fontWeight': {'type': 'string', 'description': 'Optional. The CSS font-weight value (e.g., "400", "700").'}, 'lineHeight': {'type': 'string', 'description': 'Optional. The CSS line-height value (e.g., "1.5", "40px").'}, 'letterSpacing': {'type': 'string', 'description': 'Optional. The CSS letter-spacing value (e.g., "0px", "-0.02em").'}}, 'description': 'A typography style token in a design system, defining the visual properties for a single text level (e.g. "display-lg", "body-md").'}, 'DesignTheme': {'type': 'object', 'properties': {'font': {'enum': ['FONT_UNSPECIFIED', 'BE_VIETNAM_PRO', 'EPILOGUE', 'INTER', 'LEXEND', 'MANROPE', 'NEWSREADER', 'NOTO_SERIF', 'PLUS_JAKARTA_SANS', 'PUBLIC_SANS', 'SPACE_GROTESK', 'SPLINE_SANS', 'WORK_SANS', 'DOMINE', 'LIBRE_CASLON_TEXT', 'EB_GARAMOND', 'LITERATA', 'SOURCE_SERIF_4', 'SOURCE_SERIF_FOUR', 'MONTSERRAT', 'METROPHOBIC', 'METROPOLIS', 'SOURCE_SANS_3', 'SOURCE_SANS_THREE', 'NUNITO_SANS', 'ARIMO', 'HANKEN_GROTESK', 'RUBIK', 'GEIST', 'DM_SANS', 'IBM_PLEX_SANS', 'SORA', 'ANYBODY', 'ANTON', 'ARCHIVO_NARROW', 'ATKINSON_HYPERLEGIBLE_NEXT', 'BARLOW_CONDENSED', 'BEBAS_NEUE', 'BODONI_MODA', 'BRICOLAGE_GROTESQUE', 'CHIVO', 'CLIMATE_CRISIS', 'COMFORTAA', 'COURIER_PRIME', 'FIRA_SANS', 'GOOGLE_SANS', 'GOOGLE_SANS_CODE', 'GOOGLE_SANS_FLEX', 'GOOGLE_SANS_MONO', 'GOOGLE_SANS_TEXT', 'IBM_PLEX_SERIF', 'JETBRAINS_MONO', 'KARLA', 'LIBRE_FRANKLIN', 'MERRIWEATHER', 'NOTO_SANS', 'OPEN_SANS', 'OSWALD', 'OUTFIT', 'PLAYFAIR_DISPLAY', 'POIRET_ONE', 'QUESTRIAL', 'QUICKSAND', 'RALEWAY', 'ROBOTO_FLEX', 'SPACE_MONO', 'SYNE', 'VOLLKORN'], 'type': 'string', 'deprecated': True, 'description': 'Optional. DEPRECATED: The font of the design. Planned to be deprecated in favor of `headline_font`, `body_font`, and `label_font`.', 'x-google-enum-deprecated': [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, True, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False], 'x-google-enum-descriptions': ['Unspecified font.', 'Be Vietnam Pro font.', 'Epilogue font.', 'Inter font.', 'Lexend font.', 'Manrope font.', 'Newsreader font.', 'Noto Serif font.', 'Plus Jakarta Sans font.', 'Public Sans font.', 'Space Grotesk font.', 'Spline Sans font.', 'Work Sans font.', 'Domine font.', 'Libre Caslon Text font.', 'EB Garamond font.', 'Literata font.', 'Source Serif 4 font.', 'Source Serif 4 font. Deprecated.', 'Montserrat font.', 'The Metrophobic font.', 'Metropolis font. Deprecated.', 'The Source Sans 3 font.', 'Source Sans 3 font. Deprecated.', 'Nunito Sans font.', 'Arimo font.', 'Hanken Grotesk font.', 'Rubik font.', 'Geist font.', 'DM Sans font.', 'IBM Plex Sans font.', 'Sora font.', 'Anybody font.', 'Anton font.', 'Archivo Narrow font.', 'Atkinson Hyperlegible Next font.', 'Barlow Condensed font.', 'Bebas Neue font.', 'Bodoni Moda font.', 'Bricolage Grotesque font.', 'Chivo font.', 'Climate Crisis font.', 'Comfortaa font.', 'Courier Prime font.', 'Fira Sans font.', 'Google Sans font.', 'Google Sans Code font.', 'Google Sans Flex font.', 'Google Sans Mono font.', 'Google Sans Text font.', 'IBM Plex Serif font.', 'JetBrains Mono font.', 'Karla font.', 'Libre Franklin font.', 'Merriweather font.', 'Noto Sans font.', 'Open Sans font.', 'Oswald font.', 'Outfit font.', 'Playfair Display font.', 'Poiret One font.', 'Questrial font.', 'Quicksand font.', 'Raleway font.', 'Roboto Flex font.', 'Space Mono font.', 'Syne font.', 'Vollkorn font.']}, 'preset': {'type': 'string', 'deprecated': True, 'description': 'Optional. DEPRECATED: The preset color of the design.'}, 'spacing': {'type': 'object', 'description': 'Optional. Spacing units for the design system. Maps spacing names to their values.', 'additionalProperties': {'type': 'string'}}, 'bodyFont': {'enum': ['FONT_UNSPECIFIED', 'BE_VIETNAM_PRO', 'EPILOGUE', 'INTER', 'LEXEND', 'MANROPE', 'NEWSREADER', 'NOTO_SERIF', 'PLUS_JAKARTA_SANS', 'PUBLIC_SANS', 'SPACE_GROTESK', 'SPLINE_SANS', 'WORK_SANS', 'DOMINE', 'LIBRE_CASLON_TEXT', 'EB_GARAMOND', 'LITERATA', 'SOURCE_SERIF_4', 'SOURCE_SERIF_FOUR', 'MONTSERRAT', 'METROPHOBIC', 'METROPOLIS', 'SOURCE_SANS_3', 'SOURCE_SANS_THREE', 'NUNITO_SANS', 'ARIMO', 'HANKEN_GROTESK', 'RUBIK', 'GEIST', 'DM_SANS', 'IBM_PLEX_SANS', 'SORA', 'ANYBODY', 'ANTON', 'ARCHIVO_NARROW', 'ATKINSON_HYPERLEGIBLE_NEXT', 'BARLOW_CONDENSED', 'BEBAS_NEUE', 'BODONI_MODA', 'BRICOLAGE_GROTESQUE', 'CHIVO', 'CLIMATE_CRISIS', 'COMFORTAA', 'COURIER_PRIME', 'FIRA_SANS', 'GOOGLE_SANS', 'GOOGLE_SANS_CODE', 'GOOGLE_SANS_FLEX', 'GOOGLE_SANS_MONO', 'GOOGLE_SANS_TEXT', 'IBM_PLEX_SERIF', 'JETBRAINS_MONO', 'KARLA', 'LIBRE_FRANKLIN', 'MERRIWEATHER', 'NOTO_SANS', 'OPEN_SANS', 'OSWALD', 'OUTFIT', 'PLAYFAIR_DISPLAY', 'POIRET_ONE', 'QUESTRIAL', 'QUICKSAND', 'RALEWAY', 'ROBOTO_FLEX', 'SPACE_MONO', 'SYNE', 'VOLLKORN'], 'type': 'string', 'description': 'Optional. Body font.', 'x-google-enum-deprecated': [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, True, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False], 'x-google-enum-descriptions': ['Unspecified font.', 'Be Vietnam Pro font.', 'Epilogue font.', 'Inter font.', 'Lexend font.', 'Manrope font.', 'Newsreader font.', 'Noto Serif font.', 'Plus Jakarta Sans font.', 'Public Sans font.', 'Space Grotesk font.', 'Spline Sans font.', 'Work Sans font.', 'Domine font.', 'Libre Caslon Text font.', 'EB Garamond font.', 'Literata font.', 'Source Serif 4 font.', 'Source Serif 4 font. Deprecated.', 'Montserrat font.', 'The Metrophobic font.', 'Metropolis font. Deprecated.', 'The Source Sans 3 font.', 'Source Sans 3 font. Deprecated.', 'Nunito Sans font.', 'Arimo font.', 'Hanken Grotesk font.', 'Rubik font.', 'Geist font.', 'DM Sans font.', 'IBM Plex Sans font.', 'Sora font.', 'Anybody font.', 'Anton font.', 'Archivo Narrow font.', 'Atkinson Hyperlegible Next font.', 'Barlow Condensed font.', 'Bebas Neue font.', 'Bodoni Moda font.', 'Bricolage Grotesque font.', 'Chivo font.', 'Climate Crisis font.', 'Comfortaa font.', 'Courier Prime font.', 'Fira Sans font.', 'Google Sans font.', 'Google Sans Code font.', 'Google Sans Flex font.', 'Google Sans Mono font.', 'Google Sans Text font.', 'IBM Plex Serif font.', 'JetBrains Mono font.', 'Karla font.', 'Libre Franklin font.', 'Merriweather font.', 'Noto Sans font.', 'Open Sans font.', 'Oswald font.', 'Outfit font.', 'Playfair Display font.', 'Poiret One font.', 'Questrial font.', 'Quicksand font.', 'Raleway font.', 'Roboto Flex font.', 'Space Mono font.', 'Syne font.', 'Vollkorn font.']}, 'designMd': {'type': 'string', 'description': 'Optional. A markdown file that describes the design system.'}, 'colorMode': {'enum': ['COLOR_MODE_UNSPECIFIED', 'LIGHT', 'DARK'], 'type': 'string', 'description': 'Required. The mode of appearance of the design.', 'x-google-enum-descriptions': ['Unspecified color mode.', 'Light mode.', 'Dark mode.']}, 'labelFont': {'enum': ['FONT_UNSPECIFIED', 'BE_VIETNAM_PRO', 'EPILOGUE', 'INTER', 'LEXEND', 'MANROPE', 'NEWSREADER', 'NOTO_SERIF', 'PLUS_JAKARTA_SANS', 'PUBLIC_SANS', 'SPACE_GROTESK', 'SPLINE_SANS', 'WORK_SANS', 'DOMINE', 'LIBRE_CASLON_TEXT', 'EB_GARAMOND', 'LITERATA', 'SOURCE_SERIF_4', 'SOURCE_SERIF_FOUR', 'MONTSERRAT', 'METROPHOBIC', 'METROPOLIS', 'SOURCE_SANS_3', 'SOURCE_SANS_THREE', 'NUNITO_SANS', 'ARIMO', 'HANKEN_GROTESK', 'RUBIK', 'GEIST', 'DM_SANS', 'IBM_PLEX_SANS', 'SORA', 'ANYBODY', 'ANTON', 'ARCHIVO_NARROW', 'ATKINSON_HYPERLEGIBLE_NEXT', 'BARLOW_CONDENSED', 'BEBAS_NEUE', 'BODONI_MODA', 'BRICOLAGE_GROTESQUE', 'CHIVO', 'CLIMATE_CRISIS', 'COMFORTAA', 'COURIER_PRIME', 'FIRA_SANS', 'GOOGLE_SANS', 'GOOGLE_SANS_CODE', 'GOOGLE_SANS_FLEX', 'GOOGLE_SANS_MONO', 'GOOGLE_SANS_TEXT', 'IBM_PLEX_SERIF', 'JETBRAINS_MONO', 'KARLA', 'LIBRE_FRANKLIN', 'MERRIWEATHER', 'NOTO_SANS', 'OPEN_SANS', 'OSWALD', 'OUTFIT', 'PLAYFAIR_DISPLAY', 'POIRET_ONE', 'QUESTRIAL', 'QUICKSAND', 'RALEWAY', 'ROBOTO_FLEX', 'SPACE_MONO', 'SYNE', 'VOLLKORN'], 'type': 'string', 'description': 'Optional. Label font.', 'x-google-enum-deprecated': [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, True, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False], 'x-google-enum-descriptions': ['Unspecified font.', 'Be Vietnam Pro font.', 'Epilogue font.', 'Inter font.', 'Lexend font.', 'Manrope font.', 'Newsreader font.', 'Noto Serif font.', 'Plus Jakarta Sans font.', 'Public Sans font.', 'Space Grotesk font.', 'Spline Sans font.', 'Work Sans font.', 'Domine font.', 'Libre Caslon Text font.', 'EB Garamond font.', 'Literata font.', 'Source Serif 4 font.', 'Source Serif 4 font. Deprecated.', 'Montserrat font.', 'The Metrophobic font.', 'Metropolis font. Deprecated.', 'The Source Sans 3 font.', 'Source Sans 3 font. Deprecated.', 'Nunito Sans font.', 'Arimo font.', 'Hanken Grotesk font.', 'Rubik font.', 'Geist font.', 'DM Sans font.', 'IBM Plex Sans font.', 'Sora font.', 'Anybody font.', 'Anton font.', 'Archivo Narrow font.', 'Atkinson Hyperlegible Next font.', 'Barlow Condensed font.', 'Bebas Neue font.', 'Bodoni Moda font.', 'Bricolage Grotesque font.', 'Chivo font.', 'Climate Crisis font.', 'Comfortaa font.', 'Courier Prime font.', 'Fira Sans font.', 'Google Sans font.', 'Google Sans Code font.', 'Google Sans Flex font.', 'Google Sans Mono font.', 'Google Sans Text font.', 'IBM Plex Serif font.', 'JetBrains Mono font.', 'Karla font.', 'Libre Franklin font.', 'Merriweather font.', 'Noto Sans font.', 'Open Sans font.', 'Oswald font.', 'Outfit font.', 'Playfair Display font.', 'Poiret One font.', 'Questrial font.', 'Quicksand font.', 'Raleway font.', 'Roboto Flex font.', 'Space Mono font.', 'Syne font.', 'Vollkorn font.']}, 'roundness': {'enum': ['ROUNDNESS_UNSPECIFIED', 'ROUND_TWO', 'ROUND_FOUR', 'ROUND_EIGHT', 'ROUND_TWELVE', 'ROUND_FULL'], 'type': 'string', 'description': 'Required. The roundness of the design.', 'x-google-enum-deprecated': [False, True, False, False, False, False], 'x-google-enum-descriptions': ['Unspecified roundness.', 'Round 2. Unused.', 'Round 4.', 'Round 8.', 'Round 12 or full', 'Round full.']}, 'components': {'type': 'object', 'description': 'Optional. Component tokens for the design system. Maps component names to their tokens.', 'additionalProperties': {'$ref': '#/$defs/ComponentTokens'}}, 'saturation': {'type': 'integer', 'format': 'int32', 'deprecated': True, 'description': 'Optional. DEPRECATED: The saturation of the design between 1 and 4.'}, 'typography': {'type': 'object', 'description': 'Optional. Typography scale for the design system. Maps level names (e.g. "display-lg", "body-md") to their Typography token.', 'additionalProperties': {'$ref': '#/$defs/Typography'}}, 'customColor': {'type': 'string', 'description': 'Optional. A custom theme primary color, or a seed color for the dynamic color system (hex format, e.g., "#ff0000").'}, 'description': {'type': 'string', 'deprecated': True, 'description': 'Optional. A brief description of the theme aesthetic.'}, 'namedColors': {'type': 'object', 'description': 'Optional. The color scheme of the design. This is a map of color names to hex color codes. Example: {"primary": "#ff0000", "secondary": "#00ff00", "tertiary": "#0000ff"}', 'additionalProperties': {'type': 'string'}}, 'colorVariant': {'enum': ['COLOR_VARIANT_UNSPECIFIED', 'MONOCHROME', 'NEUTRAL', 'TONAL_SPOT', 'VIBRANT', 'EXPRESSIVE', 'FIDELITY', 'CONTENT', 'RAINBOW', 'FRUIT_SALAD'], 'type': 'string', 'description': 'Optional. The variant of the dynamic color system.', 'x-google-enum-descriptions': ['Unspecified color variant.', 'Monochrome variant.', 'Neutral variant.', 'Tonal spot variant.', 'Vibrant variant.', 'Expressive variant.', 'Fidelity variant.', 'Content variant.', 'Rainbow variant.', 'Fruit salad variant.']}, 'headlineFont': {'enum': ['FONT_UNSPECIFIED', 'BE_VIETNAM_PRO', 'EPILOGUE', 'INTER', 'LEXEND', 'MANROPE', 'NEWSREADER', 'NOTO_SERIF', 'PLUS_JAKARTA_SANS', 'PUBLIC_SANS', 'SPACE_GROTESK', 'SPLINE_SANS', 'WORK_SANS', 'DOMINE', 'LIBRE_CASLON_TEXT', 'EB_GARAMOND', 'LITERATA', 'SOURCE_SERIF_4', 'SOURCE_SERIF_FOUR', 'MONTSERRAT', 'METROPHOBIC', 'METROPOLIS', 'SOURCE_SANS_3', 'SOURCE_SANS_THREE', 'NUNITO_SANS', 'ARIMO', 'HANKEN_GROTESK', 'RUBIK', 'GEIST', 'DM_SANS', 'IBM_PLEX_SANS', 'SORA', 'ANYBODY', 'ANTON', 'ARCHIVO_NARROW', 'ATKINSON_HYPERLEGIBLE_NEXT', 'BARLOW_CONDENSED', 'BEBAS_NEUE', 'BODONI_MODA', 'BRICOLAGE_GROTESQUE', 'CHIVO', 'CLIMATE_CRISIS', 'COMFORTAA', 'COURIER_PRIME', 'FIRA_SANS', 'GOOGLE_SANS', 'GOOGLE_SANS_CODE', 'GOOGLE_SANS_FLEX', 'GOOGLE_SANS_MONO', 'GOOGLE_SANS_TEXT', 'IBM_PLEX_SERIF', 'JETBRAINS_MONO', 'KARLA', 'LIBRE_FRANKLIN', 'MERRIWEATHER', 'NOTO_SANS', 'OPEN_SANS', 'OSWALD', 'OUTFIT', 'PLAYFAIR_DISPLAY', 'POIRET_ONE', 'QUESTRIAL', 'QUICKSAND', 'RALEWAY', 'ROBOTO_FLEX', 'SPACE_MONO', 'SYNE', 'VOLLKORN'], 'type': 'string', 'description': 'Optional. Headline font.', 'x-google-enum-deprecated': [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, True, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False], 'x-google-enum-descriptions': ['Unspecified font.', 'Be Vietnam Pro font.', 'Epilogue font.', 'Inter font.', 'Lexend font.', 'Manrope font.', 'Newsreader font.', 'Noto Serif font.', 'Plus Jakarta Sans font.', 'Public Sans font.', 'Space Grotesk font.', 'Spline Sans font.', 'Work Sans font.', 'Domine font.', 'Libre Caslon Text font.', 'EB Garamond font.', 'Literata font.', 'Source Serif 4 font.', 'Source Serif 4 font. Deprecated.', 'Montserrat font.', 'The Metrophobic font.', 'Metropolis font. Deprecated.', 'The Source Sans 3 font.', 'Source Sans 3 font. Deprecated.', 'Nunito Sans font.', 'Arimo font.', 'Hanken Grotesk font.', 'Rubik font.', 'Geist font.', 'DM Sans font.', 'IBM Plex Sans font.', 'Sora font.', 'Anybody font.', 'Anton font.', 'Archivo Narrow font.', 'Atkinson Hyperlegible Next font.', 'Barlow Condensed font.', 'Bebas Neue font.', 'Bodoni Moda font.', 'Bricolage Grotesque font.', 'Chivo font.', 'Climate Crisis font.', 'Comfortaa font.', 'Courier Prime font.', 'Fira Sans font.', 'Google Sans font.', 'Google Sans Code font.', 'Google Sans Flex font.', 'Google Sans Mono font.', 'Google Sans Text font.', 'IBM Plex Serif font.', 'JetBrains Mono font.', 'Karla font.', 'Libre Franklin font.', 'Merriweather font.', 'Noto Sans font.', 'Open Sans font.', 'Oswald font.', 'Outfit font.', 'Playfair Display font.', 'Poiret One font.', 'Questrial font.', 'Quicksand font.', 'Raleway font.', 'Roboto Flex font.', 'Space Mono font.', 'Syne font.', 'Vollkorn font.']}, 'spacingScale': {'type': 'integer', 'format': 'int32', 'description': 'Optional. The spacing scale level (0=minimal, 1=compact, 2=normal, 3=spacious).'}, 'backgroundDark': {'type': 'string', 'deprecated': True, 'description': 'Optional. DEPRECATED: The background color for dark mode (hex format, e.g., "#1a1a1a").'}, 'bodyFontFamily': {'type': 'string', 'description': 'Optional. Body font family name (e.g., "Inter", "Roboto").'}, 'backgroundLight': {'type': 'string', 'deprecated': True, 'description': 'Optional. DEPRECATED: The background color for light mode (hex format, e.g., "#f8f8f8").'}, 'labelFontFamily': {'type': 'string', 'description': 'Optional. Label font family name (e.g., "Inter", "Roboto").'}, 'headlineFontFamily': {'type': 'string', 'description': 'Optional. Headline font family name (e.g., "Inter", "Roboto").'}, 'overrideNeutralColor': {'type': 'string', 'description': 'Optional. Override neutral color for the dynamic color system (hex format, e.g., "#ffffff").'}, 'overridePrimaryColor': {'type': 'string', 'description': 'Optional. Override primary color for the dynamic color system (hex format, e.g., "#ff0000").'}, 'overrideTertiaryColor': {'type': 'string', 'description': 'Optional. Override tertiary color for the dynamic color system (hex format, e.g., "#0000ff").'}, 'overrideSecondaryColor': {'type': 'string', 'description': 'Optional. Override secondary color for the dynamic color system (hex format, e.g., "#00ff00").'}}, 'description': 'The theme of the design. Next ID: 27 LINT.IfChange'}, 'DesignSystem': {'type': 'object', 'properties': {'theme': {'$ref': '#/$defs/DesignTheme', 'description': 'Optional. The theme of the design system.'}, 'displayName': {'type': 'string', 'description': 'Optional. The display name of the design system.'}, 'designTokens': {'type': 'string', 'description': 'Optional. Serialized JSON object of the DTCG format design tokens.'}, 'styleGuidelines': {'type': 'string', 'description': 'Optional. Freeform text description of the style guidelines. This field is not displayed to the user and should not be included in MCP.'}}, 'description': "Represents a collection of guidelines, design tokens, and reusable components that define the visual and functional characteristics of a product's design. This is used to guide the generation of consistent and branded designs. LINT.IfChange"}, 'ComponentTokens': {'type': 'object', 'properties': {'tokens': {'type': 'object', 'description': 'Optional. A component may have these sub tokens: - backgroundColor: - textColor: - typography: - rounded: - padding: The value may be a literal value or a reference. A token reference must be wrapped in curly braces, and contain an object path to another value in the design system. The referenced object must be a primitive value, e.g. colors.primary-60, rather than an object, e.g. colors.', 'additionalProperties': {'type': 'string'}}}, 'description': 'A component style token in a design system.'}}, 'properties': {'name': {'type': 'string', 'description': 'Identifier. The resource name of the asset. Format: assets/{asset}', 'x-google-identifier': True}, 'version': {'type': 'string', 'format': 'int64', 'readOnly': True, 'description': 'Output only. The version of this asset. 0 indicates unversioned (legacy data). Incremented when the asset content changes.'}, 'copiedFrom': {'type': 'string', 'description': 'Optional. The resource name of the asset this was copied from, if any. Format: assets/{asset} Tracks the fork history of assets.'}, 'designSystem': {'$ref': '#/$defs/DesignSystem', 'description': 'Optional. The design system.'}}, 'description': 'An Asset resource.'}
create_design_system_from_design_md
Creates a design system for a project, with user uploaded DESIGN.md file, and displays the design system in the UI. **Instructions for Tool Call:** * Should call `upload_design_md` tool first to upload DESIGN.md to a Stitch project.
破壊的操作あり
入力スキーマ
{'type': 'object', '$defs': {'SelectedScreenInstance': {'type': 'object', 'required': ['id', 'sourceScreen'], 'properties': {'id': {'type': 'string', 'description': 'Required. The id of the screen instance, **NOT** the source screen id. This is available in the screen instances in the Project info, fetched by `get_project`.'}, 'sourceScreen': {'type': 'string', 'description': 'Required. The source screen of the screen instance. The resource name of the source screen. Format: projects/{project}/screens/{screen}'}}, 'description': 'A screen instance to be edited by the agent, selected by the user.'}}, 'required': ['projectId', 'selectedScreenInstance'], 'properties': {'projectId': {'type': 'string', 'description': "Required. The project ID to update design system for, example: '4044680601076201931', without the `projects/` prefix."}, 'deviceType': {'enum': ['DEVICE_TYPE_UNSPECIFIED', 'MOBILE', 'DESKTOP', 'TABLET', 'AGNOSTIC'], 'type': 'string', 'description': 'Optional. The device type of the screen.', 'x-google-enum-descriptions': ['Unspecified device type.', 'A design for a mobile device.', 'A design for a desktop device.', 'A design for a tablet device.', 'A design that is not tied to a specific device.']}, 'selectedScreenInstance': {'$ref': '#/$defs/SelectedScreenInstance', 'description': 'Required. The screen instance to create the design system from, which is created by UploadDesignMd RPC.'}}, 'description': 'Request message for CreateDesignSystemFromDesignMd.'}
出力スキーマ
{'type': 'object', 'properties': {'assetId': {'type': 'string', 'description': "The asset id of the design system. Example: '15996705518239280238', without the `assets/` prefix."}}, 'description': 'Response message for CreateDesignSystemFromDesignMd.'}
create_project
Creates a new Stitch project. A project is a container for UI designs and frontend code.
破壊的操作あり
入力スキーマ
{'type': 'object', 'properties': {'title': {'type': 'string', 'description': 'Optional. The title of the project.'}}, 'description': 'Request message for CreateProject.'}
出力スキーマ
{'type': 'object', '$defs': {'File': {'type': 'object', 'properties': {'name': {'type': 'string', 'description': 'Identifier. The resource name of the file. Format: projects/{project}/files/{file}', 'x-google-identifier': True}, 'mimeType': {'type': 'string', 'description': 'Optional. The mime type of the file. E.g. "image/png", "text/html".'}, 'downloadUrl': {'type': 'string', 'description': 'Optional. The URL of the file for download. For image files, this would be FIFE base URLs. Only one of the following fields should be set: this field, uploadBlobId, fileContentBase64.'}, 'uploadBlobId': {'type': 'string', 'description': 'Optional. The BlobId from Scotty/contrib service file upload. This points to a temporary blobstore location of the file. Only one of the following fields should be set: this field, downloadUrl, fileContentBase64.'}, 'userFeedback': {'$ref': '#/$defs/UserFeedback', 'readOnly': True, 'description': 'Output only. The latest feedback submitted for the file.'}, 'fileContentBase64': {'type': 'string', 'writeOnly': True, 'description': 'Optional. Input only. The base64-encoded string of the file content. Only one of the following fields should be set: this field, uploadBlobId, downloadUrl.'}}, 'description': 'A File resource.'}, 'Typography': {'type': 'object', 'properties': {'fontSize': {'type': 'string', 'description': 'Optional. The CSS font-size value (e.g., "32px", "1rem").'}, 'fontFamily': {'type': 'string', 'description': 'Optional. The CSS font-family value (e.g., "Manrope", "Inter").'}, 'fontWeight': {'type': 'string', 'description': 'Optional. The CSS font-weight value (e.g., "400", "700").'}, 'lineHeight': {'type': 'string', 'description': 'Optional. The CSS line-height value (e.g., "1.5", "40px").'}, 'letterSpacing': {'type': 'string', 'description': 'Optional. The CSS letter-spacing value (e.g., "0px", "-0.02em").'}}, 'description': 'A typography style token in a design system, defining the visual properties for a single text level (e.g. "display-lg", "body-md").'}, 'DesignTheme': {'type': 'object', 'properties': {'font': {'enum': ['FONT_UNSPECIFIED', 'BE_VIETNAM_PRO', 'EPILOGUE', 'INTER', 'LEXEND', 'MANROPE', 'NEWSREADER', 'NOTO_SERIF', 'PLUS_JAKARTA_SANS', 'PUBLIC_SANS', 'SPACE_GROTESK', 'SPLINE_SANS', 'WORK_SANS', 'DOMINE', 'LIBRE_CASLON_TEXT', 'EB_GARAMOND', 'LITERATA', 'SOURCE_SERIF_4', 'SOURCE_SERIF_FOUR', 'MONTSERRAT', 'METROPHOBIC', 'METROPOLIS', 'SOURCE_SANS_3', 'SOURCE_SANS_THREE', 'NUNITO_SANS', 'ARIMO', 'HANKEN_GROTESK', 'RUBIK', 'GEIST', 'DM_SANS', 'IBM_PLEX_SANS', 'SORA', 'ANYBODY', 'ANTON', 'ARCHIVO_NARROW', 'ATKINSON_HYPERLEGIBLE_NEXT', 'BARLOW_CONDENSED', 'BEBAS_NEUE', 'BODONI_MODA', 'BRICOLAGE_GROTESQUE', 'CHIVO', 'CLIMATE_CRISIS', 'COMFORTAA', 'COURIER_PRIME', 'FIRA_SANS', 'GOOGLE_SANS', 'GOOGLE_SANS_CODE', 'GOOGLE_SANS_FLEX', 'GOOGLE_SANS_MONO', 'GOOGLE_SANS_TEXT', 'IBM_PLEX_SERIF', 'JETBRAINS_MONO', 'KARLA', 'LIBRE_FRANKLIN', 'MERRIWEATHER', 'NOTO_SANS', 'OPEN_SANS', 'OSWALD', 'OUTFIT', 'PLAYFAIR_DISPLAY', 'POIRET_ONE', 'QUESTRIAL', 'QUICKSAND', 'RALEWAY', 'ROBOTO_FLEX', 'SPACE_MONO', 'SYNE', 'VOLLKORN'], 'type': 'string', 'deprecated': True, 'description': 'Optional. DEPRECATED: The font of the design. Planned to be deprecated in favor of `headline_font`, `body_font`, and `label_font`.', 'x-google-enum-deprecated': [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, True, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False], 'x-google-enum-descriptions': ['Unspecified font.', 'Be Vietnam Pro font.', 'Epilogue font.', 'Inter font.', 'Lexend font.', 'Manrope font.', 'Newsreader font.', 'Noto Serif font.', 'Plus Jakarta Sans font.', 'Public Sans font.', 'Space Grotesk font.', 'Spline Sans font.', 'Work Sans font.', 'Domine font.', 'Libre Caslon Text font.', 'EB Garamond font.', 'Literata font.', 'Source Serif 4 font.', 'Source Serif 4 font. Deprecated.', 'Montserrat font.', 'The Metrophobic font.', 'Metropolis font. Deprecated.', 'The Source Sans 3 font.', 'Source Sans 3 font. Deprecated.', 'Nunito Sans font.', 'Arimo font.', 'Hanken Grotesk font.', 'Rubik font.', 'Geist font.', 'DM Sans font.', 'IBM Plex Sans font.', 'Sora font.', 'Anybody font.', 'Anton font.', 'Archivo Narrow font.', 'Atkinson Hyperlegible Next font.', 'Barlow Condensed font.', 'Bebas Neue font.', 'Bodoni Moda font.', 'Bricolage Grotesque font.', 'Chivo font.', 'Climate Crisis font.', 'Comfortaa font.', 'Courier Prime font.', 'Fira Sans font.', 'Google Sans font.', 'Google Sans Code font.', 'Google Sans Flex font.', 'Google Sans Mono font.', 'Google Sans Text font.', 'IBM Plex Serif font.', 'JetBrains Mono font.', 'Karla font.', 'Libre Franklin font.', 'Merriweather font.', 'Noto Sans font.', 'Open Sans font.', 'Oswald font.', 'Outfit font.', 'Playfair Display font.', 'Poiret One font.', 'Questrial font.', 'Quicksand font.', 'Raleway font.', 'Roboto Flex font.', 'Space Mono font.', 'Syne font.', 'Vollkorn font.']}, 'preset': {'type': 'string', 'deprecated': True, 'description': 'Optional. DEPRECATED: The preset color of the design.'}, 'spacing': {'type': 'object', 'description': 'Optional. Spacing units for the design system. Maps spacing names to their values.', 'additionalProperties': {'type': 'string'}}, 'bodyFont': {'enum': ['FONT_UNSPECIFIED', 'BE_VIETNAM_PRO', 'EPILOGUE', 'INTER', 'LEXEND', 'MANROPE', 'NEWSREADER', 'NOTO_SERIF', 'PLUS_JAKARTA_SANS', 'PUBLIC_SANS', 'SPACE_GROTESK', 'SPLINE_SANS', 'WORK_SANS', 'DOMINE', 'LIBRE_CASLON_TEXT', 'EB_GARAMOND', 'LITERATA', 'SOURCE_SERIF_4', 'SOURCE_SERIF_FOUR', 'MONTSERRAT', 'METROPHOBIC', 'METROPOLIS', 'SOURCE_SANS_3', 'SOURCE_SANS_THREE', 'NUNITO_SANS', 'ARIMO', 'HANKEN_GROTESK', 'RUBIK', 'GEIST', 'DM_SANS', 'IBM_PLEX_SANS', 'SORA', 'ANYBODY', 'ANTON', 'ARCHIVO_NARROW', 'ATKINSON_HYPERLEGIBLE_NEXT', 'BARLOW_CONDENSED', 'BEBAS_NEUE', 'BODONI_MODA', 'BRICOLAGE_GROTESQUE', 'CHIVO', 'CLIMATE_CRISIS', 'COMFORTAA', 'COURIER_PRIME', 'FIRA_SANS', 'GOOGLE_SANS', 'GOOGLE_SANS_CODE', 'GOOGLE_SANS_FLEX', 'GOOGLE_SANS_MONO', 'GOOGLE_SANS_TEXT', 'IBM_PLEX_SERIF', 'JETBRAINS_MONO', 'KARLA', 'LIBRE_FRANKLIN', 'MERRIWEATHER', 'NOTO_SANS', 'OPEN_SANS', 'OSWALD', 'OUTFIT', 'PLAYFAIR_DISPLAY', 'POIRET_ONE', 'QUESTRIAL', 'QUICKSAND', 'RALEWAY', 'ROBOTO_FLEX', 'SPACE_MONO', 'SYNE', 'VOLLKORN'], 'type': 'string', 'description': 'Optional. Body font.', 'x-google-enum-deprecated': [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, True, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False], 'x-google-enum-descriptions': ['Unspecified font.', 'Be Vietnam Pro font.', 'Epilogue font.', 'Inter font.', 'Lexend font.', 'Manrope font.', 'Newsreader font.', 'Noto Serif font.', 'Plus Jakarta Sans font.', 'Public Sans font.', 'Space Grotesk font.', 'Spline Sans font.', 'Work Sans font.', 'Domine font.', 'Libre Caslon Text font.', 'EB Garamond font.', 'Literata font.', 'Source Serif 4 font.', 'Source Serif 4 font. Deprecated.', 'Montserrat font.', 'The Metrophobic font.', 'Metropolis font. Deprecated.', 'The Source Sans 3 font.', 'Source Sans 3 font. Deprecated.', 'Nunito Sans font.', 'Arimo font.', 'Hanken Grotesk font.', 'Rubik font.', 'Geist font.', 'DM Sans font.', 'IBM Plex Sans font.', 'Sora font.', 'Anybody font.', 'Anton font.', 'Archivo Narrow font.', 'Atkinson Hyperlegible Next font.', 'Barlow Condensed font.', 'Bebas Neue font.', 'Bodoni Moda font.', 'Bricolage Grotesque font.', 'Chivo font.', 'Climate Crisis font.', 'Comfortaa font.', 'Courier Prime font.', 'Fira Sans font.', 'Google Sans font.', 'Google Sans Code font.', 'Google Sans Flex font.', 'Google Sans Mono font.', 'Google Sans Text font.', 'IBM Plex Serif font.', 'JetBrains Mono font.', 'Karla font.', 'Libre Franklin font.', 'Merriweather font.', 'Noto Sans font.', 'Open Sans font.', 'Oswald font.', 'Outfit font.', 'Playfair Display font.', 'Poiret One font.', 'Questrial font.', 'Quicksand font.', 'Raleway font.', 'Roboto Flex font.', 'Space Mono font.', 'Syne font.', 'Vollkorn font.']}, 'designMd': {'type': 'string', 'description': 'Optional. A markdown file that describes the design system.'}, 'colorMode': {'enum': ['COLOR_MODE_UNSPECIFIED', 'LIGHT', 'DARK'], 'type': 'string', 'description': 'Required. The mode of appearance of the design.', 'x-google-enum-descriptions': ['Unspecified color mode.', 'Light mode.', 'Dark mode.']}, 'labelFont': {'enum': ['FONT_UNSPECIFIED', 'BE_VIETNAM_PRO', 'EPILOGUE', 'INTER', 'LEXEND', 'MANROPE', 'NEWSREADER', 'NOTO_SERIF', 'PLUS_JAKARTA_SANS', 'PUBLIC_SANS', 'SPACE_GROTESK', 'SPLINE_SANS', 'WORK_SANS', 'DOMINE', 'LIBRE_CASLON_TEXT', 'EB_GARAMOND', 'LITERATA', 'SOURCE_SERIF_4', 'SOURCE_SERIF_FOUR', 'MONTSERRAT', 'METROPHOBIC', 'METROPOLIS', 'SOURCE_SANS_3', 'SOURCE_SANS_THREE', 'NUNITO_SANS', 'ARIMO', 'HANKEN_GROTESK', 'RUBIK', 'GEIST', 'DM_SANS', 'IBM_PLEX_SANS', 'SORA', 'ANYBODY', 'ANTON', 'ARCHIVO_NARROW', 'ATKINSON_HYPERLEGIBLE_NEXT', 'BARLOW_CONDENSED', 'BEBAS_NEUE', 'BODONI_MODA', 'BRICOLAGE_GROTESQUE', 'CHIVO', 'CLIMATE_CRISIS', 'COMFORTAA', 'COURIER_PRIME', 'FIRA_SANS', 'GOOGLE_SANS', 'GOOGLE_SANS_CODE', 'GOOGLE_SANS_FLEX', 'GOOGLE_SANS_MONO', 'GOOGLE_SANS_TEXT', 'IBM_PLEX_SERIF', 'JETBRAINS_MONO', 'KARLA', 'LIBRE_FRANKLIN', 'MERRIWEATHER', 'NOTO_SANS', 'OPEN_SANS', 'OSWALD', 'OUTFIT', 'PLAYFAIR_DISPLAY', 'POIRET_ONE', 'QUESTRIAL', 'QUICKSAND', 'RALEWAY', 'ROBOTO_FLEX', 'SPACE_MONO', 'SYNE', 'VOLLKORN'], 'type': 'string', 'description': 'Optional. Label font.', 'x-google-enum-deprecated': [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, True, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False], 'x-google-enum-descriptions': ['Unspecified font.', 'Be Vietnam Pro font.', 'Epilogue font.', 'Inter font.', 'Lexend font.', 'Manrope font.', 'Newsreader font.', 'Noto Serif font.', 'Plus Jakarta Sans font.', 'Public Sans font.', 'Space Grotesk font.', 'Spline Sans font.', 'Work Sans font.', 'Domine font.', 'Libre Caslon Text font.', 'EB Garamond font.', 'Literata font.', 'Source Serif 4 font.', 'Source Serif 4 font. Deprecated.', 'Montserrat font.', 'The Metrophobic font.', 'Metropolis font. Deprecated.', 'The Source Sans 3 font.', 'Source Sans 3 font. Deprecated.', 'Nunito Sans font.', 'Arimo font.', 'Hanken Grotesk font.', 'Rubik font.', 'Geist font.', 'DM Sans font.', 'IBM Plex Sans font.', 'Sora font.', 'Anybody font.', 'Anton font.', 'Archivo Narrow font.', 'Atkinson Hyperlegible Next font.', 'Barlow Condensed font.', 'Bebas Neue font.', 'Bodoni Moda font.', 'Bricolage Grotesque font.', 'Chivo font.', 'Climate Crisis font.', 'Comfortaa font.', 'Courier Prime font.', 'Fira Sans font.', 'Google Sans font.', 'Google Sans Code font.', 'Google Sans Flex font.', 'Google Sans Mono font.', 'Google Sans Text font.', 'IBM Plex Serif font.', 'JetBrains Mono font.', 'Karla font.', 'Libre Franklin font.', 'Merriweather font.', 'Noto Sans font.', 'Open Sans font.', 'Oswald font.', 'Outfit font.', 'Playfair Display font.', 'Poiret One font.', 'Questrial font.', 'Quicksand font.', 'Raleway font.', 'Roboto Flex font.', 'Space Mono font.', 'Syne font.', 'Vollkorn font.']}, 'roundness': {'enum': ['ROUNDNESS_UNSPECIFIED', 'ROUND_TWO', 'ROUND_FOUR', 'ROUND_EIGHT', 'ROUND_TWELVE', 'ROUND_FULL'], 'type': 'string', 'description': 'Required. The roundness of the design.', 'x-google-enum-deprecated': [False, True, False, False, False, False], 'x-google-enum-descriptions': ['Unspecified roundness.', 'Round 2. Unused.', 'Round 4.', 'Round 8.', 'Round 12 or full', 'Round full.']}, 'components': {'type': 'object', 'description': 'Optional. Component tokens for the design system. Maps component names to their tokens.', 'additionalProperties': {'$ref': '#/$defs/ComponentTokens'}}, 'saturation': {'type': 'integer', 'format': 'int32', 'deprecated': True, 'description': 'Optional. DEPRECATED: The saturation of the design between 1 and 4.'}, 'typography': {'type': 'object', 'description': 'Optional. Typography scale for the design system. Maps level names (e.g. "display-lg", "body-md") to their Typography token.', 'additionalProperties': {'$ref': '#/$defs/Typography'}}, 'customColor': {'type': 'string', 'description': 'Optional. A custom theme primary color, or a seed color for the dynamic color system (hex format, e.g., "#ff0000").'}, 'description': {'type': 'string', 'deprecated': True, 'description': 'Optional. A brief description of the theme aesthetic.'}, 'namedColors': {'type': 'object', 'description': 'Optional. The color scheme of the design. This is a map of color names to hex color codes. Example: {"primary": "#ff0000", "secondary": "#00ff00", "tertiary": "#0000ff"}', 'additionalProperties': {'type': 'string'}}, 'colorVariant': {'enum': ['COLOR_VARIANT_UNSPECIFIED', 'MONOCHROME', 'NEUTRAL', 'TONAL_SPOT', 'VIBRANT', 'EXPRESSIVE', 'FIDELITY', 'CONTENT', 'RAINBOW', 'FRUIT_SALAD'], 'type': 'string', 'description': 'Optional. The variant of the dynamic color system.', 'x-google-enum-descriptions': ['Unspecified color variant.', 'Monochrome variant.', 'Neutral variant.', 'Tonal spot variant.', 'Vibrant variant.', 'Expressive variant.', 'Fidelity variant.', 'Content variant.', 'Rainbow variant.', 'Fruit salad variant.']}, 'headlineFont': {'enum': ['FONT_UNSPECIFIED', 'BE_VIETNAM_PRO', 'EPILOGUE', 'INTER', 'LEXEND', 'MANROPE', 'NEWSREADER', 'NOTO_SERIF', 'PLUS_JAKARTA_SANS', 'PUBLIC_SANS', 'SPACE_GROTESK', 'SPLINE_SANS', 'WORK_SANS', 'DOMINE', 'LIBRE_CASLON_TEXT', 'EB_GARAMOND', 'LITERATA', 'SOURCE_SERIF_4', 'SOURCE_SERIF_FOUR', 'MONTSERRAT', 'METROPHOBIC', 'METROPOLIS', 'SOURCE_SANS_3', 'SOURCE_SANS_THREE', 'NUNITO_SANS', 'ARIMO', 'HANKEN_GROTESK', 'RUBIK', 'GEIST', 'DM_SANS', 'IBM_PLEX_SANS', 'SORA', 'ANYBODY', 'ANTON', 'ARCHIVO_NARROW', 'ATKINSON_HYPERLEGIBLE_NEXT', 'BARLOW_CONDENSED', 'BEBAS_NEUE', 'BODONI_MODA', 'BRICOLAGE_GROTESQUE', 'CHIVO', 'CLIMATE_CRISIS', 'COMFORTAA', 'COURIER_PRIME', 'FIRA_SANS', 'GOOGLE_SANS', 'GOOGLE_SANS_CODE', 'GOOGLE_SANS_FLEX', 'GOOGLE_SANS_MONO', 'GOOGLE_SANS_TEXT', 'IBM_PLEX_SERIF', 'JETBRAINS_MONO', 'KARLA', 'LIBRE_FRANKLIN', 'MERRIWEATHER', 'NOTO_SANS', 'OPEN_SANS', 'OSWALD', 'OUTFIT', 'PLAYFAIR_DISPLAY', 'POIRET_ONE', 'QUESTRIAL', 'QUICKSAND', 'RALEWAY', 'ROBOTO_FLEX', 'SPACE_MONO', 'SYNE', 'VOLLKORN'], 'type': 'string', 'description': 'Optional. Headline font.', 'x-google-enum-deprecated': [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, True, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False], 'x-google-enum-descriptions': ['Unspecified font.', 'Be Vietnam Pro font.', 'Epilogue font.', 'Inter font.', 'Lexend font.', 'Manrope font.', 'Newsreader font.', 'Noto Serif font.', 'Plus Jakarta Sans font.', 'Public Sans font.', 'Space Grotesk font.', 'Spline Sans font.', 'Work Sans font.', 'Domine font.', 'Libre Caslon Text font.', 'EB Garamond font.', 'Literata font.', 'Source Serif 4 font.', 'Source Serif 4 font. Deprecated.', 'Montserrat font.', 'The Metrophobic font.', 'Metropolis font. Deprecated.', 'The Source Sans 3 font.', 'Source Sans 3 font. Deprecated.', 'Nunito Sans font.', 'Arimo font.', 'Hanken Grotesk font.', 'Rubik font.', 'Geist font.', 'DM Sans font.', 'IBM Plex Sans font.', 'Sora font.', 'Anybody font.', 'Anton font.', 'Archivo Narrow font.', 'Atkinson Hyperlegible Next font.', 'Barlow Condensed font.', 'Bebas Neue font.', 'Bodoni Moda font.', 'Bricolage Grotesque font.', 'Chivo font.', 'Climate Crisis font.', 'Comfortaa font.', 'Courier Prime font.', 'Fira Sans font.', 'Google Sans font.', 'Google Sans Code font.', 'Google Sans Flex font.', 'Google Sans Mono font.', 'Google Sans Text font.', 'IBM Plex Serif font.', 'JetBrains Mono font.', 'Karla font.', 'Libre Franklin font.', 'Merriweather font.', 'Noto Sans font.', 'Open Sans font.', 'Oswald font.', 'Outfit font.', 'Playfair Display font.', 'Poiret One font.', 'Questrial font.', 'Quicksand font.', 'Raleway font.', 'Roboto Flex font.', 'Space Mono font.', 'Syne font.', 'Vollkorn font.']}, 'spacingScale': {'type': 'integer', 'format': 'int32', 'description': 'Optional. The spacing scale level (0=minimal, 1=compact, 2=normal, 3=spacious).'}, 'backgroundDark': {'type': 'string', 'deprecated': True, 'description': 'Optional. DEPRECATED: The background color for dark mode (hex format, e.g., "#1a1a1a").'}, 'bodyFontFamily': {'type': 'string', 'description': 'Optional. Body font family name (e.g., "Inter", "Roboto").'}, 'backgroundLight': {'type': 'string', 'deprecated': True, 'description': 'Optional. DEPRECATED: The background color for light mode (hex format, e.g., "#f8f8f8").'}, 'labelFontFamily': {'type': 'string', 'description': 'Optional. Label font family name (e.g., "Inter", "Roboto").'}, 'headlineFontFamily': {'type': 'string', 'description': 'Optional. Headline font family name (e.g., "Inter", "Roboto").'}, 'overrideNeutralColor': {'type': 'string', 'description': 'Optional. Override neutral color for the dynamic color system (hex format, e.g., "#ffffff").'}, 'overridePrimaryColor': {'type': 'string', 'description': 'Optional. Override primary color for the dynamic color system (hex format, e.g., "#ff0000").'}, 'overrideTertiaryColor': {'type': 'string', 'description': 'Optional. Override tertiary color for the dynamic color system (hex format, e.g., "#0000ff").'}, 'overrideSecondaryColor': {'type': 'string', 'description': 'Optional. Override secondary color for the dynamic color system (hex format, e.g., "#00ff00").'}}, 'description': 'The theme of the design. Next ID: 27 LINT.IfChange'}, 'UserFeedback': {'type': 'object', 'properties': {'rating': {'enum': ['RATING_UNSPECIFIED', 'POSITIVE', 'NEGATIVE'], 'type': 'string', 'description': 'Optional. The user rating of the interaction.', 'x-google-enum-descriptions': ['Unspecified rating.', 'Positive rating.', 'Negative rating.']}, 'comment': {'type': 'string', 'description': 'Optional. Additional comment for the rating.'}, 'designFeedbackReason': {'enum': ['DESIGN_FEEDBACK_REASON_UNSPECIFIED', 'DESIGN_DOESNT_MATCH_PROMPT', 'EDIT_DOESNT_MATCH_PROMPT', 'DESCRIPTION_DOESNT_MATCH', 'COMPONENT_ISSUE', 'INCORRECT_THEME', 'FIGMA_EXPORT_FAILED', 'OTHER'], 'type': 'string', 'description': 'Optional. The reason for the feedback for a design, if the rating is negative.', 'x-google-enum-descriptions': ['Unspecified reason.', 'The design does not match the prompt.', 'The edit does not match the prompt.', 'The description does not match the design.', 'There is an issue with a component in the design.', 'The theme is incorrect.', 'The Figma export failed.', 'Other reason.']}}, 'description': 'User feedback for a given interaction.'}, 'ScreenInstance': {'type': 'object', 'properties': {'x': {'type': 'integer', 'format': 'int32', 'description': 'Optional. The x position of the screen.'}, 'y': {'type': 'integer', 'format': 'int32', 'description': 'Optional. The y position of the screen.'}, 'id': {'type': 'string', 'description': 'Optional. The screen instance id.'}, 'type': {'enum': ['SCREEN_INSTANCE_TYPE_UNSPECIFIED', 'SCREEN_INSTANCE', 'DESIGN_SYSTEM_INSTANCE', 'GROUP_INSTANCE', 'TEXT_INSTANCE'], 'type': 'string', 'description': 'Optional. The type of screen instance.', 'x-google-enum-descriptions': ['The unspecified value.', 'A screen instance.', 'A design system instance.', 'A group instance.', 'A text instance.']}, 'label': {'type': 'string', 'description': 'Optional. The screen label.'}, 'width': {'type': 'integer', 'format': 'int32', 'description': 'Optional. The screen width.'}, 'height': {'type': 'integer', 'format': 'int32', 'description': 'Optional. The screen height.'}, 'hidden': {'type': 'boolean', 'description': 'Optional. User driven action hiding screen from the canvas.'}, 'groupId': {'type': 'string', 'description': 'Optional. Group identifier for Genie Agent output grouping. Screens with the same groupId are rendered and interact as a group.'}, 'groupName': {'type': 'string', 'description': 'Optional. Human-readable name for the group (e.g., "Warm Minimalism", "Ethereal Glow").'}, 'isResized': {'type': 'boolean', 'description': 'Optional. Whether this screen has been resized by the user.'}, 'isFavourite': {'type': 'boolean', 'description': 'Optional. Whether this screen is marked as a favourite by the user.'}, 'needsLayout': {'type': 'boolean', 'description': 'Optional. Whether this screen instance needs frontend layout positioning. Set by the PostProcessor when auto-linking screens that the agent generated but the frontend has not yet positioned on the canvas.'}, 'sourceAsset': {'type': 'string', 'description': 'Optional. The resource name of the source asset. Format: assets/{asset}. Only one of the following fields should be set: this field, sourceScreen, textContent.'}, 'textContent': {'type': 'string', 'description': 'Optional. Text content for TEXT_INSTANCE nodes. Only one of the following fields should be set: this field, sourceScreen, sourceAsset.'}, 'sourceScreen': {'type': 'string', 'description': 'Optional. The resource name of the source screen. Format: projects/{project}/screens/{screen}. Only one of the following fields should be set: this field, sourceAsset, textContent.'}, 'variantScreenInstance': {'$ref': '#/$defs/ScreenInstance', 'description': 'Optional. The variant Screen Instance.'}}, 'description': 'An instance of a screen on the project. Next ID: 18'}, 'ComponentTokens': {'type': 'object', 'properties': {'tokens': {'type': 'object', 'description': 'Optional. A component may have these sub tokens: - backgroundColor: - textColor: - typography: - rounded: - padding: The value may be a literal value or a reference. A token reference must be wrapped in curly braces, and contain an object path to another value in the design system. The referenced object must be a primitive value, e.g. colors.primary-60, rather than an object, e.g. colors.', 'additionalProperties': {'type': 'string'}}}, 'description': 'A component style token in a design system.'}, 'ProjectMetadata': {'type': 'object', 'properties': {'userRole': {'enum': ['ROLE_UNSPECIFIED', 'OWNER', 'READER'], 'type': 'string', 'description': 'The Role of the user accessing the project.', 'x-google-enum-descriptions': ['go/protodosdonts#unspecified-enum', 'Represents the project owner (whose user_id is part of the primary key for Spanner)', 'Represents users with permission to view the project and its assets']}, 'isRemixed': {'type': 'boolean', 'description': 'Whether this project was remixed or not. This allows the frontend to avoid polling for sessions since none will exist for a remixed project.'}}, 'description': 'Metadata relating to the project.'}}, 'properties': {'name': {'type': 'string', 'description': 'Identifier. The resource name of the project. Format: projects/{project}', 'x-google-identifier': True}, 'title': {'type': 'string', 'description': 'Optional. The title of the project.'}, 'origin': {'enum': ['ORIGIN_UNSPECIFIED', 'STITCH', 'IMPORTED_FROM_GALILEO'], 'type': 'string', 'readOnly': True, 'description': 'Output only. The origin of the project.', 'x-google-enum-descriptions': ['Unspecified origin. By default, the project is created from Stitch.', 'The project is created from Stitch.', 'The project is imported from Galileo.']}, 'metadata': {'$ref': '#/$defs/ProjectMetadata', 'description': 'Metadata of the project.'}, 'readTime': {'type': 'string', 'format': 'date-time', 'readOnly': True, 'description': 'Output only. The time the project was last read. Populated only when listing recently viewed projects.'}, 'createTime': {'type': 'string', 'format': 'date-time', 'readOnly': True, 'description': 'Output only. The time when the project was created.'}, 'deviceType': {'enum': ['DEVICE_TYPE_UNSPECIFIED', 'MOBILE', 'DESKTOP', 'TABLET', 'AGNOSTIC'], 'type': 'string', 'description': 'Optional. The device type of the project.', 'x-google-enum-descriptions': ['Unspecified device type.', 'A design for a mobile device.', 'A design for a desktop device.', 'A design for a tablet device.', 'A design that is not tied to a specific device.']}, 'updateTime': {'type': 'string', 'format': 'date-time', 'readOnly': True, 'description': 'Output only. The time when the project was last updated.'}, 'visibility': {'enum': ['VISIBILITY_UNSPECIFIED', 'PUBLIC', 'PRIVATE'], 'type': 'string', 'description': 'Optional. The visibility setting of the project.', 'x-google-enum-descriptions': ['Unspecified visibility. By default, the project is private.', 'The project is visible to all users, and may be featured in the feed.', 'The project is visible to only the creator.']}, 'designTheme': {'$ref': '#/$defs/DesignTheme', 'readOnly': True, 'description': 'Output only. The theme used to generate the first design in the project.'}, 'projectType': {'enum': ['PROJECT_TYPE_UNSPECIFIED', 'TEXT_TO_UI', 'TEXT_TO_UI_PRO', 'TEXT_TO_UI_PRO_IMAGE_SPACE', 'IMAGE_TO_UI', 'IMAGE_TO_UI_PRO', 'PROJECT_DESIGN', 'DESIGN_V2'], 'type': 'string', 'description': 'Optional. The type of the project. If not specified, the project is a text to UI project.', 'x-google-enum-descriptions': ['Unspecified project type. By default, the project is a text to UI project.', 'A text to UI project.', 'Pro version of text to UI project.', 'Deprecated. Pro version of text to UI project using image space for edits.', 'An image to UI project.', 'Deprecated.', 'A new design project.', 'A V2 design project.']}, 'backgroundTheme': {'type': 'string', 'description': 'Optional. The background theme of the project.'}, 'screenInstances': {'type': 'array', 'items': {'$ref': '#/$defs/ScreenInstance'}, 'readOnly': True, 'description': 'Output only. The screen instances on this project.'}, 'thumbnailScreenshot': {'$ref': '#/$defs/File', 'description': 'Optional. The screenshot to be used as the thumbnail for the project. Same as normal design screenshots, this contains the FIFE serving_base_url which requires additional FIFE URL options to be set for sizing.'}}, 'description': 'A project is a single app.'}
delete_project
Deletes a specific Stitch project using its project name. **Instructions for Tool Call:** * This action cannot be undone. Please confirm with "yes" or "no" to proceed.
破壊的操作あり
入力スキーマ
{'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'description': 'Required. Identifier. The resource name of the project to delete. Format: `projects/{project}` Example: `projects/4044680601076201931`', 'x-google-identifier': True}}, 'description': 'Request message for DeleteProject.'}
出力スキーマ
{'type': 'object', 'properties': {}, 'description': 'Response message for DeleteProject.'}
edit_screens
Edits existing screens within a project using a text prompt. **Instructions for Tool Call:** * This action can take a few minutes to complete. Please be patient. DO NOT RETRY. * If the tool call fails due to connection error, the process may still succeed.
破壊的操作あり
入力スキーマ
{'type': 'object', 'required': ['projectId', 'selectedScreenIds', 'prompt'], 'properties': {'prompt': {'type': 'string', 'description': 'Required. The input text to generate the screen from.'}, 'modelId': {'enum': ['MODEL_ID_UNSPECIFIED', 'GEMINI_3_8_FLASH', 'GEMINI_3_5_FLASH_LITE'], 'type': 'string', 'description': 'Optional. The model to use for generation.', 'x-google-enum-descriptions': ['Unspecified model.', 'Gemini 3.8 Flash.', 'Gemini 3.5 Flash-Lite.']}, 'projectId': {'type': 'string', 'description': "Required. The project ID of screens to edit, example: '4044680601076201931', without the `projects/` prefix."}, 'deviceType': {'enum': ['DEVICE_TYPE_UNSPECIFIED', 'MOBILE', 'DESKTOP', 'TABLET', 'AGNOSTIC'], 'type': 'string', 'description': 'Optional. The type of device that captured the screenshot, e.g., mobile or desktop.', 'x-google-enum-descriptions': ['Unspecified device type.', 'A design for a mobile device.', 'A design for a desktop device.', 'A design for a tablet device.', 'A design that is not tied to a specific device.']}, 'selectedScreenIds': {'type': 'array', 'items': {'type': 'string'}, 'description': "Required. The screen IDs of screens to edit, example: ['98b50e2ddc9943efb387052637738f61', '98b50e2ddc9943efb387052637738f62'], without the `screens/` prefix."}}, 'description': 'Request message for EditScreens.'}
出力スキーマ
{'type': 'object', '$defs': {'File': {'type': 'object', 'properties': {'name': {'type': 'string', 'description': 'Identifier. The resource name of the file. Format: projects/{project}/files/{file}', 'x-google-identifier': True}, 'mimeType': {'type': 'string', 'description': 'Optional. The mime type of the file. E.g. "image/png", "text/html".'}, 'downloadUrl': {'type': 'string', 'description': 'Optional. The URL of the file for download. For image files, this would be FIFE base URLs. Only one of the following fields should be set: this field, uploadBlobId, fileContentBase64.'}, 'uploadBlobId': {'type': 'string', 'description': 'Optional. The BlobId from Scotty/contrib service file upload. This points to a temporary blobstore location of the file. Only one of the following fields should be set: this field, downloadUrl, fileContentBase64.'}, 'userFeedback': {'$ref': '#/$defs/UserFeedback', 'readOnly': True, 'description': 'Output only. The latest feedback submitted for the file.'}, 'fileContentBase64': {'type': 'string', 'writeOnly': True, 'description': 'Optional. Input only. The base64-encoded string of the file content. Only one of the following fields should be set: this field, uploadBlobId, downloadUrl.'}}, 'description': 'A File resource.'}, 'Asset': {'type': 'object', 'properties': {'name': {'type': 'string', 'description': 'Identifier. The resource name of the asset. Format: assets/{asset}', 'x-google-identifier': True}, 'version': {'type': 'string', 'format': 'int64', 'readOnly': True, 'description': 'Output only. The version of this asset. 0 indicates unversioned (legacy data). Incremented when the asset content changes.'}, 'copiedFrom': {'type': 'string', 'description': 'Optional. The resource name of the asset this was copied from, if any. Format: assets/{asset} Tracks the fork history of assets.'}, 'designSystem': {'$ref': '#/$defs/DesignSystem', 'description': 'Optional. The design system.'}}, 'description': 'An Asset resource.'}, 'Design': {'type': 'object', 'properties': {'theme': {'$ref': '#/$defs/DesignTheme', 'description': 'Optional. The theme used to generate the design.'}, 'title': {'type': 'string', 'description': 'Optional. The generated title of the design.'}, 'screens': {'type': 'array', 'items': {'$ref': '#/$defs/Screen'}, 'description': 'Optional. The screens of the design.'}, 'deviceType': {'enum': ['DEVICE_TYPE_UNSPECIFIED', 'MOBILE', 'DESKTOP', 'TABLET', 'AGNOSTIC'], 'type': 'string', 'description': 'Optional. The device type of the design.', 'x-google-enum-descriptions': ['Unspecified device type.', 'A design for a mobile device.', 'A design for a desktop device.', 'A design for a tablet device.', 'A design that is not tied to a specific device.']}}, 'description': 'A generated design, which is a collection of multiple screens. Note: do not add new fields to this message or rely on it for any logic. For any Screen property, add it to Screen message instead. Design is a deprecated hierarchical container for screens and is only used for backward compatibility.'}, 'Screen': {'type': 'object', 'properties': {'id': {'type': 'string', 'deprecated': True, 'description': 'Optional. The screen id.'}, 'name': {'type': 'string', 'description': 'Identifier. The resource name of the screen. Format: projects/{project}/screens/{screen}', 'x-google-identifier': True}, 'theme': {'$ref': '#/$defs/DesignTheme', 'description': 'Optional. The theme used to generate the screen.'}, 'title': {'type': 'string', 'description': 'Optional. The title of the screen.'}, 'width': {'type': 'string', 'description': 'Optional. The width of the screen.'}, 'height': {'type': 'string', 'description': 'Optional. The height of the screen.'}, 'prompt': {'type': 'string', 'description': 'Optional. The prompt used to generate the screen.'}, 'groupId': {'type': 'string', 'description': 'Optional. The group id of the screen. This is used to group screens that are related to each other (e.g. a group of variants of a design).'}, 'htmlCode': {'$ref': '#/$defs/File', 'description': 'Optional. The HTML code of the screen.'}, 'groupName': {'type': 'string', 'description': 'Optional. The name of the group (e.g., design package name) for display purposes.'}, 'deviceType': {'enum': ['DEVICE_TYPE_UNSPECIFIED', 'MOBILE', 'DESKTOP', 'TABLET', 'AGNOSTIC'], 'type': 'string', 'description': 'Optional. The device type of the screen.', 'x-google-enum-descriptions': ['Unspecified device type.', 'A design for a mobile device.', 'A design for a desktop device.', 'A design for a tablet device.', 'A design that is not tied to a specific device.']}, 'screenType': {'enum': ['SCREEN_TYPE_UNSPECIFIED', 'DESIGN', 'IMAGE', 'PROTOTYPE', 'DOCUMENT', 'PROTOTYPE_V2'], 'type': 'string', 'description': 'Optional. The screen type.', 'x-google-enum-descriptions': ['If the screen type is unspecified, it is assumed to be a DESIGN.', 'A design screen.', 'A pure image.', 'A design prototype.', 'A document like a PRD.', 'A design prototype v2.']}, 'screenshot': {'$ref': '#/$defs/File', 'description': 'Optional. The screenshot of the screen.'}, 'figmaExport': {'$ref': '#/$defs/File', 'description': 'Optional. The Figma export of the screen.'}, 'generatedBy': {'type': 'string', 'description': 'Optional. The generated by field of the screen.'}, 'designSystem': {'$ref': '#/$defs/Asset', 'readOnly': True, 'description': 'Output only. The design system used to generate the screen.'}, 'screenMetadata': {'$ref': '#/$defs/ScreenMetadata', 'description': 'Optional. The metadata of the screen.'}, 'isCreatedByClient': {'type': 'boolean', 'description': 'Optional. If true, the screen was created by client calling CreateScreen API for user uploads or copy paste. If false, the screen was created by the agents.'}}, 'description': 'A generated screen.'}, 'Question': {'type': 'object', 'properties': {'text': {'type': 'string', 'description': 'The question text displayed to the user.'}, 'options': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Options for MULTIPLE_CHOICE / SINGLE_CHOICE questions.'}, 'questionId': {'type': 'string', 'description': 'An optional unique identifier for correlating answers to questions.'}, 'responseType': {'enum': ['QUESTION_RESPONSE_TYPE_UNSPECIFIED', 'FREEFORM_TEXT', 'MULTIPLE_CHOICE', 'SINGLE_CHOICE', 'YES_NO', 'RATING_SCALE'], 'type': 'string', 'description': 'The expected response type.', 'x-google-enum-descriptions': ['Unspecified response type.', 'Open-ended text input.', 'Select one or more options from a list.', 'Select exactly one option from a list.', 'Simple yes / no.', 'Numeric rating on a scale.']}}, 'description': 'A single structured question the agent asks the user.'}, 'Typography': {'type': 'object', 'properties': {'fontSize': {'type': 'string', 'description': 'Optional. The CSS font-size value (e.g., "32px", "1rem").'}, 'fontFamily': {'type': 'string', 'description': 'Optional. The CSS font-family value (e.g., "Manrope", "Inter").'}, 'fontWeight': {'type': 'string', 'description': 'Optional. The CSS font-weight value (e.g., "400", "700").'}, 'lineHeight': {'type': 'string', 'description': 'Optional. The CSS line-height value (e.g., "1.5", "40px").'}, 'letterSpacing': {'type': 'string', 'description': 'Optional. The CSS letter-spacing value (e.g., "0px", "-0.02em").'}}, 'description': 'A typography style token in a design system, defining the visual properties for a single text level (e.g. "display-lg", "body-md").'}, 'BoundingBox': {'type': 'object', 'properties': {'x': {'type': 'integer', 'format': 'int32', 'description': 'The x coordinate of the bounding box, relative to the image width.'}, 'y': {'type': 'integer', 'format': 'int32', 'description': 'The y coordinate of the bounding box, relative to the image height.'}, 'width': {'type': 'integer', 'format': 'int32', 'description': 'The width of the bounding box.'}, 'height': {'type': 'integer', 'format': 'int32', 'description': 'The height of the bounding box.'}}, 'description': 'The bounding box of a component.'}, 'DesignTheme': {'type': 'object', 'properties': {'font': {'enum': ['FONT_UNSPECIFIED', 'BE_VIETNAM_PRO', 'EPILOGUE', 'INTER', 'LEXEND', 'MANROPE', 'NEWSREADER', 'NOTO_SERIF', 'PLUS_JAKARTA_SANS', 'PUBLIC_SANS', 'SPACE_GROTESK', 'SPLINE_SANS', 'WORK_SANS', 'DOMINE', 'LIBRE_CASLON_TEXT', 'EB_GARAMOND', 'LITERATA', 'SOURCE_SERIF_4', 'SOURCE_SERIF_FOUR', 'MONTSERRAT', 'METROPHOBIC', 'METROPOLIS', 'SOURCE_SANS_3', 'SOURCE_SANS_THREE', 'NUNITO_SANS', 'ARIMO', 'HANKEN_GROTESK', 'RUBIK', 'GEIST', 'DM_SANS', 'IBM_PLEX_SANS', 'SORA', 'ANYBODY', 'ANTON', 'ARCHIVO_NARROW', 'ATKINSON_HYPERLEGIBLE_NEXT', 'BARLOW_CONDENSED', 'BEBAS_NEUE', 'BODONI_MODA', 'BRICOLAGE_GROTESQUE', 'CHIVO', 'CLIMATE_CRISIS', 'COMFORTAA', 'COURIER_PRIME', 'FIRA_SANS', 'GOOGLE_SANS', 'GOOGLE_SANS_CODE', 'GOOGLE_SANS_FLEX', 'GOOGLE_SANS_MONO', 'GOOGLE_SANS_TEXT', 'IBM_PLEX_SERIF', 'JETBRAINS_MONO', 'KARLA', 'LIBRE_FRANKLIN', 'MERRIWEATHER', 'NOTO_SANS', 'OPEN_SANS', 'OSWALD', 'OUTFIT', 'PLAYFAIR_DISPLAY', 'POIRET_ONE', 'QUESTRIAL', 'QUICKSAND', 'RALEWAY', 'ROBOTO_FLEX', 'SPACE_MONO', 'SYNE', 'VOLLKORN'], 'type': 'string', 'deprecated': True, 'description': 'Optional. DEPRECATED: The font of the design. Planned to be deprecated in favor of `headline_font`, `body_font`, and `label_font`.', 'x-google-enum-deprecated': [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, True, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False], 'x-google-enum-descriptions': ['Unspecified font.', 'Be Vietnam Pro font.', 'Epilogue font.', 'Inter font.', 'Lexend font.', 'Manrope font.', 'Newsreader font.', 'Noto Serif font.', 'Plus Jakarta Sans font.', 'Public Sans font.', 'Space Grotesk font.', 'Spline Sans font.', 'Work Sans font.', 'Domine font.', 'Libre Caslon Text font.', 'EB Garamond font.', 'Literata font.', 'Source Serif 4 font.', 'Source Serif 4 font. Deprecated.', 'Montserrat font.', 'The Metrophobic font.', 'Metropolis font. Deprecated.', 'The Source Sans 3 font.', 'Source Sans 3 font. Deprecated.', 'Nunito Sans font.', 'Arimo font.', 'Hanken Grotesk font.', 'Rubik font.', 'Geist font.', 'DM Sans font.', 'IBM Plex Sans font.', 'Sora font.', 'Anybody font.', 'Anton font.', 'Archivo Narrow font.', 'Atkinson Hyperlegible Next font.', 'Barlow Condensed font.', 'Bebas Neue font.', 'Bodoni Moda font.', 'Bricolage Grotesque font.', 'Chivo font.', 'Climate Crisis font.', 'Comfortaa font.', 'Courier Prime font.', 'Fira Sans font.', 'Google Sans font.', 'Google Sans Code font.', 'Google Sans Flex font.', 'Google Sans Mono font.', 'Google Sans Text font.', 'IBM Plex Serif font.', 'JetBrains Mono font.', 'Karla font.', 'Libre Franklin font.', 'Merriweather font.', 'Noto Sans font.', 'Open Sans font.', 'Oswald font.', 'Outfit font.', 'Playfair Display font.', 'Poiret One font.', 'Questrial font.', 'Quicksand font.', 'Raleway font.', 'Roboto Flex font.', 'Space Mono font.', 'Syne font.', 'Vollkorn font.']}, 'preset': {'type': 'string', 'deprecated': True, 'description': 'Optional. DEPRECATED: The preset color of the design.'}, 'spacing': {'type': 'object', 'description': 'Optional. Spacing units for the design system. Maps spacing names to their values.', 'additionalProperties': {'type': 'string'}}, 'bodyFont': {'enum': ['FONT_UNSPECIFIED', 'BE_VIETNAM_PRO', 'EPILOGUE', 'INTER', 'LEXEND', 'MANROPE', 'NEWSREADER', 'NOTO_SERIF', 'PLUS_JAKARTA_SANS', 'PUBLIC_SANS', 'SPACE_GROTESK', 'SPLINE_SANS', 'WORK_SANS', 'DOMINE', 'LIBRE_CASLON_TEXT', 'EB_GARAMOND', 'LITERATA', 'SOURCE_SERIF_4', 'SOURCE_SERIF_FOUR', 'MONTSERRAT', 'METROPHOBIC', 'METROPOLIS', 'SOURCE_SANS_3', 'SOURCE_SANS_THREE', 'NUNITO_SANS', 'ARIMO', 'HANKEN_GROTESK', 'RUBIK', 'GEIST', 'DM_SANS', 'IBM_PLEX_SANS', 'SORA', 'ANYBODY', 'ANTON', 'ARCHIVO_NARROW', 'ATKINSON_HYPERLEGIBLE_NEXT', 'BARLOW_CONDENSED', 'BEBAS_NEUE', 'BODONI_MODA', 'BRICOLAGE_GROTESQUE', 'CHIVO', 'CLIMATE_CRISIS', 'COMFORTAA', 'COURIER_PRIME', 'FIRA_SANS', 'GOOGLE_SANS', 'GOOGLE_SANS_CODE', 'GOOGLE_SANS_FLEX', 'GOOGLE_SANS_MONO', 'GOOGLE_SANS_TEXT', 'IBM_PLEX_SERIF', 'JETBRAINS_MONO', 'KARLA', 'LIBRE_FRANKLIN', 'MERRIWEATHER', 'NOTO_SANS', 'OPEN_SANS', 'OSWALD', 'OUTFIT', 'PLAYFAIR_DISPLAY', 'POIRET_ONE', 'QUESTRIAL', 'QUICKSAND', 'RALEWAY', 'ROBOTO_FLEX', 'SPACE_MONO', 'SYNE', 'VOLLKORN'], 'type': 'string', 'description': 'Optional. Body font.', 'x-google-enum-deprecated': [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, True, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False], 'x-google-enum-descriptions': ['Unspecified font.', 'Be Vietnam Pro font.', 'Epilogue font.', 'Inter font.', 'Lexend font.', 'Manrope font.', 'Newsreader font.', 'Noto Serif font.', 'Plus Jakarta Sans font.', 'Public Sans font.', 'Space Grotesk font.', 'Spline Sans font.', 'Work Sans font.', 'Domine font.', 'Libre Caslon Text font.', 'EB Garamond font.', 'Literata font.', 'Source Serif 4 font.', 'Source Serif 4 font. Deprecated.', 'Montserrat font.', 'The Metrophobic font.', 'Metropolis font. Deprecated.', 'The Source Sans 3 font.', 'Source Sans 3 font. Deprecated.', 'Nunito Sans font.', 'Arimo font.', 'Hanken Grotesk font.', 'Rubik font.', 'Geist font.', 'DM Sans font.', 'IBM Plex Sans font.', 'Sora font.', 'Anybody font.', 'Anton font.', 'Archivo Narrow font.', 'Atkinson Hyperlegible Next font.', 'Barlow Condensed font.', 'Bebas Neue font.', 'Bodoni Moda font.', 'Bricolage Grotesque font.', 'Chivo font.', 'Climate Crisis font.', 'Comfortaa font.', 'Courier Prime font.', 'Fira Sans font.', 'Google Sans font.', 'Google Sans Code font.', 'Google Sans Flex font.', 'Google Sans Mono font.', 'Google Sans Text font.', 'IBM Plex Serif font.', 'JetBrains Mono font.', 'Karla font.', 'Libre Franklin font.', 'Merriweather font.', 'Noto Sans font.', 'Open Sans font.', 'Oswald font.', 'Outfit font.', 'Playfair Display font.', 'Poiret One font.', 'Questrial font.', 'Quicksand font.', 'Raleway font.', 'Roboto Flex font.', 'Space Mono font.', 'Syne font.', 'Vollkorn font.']}, 'designMd': {'type': 'string', 'description': 'Optional. A markdown file that describes the design system.'}, 'colorMode': {'enum': ['COLOR_MODE_UNSPECIFIED', 'LIGHT', 'DARK'], 'type': 'string', 'description': 'Required. The mode of appearance of the design.', 'x-google-enum-descriptions': ['Unspecified color mode.', 'Light mode.', 'Dark mode.']}, 'labelFont': {'enum': ['FONT_UNSPECIFIED', 'BE_VIETNAM_PRO', 'EPILOGUE', 'INTER', 'LEXEND', 'MANROPE', 'NEWSREADER', 'NOTO_SERIF', 'PLUS_JAKARTA_SANS', 'PUBLIC_SANS', 'SPACE_GROTESK', 'SPLINE_SANS', 'WORK_SANS', 'DOMINE', 'LIBRE_CASLON_TEXT', 'EB_GARAMOND', 'LITERATA', 'SOURCE_SERIF_4', 'SOURCE_SERIF_FOUR', 'MONTSERRAT', 'METROPHOBIC', 'METROPOLIS', 'SOURCE_SANS_3', 'SOURCE_SANS_THREE', 'NUNITO_SANS', 'ARIMO', 'HANKEN_GROTESK', 'RUBIK', 'GEIST', 'DM_SANS', 'IBM_PLEX_SANS', 'SORA', 'ANYBODY', 'ANTON', 'ARCHIVO_NARROW', 'ATKINSON_HYPERLEGIBLE_NEXT', 'BARLOW_CONDENSED', 'BEBAS_NEUE', 'BODONI_MODA', 'BRICOLAGE_GROTESQUE', 'CHIVO', 'CLIMATE_CRISIS', 'COMFORTAA', 'COURIER_PRIME', 'FIRA_SANS', 'GOOGLE_SANS', 'GOOGLE_SANS_CODE', 'GOOGLE_SANS_FLEX', 'GOOGLE_SANS_MONO', 'GOOGLE_SANS_TEXT', 'IBM_PLEX_SERIF', 'JETBRAINS_MONO', 'KARLA', 'LIBRE_FRANKLIN', 'MERRIWEATHER', 'NOTO_SANS', 'OPEN_SANS', 'OSWALD', 'OUTFIT', 'PLAYFAIR_DISPLAY', 'POIRET_ONE', 'QUESTRIAL', 'QUICKSAND', 'RALEWAY', 'ROBOTO_FLEX', 'SPACE_MONO', 'SYNE', 'VOLLKORN'], 'type': 'string', 'description': 'Optional. Label font.', 'x-google-enum-deprecated': [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, True, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False], 'x-google-enum-descriptions': ['Unspecified font.', 'Be Vietnam Pro font.', 'Epilogue font.', 'Inter font.', 'Lexend font.', 'Manrope font.', 'Newsreader font.', 'Noto Serif font.', 'Plus Jakarta Sans font.', 'Public Sans font.', 'Space Grotesk font.', 'Spline Sans font.', 'Work Sans font.', 'Domine font.', 'Libre Caslon Text font.', 'EB Garamond font.', 'Literata font.', 'Source Serif 4 font.', 'Source Serif 4 font. Deprecated.', 'Montserrat font.', 'The Metrophobic font.', 'Metropolis font. Deprecated.', 'The Source Sans 3 font.', 'Source Sans 3 font. Deprecated.', 'Nunito Sans font.', 'Arimo font.', 'Hanken Grotesk font.', 'Rubik font.', 'Geist font.', 'DM Sans font.', 'IBM Plex Sans font.', 'Sora font.', 'Anybody font.', 'Anton font.', 'Archivo Narrow font.', 'Atkinson Hyperlegible Next font.', 'Barlow Condensed font.', 'Bebas Neue font.', 'Bodoni Moda font.', 'Bricolage Grotesque font.', 'Chivo font.', 'Climate Crisis font.', 'Comfortaa font.', 'Courier Prime font.', 'Fira Sans font.', 'Google Sans font.', 'Google Sans Code font.', 'Google Sans Flex font.', 'Google Sans Mono font.', 'Google Sans Text font.', 'IBM Plex Serif font.', 'JetBrains Mono font.', 'Karla font.', 'Libre Franklin font.', 'Merriweather font.', 'Noto Sans font.', 'Open Sans font.', 'Oswald font.', 'Outfit font.', 'Playfair Display font.', 'Poiret One font.', 'Questrial font.', 'Quicksand font.', 'Raleway font.', 'Roboto Flex font.', 'Space Mono font.', 'Syne font.', 'Vollkorn font.']}, 'roundness': {'enum': ['ROUNDNESS_UNSPECIFIED', 'ROUND_TWO', 'ROUND_FOUR', 'ROUND_EIGHT', 'ROUND_TWELVE', 'ROUND_FULL'], 'type': 'string', 'description': 'Required. The roundness of the design.', 'x-google-enum-deprecated': [False, True, False, False, False, False], 'x-google-enum-descriptions': ['Unspecified roundness.', 'Round 2. Unused.', 'Round 4.', 'Round 8.', 'Round 12 or full', 'Round full.']}, 'components': {'type': 'object', 'description': 'Optional. Component tokens for the design system. Maps component names to their tokens.', 'additionalProperties': {'$ref': '#/$defs/ComponentTokens'}}, 'saturation': {'type': 'integer', 'format': 'int32', 'deprecated': True, 'description': 'Optional. DEPRECATED: The saturation of the design between 1 and 4.'}, 'typography': {'type': 'object', 'description': 'Optional. Typography scale for the design system. Maps level names (e.g. "display-lg", "body-md") to their Typography token.', 'additionalProperties': {'$ref': '#/$defs/Typography'}}, 'customColor': {'type': 'string', 'description': 'Optional. A custom theme primary color, or a seed color for the dynamic color system (hex format, e.g., "#ff0000").'}, 'description': {'type': 'string', 'deprecated': True, 'description': 'Optional. A brief description of the theme aesthetic.'}, 'namedColors': {'type': 'object', 'description': 'Optional. The color scheme of the design. This is a map of color names to hex color codes. Example: {"primary": "#ff0000", "secondary": "#00ff00", "tertiary": "#0000ff"}', 'additionalProperties': {'type': 'string'}}, 'colorVariant': {'enum': ['COLOR_VARIANT_UNSPECIFIED', 'MONOCHROME', 'NEUTRAL', 'TONAL_SPOT', 'VIBRANT', 'EXPRESSIVE', 'FIDELITY', 'CONTENT', 'RAINBOW', 'FRUIT_SALAD'], 'type': 'string', 'description': 'Optional. The variant of the dynamic color system.', 'x-google-enum-descriptions': ['Unspecified color variant.', 'Monochrome variant.', 'Neutral variant.', 'Tonal spot variant.', 'Vibrant variant.', 'Expressive variant.', 'Fidelity variant.', 'Content variant.', 'Rainbow variant.', 'Fruit salad variant.']}, 'headlineFont': {'enum': ['FONT_UNSPECIFIED', 'BE_VIETNAM_PRO', 'EPILOGUE', 'INTER', 'LEXEND', 'MANROPE', 'NEWSREADER', 'NOTO_SERIF', 'PLUS_JAKARTA_SANS', 'PUBLIC_SANS', 'SPACE_GROTESK', 'SPLINE_SANS', 'WORK_SANS', 'DOMINE', 'LIBRE_CASLON_TEXT', 'EB_GARAMOND', 'LITERATA', 'SOURCE_SERIF_4', 'SOURCE_SERIF_FOUR', 'MONTSERRAT', 'METROPHOBIC', 'METROPOLIS', 'SOURCE_SANS_3', 'SOURCE_SANS_THREE', 'NUNITO_SANS', 'ARIMO', 'HANKEN_GROTESK', 'RUBIK', 'GEIST', 'DM_SANS', 'IBM_PLEX_SANS', 'SORA', 'ANYBODY', 'ANTON', 'ARCHIVO_NARROW', 'ATKINSON_HYPERLEGIBLE_NEXT', 'BARLOW_CONDENSED', 'BEBAS_NEUE', 'BODONI_MODA', 'BRICOLAGE_GROTESQUE', 'CHIVO', 'CLIMATE_CRISIS', 'COMFORTAA', 'COURIER_PRIME', 'FIRA_SANS', 'GOOGLE_SANS', 'GOOGLE_SANS_CODE', 'GOOGLE_SANS_FLEX', 'GOOGLE_SANS_MONO', 'GOOGLE_SANS_TEXT', 'IBM_PLEX_SERIF', 'JETBRAINS_MONO', 'KARLA', 'LIBRE_FRANKLIN', 'MERRIWEATHER', 'NOTO_SANS', 'OPEN_SANS', 'OSWALD', 'OUTFIT', 'PLAYFAIR_DISPLAY', 'POIRET_ONE', 'QUESTRIAL', 'QUICKSAND', 'RALEWAY', 'ROBOTO_FLEX', 'SPACE_MONO', 'SYNE', 'VOLLKORN'], 'type': 'string', 'description': 'Optional. Headline font.', 'x-google-enum-deprecated': [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, True, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False], 'x-google-enum-descriptions': ['Unspecified font.', 'Be Vietnam Pro font.', 'Epilogue font.', 'Inter font.', 'Lexend font.', 'Manrope font.', 'Newsreader font.', 'Noto Serif font.', 'Plus Jakarta Sans font.', 'Public Sans font.', 'Space Grotesk font.', 'Spline Sans font.', 'Work Sans font.', 'Domine font.', 'Libre Caslon Text font.', 'EB Garamond font.', 'Literata font.', 'Source Serif 4 font.', 'Source Serif 4 font. Deprecated.', 'Montserrat font.', 'The Metrophobic font.', 'Metropolis font. Deprecated.', 'The Source Sans 3 font.', 'Source Sans 3 font. Deprecated.', 'Nunito Sans font.', 'Arimo font.', 'Hanken Grotesk font.', 'Rubik font.', 'Geist font.', 'DM Sans font.', 'IBM Plex Sans font.', 'Sora font.', 'Anybody font.', 'Anton font.', 'Archivo Narrow font.', 'Atkinson Hyperlegible Next font.', 'Barlow Condensed font.', 'Bebas Neue font.', 'Bodoni Moda font.', 'Bricolage Grotesque font.', 'Chivo font.', 'Climate Crisis font.', 'Comfortaa font.', 'Courier Prime font.', 'Fira Sans font.', 'Google Sans font.', 'Google Sans Code font.', 'Google Sans Flex font.', 'Google Sans Mono font.', 'Google Sans Text font.', 'IBM Plex Serif font.', 'JetBrains Mono font.', 'Karla font.', 'Libre Franklin font.', 'Merriweather font.', 'Noto Sans font.', 'Open Sans font.', 'Oswald font.', 'Outfit font.', 'Playfair Display font.', 'Poiret One font.', 'Questrial font.', 'Quicksand font.', 'Raleway font.', 'Roboto Flex font.', 'Space Mono font.', 'Syne font.', 'Vollkorn font.']}, 'spacingScale': {'type': 'integer', 'format': 'int32', 'description': 'Optional. The spacing scale level (0=minimal, 1=compact, 2=normal, 3=spacious).'}, 'backgroundDark': {'type': 'string', 'deprecated': True, 'description': 'Optional. DEPRECATED: The background color for dark mode (hex format, e.g., "#1a1a1a").'}, 'bodyFontFamily': {'type': 'string', 'description': 'Optional. Body font family name (e.g., "Inter", "Roboto").'}, 'backgroundLight': {'type': 'string', 'deprecated': True, 'description': 'Optional. DEPRECATED: The background color for light mode (hex format, e.g., "#f8f8f8").'}, 'labelFontFamily': {'type': 'string', 'description': 'Optional. Label font family name (e.g., "Inter", "Roboto").'}, 'headlineFontFamily': {'type': 'string', 'description': 'Optional. Headline font family name (e.g., "Inter", "Roboto").'}, 'overrideNeutralColor': {'type': 'string', 'description': 'Optional. Override neutral color for the dynamic color system (hex format, e.g., "#ffffff").'}, 'overridePrimaryColor': {'type': 'string', 'description': 'Optional. Override primary color for the dynamic color system (hex format, e.g., "#ff0000").'}, 'overrideTertiaryColor': {'type': 'string', 'description': 'Optional. Override tertiary color for the dynamic color system (hex format, e.g., "#0000ff").'}, 'overrideSecondaryColor': {'type': 'string', 'description': 'Optional. Override secondary color for the dynamic color system (hex format, e.g., "#00ff00").'}}, 'description': 'The theme of the design. Next ID: 27 LINT.IfChange'}, 'DesignSystem': {'type': 'object', 'properties': {'theme': {'$ref': '#/$defs/DesignTheme', 'description': 'Optional. The theme of the design system.'}, 'displayName': {'type': 'string', 'description': 'Optional. The display name of the design system.'}, 'designTokens': {'type': 'string', 'description': 'Optional. Serialized JSON object of the DTCG format design tokens.'}, 'styleGuidelines': {'type': 'string', 'description': 'Optional. Freeform text description of the style guidelines. This field is not displayed to the user and should not be included in MCP.'}}, 'description': "Represents a collection of guidelines, design tokens, and reusable components that define the visual and functional characteristics of a product's design. This is used to guide the generation of consistent and branded designs. LINT.IfChange"}, 'SessionEvent': {'type': 'object', 'properties': {'actor': {'type': 'string', 'readOnly': True, 'description': 'Output only. The actor who triggered the event.'}, 'eventId': {'type': 'string', 'readOnly': True, 'description': 'Output only. Unique identifier for the event.'}, 'eventTime': {'type': 'string', 'format': 'date-time', 'readOnly': True, 'description': 'Output only. Time when the event occurred.'}, 'eventType': {'type': 'string', 'readOnly': True, 'description': 'Output only. Type of the event.'}, 'eventPayload': {'type': 'object', 'readOnly': True, 'description': 'Output only. Payload carrying flexible event data.', 'additionalProperties': {'description': 'Properties of the object.'}}}, 'description': 'Flexible session events carrying JSON payload.'}, 'UserFeedback': {'type': 'object', 'properties': {'rating': {'enum': ['RATING_UNSPECIFIED', 'POSITIVE', 'NEGATIVE'], 'type': 'string', 'description': 'Optional. The user rating of the interaction.', 'x-google-enum-descriptions': ['Unspecified rating.', 'Positive rating.', 'Negative rating.']}, 'comment': {'type': 'string', 'description': 'Optional. Additional comment for the rating.'}, 'designFeedbackReason': {'enum': ['DESIGN_FEEDBACK_REASON_UNSPECIFIED', 'DESIGN_DOESNT_MATCH_PROMPT', 'EDIT_DOESNT_MATCH_PROMPT', 'DESCRIPTION_DOESNT_MATCH', 'COMPONENT_ISSUE', 'INCORRECT_THEME', 'FIGMA_EXPORT_FAILED', 'OTHER'], 'type': 'string', 'description': 'Optional. The reason for the feedback for a design, if the rating is negative.', 'x-google-enum-descriptions': ['Unspecified reason.', 'The design does not match the prompt.', 'The edit does not match the prompt.', 'The description does not match the design.', 'There is an issue with a component in the design.', 'The theme is incorrect.', 'The Figma export failed.', 'Other reason.']}}, 'description': 'User feedback for a given interaction.'}, 'PrototypeLink': {'type': 'object', 'properties': {'state': {'type': 'string', 'description': 'Optional. The state under which this link is active. Defaults to "default".'}, 'xpath': {'type': 'string', 'description': 'Required. XPath to the interactive element.'}, 'transition': {'enum': ['TRANSITION_TYPE_UNSPECIFIED', 'NONE', 'PUSH', 'PUSH_BACK', 'SLIDE_UP'], 'type': 'string', 'description': 'Optional. The transition animation to use when navigating to the target screen.', 'x-google-enum-descriptions': ['Unspecified transition type, defaults to NONE.', 'Instant switch with no animation.', 'New screen slides in from the right.', 'Current screen slides out to the right.', 'New screen slides up from the bottom.']}, 'targetScreenId': {'type': 'string', 'description': 'Required. ID of the destination screen.'}}, 'description': 'A single interactive link within a prototype screen.'}, 'ProgressUpdate': {'type': 'object', 'properties': {'status': {'enum': ['STATUS_UNSPECIFIED', 'STARTED', 'COMPLETED', 'FAILED'], 'type': 'string', 'x-google-enum-descriptions': ['', '', '', '']}, 'toolName': {'type': 'string'}, 'toolCallId': {'type': 'string'}, 'displayName': {'type': 'string'}}}, 'PrototypeLinks': {'type': 'object', 'properties': {'links': {'type': 'array', 'items': {'$ref': '#/$defs/PrototypeLink'}, 'description': 'Optional. The list of links for this screen.'}}, 'description': 'A collection of prototype links for a single screen.'}, 'PrototypeState': {'type': 'object', 'properties': {'name': {'type': 'string', 'description': 'Required. The name of the state (e.g., "default", "login-failed").'}}, 'description': 'A named state that controls link behavior in a prototype.'}, 'QuestionsAsked': {'type': 'object', 'properties': {'questions': {'type': 'array', 'items': {'$ref': '#/$defs/Question'}, 'description': 'The list of questions asked by the agent.'}}, 'description': 'A set of questions sent from the agent to the user.'}, 'ScreenMetadata': {'type': 'object', 'properties': {'status': {'enum': ['SCREEN_STATUS_UNSPECIFIED', 'IN_PROGRESS', 'COMPLETE', 'FAILED'], 'type': 'string', 'description': 'The status of the screen.', 'x-google-enum-descriptions': ['Unspecified screen status.', 'The screen is in progress.', 'The screen is complete.', 'The screen failed to generate.']}, 'summary': {'type': 'string', 'description': 'Optional. A first-person summary of what was generated or changed for the screen.'}, 'agentType': {'enum': ['DESIGN_AGENT_TYPE_UNSPECIFIED', 'TURBO_AGENT', 'PRO_AGENT', 'IMAGE_AGENT', 'GENIE_AGENT', 'IMAGE_PRO_AGENT', 'HATTER_AGENT', 'GEMINI_3_AGENT'], 'type': 'string', 'description': 'The agent type that generated the screen.', 'x-google-enum-deprecated': [False, True, False, False, False, True, False, False], 'x-google-enum-descriptions': ['Unspecified agent type. The service will pick one.', 'Deprecated: Turbo agent is no longer supported.', 'This agent uses Gemini 3.0 Flash. The "PRO" name is a legacy from when it used Gemini 2.5 Pro.', 'The image agent, produces image screens.', 'The Genie agent prototype agent.', 'Deprecated: The image pro agent is no longer supported.', 'The Hatter agent as a general assistant agent.', 'Agent powered by the Gemini 3.0 Thinking model. This became the new "Pro" agent after the Gemini 3 launch.']}, 'isRemixed': {'type': 'boolean', 'description': 'Optional. Whether this screen was created as a result of remixing or not.'}, 'displayMode': {'enum': ['DISPLAY_MODE_UNSPECIFIED', 'SCREENSHOT', 'HTML', 'CODE', 'MARKDOWN', 'STICKY_NOTE', 'SVG', 'TABLE', 'MERMAID', 'CHECKLIST', 'CHART', 'PDF', 'FIGMA'], 'type': 'string', 'description': 'Optional. Whether the frontend should display HTML or a screenshot.', 'x-google-enum-descriptions': ['Unspecified display mode. Defaults to SCREENSHOT.', 'The screen is displayed as a screenshot.', 'The screen is displayed as rendered HTML.', 'Displays the screen as code.', 'Displays the screen as markdown.', 'Displays the screen as a sticky note.', 'Displays the screen as an inline SVG graphic.', 'Displays the screen as a data table (CSV).', 'Displays the screen as a mermaid diagram.', 'Agent only: The document node is displayed as an interactive checklist.', 'Agent only: The document node is displayed as an interactive Chart.js chart.', 'Displays the screen as a PDF document.', 'Displays the screen as a Figma file.']}, 'suggestions': {'type': 'array', 'items': {'$ref': '#/$defs/DesignSuggestion'}, 'description': 'Optional. Suggested next actions for the screen.'}, 'prototypeSpec': {'$ref': '#/$defs/PrototypeV2Spec', 'description': 'Optional. The prototype spec of the screen.'}, 'statusMessage': {'type': 'string', 'description': 'Optional. A human readable status message for the screen, generated by the agent.'}, 'componentRegions': {'type': 'array', 'items': {'$ref': '#/$defs/ComponentRegion'}, 'description': 'Optional. The component regions of the screen.'}}, 'description': 'The metadata of a screen.'}, 'ComponentRegion': {'type': 'object', 'properties': {'type': {'enum': ['COMPONENT_TYPE_UNSPECIFIED', 'COMPONENT_TYPE_IMAGE', 'COMPONENT_TYPE_TEXT', 'COMPONENT_TYPE_BUTTON', 'COMPONENT_TYPE_INPUT', 'COMPONENT_TYPE_CONTAINER'], 'type': 'string', 'description': 'The type of the component region.', 'x-google-enum-descriptions': ['Unspecified component type.', 'An image component.', 'A text component.', 'A button component.', 'An input component.', 'A container component.']}, 'xpath': {'type': 'string', 'description': 'The xpath of the component region.'}, 'boundingBox': {'$ref': '#/$defs/BoundingBox', 'description': 'The bounding box of the component region.'}, 'description': {'type': 'string', 'description': 'The description of the component region.'}}, 'description': 'The region of a component region.'}, 'ComponentTokens': {'type': 'object', 'properties': {'tokens': {'type': 'object', 'description': 'Optional. A component may have these sub tokens: - backgroundColor: - textColor: - typography: - rounded: - padding: The value may be a literal value or a reference. A token reference must be wrapped in curly braces, and contain an object path to another value in the design system. The referenced object must be a primitive value, e.g. colors.primary-60, rather than an object, e.g. colors.', 'additionalProperties': {'type': 'string'}}}, 'description': 'A component style token in a design system.'}, 'ProgressUpdates': {'type': 'object', 'properties': {'updates': {'type': 'array', 'items': {'$ref': '#/$defs/ProgressUpdate'}}}}, 'PrototypeV2Spec': {'type': 'object', 'properties': {'links': {'type': 'object', 'description': 'Optional. Map of screenId to list of links.', 'additionalProperties': {'$ref': '#/$defs/PrototypeLinks'}}, 'states': {'type': 'array', 'items': {'$ref': '#/$defs/PrototypeState'}, 'description': 'Optional. The list of states available in this prototype.'}, 'screenIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Optional. List of all screen IDs.'}, 'initScreenId': {'type': 'string', 'description': 'Required. ID of the initial screen.'}}, 'description': 'The full specification for a V2 interactive prototype.'}, 'DesignSuggestion': {'type': 'object', 'properties': {'label': {'type': 'string', 'description': 'A short label for the suggestion (max 3 words, e.g. "Dark mode theme").'}, 'prompt': {'type': 'string', 'description': 'A full prompt description of the suggestion that can be sent directly to the agent (e.g. "Change the theme to dark mode with a deep navy background and white text").'}}, 'description': 'A suggested next action for a screen.'}, 'SessionOutputComponent': {'type': 'object', 'properties': {'text': {'type': 'string', 'description': 'The agent generates a text response to be displayed to the user. Only one of the following fields should be set: this field, design, suggestion, designSystem, progressUpdates, sessionEvent, questionsAsked.'}, 'design': {'$ref': '#/$defs/Design', 'description': 'The agent generates a design to be displayed to the user. Only applicable to TEXT_TO_UI and IMAGE_TO_UI projects. Only one of the following fields should be set: this field, text, suggestion, designSystem, progressUpdates, sessionEvent, questionsAsked.'}, 'suggestion': {'type': 'string', 'description': 'The agent generates a suggested response to be displayed to the user. Only one of the following fields should be set: this field, design, text, designSystem, progressUpdates, sessionEvent, questionsAsked.'}, 'designSystem': {'$ref': '#/$defs/Asset', 'readOnly': True, 'description': 'Output only. The agent generates a design system to be displayed to the user. Only one of the following fields should be set: this field, design, text, suggestion, progressUpdates, sessionEvent, questionsAsked.'}, 'sessionEvent': {'$ref': '#/$defs/SessionEvent', 'readOnly': True, 'description': 'Output only. Flexible session events carrying JSON payload. Only one of the following fields should be set: this field, design, text, suggestion, designSystem, progressUpdates, questionsAsked.'}, 'questionsAsked': {'$ref': '#/$defs/QuestionsAsked', 'readOnly': True, 'description': 'Output only. Structured questions asked by the agent. Only one of the following fields should be set: this field, design, text, suggestion, designSystem, progressUpdates, sessionEvent.'}, 'progressUpdates': {'$ref': '#/$defs/ProgressUpdates', 'readOnly': True, 'description': 'Output only. Progress updates from the agent. Only one of the following fields should be set: this field, design, text, suggestion, designSystem, sessionEvent, questionsAsked.'}}, 'description': 'A partial output of the session.'}}, 'properties': {'projectId': {'type': 'string', 'description': 'The project ID of the generated screen. This is the same as the input project ID.'}, 'sessionId': {'type': 'string', 'description': 'The session ID of the generated screen.'}, 'outputComponents': {'type': 'array', 'items': {'$ref': '#/$defs/SessionOutputComponent'}, 'description': 'The generated output components.'}}, 'description': 'The output design generated by the agent.'}
generate_screen_from_text
Generates a new screen within a project from a text prompt. **Instructions for Tool Call:** * This action can take a few minutes to complete. Please be patient. DO NOT RETRY. * If the tool fails with a timeout, don't retry. Instead, try to get the screen with `get_screen` method every 30 seconds for up to 10 times before giving up. * If the tool call fails due to connection error, the generation process may still succeed. Please try to get the screen with `get_screen` method later. **Output:** * **`output_components`**: If `output_components` contains text, return it to the user. If `output_components` contains suggestions (e.g. "Yes, make them all"), present these suggestions to the user. If the user accepts one of the suggestions, call `generate_screen_from_text` again with `prompt` set to the accepted suggestion.
破壊的操作あり
入力スキーマ
{'type': 'object', 'required': ['projectId', 'prompt'], 'properties': {'prompt': {'type': 'string', 'description': 'Required. The input text to generate the screen from.'}, 'modelId': {'enum': ['MODEL_ID_UNSPECIFIED', 'GEMINI_3_8_FLASH', 'GEMINI_3_5_FLASH_LITE'], 'type': 'string', 'description': 'Optional. The model to use for generation.', 'x-google-enum-descriptions': ['Unspecified model.', 'Gemini 3.8 Flash.', 'Gemini 3.5 Flash-Lite.']}, 'projectId': {'type': 'string', 'description': "Required. The project ID to generate the screen for, example: '4044680601076201931', without the `projects/` prefix."}, 'deviceType': {'enum': ['DEVICE_TYPE_UNSPECIFIED', 'MOBILE', 'DESKTOP', 'TABLET', 'AGNOSTIC'], 'type': 'string', 'description': 'The type of device that captured the screenshot, e.g., mobile or desktop.', 'x-google-enum-descriptions': ['Unspecified device type.', 'A design for a mobile device.', 'A design for a desktop device.', 'A design for a tablet device.', 'A design that is not tied to a specific device.']}, 'designSystem': {'type': 'string', 'description': 'Optional. The design system id to use for generating the new screen, should always be configured for design consistency, via `get_project` or `list_assets` methods. If not provided, a default design system will be used. Example: `assets/15996705518239280238`.'}}, 'description': 'Request message for GenerateScreenFromText.'}
出力スキーマ
{'type': 'object', '$defs': {'File': {'type': 'object', 'properties': {'name': {'type': 'string', 'description': 'Identifier. The resource name of the file. Format: projects/{project}/files/{file}', 'x-google-identifier': True}, 'mimeType': {'type': 'string', 'description': 'Optional. The mime type of the file. E.g. "image/png", "text/html".'}, 'downloadUrl': {'type': 'string', 'description': 'Optional. The URL of the file for download. For image files, this would be FIFE base URLs. Only one of the following fields should be set: this field, uploadBlobId, fileContentBase64.'}, 'uploadBlobId': {'type': 'string', 'description': 'Optional. The BlobId from Scotty/contrib service file upload. This points to a temporary blobstore location of the file. Only one of the following fields should be set: this field, downloadUrl, fileContentBase64.'}, 'userFeedback': {'$ref': '#/$defs/UserFeedback', 'readOnly': True, 'description': 'Output only. The latest feedback submitted for the file.'}, 'fileContentBase64': {'type': 'string', 'writeOnly': True, 'description': 'Optional. Input only. The base64-encoded string of the file content. Only one of the following fields should be set: this field, uploadBlobId, downloadUrl.'}}, 'description': 'A File resource.'}, 'Asset': {'type': 'object', 'properties': {'name': {'type': 'string', 'description': 'Identifier. The resource name of the asset. Format: assets/{asset}', 'x-google-identifier': True}, 'version': {'type': 'string', 'format': 'int64', 'readOnly': True, 'description': 'Output only. The version of this asset. 0 indicates unversioned (legacy data). Incremented when the asset content changes.'}, 'copiedFrom': {'type': 'string', 'description': 'Optional. The resource name of the asset this was copied from, if any. Format: assets/{asset} Tracks the fork history of assets.'}, 'designSystem': {'$ref': '#/$defs/DesignSystem', 'description': 'Optional. The design system.'}}, 'description': 'An Asset resource.'}, 'Design': {'type': 'object', 'properties': {'theme': {'$ref': '#/$defs/DesignTheme', 'description': 'Optional. The theme used to generate the design.'}, 'title': {'type': 'string', 'description': 'Optional. The generated title of the design.'}, 'screens': {'type': 'array', 'items': {'$ref': '#/$defs/Screen'}, 'description': 'Optional. The screens of the design.'}, 'deviceType': {'enum': ['DEVICE_TYPE_UNSPECIFIED', 'MOBILE', 'DESKTOP', 'TABLET', 'AGNOSTIC'], 'type': 'string', 'description': 'Optional. The device type of the design.', 'x-google-enum-descriptions': ['Unspecified device type.', 'A design for a mobile device.', 'A design for a desktop device.', 'A design for a tablet device.', 'A design that is not tied to a specific device.']}}, 'description': 'A generated design, which is a collection of multiple screens. Note: do not add new fields to this message or rely on it for any logic. For any Screen property, add it to Screen message instead. Design is a deprecated hierarchical container for screens and is only used for backward compatibility.'}, 'Screen': {'type': 'object', 'properties': {'id': {'type': 'string', 'deprecated': True, 'description': 'Optional. The screen id.'}, 'name': {'type': 'string', 'description': 'Identifier. The resource name of the screen. Format: projects/{project}/screens/{screen}', 'x-google-identifier': True}, 'theme': {'$ref': '#/$defs/DesignTheme', 'description': 'Optional. The theme used to generate the screen.'}, 'title': {'type': 'string', 'description': 'Optional. The title of the screen.'}, 'width': {'type': 'string', 'description': 'Optional. The width of the screen.'}, 'height': {'type': 'string', 'description': 'Optional. The height of the screen.'}, 'prompt': {'type': 'string', 'description': 'Optional. The prompt used to generate the screen.'}, 'groupId': {'type': 'string', 'description': 'Optional. The group id of the screen. This is used to group screens that are related to each other (e.g. a group of variants of a design).'}, 'htmlCode': {'$ref': '#/$defs/File', 'description': 'Optional. The HTML code of the screen.'}, 'groupName': {'type': 'string', 'description': 'Optional. The name of the group (e.g., design package name) for display purposes.'}, 'deviceType': {'enum': ['DEVICE_TYPE_UNSPECIFIED', 'MOBILE', 'DESKTOP', 'TABLET', 'AGNOSTIC'], 'type': 'string', 'description': 'Optional. The device type of the screen.', 'x-google-enum-descriptions': ['Unspecified device type.', 'A design for a mobile device.', 'A design for a desktop device.', 'A design for a tablet device.', 'A design that is not tied to a specific device.']}, 'screenType': {'enum': ['SCREEN_TYPE_UNSPECIFIED', 'DESIGN', 'IMAGE', 'PROTOTYPE', 'DOCUMENT', 'PROTOTYPE_V2'], 'type': 'string', 'description': 'Optional. The screen type.', 'x-google-enum-descriptions': ['If the screen type is unspecified, it is assumed to be a DESIGN.', 'A design screen.', 'A pure image.', 'A design prototype.', 'A document like a PRD.', 'A design prototype v2.']}, 'screenshot': {'$ref': '#/$defs/File', 'description': 'Optional. The screenshot of the screen.'}, 'figmaExport': {'$ref': '#/$defs/File', 'description': 'Optional. The Figma export of the screen.'}, 'generatedBy': {'type': 'string', 'description': 'Optional. The generated by field of the screen.'}, 'designSystem': {'$ref': '#/$defs/Asset', 'readOnly': True, 'description': 'Output only. The design system used to generate the screen.'}, 'screenMetadata': {'$ref': '#/$defs/ScreenMetadata', 'description': 'Optional. The metadata of the screen.'}, 'isCreatedByClient': {'type': 'boolean', 'description': 'Optional. If true, the screen was created by client calling CreateScreen API for user uploads or copy paste. If false, the screen was created by the agents.'}}, 'description': 'A generated screen.'}, 'Question': {'type': 'object', 'properties': {'text': {'type': 'string', 'description': 'The question text displayed to the user.'}, 'options': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Options for MULTIPLE_CHOICE / SINGLE_CHOICE questions.'}, 'questionId': {'type': 'string', 'description': 'An optional unique identifier for correlating answers to questions.'}, 'responseType': {'enum': ['QUESTION_RESPONSE_TYPE_UNSPECIFIED', 'FREEFORM_TEXT', 'MULTIPLE_CHOICE', 'SINGLE_CHOICE', 'YES_NO', 'RATING_SCALE'], 'type': 'string', 'description': 'The expected response type.', 'x-google-enum-descriptions': ['Unspecified response type.', 'Open-ended text input.', 'Select one or more options from a list.', 'Select exactly one option from a list.', 'Simple yes / no.', 'Numeric rating on a scale.']}}, 'description': 'A single structured question the agent asks the user.'}, 'Typography': {'type': 'object', 'properties': {'fontSize': {'type': 'string', 'description': 'Optional. The CSS font-size value (e.g., "32px", "1rem").'}, 'fontFamily': {'type': 'string', 'description': 'Optional. The CSS font-family value (e.g., "Manrope", "Inter").'}, 'fontWeight': {'type': 'string', 'description': 'Optional. The CSS font-weight value (e.g., "400", "700").'}, 'lineHeight': {'type': 'string', 'description': 'Optional. The CSS line-height value (e.g., "1.5", "40px").'}, 'letterSpacing': {'type': 'string', 'description': 'Optional. The CSS letter-spacing value (e.g., "0px", "-0.02em").'}}, 'description': 'A typography style token in a design system, defining the visual properties for a single text level (e.g. "display-lg", "body-md").'}, 'BoundingBox': {'type': 'object', 'properties': {'x': {'type': 'integer', 'format': 'int32', 'description': 'The x coordinate of the bounding box, relative to the image width.'}, 'y': {'type': 'integer', 'format': 'int32', 'description': 'The y coordinate of the bounding box, relative to the image height.'}, 'width': {'type': 'integer', 'format': 'int32', 'description': 'The width of the bounding box.'}, 'height': {'type': 'integer', 'format': 'int32', 'description': 'The height of the bounding box.'}}, 'description': 'The bounding box of a component.'}, 'DesignTheme': {'type': 'object', 'properties': {'font': {'enum': ['FONT_UNSPECIFIED', 'BE_VIETNAM_PRO', 'EPILOGUE', 'INTER', 'LEXEND', 'MANROPE', 'NEWSREADER', 'NOTO_SERIF', 'PLUS_JAKARTA_SANS', 'PUBLIC_SANS', 'SPACE_GROTESK', 'SPLINE_SANS', 'WORK_SANS', 'DOMINE', 'LIBRE_CASLON_TEXT', 'EB_GARAMOND', 'LITERATA', 'SOURCE_SERIF_4', 'SOURCE_SERIF_FOUR', 'MONTSERRAT', 'METROPHOBIC', 'METROPOLIS', 'SOURCE_SANS_3', 'SOURCE_SANS_THREE', 'NUNITO_SANS', 'ARIMO', 'HANKEN_GROTESK', 'RUBIK', 'GEIST', 'DM_SANS', 'IBM_PLEX_SANS', 'SORA', 'ANYBODY', 'ANTON', 'ARCHIVO_NARROW', 'ATKINSON_HYPERLEGIBLE_NEXT', 'BARLOW_CONDENSED', 'BEBAS_NEUE', 'BODONI_MODA', 'BRICOLAGE_GROTESQUE', 'CHIVO', 'CLIMATE_CRISIS', 'COMFORTAA', 'COURIER_PRIME', 'FIRA_SANS', 'GOOGLE_SANS', 'GOOGLE_SANS_CODE', 'GOOGLE_SANS_FLEX', 'GOOGLE_SANS_MONO', 'GOOGLE_SANS_TEXT', 'IBM_PLEX_SERIF', 'JETBRAINS_MONO', 'KARLA', 'LIBRE_FRANKLIN', 'MERRIWEATHER', 'NOTO_SANS', 'OPEN_SANS', 'OSWALD', 'OUTFIT', 'PLAYFAIR_DISPLAY', 'POIRET_ONE', 'QUESTRIAL', 'QUICKSAND', 'RALEWAY', 'ROBOTO_FLEX', 'SPACE_MONO', 'SYNE', 'VOLLKORN'], 'type': 'string', 'deprecated': True, 'description': 'Optional. DEPRECATED: The font of the design. Planned to be deprecated in favor of `headline_font`, `body_font`, and `label_font`.', 'x-google-enum-deprecated': [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, True, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False], 'x-google-enum-descriptions': ['Unspecified font.', 'Be Vietnam Pro font.', 'Epilogue font.', 'Inter font.', 'Lexend font.', 'Manrope font.', 'Newsreader font.', 'Noto Serif font.', 'Plus Jakarta Sans font.', 'Public Sans font.', 'Space Grotesk font.', 'Spline Sans font.', 'Work Sans font.', 'Domine font.', 'Libre Caslon Text font.', 'EB Garamond font.', 'Literata font.', 'Source Serif 4 font.', 'Source Serif 4 font. Deprecated.', 'Montserrat font.', 'The Metrophobic font.', 'Metropolis font. Deprecated.', 'The Source Sans 3 font.', 'Source Sans 3 font. Deprecated.', 'Nunito Sans font.', 'Arimo font.', 'Hanken Grotesk font.', 'Rubik font.', 'Geist font.', 'DM Sans font.', 'IBM Plex Sans font.', 'Sora font.', 'Anybody font.', 'Anton font.', 'Archivo Narrow font.', 'Atkinson Hyperlegible Next font.', 'Barlow Condensed font.', 'Bebas Neue font.', 'Bodoni Moda font.', 'Bricolage Grotesque font.', 'Chivo font.', 'Climate Crisis font.', 'Comfortaa font.', 'Courier Prime font.', 'Fira Sans font.', 'Google Sans font.', 'Google Sans Code font.', 'Google Sans Flex font.', 'Google Sans Mono font.', 'Google Sans Text font.', 'IBM Plex Serif font.', 'JetBrains Mono font.', 'Karla font.', 'Libre Franklin font.', 'Merriweather font.', 'Noto Sans font.', 'Open Sans font.', 'Oswald font.', 'Outfit font.', 'Playfair Display font.', 'Poiret One font.', 'Questrial font.', 'Quicksand font.', 'Raleway font.', 'Roboto Flex font.', 'Space Mono font.', 'Syne font.', 'Vollkorn font.']}, 'preset': {'type': 'string', 'deprecated': True, 'description': 'Optional. DEPRECATED: The preset color of the design.'}, 'spacing': {'type': 'object', 'description': 'Optional. Spacing units for the design system. Maps spacing names to their values.', 'additionalProperties': {'type': 'string'}}, 'bodyFont': {'enum': ['FONT_UNSPECIFIED', 'BE_VIETNAM_PRO', 'EPILOGUE', 'INTER', 'LEXEND', 'MANROPE', 'NEWSREADER', 'NOTO_SERIF', 'PLUS_JAKARTA_SANS', 'PUBLIC_SANS', 'SPACE_GROTESK', 'SPLINE_SANS', 'WORK_SANS', 'DOMINE', 'LIBRE_CASLON_TEXT', 'EB_GARAMOND', 'LITERATA', 'SOURCE_SERIF_4', 'SOURCE_SERIF_FOUR', 'MONTSERRAT', 'METROPHOBIC', 'METROPOLIS', 'SOURCE_SANS_3', 'SOURCE_SANS_THREE', 'NUNITO_SANS', 'ARIMO', 'HANKEN_GROTESK', 'RUBIK', 'GEIST', 'DM_SANS', 'IBM_PLEX_SANS', 'SORA', 'ANYBODY', 'ANTON', 'ARCHIVO_NARROW', 'ATKINSON_HYPERLEGIBLE_NEXT', 'BARLOW_CONDENSED', 'BEBAS_NEUE', 'BODONI_MODA', 'BRICOLAGE_GROTESQUE', 'CHIVO', 'CLIMATE_CRISIS', 'COMFORTAA', 'COURIER_PRIME', 'FIRA_SANS', 'GOOGLE_SANS', 'GOOGLE_SANS_CODE', 'GOOGLE_SANS_FLEX', 'GOOGLE_SANS_MONO', 'GOOGLE_SANS_TEXT', 'IBM_PLEX_SERIF', 'JETBRAINS_MONO', 'KARLA', 'LIBRE_FRANKLIN', 'MERRIWEATHER', 'NOTO_SANS', 'OPEN_SANS', 'OSWALD', 'OUTFIT', 'PLAYFAIR_DISPLAY', 'POIRET_ONE', 'QUESTRIAL', 'QUICKSAND', 'RALEWAY', 'ROBOTO_FLEX', 'SPACE_MONO', 'SYNE', 'VOLLKORN'], 'type': 'string', 'description': 'Optional. Body font.', 'x-google-enum-deprecated': [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, True, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False], 'x-google-enum-descriptions': ['Unspecified font.', 'Be Vietnam Pro font.', 'Epilogue font.', 'Inter font.', 'Lexend font.', 'Manrope font.', 'Newsreader font.', 'Noto Serif font.', 'Plus Jakarta Sans font.', 'Public Sans font.', 'Space Grotesk font.', 'Spline Sans font.', 'Work Sans font.', 'Domine font.', 'Libre Caslon Text font.', 'EB Garamond font.', 'Literata font.', 'Source Serif 4 font.', 'Source Serif 4 font. Deprecated.', 'Montserrat font.', 'The Metrophobic font.', 'Metropolis font. Deprecated.', 'The Source Sans 3 font.', 'Source Sans 3 font. Deprecated.', 'Nunito Sans font.', 'Arimo font.', 'Hanken Grotesk font.', 'Rubik font.', 'Geist font.', 'DM Sans font.', 'IBM Plex Sans font.', 'Sora font.', 'Anybody font.', 'Anton font.', 'Archivo Narrow font.', 'Atkinson Hyperlegible Next font.', 'Barlow Condensed font.', 'Bebas Neue font.', 'Bodoni Moda font.', 'Bricolage Grotesque font.', 'Chivo font.', 'Climate Crisis font.', 'Comfortaa font.', 'Courier Prime font.', 'Fira Sans font.', 'Google Sans font.', 'Google Sans Code font.', 'Google Sans Flex font.', 'Google Sans Mono font.', 'Google Sans Text font.', 'IBM Plex Serif font.', 'JetBrains Mono font.', 'Karla font.', 'Libre Franklin font.', 'Merriweather font.', 'Noto Sans font.', 'Open Sans font.', 'Oswald font.', 'Outfit font.', 'Playfair Display font.', 'Poiret One font.', 'Questrial font.', 'Quicksand font.', 'Raleway font.', 'Roboto Flex font.', 'Space Mono font.', 'Syne font.', 'Vollkorn font.']}, 'designMd': {'type': 'string', 'description': 'Optional. A markdown file that describes the design system.'}, 'colorMode': {'enum': ['COLOR_MODE_UNSPECIFIED', 'LIGHT', 'DARK'], 'type': 'string', 'description': 'Required. The mode of appearance of the design.', 'x-google-enum-descriptions': ['Unspecified color mode.', 'Light mode.', 'Dark mode.']}, 'labelFont': {'enum': ['FONT_UNSPECIFIED', 'BE_VIETNAM_PRO', 'EPILOGUE', 'INTER', 'LEXEND', 'MANROPE', 'NEWSREADER', 'NOTO_SERIF', 'PLUS_JAKARTA_SANS', 'PUBLIC_SANS', 'SPACE_GROTESK', 'SPLINE_SANS', 'WORK_SANS', 'DOMINE', 'LIBRE_CASLON_TEXT', 'EB_GARAMOND', 'LITERATA', 'SOURCE_SERIF_4', 'SOURCE_SERIF_FOUR', 'MONTSERRAT', 'METROPHOBIC', 'METROPOLIS', 'SOURCE_SANS_3', 'SOURCE_SANS_THREE', 'NUNITO_SANS', 'ARIMO', 'HANKEN_GROTESK', 'RUBIK', 'GEIST', 'DM_SANS', 'IBM_PLEX_SANS', 'SORA', 'ANYBODY', 'ANTON', 'ARCHIVO_NARROW', 'ATKINSON_HYPERLEGIBLE_NEXT', 'BARLOW_CONDENSED', 'BEBAS_NEUE', 'BODONI_MODA', 'BRICOLAGE_GROTESQUE', 'CHIVO', 'CLIMATE_CRISIS', 'COMFORTAA', 'COURIER_PRIME', 'FIRA_SANS', 'GOOGLE_SANS', 'GOOGLE_SANS_CODE', 'GOOGLE_SANS_FLEX', 'GOOGLE_SANS_MONO', 'GOOGLE_SANS_TEXT', 'IBM_PLEX_SERIF', 'JETBRAINS_MONO', 'KARLA', 'LIBRE_FRANKLIN', 'MERRIWEATHER', 'NOTO_SANS', 'OPEN_SANS', 'OSWALD', 'OUTFIT', 'PLAYFAIR_DISPLAY', 'POIRET_ONE', 'QUESTRIAL', 'QUICKSAND', 'RALEWAY', 'ROBOTO_FLEX', 'SPACE_MONO', 'SYNE', 'VOLLKORN'], 'type': 'string', 'description': 'Optional. Label font.', 'x-google-enum-deprecated': [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, True, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False], 'x-google-enum-descriptions': ['Unspecified font.', 'Be Vietnam Pro font.', 'Epilogue font.', 'Inter font.', 'Lexend font.', 'Manrope font.', 'Newsreader font.', 'Noto Serif font.', 'Plus Jakarta Sans font.', 'Public Sans font.', 'Space Grotesk font.', 'Spline Sans font.', 'Work Sans font.', 'Domine font.', 'Libre Caslon Text font.', 'EB Garamond font.', 'Literata font.', 'Source Serif 4 font.', 'Source Serif 4 font. Deprecated.', 'Montserrat font.', 'The Metrophobic font.', 'Metropolis font. Deprecated.', 'The Source Sans 3 font.', 'Source Sans 3 font. Deprecated.', 'Nunito Sans font.', 'Arimo font.', 'Hanken Grotesk font.', 'Rubik font.', 'Geist font.', 'DM Sans font.', 'IBM Plex Sans font.', 'Sora font.', 'Anybody font.', 'Anton font.', 'Archivo Narrow font.', 'Atkinson Hyperlegible Next font.', 'Barlow Condensed font.', 'Bebas Neue font.', 'Bodoni Moda font.', 'Bricolage Grotesque font.', 'Chivo font.', 'Climate Crisis font.', 'Comfortaa font.', 'Courier Prime font.', 'Fira Sans font.', 'Google Sans font.', 'Google Sans Code font.', 'Google Sans Flex font.', 'Google Sans Mono font.', 'Google Sans Text font.', 'IBM Plex Serif font.', 'JetBrains Mono font.', 'Karla font.', 'Libre Franklin font.', 'Merriweather font.', 'Noto Sans font.', 'Open Sans font.', 'Oswald font.', 'Outfit font.', 'Playfair Display font.', 'Poiret One font.', 'Questrial font.', 'Quicksand font.', 'Raleway font.', 'Roboto Flex font.', 'Space Mono font.', 'Syne font.', 'Vollkorn font.']}, 'roundness': {'enum': ['ROUNDNESS_UNSPECIFIED', 'ROUND_TWO', 'ROUND_FOUR', 'ROUND_EIGHT', 'ROUND_TWELVE', 'ROUND_FULL'], 'type': 'string', 'description': 'Required. The roundness of the design.', 'x-google-enum-deprecated': [False, True, False, False, False, False], 'x-google-enum-descriptions': ['Unspecified roundness.', 'Round 2. Unused.', 'Round 4.', 'Round 8.', 'Round 12 or full', 'Round full.']}, 'components': {'type': 'object', 'description': 'Optional. Component tokens for the design system. Maps component names to their tokens.', 'additionalProperties': {'$ref': '#/$defs/ComponentTokens'}}, 'saturation': {'type': 'integer', 'format': 'int32', 'deprecated': True, 'description': 'Optional. DEPRECATED: The saturation of the design between 1 and 4.'}, 'typography': {'type': 'object', 'description': 'Optional. Typography scale for the design system. Maps level names (e.g. "display-lg", "body-md") to their Typography token.', 'additionalProperties': {'$ref': '#/$defs/Typography'}}, 'customColor': {'type': 'string', 'description': 'Optional. A custom theme primary color, or a seed color for the dynamic color system (hex format, e.g., "#ff0000").'}, 'description': {'type': 'string', 'deprecated': True, 'description': 'Optional. A brief description of the theme aesthetic.'}, 'namedColors': {'type': 'object', 'description': 'Optional. The color scheme of the design. This is a map of color names to hex color codes. Example: {"primary": "#ff0000", "secondary": "#00ff00", "tertiary": "#0000ff"}', 'additionalProperties': {'type': 'string'}}, 'colorVariant': {'enum': ['COLOR_VARIANT_UNSPECIFIED', 'MONOCHROME', 'NEUTRAL', 'TONAL_SPOT', 'VIBRANT', 'EXPRESSIVE', 'FIDELITY', 'CONTENT', 'RAINBOW', 'FRUIT_SALAD'], 'type': 'string', 'description': 'Optional. The variant of the dynamic color system.', 'x-google-enum-descriptions': ['Unspecified color variant.', 'Monochrome variant.', 'Neutral variant.', 'Tonal spot variant.', 'Vibrant variant.', 'Expressive variant.', 'Fidelity variant.', 'Content variant.', 'Rainbow variant.', 'Fruit salad variant.']}, 'headlineFont': {'enum': ['FONT_UNSPECIFIED', 'BE_VIETNAM_PRO', 'EPILOGUE', 'INTER', 'LEXEND', 'MANROPE', 'NEWSREADER', 'NOTO_SERIF', 'PLUS_JAKARTA_SANS', 'PUBLIC_SANS', 'SPACE_GROTESK', 'SPLINE_SANS', 'WORK_SANS', 'DOMINE', 'LIBRE_CASLON_TEXT', 'EB_GARAMOND', 'LITERATA', 'SOURCE_SERIF_4', 'SOURCE_SERIF_FOUR', 'MONTSERRAT', 'METROPHOBIC', 'METROPOLIS', 'SOURCE_SANS_3', 'SOURCE_SANS_THREE', 'NUNITO_SANS', 'ARIMO', 'HANKEN_GROTESK', 'RUBIK', 'GEIST', 'DM_SANS', 'IBM_PLEX_SANS', 'SORA', 'ANYBODY', 'ANTON', 'ARCHIVO_NARROW', 'ATKINSON_HYPERLEGIBLE_NEXT', 'BARLOW_CONDENSED', 'BEBAS_NEUE', 'BODONI_MODA', 'BRICOLAGE_GROTESQUE', 'CHIVO', 'CLIMATE_CRISIS', 'COMFORTAA', 'COURIER_PRIME', 'FIRA_SANS', 'GOOGLE_SANS', 'GOOGLE_SANS_CODE', 'GOOGLE_SANS_FLEX', 'GOOGLE_SANS_MONO', 'GOOGLE_SANS_TEXT', 'IBM_PLEX_SERIF', 'JETBRAINS_MONO', 'KARLA', 'LIBRE_FRANKLIN', 'MERRIWEATHER', 'NOTO_SANS', 'OPEN_SANS', 'OSWALD', 'OUTFIT', 'PLAYFAIR_DISPLAY', 'POIRET_ONE', 'QUESTRIAL', 'QUICKSAND', 'RALEWAY', 'ROBOTO_FLEX', 'SPACE_MONO', 'SYNE', 'VOLLKORN'], 'type': 'string', 'description': 'Optional. Headline font.', 'x-google-enum-deprecated': [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, True, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False], 'x-google-enum-descriptions': ['Unspecified font.', 'Be Vietnam Pro font.', 'Epilogue font.', 'Inter font.', 'Lexend font.', 'Manrope font.', 'Newsreader font.', 'Noto Serif font.', 'Plus Jakarta Sans font.', 'Public Sans font.', 'Space Grotesk font.', 'Spline Sans font.', 'Work Sans font.', 'Domine font.', 'Libre Caslon Text font.', 'EB Garamond font.', 'Literata font.', 'Source Serif 4 font.', 'Source Serif 4 font. Deprecated.', 'Montserrat font.', 'The Metrophobic font.', 'Metropolis font. Deprecated.', 'The Source Sans 3 font.', 'Source Sans 3 font. Deprecated.', 'Nunito Sans font.', 'Arimo font.', 'Hanken Grotesk font.', 'Rubik font.', 'Geist font.', 'DM Sans font.', 'IBM Plex Sans font.', 'Sora font.', 'Anybody font.', 'Anton font.', 'Archivo Narrow font.', 'Atkinson Hyperlegible Next font.', 'Barlow Condensed font.', 'Bebas Neue font.', 'Bodoni Moda font.', 'Bricolage Grotesque font.', 'Chivo font.', 'Climate Crisis font.', 'Comfortaa font.', 'Courier Prime font.', 'Fira Sans font.', 'Google Sans font.', 'Google Sans Code font.', 'Google Sans Flex font.', 'Google Sans Mono font.', 'Google Sans Text font.', 'IBM Plex Serif font.', 'JetBrains Mono font.', 'Karla font.', 'Libre Franklin font.', 'Merriweather font.', 'Noto Sans font.', 'Open Sans font.', 'Oswald font.', 'Outfit font.', 'Playfair Display font.', 'Poiret One font.', 'Questrial font.', 'Quicksand font.', 'Raleway font.', 'Roboto Flex font.', 'Space Mono font.', 'Syne font.', 'Vollkorn font.']}, 'spacingScale': {'type': 'integer', 'format': 'int32', 'description': 'Optional. The spacing scale level (0=minimal, 1=compact, 2=normal, 3=spacious).'}, 'backgroundDark': {'type': 'string', 'deprecated': True, 'description': 'Optional. DEPRECATED: The background color for dark mode (hex format, e.g., "#1a1a1a").'}, 'bodyFontFamily': {'type': 'string', 'description': 'Optional. Body font family name (e.g., "Inter", "Roboto").'}, 'backgroundLight': {'type': 'string', 'deprecated': True, 'description': 'Optional. DEPRECATED: The background color for light mode (hex format, e.g., "#f8f8f8").'}, 'labelFontFamily': {'type': 'string', 'description': 'Optional. Label font family name (e.g., "Inter", "Roboto").'}, 'headlineFontFamily': {'type': 'string', 'description': 'Optional. Headline font family name (e.g., "Inter", "Roboto").'}, 'overrideNeutralColor': {'type': 'string', 'description': 'Optional. Override neutral color for the dynamic color system (hex format, e.g., "#ffffff").'}, 'overridePrimaryColor': {'type': 'string', 'description': 'Optional. Override primary color for the dynamic color system (hex format, e.g., "#ff0000").'}, 'overrideTertiaryColor': {'type': 'string', 'description': 'Optional. Override tertiary color for the dynamic color system (hex format, e.g., "#0000ff").'}, 'overrideSecondaryColor': {'type': 'string', 'description': 'Optional. Override secondary color for the dynamic color system (hex format, e.g., "#00ff00").'}}, 'description': 'The theme of the design. Next ID: 27 LINT.IfChange'}, 'DesignSystem': {'type': 'object', 'properties': {'theme': {'$ref': '#/$defs/DesignTheme', 'description': 'Optional. The theme of the design system.'}, 'displayName': {'type': 'string', 'description': 'Optional. The display name of the design system.'}, 'designTokens': {'type': 'string', 'description': 'Optional. Serialized JSON object of the DTCG format design tokens.'}, 'styleGuidelines': {'type': 'string', 'description': 'Optional. Freeform text description of the style guidelines. This field is not displayed to the user and should not be included in MCP.'}}, 'description': "Represents a collection of guidelines, design tokens, and reusable components that define the visual and functional characteristics of a product's design. This is used to guide the generation of consistent and branded designs. LINT.IfChange"}, 'SessionEvent': {'type': 'object', 'properties': {'actor': {'type': 'string', 'readOnly': True, 'description': 'Output only. The actor who triggered the event.'}, 'eventId': {'type': 'string', 'readOnly': True, 'description': 'Output only. Unique identifier for the event.'}, 'eventTime': {'type': 'string', 'format': 'date-time', 'readOnly': True, 'description': 'Output only. Time when the event occurred.'}, 'eventType': {'type': 'string', 'readOnly': True, 'description': 'Output only. Type of the event.'}, 'eventPayload': {'type': 'object', 'readOnly': True, 'description': 'Output only. Payload carrying flexible event data.', 'additionalProperties': {'description': 'Properties of the object.'}}}, 'description': 'Flexible session events carrying JSON payload.'}, 'UserFeedback': {'type': 'object', 'properties': {'rating': {'enum': ['RATING_UNSPECIFIED', 'POSITIVE', 'NEGATIVE'], 'type': 'string', 'description': 'Optional. The user rating of the interaction.', 'x-google-enum-descriptions': ['Unspecified rating.', 'Positive rating.', 'Negative rating.']}, 'comment': {'type': 'string', 'description': 'Optional. Additional comment for the rating.'}, 'designFeedbackReason': {'enum': ['DESIGN_FEEDBACK_REASON_UNSPECIFIED', 'DESIGN_DOESNT_MATCH_PROMPT', 'EDIT_DOESNT_MATCH_PROMPT', 'DESCRIPTION_DOESNT_MATCH', 'COMPONENT_ISSUE', 'INCORRECT_THEME', 'FIGMA_EXPORT_FAILED', 'OTHER'], 'type': 'string', 'description': 'Optional. The reason for the feedback for a design, if the rating is negative.', 'x-google-enum-descriptions': ['Unspecified reason.', 'The design does not match the prompt.', 'The edit does not match the prompt.', 'The description does not match the design.', 'There is an issue with a component in the design.', 'The theme is incorrect.', 'The Figma export failed.', 'Other reason.']}}, 'description': 'User feedback for a given interaction.'}, 'PrototypeLink': {'type': 'object', 'properties': {'state': {'type': 'string', 'description': 'Optional. The state under which this link is active. Defaults to "default".'}, 'xpath': {'type': 'string', 'description': 'Required. XPath to the interactive element.'}, 'transition': {'enum': ['TRANSITION_TYPE_UNSPECIFIED', 'NONE', 'PUSH', 'PUSH_BACK', 'SLIDE_UP'], 'type': 'string', 'description': 'Optional. The transition animation to use when navigating to the target screen.', 'x-google-enum-descriptions': ['Unspecified transition type, defaults to NONE.', 'Instant switch with no animation.', 'New screen slides in from the right.', 'Current screen slides out to the right.', 'New screen slides up from the bottom.']}, 'targetScreenId': {'type': 'string', 'description': 'Required. ID of the destination screen.'}}, 'description': 'A single interactive link within a prototype screen.'}, 'ProgressUpdate': {'type': 'object', 'properties': {'status': {'enum': ['STATUS_UNSPECIFIED', 'STARTED', 'COMPLETED', 'FAILED'], 'type': 'string', 'x-google-enum-descriptions': ['', '', '', '']}, 'toolName': {'type': 'string'}, 'toolCallId': {'type': 'string'}, 'displayName': {'type': 'string'}}}, 'PrototypeLinks': {'type': 'object', 'properties': {'links': {'type': 'array', 'items': {'$ref': '#/$defs/PrototypeLink'}, 'description': 'Optional. The list of links for this screen.'}}, 'description': 'A collection of prototype links for a single screen.'}, 'PrototypeState': {'type': 'object', 'properties': {'name': {'type': 'string', 'description': 'Required. The name of the state (e.g., "default", "login-failed").'}}, 'description': 'A named state that controls link behavior in a prototype.'}, 'QuestionsAsked': {'type': 'object', 'properties': {'questions': {'type': 'array', 'items': {'$ref': '#/$defs/Question'}, 'description': 'The list of questions asked by the agent.'}}, 'description': 'A set of questions sent from the agent to the user.'}, 'ScreenMetadata': {'type': 'object', 'properties': {'status': {'enum': ['SCREEN_STATUS_UNSPECIFIED', 'IN_PROGRESS', 'COMPLETE', 'FAILED'], 'type': 'string', 'description': 'The status of the screen.', 'x-google-enum-descriptions': ['Unspecified screen status.', 'The screen is in progress.', 'The screen is complete.', 'The screen failed to generate.']}, 'summary': {'type': 'string', 'description': 'Optional. A first-person summary of what was generated or changed for the screen.'}, 'agentType': {'enum': ['DESIGN_AGENT_TYPE_UNSPECIFIED', 'TURBO_AGENT', 'PRO_AGENT', 'IMAGE_AGENT', 'GENIE_AGENT', 'IMAGE_PRO_AGENT', 'HATTER_AGENT', 'GEMINI_3_AGENT'], 'type': 'string', 'description': 'The agent type that generated the screen.', 'x-google-enum-deprecated': [False, True, False, False, False, True, False, False], 'x-google-enum-descriptions': ['Unspecified agent type. The service will pick one.', 'Deprecated: Turbo agent is no longer supported.', 'This agent uses Gemini 3.0 Flash. The "PRO" name is a legacy from when it used Gemini 2.5 Pro.', 'The image agent, produces image screens.', 'The Genie agent prototype agent.', 'Deprecated: The image pro agent is no longer supported.', 'The Hatter agent as a general assistant agent.', 'Agent powered by the Gemini 3.0 Thinking model. This became the new "Pro" agent after the Gemini 3 launch.']}, 'isRemixed': {'type': 'boolean', 'description': 'Optional. Whether this screen was created as a result of remixing or not.'}, 'displayMode': {'enum': ['DISPLAY_MODE_UNSPECIFIED', 'SCREENSHOT', 'HTML', 'CODE', 'MARKDOWN', 'STICKY_NOTE', 'SVG', 'TABLE', 'MERMAID', 'CHECKLIST', 'CHART', 'PDF', 'FIGMA'], 'type': 'string', 'description': 'Optional. Whether the frontend should display HTML or a screenshot.', 'x-google-enum-descriptions': ['Unspecified display mode. Defaults to SCREENSHOT.', 'The screen is displayed as a screenshot.', 'The screen is displayed as rendered HTML.', 'Displays the screen as code.', 'Displays the screen as markdown.', 'Displays the screen as a sticky note.', 'Displays the screen as an inline SVG graphic.', 'Displays the screen as a data table (CSV).', 'Displays the screen as a mermaid diagram.', 'Agent only: The document node is displayed as an interactive checklist.', 'Agent only: The document node is displayed as an interactive Chart.js chart.', 'Displays the screen as a PDF document.', 'Displays the screen as a Figma file.']}, 'suggestions': {'type': 'array', 'items': {'$ref': '#/$defs/DesignSuggestion'}, 'description': 'Optional. Suggested next actions for the screen.'}, 'prototypeSpec': {'$ref': '#/$defs/PrototypeV2Spec', 'description': 'Optional. The prototype spec of the screen.'}, 'statusMessage': {'type': 'string', 'description': 'Optional. A human readable status message for the screen, generated by the agent.'}, 'componentRegions': {'type': 'array', 'items': {'$ref': '#/$defs/ComponentRegion'}, 'description': 'Optional. The component regions of the screen.'}}, 'description': 'The metadata of a screen.'}, 'ComponentRegion': {'type': 'object', 'properties': {'type': {'enum': ['COMPONENT_TYPE_UNSPECIFIED', 'COMPONENT_TYPE_IMAGE', 'COMPONENT_TYPE_TEXT', 'COMPONENT_TYPE_BUTTON', 'COMPONENT_TYPE_INPUT', 'COMPONENT_TYPE_CONTAINER'], 'type': 'string', 'description': 'The type of the component region.', 'x-google-enum-descriptions': ['Unspecified component type.', 'An image component.', 'A text component.', 'A button component.', 'An input component.', 'A container component.']}, 'xpath': {'type': 'string', 'description': 'The xpath of the component region.'}, 'boundingBox': {'$ref': '#/$defs/BoundingBox', 'description': 'The bounding box of the component region.'}, 'description': {'type': 'string', 'description': 'The description of the component region.'}}, 'description': 'The region of a component region.'}, 'ComponentTokens': {'type': 'object', 'properties': {'tokens': {'type': 'object', 'description': 'Optional. A component may have these sub tokens: - backgroundColor: - textColor: - typography: - rounded: - padding: The value may be a literal value or a reference. A token reference must be wrapped in curly braces, and contain an object path to another value in the design system. The referenced object must be a primitive value, e.g. colors.primary-60, rather than an object, e.g. colors.', 'additionalProperties': {'type': 'string'}}}, 'description': 'A component style token in a design system.'}, 'ProgressUpdates': {'type': 'object', 'properties': {'updates': {'type': 'array', 'items': {'$ref': '#/$defs/ProgressUpdate'}}}}, 'PrototypeV2Spec': {'type': 'object', 'properties': {'links': {'type': 'object', 'description': 'Optional. Map of screenId to list of links.', 'additionalProperties': {'$ref': '#/$defs/PrototypeLinks'}}, 'states': {'type': 'array', 'items': {'$ref': '#/$defs/PrototypeState'}, 'description': 'Optional. The list of states available in this prototype.'}, 'screenIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Optional. List of all screen IDs.'}, 'initScreenId': {'type': 'string', 'description': 'Required. ID of the initial screen.'}}, 'description': 'The full specification for a V2 interactive prototype.'}, 'DesignSuggestion': {'type': 'object', 'properties': {'label': {'type': 'string', 'description': 'A short label for the suggestion (max 3 words, e.g. "Dark mode theme").'}, 'prompt': {'type': 'string', 'description': 'A full prompt description of the suggestion that can be sent directly to the agent (e.g. "Change the theme to dark mode with a deep navy background and white text").'}}, 'description': 'A suggested next action for a screen.'}, 'SessionOutputComponent': {'type': 'object', 'properties': {'text': {'type': 'string', 'description': 'The agent generates a text response to be displayed to the user. Only one of the following fields should be set: this field, design, suggestion, designSystem, progressUpdates, sessionEvent, questionsAsked.'}, 'design': {'$ref': '#/$defs/Design', 'description': 'The agent generates a design to be displayed to the user. Only applicable to TEXT_TO_UI and IMAGE_TO_UI projects. Only one of the following fields should be set: this field, text, suggestion, designSystem, progressUpdates, sessionEvent, questionsAsked.'}, 'suggestion': {'type': 'string', 'description': 'The agent generates a suggested response to be displayed to the user. Only one of the following fields should be set: this field, design, text, designSystem, progressUpdates, sessionEvent, questionsAsked.'}, 'designSystem': {'$ref': '#/$defs/Asset', 'readOnly': True, 'description': 'Output only. The agent generates a design system to be displayed to the user. Only one of the following fields should be set: this field, design, text, suggestion, progressUpdates, sessionEvent, questionsAsked.'}, 'sessionEvent': {'$ref': '#/$defs/SessionEvent', 'readOnly': True, 'description': 'Output only. Flexible session events carrying JSON payload. Only one of the following fields should be set: this field, design, text, suggestion, designSystem, progressUpdates, questionsAsked.'}, 'questionsAsked': {'$ref': '#/$defs/QuestionsAsked', 'readOnly': True, 'description': 'Output only. Structured questions asked by the agent. Only one of the following fields should be set: this field, design, text, suggestion, designSystem, progressUpdates, sessionEvent.'}, 'progressUpdates': {'$ref': '#/$defs/ProgressUpdates', 'readOnly': True, 'description': 'Output only. Progress updates from the agent. Only one of the following fields should be set: this field, design, text, suggestion, designSystem, sessionEvent, questionsAsked.'}}, 'description': 'A partial output of the session.'}}, 'properties': {'projectId': {'type': 'string', 'description': 'The project ID of the generated screen. This is the same as the input project ID.'}, 'sessionId': {'type': 'string', 'description': 'The session ID of the generated screen.'}, 'outputComponents': {'type': 'array', 'items': {'$ref': '#/$defs/SessionOutputComponent'}, 'description': 'The generated output components.'}}, 'description': 'Response message for GenerateScreenFromText.'}
generate_variants
Generates variants of existing screens within a project using a text prompt. **Instructions for Tool Call:** * If the tool fails with a timeout, don't retry. Instead, try to get the screen with `get_screen` method every 30 seconds for up to 10 times before giving up.
破壊的操作あり
入力スキーマ
{'type': 'object', '$defs': {'VariantOptions': {'type': 'object', 'properties': {'aspects': {'type': 'array', 'items': {'enum': ['VARIANT_ASPECT_UNSPECIFIED', 'LAYOUT', 'COLOR_SCHEME', 'IMAGES', 'TEXT_FONT', 'TEXT_CONTENT'], 'type': 'string', 'x-google-enum-descriptions': ['Unspecified aspect.', 'Layout: Arrangement of elements on the screen.', 'Color scheme: Colors used on the screen.', 'Images: Images used on the screen.', 'Text font: Fonts used for text on the screen.', 'Text content: Text content on the screen.']}, 'description': 'Optional. Specific aspects to focus on. If empty, all aspects may be varied.'}, 'variantCount': {'type': 'integer', 'format': 'int32', 'description': 'Optional. Number of variants to generate (1-5). Default: 3'}, 'creativeRange': {'enum': ['CREATIVE_RANGE_UNSPECIFIED', 'REFINE', 'EXPLORE', 'REIMAGINE'], 'type': 'string', 'description': 'Optional. Creative range for variations. Default: EXPLORE', 'x-google-enum-descriptions': ['Unspecified creative range.', 'Subtle refinements, closely adhering to original.', 'Balanced exploration. Default.', 'Radical explorations, fundamentally challenging the original.']}}, 'description': 'Configuration options for design variant generation. This message captures all parameters used to generate variants, allowing the configuration to be stored, replayed, or analyzed.'}}, 'required': ['projectId', 'selectedScreenIds', 'prompt', 'variantOptions'], 'properties': {'prompt': {'type': 'string', 'description': 'Required. The input text used to generate the variants.'}, 'modelId': {'enum': ['MODEL_ID_UNSPECIFIED', 'GEMINI_3_8_FLASH', 'GEMINI_3_5_FLASH_LITE'], 'type': 'string', 'description': 'Optional. The model to use for generation.', 'x-google-enum-descriptions': ['Unspecified model.', 'Gemini 3.8 Flash.', 'Gemini 3.5 Flash-Lite.']}, 'projectId': {'type': 'string', 'description': "Required. The project ID of screens to generate variants for, example: '4044680601076201931', without the `projects/` prefix."}, 'deviceType': {'enum': ['DEVICE_TYPE_UNSPECIFIED', 'MOBILE', 'DESKTOP', 'TABLET', 'AGNOSTIC'], 'type': 'string', 'description': 'Optional. The type of device that captured the screenshot, e.g., mobile or desktop.', 'x-google-enum-descriptions': ['Unspecified device type.', 'A design for a mobile device.', 'A design for a desktop device.', 'A design for a tablet device.', 'A design that is not tied to a specific device.']}, 'variantOptions': {'$ref': '#/$defs/VariantOptions', 'description': 'Required. The variant options for generation, including the number of variants, creative range, and aspects to focus on.'}, 'selectedScreenIds': {'type': 'array', 'items': {'type': 'string'}, 'description': "Required. The screen ids of screen to generate variants for, example: ['98b50e2ddc9943efb387052637738f61', '98b50e2ddc9943efb387052637738f62'], without the `screens/` prefix."}}, 'description': 'Request message for GenerateVariants.'}
出力スキーマ
{'type': 'object', '$defs': {'File': {'type': 'object', 'properties': {'name': {'type': 'string', 'description': 'Identifier. The resource name of the file. Format: projects/{project}/files/{file}', 'x-google-identifier': True}, 'mimeType': {'type': 'string', 'description': 'Optional. The mime type of the file. E.g. "image/png", "text/html".'}, 'downloadUrl': {'type': 'string', 'description': 'Optional. The URL of the file for download. For image files, this would be FIFE base URLs. Only one of the following fields should be set: this field, uploadBlobId, fileContentBase64.'}, 'uploadBlobId': {'type': 'string', 'description': 'Optional. The BlobId from Scotty/contrib service file upload. This points to a temporary blobstore location of the file. Only one of the following fields should be set: this field, downloadUrl, fileContentBase64.'}, 'userFeedback': {'$ref': '#/$defs/UserFeedback', 'readOnly': True, 'description': 'Output only. The latest feedback submitted for the file.'}, 'fileContentBase64': {'type': 'string', 'writeOnly': True, 'description': 'Optional. Input only. The base64-encoded string of the file content. Only one of the following fields should be set: this field, uploadBlobId, downloadUrl.'}}, 'description': 'A File resource.'}, 'Asset': {'type': 'object', 'properties': {'name': {'type': 'string', 'description': 'Identifier. The resource name of the asset. Format: assets/{asset}', 'x-google-identifier': True}, 'version': {'type': 'string', 'format': 'int64', 'readOnly': True, 'description': 'Output only. The version of this asset. 0 indicates unversioned (legacy data). Incremented when the asset content changes.'}, 'copiedFrom': {'type': 'string', 'description': 'Optional. The resource name of the asset this was copied from, if any. Format: assets/{asset} Tracks the fork history of assets.'}, 'designSystem': {'$ref': '#/$defs/DesignSystem', 'description': 'Optional. The design system.'}}, 'description': 'An Asset resource.'}, 'Design': {'type': 'object', 'properties': {'theme': {'$ref': '#/$defs/DesignTheme', 'description': 'Optional. The theme used to generate the design.'}, 'title': {'type': 'string', 'description': 'Optional. The generated title of the design.'}, 'screens': {'type': 'array', 'items': {'$ref': '#/$defs/Screen'}, 'description': 'Optional. The screens of the design.'}, 'deviceType': {'enum': ['DEVICE_TYPE_UNSPECIFIED', 'MOBILE', 'DESKTOP', 'TABLET', 'AGNOSTIC'], 'type': 'string', 'description': 'Optional. The device type of the design.', 'x-google-enum-descriptions': ['Unspecified device type.', 'A design for a mobile device.', 'A design for a desktop device.', 'A design for a tablet device.', 'A design that is not tied to a specific device.']}}, 'description': 'A generated design, which is a collection of multiple screens. Note: do not add new fields to this message or rely on it for any logic. For any Screen property, add it to Screen message instead. Design is a deprecated hierarchical container for screens and is only used for backward compatibility.'}, 'Screen': {'type': 'object', 'properties': {'id': {'type': 'string', 'deprecated': True, 'description': 'Optional. The screen id.'}, 'name': {'type': 'string', 'description': 'Identifier. The resource name of the screen. Format: projects/{project}/screens/{screen}', 'x-google-identifier': True}, 'theme': {'$ref': '#/$defs/DesignTheme', 'description': 'Optional. The theme used to generate the screen.'}, 'title': {'type': 'string', 'description': 'Optional. The title of the screen.'}, 'width': {'type': 'string', 'description': 'Optional. The width of the screen.'}, 'height': {'type': 'string', 'description': 'Optional. The height of the screen.'}, 'prompt': {'type': 'string', 'description': 'Optional. The prompt used to generate the screen.'}, 'groupId': {'type': 'string', 'description': 'Optional. The group id of the screen. This is used to group screens that are related to each other (e.g. a group of variants of a design).'}, 'htmlCode': {'$ref': '#/$defs/File', 'description': 'Optional. The HTML code of the screen.'}, 'groupName': {'type': 'string', 'description': 'Optional. The name of the group (e.g., design package name) for display purposes.'}, 'deviceType': {'enum': ['DEVICE_TYPE_UNSPECIFIED', 'MOBILE', 'DESKTOP', 'TABLET', 'AGNOSTIC'], 'type': 'string', 'description': 'Optional. The device type of the screen.', 'x-google-enum-descriptions': ['Unspecified device type.', 'A design for a mobile device.', 'A design for a desktop device.', 'A design for a tablet device.', 'A design that is not tied to a specific device.']}, 'screenType': {'enum': ['SCREEN_TYPE_UNSPECIFIED', 'DESIGN', 'IMAGE', 'PROTOTYPE', 'DOCUMENT', 'PROTOTYPE_V2'], 'type': 'string', 'description': 'Optional. The screen type.', 'x-google-enum-descriptions': ['If the screen type is unspecified, it is assumed to be a DESIGN.', 'A design screen.', 'A pure image.', 'A design prototype.', 'A document like a PRD.', 'A design prototype v2.']}, 'screenshot': {'$ref': '#/$defs/File', 'description': 'Optional. The screenshot of the screen.'}, 'figmaExport': {'$ref': '#/$defs/File', 'description': 'Optional. The Figma export of the screen.'}, 'generatedBy': {'type': 'string', 'description': 'Optional. The generated by field of the screen.'}, 'designSystem': {'$ref': '#/$defs/Asset', 'readOnly': True, 'description': 'Output only. The design system used to generate the screen.'}, 'screenMetadata': {'$ref': '#/$defs/ScreenMetadata', 'description': 'Optional. The metadata of the screen.'}, 'isCreatedByClient': {'type': 'boolean', 'description': 'Optional. If true, the screen was created by client calling CreateScreen API for user uploads or copy paste. If false, the screen was created by the agents.'}}, 'description': 'A generated screen.'}, 'Question': {'type': 'object', 'properties': {'text': {'type': 'string', 'description': 'The question text displayed to the user.'}, 'options': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Options for MULTIPLE_CHOICE / SINGLE_CHOICE questions.'}, 'questionId': {'type': 'string', 'description': 'An optional unique identifier for correlating answers to questions.'}, 'responseType': {'enum': ['QUESTION_RESPONSE_TYPE_UNSPECIFIED', 'FREEFORM_TEXT', 'MULTIPLE_CHOICE', 'SINGLE_CHOICE', 'YES_NO', 'RATING_SCALE'], 'type': 'string', 'description': 'The expected response type.', 'x-google-enum-descriptions': ['Unspecified response type.', 'Open-ended text input.', 'Select one or more options from a list.', 'Select exactly one option from a list.', 'Simple yes / no.', 'Numeric rating on a scale.']}}, 'description': 'A single structured question the agent asks the user.'}, 'Typography': {'type': 'object', 'properties': {'fontSize': {'type': 'string', 'description': 'Optional. The CSS font-size value (e.g., "32px", "1rem").'}, 'fontFamily': {'type': 'string', 'description': 'Optional. The CSS font-family value (e.g., "Manrope", "Inter").'}, 'fontWeight': {'type': 'string', 'description': 'Optional. The CSS font-weight value (e.g., "400", "700").'}, 'lineHeight': {'type': 'string', 'description': 'Optional. The CSS line-height value (e.g., "1.5", "40px").'}, 'letterSpacing': {'type': 'string', 'description': 'Optional. The CSS letter-spacing value (e.g., "0px", "-0.02em").'}}, 'description': 'A typography style token in a design system, defining the visual properties for a single text level (e.g. "display-lg", "body-md").'}, 'BoundingBox': {'type': 'object', 'properties': {'x': {'type': 'integer', 'format': 'int32', 'description': 'The x coordinate of the bounding box, relative to the image width.'}, 'y': {'type': 'integer', 'format': 'int32', 'description': 'The y coordinate of the bounding box, relative to the image height.'}, 'width': {'type': 'integer', 'format': 'int32', 'description': 'The width of the bounding box.'}, 'height': {'type': 'integer', 'format': 'int32', 'description': 'The height of the bounding box.'}}, 'description': 'The bounding box of a component.'}, 'DesignTheme': {'type': 'object', 'properties': {'font': {'enum': ['FONT_UNSPECIFIED', 'BE_VIETNAM_PRO', 'EPILOGUE', 'INTER', 'LEXEND', 'MANROPE', 'NEWSREADER', 'NOTO_SERIF', 'PLUS_JAKARTA_SANS', 'PUBLIC_SANS', 'SPACE_GROTESK', 'SPLINE_SANS', 'WORK_SANS', 'DOMINE', 'LIBRE_CASLON_TEXT', 'EB_GARAMOND', 'LITERATA', 'SOURCE_SERIF_4', 'SOURCE_SERIF_FOUR', 'MONTSERRAT', 'METROPHOBIC', 'METROPOLIS', 'SOURCE_SANS_3', 'SOURCE_SANS_THREE', 'NUNITO_SANS', 'ARIMO', 'HANKEN_GROTESK', 'RUBIK', 'GEIST', 'DM_SANS', 'IBM_PLEX_SANS', 'SORA', 'ANYBODY', 'ANTON', 'ARCHIVO_NARROW', 'ATKINSON_HYPERLEGIBLE_NEXT', 'BARLOW_CONDENSED', 'BEBAS_NEUE', 'BODONI_MODA', 'BRICOLAGE_GROTESQUE', 'CHIVO', 'CLIMATE_CRISIS', 'COMFORTAA', 'COURIER_PRIME', 'FIRA_SANS', 'GOOGLE_SANS', 'GOOGLE_SANS_CODE', 'GOOGLE_SANS_FLEX', 'GOOGLE_SANS_MONO', 'GOOGLE_SANS_TEXT', 'IBM_PLEX_SERIF', 'JETBRAINS_MONO', 'KARLA', 'LIBRE_FRANKLIN', 'MERRIWEATHER', 'NOTO_SANS', 'OPEN_SANS', 'OSWALD', 'OUTFIT', 'PLAYFAIR_DISPLAY', 'POIRET_ONE', 'QUESTRIAL', 'QUICKSAND', 'RALEWAY', 'ROBOTO_FLEX', 'SPACE_MONO', 'SYNE', 'VOLLKORN'], 'type': 'string', 'deprecated': True, 'description': 'Optional. DEPRECATED: The font of the design. Planned to be deprecated in favor of `headline_font`, `body_font`, and `label_font`.', 'x-google-enum-deprecated': [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, True, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False], 'x-google-enum-descriptions': ['Unspecified font.', 'Be Vietnam Pro font.', 'Epilogue font.', 'Inter font.', 'Lexend font.', 'Manrope font.', 'Newsreader font.', 'Noto Serif font.', 'Plus Jakarta Sans font.', 'Public Sans font.', 'Space Grotesk font.', 'Spline Sans font.', 'Work Sans font.', 'Domine font.', 'Libre Caslon Text font.', 'EB Garamond font.', 'Literata font.', 'Source Serif 4 font.', 'Source Serif 4 font. Deprecated.', 'Montserrat font.', 'The Metrophobic font.', 'Metropolis font. Deprecated.', 'The Source Sans 3 font.', 'Source Sans 3 font. Deprecated.', 'Nunito Sans font.', 'Arimo font.', 'Hanken Grotesk font.', 'Rubik font.', 'Geist font.', 'DM Sans font.', 'IBM Plex Sans font.', 'Sora font.', 'Anybody font.', 'Anton font.', 'Archivo Narrow font.', 'Atkinson Hyperlegible Next font.', 'Barlow Condensed font.', 'Bebas Neue font.', 'Bodoni Moda font.', 'Bricolage Grotesque font.', 'Chivo font.', 'Climate Crisis font.', 'Comfortaa font.', 'Courier Prime font.', 'Fira Sans font.', 'Google Sans font.', 'Google Sans Code font.', 'Google Sans Flex font.', 'Google Sans Mono font.', 'Google Sans Text font.', 'IBM Plex Serif font.', 'JetBrains Mono font.', 'Karla font.', 'Libre Franklin font.', 'Merriweather font.', 'Noto Sans font.', 'Open Sans font.', 'Oswald font.', 'Outfit font.', 'Playfair Display font.', 'Poiret One font.', 'Questrial font.', 'Quicksand font.', 'Raleway font.', 'Roboto Flex font.', 'Space Mono font.', 'Syne font.', 'Vollkorn font.']}, 'preset': {'type': 'string', 'deprecated': True, 'description': 'Optional. DEPRECATED: The preset color of the design.'}, 'spacing': {'type': 'object', 'description': 'Optional. Spacing units for the design system. Maps spacing names to their values.', 'additionalProperties': {'type': 'string'}}, 'bodyFont': {'enum': ['FONT_UNSPECIFIED', 'BE_VIETNAM_PRO', 'EPILOGUE', 'INTER', 'LEXEND', 'MANROPE', 'NEWSREADER', 'NOTO_SERIF', 'PLUS_JAKARTA_SANS', 'PUBLIC_SANS', 'SPACE_GROTESK', 'SPLINE_SANS', 'WORK_SANS', 'DOMINE', 'LIBRE_CASLON_TEXT', 'EB_GARAMOND', 'LITERATA', 'SOURCE_SERIF_4', 'SOURCE_SERIF_FOUR', 'MONTSERRAT', 'METROPHOBIC', 'METROPOLIS', 'SOURCE_SANS_3', 'SOURCE_SANS_THREE', 'NUNITO_SANS', 'ARIMO', 'HANKEN_GROTESK', 'RUBIK', 'GEIST', 'DM_SANS', 'IBM_PLEX_SANS', 'SORA', 'ANYBODY', 'ANTON', 'ARCHIVO_NARROW', 'ATKINSON_HYPERLEGIBLE_NEXT', 'BARLOW_CONDENSED', 'BEBAS_NEUE', 'BODONI_MODA', 'BRICOLAGE_GROTESQUE', 'CHIVO', 'CLIMATE_CRISIS', 'COMFORTAA', 'COURIER_PRIME', 'FIRA_SANS', 'GOOGLE_SANS', 'GOOGLE_SANS_CODE', 'GOOGLE_SANS_FLEX', 'GOOGLE_SANS_MONO', 'GOOGLE_SANS_TEXT', 'IBM_PLEX_SERIF', 'JETBRAINS_MONO', 'KARLA', 'LIBRE_FRANKLIN', 'MERRIWEATHER', 'NOTO_SANS', 'OPEN_SANS', 'OSWALD', 'OUTFIT', 'PLAYFAIR_DISPLAY', 'POIRET_ONE', 'QUESTRIAL', 'QUICKSAND', 'RALEWAY', 'ROBOTO_FLEX', 'SPACE_MONO', 'SYNE', 'VOLLKORN'], 'type': 'string', 'description': 'Optional. Body font.', 'x-google-enum-deprecated': [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, True, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False], 'x-google-enum-descriptions': ['Unspecified font.', 'Be Vietnam Pro font.', 'Epilogue font.', 'Inter font.', 'Lexend font.', 'Manrope font.', 'Newsreader font.', 'Noto Serif font.', 'Plus Jakarta Sans font.', 'Public Sans font.', 'Space Grotesk font.', 'Spline Sans font.', 'Work Sans font.', 'Domine font.', 'Libre Caslon Text font.', 'EB Garamond font.', 'Literata font.', 'Source Serif 4 font.', 'Source Serif 4 font. Deprecated.', 'Montserrat font.', 'The Metrophobic font.', 'Metropolis font. Deprecated.', 'The Source Sans 3 font.', 'Source Sans 3 font. Deprecated.', 'Nunito Sans font.', 'Arimo font.', 'Hanken Grotesk font.', 'Rubik font.', 'Geist font.', 'DM Sans font.', 'IBM Plex Sans font.', 'Sora font.', 'Anybody font.', 'Anton font.', 'Archivo Narrow font.', 'Atkinson Hyperlegible Next font.', 'Barlow Condensed font.', 'Bebas Neue font.', 'Bodoni Moda font.', 'Bricolage Grotesque font.', 'Chivo font.', 'Climate Crisis font.', 'Comfortaa font.', 'Courier Prime font.', 'Fira Sans font.', 'Google Sans font.', 'Google Sans Code font.', 'Google Sans Flex font.', 'Google Sans Mono font.', 'Google Sans Text font.', 'IBM Plex Serif font.', 'JetBrains Mono font.', 'Karla font.', 'Libre Franklin font.', 'Merriweather font.', 'Noto Sans font.', 'Open Sans font.', 'Oswald font.', 'Outfit font.', 'Playfair Display font.', 'Poiret One font.', 'Questrial font.', 'Quicksand font.', 'Raleway font.', 'Roboto Flex font.', 'Space Mono font.', 'Syne font.', 'Vollkorn font.']}, 'designMd': {'type': 'string', 'description': 'Optional. A markdown file that describes the design system.'}, 'colorMode': {'enum': ['COLOR_MODE_UNSPECIFIED', 'LIGHT', 'DARK'], 'type': 'string', 'description': 'Required. The mode of appearance of the design.', 'x-google-enum-descriptions': ['Unspecified color mode.', 'Light mode.', 'Dark mode.']}, 'labelFont': {'enum': ['FONT_UNSPECIFIED', 'BE_VIETNAM_PRO', 'EPILOGUE', 'INTER', 'LEXEND', 'MANROPE', 'NEWSREADER', 'NOTO_SERIF', 'PLUS_JAKARTA_SANS', 'PUBLIC_SANS', 'SPACE_GROTESK', 'SPLINE_SANS', 'WORK_SANS', 'DOMINE', 'LIBRE_CASLON_TEXT', 'EB_GARAMOND', 'LITERATA', 'SOURCE_SERIF_4', 'SOURCE_SERIF_FOUR', 'MONTSERRAT', 'METROPHOBIC', 'METROPOLIS', 'SOURCE_SANS_3', 'SOURCE_SANS_THREE', 'NUNITO_SANS', 'ARIMO', 'HANKEN_GROTESK', 'RUBIK', 'GEIST', 'DM_SANS', 'IBM_PLEX_SANS', 'SORA', 'ANYBODY', 'ANTON', 'ARCHIVO_NARROW', 'ATKINSON_HYPERLEGIBLE_NEXT', 'BARLOW_CONDENSED', 'BEBAS_NEUE', 'BODONI_MODA', 'BRICOLAGE_GROTESQUE', 'CHIVO', 'CLIMATE_CRISIS', 'COMFORTAA', 'COURIER_PRIME', 'FIRA_SANS', 'GOOGLE_SANS', 'GOOGLE_SANS_CODE', 'GOOGLE_SANS_FLEX', 'GOOGLE_SANS_MONO', 'GOOGLE_SANS_TEXT', 'IBM_PLEX_SERIF', 'JETBRAINS_MONO', 'KARLA', 'LIBRE_FRANKLIN', 'MERRIWEATHER', 'NOTO_SANS', 'OPEN_SANS', 'OSWALD', 'OUTFIT', 'PLAYFAIR_DISPLAY', 'POIRET_ONE', 'QUESTRIAL', 'QUICKSAND', 'RALEWAY', 'ROBOTO_FLEX', 'SPACE_MONO', 'SYNE', 'VOLLKORN'], 'type': 'string', 'description': 'Optional. Label font.', 'x-google-enum-deprecated': [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, True, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False], 'x-google-enum-descriptions': ['Unspecified font.', 'Be Vietnam Pro font.', 'Epilogue font.', 'Inter font.', 'Lexend font.', 'Manrope font.', 'Newsreader font.', 'Noto Serif font.', 'Plus Jakarta Sans font.', 'Public Sans font.', 'Space Grotesk font.', 'Spline Sans font.', 'Work Sans font.', 'Domine font.', 'Libre Caslon Text font.', 'EB Garamond font.', 'Literata font.', 'Source Serif 4 font.', 'Source Serif 4 font. Deprecated.', 'Montserrat font.', 'The Metrophobic font.', 'Metropolis font. Deprecated.', 'The Source Sans 3 font.', 'Source Sans 3 font. Deprecated.', 'Nunito Sans font.', 'Arimo font.', 'Hanken Grotesk font.', 'Rubik font.', 'Geist font.', 'DM Sans font.', 'IBM Plex Sans font.', 'Sora font.', 'Anybody font.', 'Anton font.', 'Archivo Narrow font.', 'Atkinson Hyperlegible Next font.', 'Barlow Condensed font.', 'Bebas Neue font.', 'Bodoni Moda font.', 'Bricolage Grotesque font.', 'Chivo font.', 'Climate Crisis font.', 'Comfortaa font.', 'Courier Prime font.', 'Fira Sans font.', 'Google Sans font.', 'Google Sans Code font.', 'Google Sans Flex font.', 'Google Sans Mono font.', 'Google Sans Text font.', 'IBM Plex Serif font.', 'JetBrains Mono font.', 'Karla font.', 'Libre Franklin font.', 'Merriweather font.', 'Noto Sans font.', 'Open Sans font.', 'Oswald font.', 'Outfit font.', 'Playfair Display font.', 'Poiret One font.', 'Questrial font.', 'Quicksand font.', 'Raleway font.', 'Roboto Flex font.', 'Space Mono font.', 'Syne font.', 'Vollkorn font.']}, 'roundness': {'enum': ['ROUNDNESS_UNSPECIFIED', 'ROUND_TWO', 'ROUND_FOUR', 'ROUND_EIGHT', 'ROUND_TWELVE', 'ROUND_FULL'], 'type': 'string', 'description': 'Required. The roundness of the design.', 'x-google-enum-deprecated': [False, True, False, False, False, False], 'x-google-enum-descriptions': ['Unspecified roundness.', 'Round 2. Unused.', 'Round 4.', 'Round 8.', 'Round 12 or full', 'Round full.']}, 'components': {'type': 'object', 'description': 'Optional. Component tokens for the design system. Maps component names to their tokens.', 'additionalProperties': {'$ref': '#/$defs/ComponentTokens'}}, 'saturation': {'type': 'integer', 'format': 'int32', 'deprecated': True, 'description': 'Optional. DEPRECATED: The saturation of the design between 1 and 4.'}, 'typography': {'type': 'object', 'description': 'Optional. Typography scale for the design system. Maps level names (e.g. "display-lg", "body-md") to their Typography token.', 'additionalProperties': {'$ref': '#/$defs/Typography'}}, 'customColor': {'type': 'string', 'description': 'Optional. A custom theme primary color, or a seed color for the dynamic color system (hex format, e.g., "#ff0000").'}, 'description': {'type': 'string', 'deprecated': True, 'description': 'Optional. A brief description of the theme aesthetic.'}, 'namedColors': {'type': 'object', 'description': 'Optional. The color scheme of the design. This is a map of color names to hex color codes. Example: {"primary": "#ff0000", "secondary": "#00ff00", "tertiary": "#0000ff"}', 'additionalProperties': {'type': 'string'}}, 'colorVariant': {'enum': ['COLOR_VARIANT_UNSPECIFIED', 'MONOCHROME', 'NEUTRAL', 'TONAL_SPOT', 'VIBRANT', 'EXPRESSIVE', 'FIDELITY', 'CONTENT', 'RAINBOW', 'FRUIT_SALAD'], 'type': 'string', 'description': 'Optional. The variant of the dynamic color system.', 'x-google-enum-descriptions': ['Unspecified color variant.', 'Monochrome variant.', 'Neutral variant.', 'Tonal spot variant.', 'Vibrant variant.', 'Expressive variant.', 'Fidelity variant.', 'Content variant.', 'Rainbow variant.', 'Fruit salad variant.']}, 'headlineFont': {'enum': ['FONT_UNSPECIFIED', 'BE_VIETNAM_PRO', 'EPILOGUE', 'INTER', 'LEXEND', 'MANROPE', 'NEWSREADER', 'NOTO_SERIF', 'PLUS_JAKARTA_SANS', 'PUBLIC_SANS', 'SPACE_GROTESK', 'SPLINE_SANS', 'WORK_SANS', 'DOMINE', 'LIBRE_CASLON_TEXT', 'EB_GARAMOND', 'LITERATA', 'SOURCE_SERIF_4', 'SOURCE_SERIF_FOUR', 'MONTSERRAT', 'METROPHOBIC', 'METROPOLIS', 'SOURCE_SANS_3', 'SOURCE_SANS_THREE', 'NUNITO_SANS', 'ARIMO', 'HANKEN_GROTESK', 'RUBIK', 'GEIST', 'DM_SANS', 'IBM_PLEX_SANS', 'SORA', 'ANYBODY', 'ANTON', 'ARCHIVO_NARROW', 'ATKINSON_HYPERLEGIBLE_NEXT', 'BARLOW_CONDENSED', 'BEBAS_NEUE', 'BODONI_MODA', 'BRICOLAGE_GROTESQUE', 'CHIVO', 'CLIMATE_CRISIS', 'COMFORTAA', 'COURIER_PRIME', 'FIRA_SANS', 'GOOGLE_SANS', 'GOOGLE_SANS_CODE', 'GOOGLE_SANS_FLEX', 'GOOGLE_SANS_MONO', 'GOOGLE_SANS_TEXT', 'IBM_PLEX_SERIF', 'JETBRAINS_MONO', 'KARLA', 'LIBRE_FRANKLIN', 'MERRIWEATHER', 'NOTO_SANS', 'OPEN_SANS', 'OSWALD', 'OUTFIT', 'PLAYFAIR_DISPLAY', 'POIRET_ONE', 'QUESTRIAL', 'QUICKSAND', 'RALEWAY', 'ROBOTO_FLEX', 'SPACE_MONO', 'SYNE', 'VOLLKORN'], 'type': 'string', 'description': 'Optional. Headline font.', 'x-google-enum-deprecated': [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, True, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False], 'x-google-enum-descriptions': ['Unspecified font.', 'Be Vietnam Pro font.', 'Epilogue font.', 'Inter font.', 'Lexend font.', 'Manrope font.', 'Newsreader font.', 'Noto Serif font.', 'Plus Jakarta Sans font.', 'Public Sans font.', 'Space Grotesk font.', 'Spline Sans font.', 'Work Sans font.', 'Domine font.', 'Libre Caslon Text font.', 'EB Garamond font.', 'Literata font.', 'Source Serif 4 font.', 'Source Serif 4 font. Deprecated.', 'Montserrat font.', 'The Metrophobic font.', 'Metropolis font. Deprecated.', 'The Source Sans 3 font.', 'Source Sans 3 font. Deprecated.', 'Nunito Sans font.', 'Arimo font.', 'Hanken Grotesk font.', 'Rubik font.', 'Geist font.', 'DM Sans font.', 'IBM Plex Sans font.', 'Sora font.', 'Anybody font.', 'Anton font.', 'Archivo Narrow font.', 'Atkinson Hyperlegible Next font.', 'Barlow Condensed font.', 'Bebas Neue font.', 'Bodoni Moda font.', 'Bricolage Grotesque font.', 'Chivo font.', 'Climate Crisis font.', 'Comfortaa font.', 'Courier Prime font.', 'Fira Sans font.', 'Google Sans font.', 'Google Sans Code font.', 'Google Sans Flex font.', 'Google Sans Mono font.', 'Google Sans Text font.', 'IBM Plex Serif font.', 'JetBrains Mono font.', 'Karla font.', 'Libre Franklin font.', 'Merriweather font.', 'Noto Sans font.', 'Open Sans font.', 'Oswald font.', 'Outfit font.', 'Playfair Display font.', 'Poiret One font.', 'Questrial font.', 'Quicksand font.', 'Raleway font.', 'Roboto Flex font.', 'Space Mono font.', 'Syne font.', 'Vollkorn font.']}, 'spacingScale': {'type': 'integer', 'format': 'int32', 'description': 'Optional. The spacing scale level (0=minimal, 1=compact, 2=normal, 3=spacious).'}, 'backgroundDark': {'type': 'string', 'deprecated': True, 'description': 'Optional. DEPRECATED: The background color for dark mode (hex format, e.g., "#1a1a1a").'}, 'bodyFontFamily': {'type': 'string', 'description': 'Optional. Body font family name (e.g., "Inter", "Roboto").'}, 'backgroundLight': {'type': 'string', 'deprecated': True, 'description': 'Optional. DEPRECATED: The background color for light mode (hex format, e.g., "#f8f8f8").'}, 'labelFontFamily': {'type': 'string', 'description': 'Optional. Label font family name (e.g., "Inter", "Roboto").'}, 'headlineFontFamily': {'type': 'string', 'description': 'Optional. Headline font family name (e.g., "Inter", "Roboto").'}, 'overrideNeutralColor': {'type': 'string', 'description': 'Optional. Override neutral color for the dynamic color system (hex format, e.g., "#ffffff").'}, 'overridePrimaryColor': {'type': 'string', 'description': 'Optional. Override primary color for the dynamic color system (hex format, e.g., "#ff0000").'}, 'overrideTertiaryColor': {'type': 'string', 'description': 'Optional. Override tertiary color for the dynamic color system (hex format, e.g., "#0000ff").'}, 'overrideSecondaryColor': {'type': 'string', 'description': 'Optional. Override secondary color for the dynamic color system (hex format, e.g., "#00ff00").'}}, 'description': 'The theme of the design. Next ID: 27 LINT.IfChange'}, 'DesignSystem': {'type': 'object', 'properties': {'theme': {'$ref': '#/$defs/DesignTheme', 'description': 'Optional. The theme of the design system.'}, 'displayName': {'type': 'string', 'description': 'Optional. The display name of the design system.'}, 'designTokens': {'type': 'string', 'description': 'Optional. Serialized JSON object of the DTCG format design tokens.'}, 'styleGuidelines': {'type': 'string', 'description': 'Optional. Freeform text description of the style guidelines. This field is not displayed to the user and should not be included in MCP.'}}, 'description': "Represents a collection of guidelines, design tokens, and reusable components that define the visual and functional characteristics of a product's design. This is used to guide the generation of consistent and branded designs. LINT.IfChange"}, 'SessionEvent': {'type': 'object', 'properties': {'actor': {'type': 'string', 'readOnly': True, 'description': 'Output only. The actor who triggered the event.'}, 'eventId': {'type': 'string', 'readOnly': True, 'description': 'Output only. Unique identifier for the event.'}, 'eventTime': {'type': 'string', 'format': 'date-time', 'readOnly': True, 'description': 'Output only. Time when the event occurred.'}, 'eventType': {'type': 'string', 'readOnly': True, 'description': 'Output only. Type of the event.'}, 'eventPayload': {'type': 'object', 'readOnly': True, 'description': 'Output only. Payload carrying flexible event data.', 'additionalProperties': {'description': 'Properties of the object.'}}}, 'description': 'Flexible session events carrying JSON payload.'}, 'UserFeedback': {'type': 'object', 'properties': {'rating': {'enum': ['RATING_UNSPECIFIED', 'POSITIVE', 'NEGATIVE'], 'type': 'string', 'description': 'Optional. The user rating of the interaction.', 'x-google-enum-descriptions': ['Unspecified rating.', 'Positive rating.', 'Negative rating.']}, 'comment': {'type': 'string', 'description': 'Optional. Additional comment for the rating.'}, 'designFeedbackReason': {'enum': ['DESIGN_FEEDBACK_REASON_UNSPECIFIED', 'DESIGN_DOESNT_MATCH_PROMPT', 'EDIT_DOESNT_MATCH_PROMPT', 'DESCRIPTION_DOESNT_MATCH', 'COMPONENT_ISSUE', 'INCORRECT_THEME', 'FIGMA_EXPORT_FAILED', 'OTHER'], 'type': 'string', 'description': 'Optional. The reason for the feedback for a design, if the rating is negative.', 'x-google-enum-descriptions': ['Unspecified reason.', 'The design does not match the prompt.', 'The edit does not match the prompt.', 'The description does not match the design.', 'There is an issue with a component in the design.', 'The theme is incorrect.', 'The Figma export failed.', 'Other reason.']}}, 'description': 'User feedback for a given interaction.'}, 'PrototypeLink': {'type': 'object', 'properties': {'state': {'type': 'string', 'description': 'Optional. The state under which this link is active. Defaults to "default".'}, 'xpath': {'type': 'string', 'description': 'Required. XPath to the interactive element.'}, 'transition': {'enum': ['TRANSITION_TYPE_UNSPECIFIED', 'NONE', 'PUSH', 'PUSH_BACK', 'SLIDE_UP'], 'type': 'string', 'description': 'Optional. The transition animation to use when navigating to the target screen.', 'x-google-enum-descriptions': ['Unspecified transition type, defaults to NONE.', 'Instant switch with no animation.', 'New screen slides in from the right.', 'Current screen slides out to the right.', 'New screen slides up from the bottom.']}, 'targetScreenId': {'type': 'string', 'description': 'Required. ID of the destination screen.'}}, 'description': 'A single interactive link within a prototype screen.'}, 'ProgressUpdate': {'type': 'object', 'properties': {'status': {'enum': ['STATUS_UNSPECIFIED', 'STARTED', 'COMPLETED', 'FAILED'], 'type': 'string', 'x-google-enum-descriptions': ['', '', '', '']}, 'toolName': {'type': 'string'}, 'toolCallId': {'type': 'string'}, 'displayName': {'type': 'string'}}}, 'PrototypeLinks': {'type': 'object', 'properties': {'links': {'type': 'array', 'items': {'$ref': '#/$defs/PrototypeLink'}, 'description': 'Optional. The list of links for this screen.'}}, 'description': 'A collection of prototype links for a single screen.'}, 'PrototypeState': {'type': 'object', 'properties': {'name': {'type': 'string', 'description': 'Required. The name of the state (e.g., "default", "login-failed").'}}, 'description': 'A named state that controls link behavior in a prototype.'}, 'QuestionsAsked': {'type': 'object', 'properties': {'questions': {'type': 'array', 'items': {'$ref': '#/$defs/Question'}, 'description': 'The list of questions asked by the agent.'}}, 'description': 'A set of questions sent from the agent to the user.'}, 'ScreenMetadata': {'type': 'object', 'properties': {'status': {'enum': ['SCREEN_STATUS_UNSPECIFIED', 'IN_PROGRESS', 'COMPLETE', 'FAILED'], 'type': 'string', 'description': 'The status of the screen.', 'x-google-enum-descriptions': ['Unspecified screen status.', 'The screen is in progress.', 'The screen is complete.', 'The screen failed to generate.']}, 'summary': {'type': 'string', 'description': 'Optional. A first-person summary of what was generated or changed for the screen.'}, 'agentType': {'enum': ['DESIGN_AGENT_TYPE_UNSPECIFIED', 'TURBO_AGENT', 'PRO_AGENT', 'IMAGE_AGENT', 'GENIE_AGENT', 'IMAGE_PRO_AGENT', 'HATTER_AGENT', 'GEMINI_3_AGENT'], 'type': 'string', 'description': 'The agent type that generated the screen.', 'x-google-enum-deprecated': [False, True, False, False, False, True, False, False], 'x-google-enum-descriptions': ['Unspecified agent type. The service will pick one.', 'Deprecated: Turbo agent is no longer supported.', 'This agent uses Gemini 3.0 Flash. The "PRO" name is a legacy from when it used Gemini 2.5 Pro.', 'The image agent, produces image screens.', 'The Genie agent prototype agent.', 'Deprecated: The image pro agent is no longer supported.', 'The Hatter agent as a general assistant agent.', 'Agent powered by the Gemini 3.0 Thinking model. This became the new "Pro" agent after the Gemini 3 launch.']}, 'isRemixed': {'type': 'boolean', 'description': 'Optional. Whether this screen was created as a result of remixing or not.'}, 'displayMode': {'enum': ['DISPLAY_MODE_UNSPECIFIED', 'SCREENSHOT', 'HTML', 'CODE', 'MARKDOWN', 'STICKY_NOTE', 'SVG', 'TABLE', 'MERMAID', 'CHECKLIST', 'CHART', 'PDF', 'FIGMA'], 'type': 'string', 'description': 'Optional. Whether the frontend should display HTML or a screenshot.', 'x-google-enum-descriptions': ['Unspecified display mode. Defaults to SCREENSHOT.', 'The screen is displayed as a screenshot.', 'The screen is displayed as rendered HTML.', 'Displays the screen as code.', 'Displays the screen as markdown.', 'Displays the screen as a sticky note.', 'Displays the screen as an inline SVG graphic.', 'Displays the screen as a data table (CSV).', 'Displays the screen as a mermaid diagram.', 'Agent only: The document node is displayed as an interactive checklist.', 'Agent only: The document node is displayed as an interactive Chart.js chart.', 'Displays the screen as a PDF document.', 'Displays the screen as a Figma file.']}, 'suggestions': {'type': 'array', 'items': {'$ref': '#/$defs/DesignSuggestion'}, 'description': 'Optional. Suggested next actions for the screen.'}, 'prototypeSpec': {'$ref': '#/$defs/PrototypeV2Spec', 'description': 'Optional. The prototype spec of the screen.'}, 'statusMessage': {'type': 'string', 'description': 'Optional. A human readable status message for the screen, generated by the agent.'}, 'componentRegions': {'type': 'array', 'items': {'$ref': '#/$defs/ComponentRegion'}, 'description': 'Optional. The component regions of the screen.'}}, 'description': 'The metadata of a screen.'}, 'ComponentRegion': {'type': 'object', 'properties': {'type': {'enum': ['COMPONENT_TYPE_UNSPECIFIED', 'COMPONENT_TYPE_IMAGE', 'COMPONENT_TYPE_TEXT', 'COMPONENT_TYPE_BUTTON', 'COMPONENT_TYPE_INPUT', 'COMPONENT_TYPE_CONTAINER'], 'type': 'string', 'description': 'The type of the component region.', 'x-google-enum-descriptions': ['Unspecified component type.', 'An image component.', 'A text component.', 'A button component.', 'An input component.', 'A container component.']}, 'xpath': {'type': 'string', 'description': 'The xpath of the component region.'}, 'boundingBox': {'$ref': '#/$defs/BoundingBox', 'description': 'The bounding box of the component region.'}, 'description': {'type': 'string', 'description': 'The description of the component region.'}}, 'description': 'The region of a component region.'}, 'ComponentTokens': {'type': 'object', 'properties': {'tokens': {'type': 'object', 'description': 'Optional. A component may have these sub tokens: - backgroundColor: - textColor: - typography: - rounded: - padding: The value may be a literal value or a reference. A token reference must be wrapped in curly braces, and contain an object path to another value in the design system. The referenced object must be a primitive value, e.g. colors.primary-60, rather than an object, e.g. colors.', 'additionalProperties': {'type': 'string'}}}, 'description': 'A component style token in a design system.'}, 'ProgressUpdates': {'type': 'object', 'properties': {'updates': {'type': 'array', 'items': {'$ref': '#/$defs/ProgressUpdate'}}}}, 'PrototypeV2Spec': {'type': 'object', 'properties': {'links': {'type': 'object', 'description': 'Optional. Map of screenId to list of links.', 'additionalProperties': {'$ref': '#/$defs/PrototypeLinks'}}, 'states': {'type': 'array', 'items': {'$ref': '#/$defs/PrototypeState'}, 'description': 'Optional. The list of states available in this prototype.'}, 'screenIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Optional. List of all screen IDs.'}, 'initScreenId': {'type': 'string', 'description': 'Required. ID of the initial screen.'}}, 'description': 'The full specification for a V2 interactive prototype.'}, 'DesignSuggestion': {'type': 'object', 'properties': {'label': {'type': 'string', 'description': 'A short label for the suggestion (max 3 words, e.g. "Dark mode theme").'}, 'prompt': {'type': 'string', 'description': 'A full prompt description of the suggestion that can be sent directly to the agent (e.g. "Change the theme to dark mode with a deep navy background and white text").'}}, 'description': 'A suggested next action for a screen.'}, 'SessionOutputComponent': {'type': 'object', 'properties': {'text': {'type': 'string', 'description': 'The agent generates a text response to be displayed to the user. Only one of the following fields should be set: this field, design, suggestion, designSystem, progressUpdates, sessionEvent, questionsAsked.'}, 'design': {'$ref': '#/$defs/Design', 'description': 'The agent generates a design to be displayed to the user. Only applicable to TEXT_TO_UI and IMAGE_TO_UI projects. Only one of the following fields should be set: this field, text, suggestion, designSystem, progressUpdates, sessionEvent, questionsAsked.'}, 'suggestion': {'type': 'string', 'description': 'The agent generates a suggested response to be displayed to the user. Only one of the following fields should be set: this field, design, text, designSystem, progressUpdates, sessionEvent, questionsAsked.'}, 'designSystem': {'$ref': '#/$defs/Asset', 'readOnly': True, 'description': 'Output only. The agent generates a design system to be displayed to the user. Only one of the following fields should be set: this field, design, text, suggestion, progressUpdates, sessionEvent, questionsAsked.'}, 'sessionEvent': {'$ref': '#/$defs/SessionEvent', 'readOnly': True, 'description': 'Output only. Flexible session events carrying JSON payload. Only one of the following fields should be set: this field, design, text, suggestion, designSystem, progressUpdates, questionsAsked.'}, 'questionsAsked': {'$ref': '#/$defs/QuestionsAsked', 'readOnly': True, 'description': 'Output only. Structured questions asked by the agent. Only one of the following fields should be set: this field, design, text, suggestion, designSystem, progressUpdates, sessionEvent.'}, 'progressUpdates': {'$ref': '#/$defs/ProgressUpdates', 'readOnly': True, 'description': 'Output only. Progress updates from the agent. Only one of the following fields should be set: this field, design, text, suggestion, designSystem, sessionEvent, questionsAsked.'}}, 'description': 'A partial output of the session.'}}, 'properties': {'projectId': {'type': 'string', 'description': 'The project ID of the generated screen. This is the same as the input project ID.'}, 'sessionId': {'type': 'string', 'description': 'The session ID of the generated screen.'}, 'outputComponents': {'type': 'array', 'items': {'$ref': '#/$defs/SessionOutputComponent'}, 'description': 'The generated output components.'}}, 'description': 'The output design generated by the agent.'}
get_project
Retrieves the details of a specific Stitch project using its project name.
読み取り専用
入力スキーマ
{'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'description': 'Required. Identifier. The resource name of the project to retrieve. Format: `projects/{project}` Example: `projects/4044680601076201931`', 'x-google-identifier': True}}, 'description': 'Request message for GetProject.'}
出力スキーマ
{'type': 'object', '$defs': {'File': {'type': 'object', 'properties': {'name': {'type': 'string', 'description': 'Identifier. The resource name of the file. Format: projects/{project}/files/{file}', 'x-google-identifier': True}, 'mimeType': {'type': 'string', 'description': 'Optional. The mime type of the file. E.g. "image/png", "text/html".'}, 'downloadUrl': {'type': 'string', 'description': 'Optional. The URL of the file for download. For image files, this would be FIFE base URLs. Only one of the following fields should be set: this field, uploadBlobId, fileContentBase64.'}, 'uploadBlobId': {'type': 'string', 'description': 'Optional. The BlobId from Scotty/contrib service file upload. This points to a temporary blobstore location of the file. Only one of the following fields should be set: this field, downloadUrl, fileContentBase64.'}, 'userFeedback': {'$ref': '#/$defs/UserFeedback', 'readOnly': True, 'description': 'Output only. The latest feedback submitted for the file.'}, 'fileContentBase64': {'type': 'string', 'writeOnly': True, 'description': 'Optional. Input only. The base64-encoded string of the file content. Only one of the following fields should be set: this field, uploadBlobId, downloadUrl.'}}, 'description': 'A File resource.'}, 'Typography': {'type': 'object', 'properties': {'fontSize': {'type': 'string', 'description': 'Optional. The CSS font-size value (e.g., "32px", "1rem").'}, 'fontFamily': {'type': 'string', 'description': 'Optional. The CSS font-family value (e.g., "Manrope", "Inter").'}, 'fontWeight': {'type': 'string', 'description': 'Optional. The CSS font-weight value (e.g., "400", "700").'}, 'lineHeight': {'type': 'string', 'description': 'Optional. The CSS line-height value (e.g., "1.5", "40px").'}, 'letterSpacing': {'type': 'string', 'description': 'Optional. The CSS letter-spacing value (e.g., "0px", "-0.02em").'}}, 'description': 'A typography style token in a design system, defining the visual properties for a single text level (e.g. "display-lg", "body-md").'}, 'DesignTheme': {'type': 'object', 'properties': {'font': {'enum': ['FONT_UNSPECIFIED', 'BE_VIETNAM_PRO', 'EPILOGUE', 'INTER', 'LEXEND', 'MANROPE', 'NEWSREADER', 'NOTO_SERIF', 'PLUS_JAKARTA_SANS', 'PUBLIC_SANS', 'SPACE_GROTESK', 'SPLINE_SANS', 'WORK_SANS', 'DOMINE', 'LIBRE_CASLON_TEXT', 'EB_GARAMOND', 'LITERATA', 'SOURCE_SERIF_4', 'SOURCE_SERIF_FOUR', 'MONTSERRAT', 'METROPHOBIC', 'METROPOLIS', 'SOURCE_SANS_3', 'SOURCE_SANS_THREE', 'NUNITO_SANS', 'ARIMO', 'HANKEN_GROTESK', 'RUBIK', 'GEIST', 'DM_SANS', 'IBM_PLEX_SANS', 'SORA', 'ANYBODY', 'ANTON', 'ARCHIVO_NARROW', 'ATKINSON_HYPERLEGIBLE_NEXT', 'BARLOW_CONDENSED', 'BEBAS_NEUE', 'BODONI_MODA', 'BRICOLAGE_GROTESQUE', 'CHIVO', 'CLIMATE_CRISIS', 'COMFORTAA', 'COURIER_PRIME', 'FIRA_SANS', 'GOOGLE_SANS', 'GOOGLE_SANS_CODE', 'GOOGLE_SANS_FLEX', 'GOOGLE_SANS_MONO', 'GOOGLE_SANS_TEXT', 'IBM_PLEX_SERIF', 'JETBRAINS_MONO', 'KARLA', 'LIBRE_FRANKLIN', 'MERRIWEATHER', 'NOTO_SANS', 'OPEN_SANS', 'OSWALD', 'OUTFIT', 'PLAYFAIR_DISPLAY', 'POIRET_ONE', 'QUESTRIAL', 'QUICKSAND', 'RALEWAY', 'ROBOTO_FLEX', 'SPACE_MONO', 'SYNE', 'VOLLKORN'], 'type': 'string', 'deprecated': True, 'description': 'Optional. DEPRECATED: The font of the design. Planned to be deprecated in favor of `headline_font`, `body_font`, and `label_font`.', 'x-google-enum-deprecated': [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, True, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False], 'x-google-enum-descriptions': ['Unspecified font.', 'Be Vietnam Pro font.', 'Epilogue font.', 'Inter font.', 'Lexend font.', 'Manrope font.', 'Newsreader font.', 'Noto Serif font.', 'Plus Jakarta Sans font.', 'Public Sans font.', 'Space Grotesk font.', 'Spline Sans font.', 'Work Sans font.', 'Domine font.', 'Libre Caslon Text font.', 'EB Garamond font.', 'Literata font.', 'Source Serif 4 font.', 'Source Serif 4 font. Deprecated.', 'Montserrat font.', 'The Metrophobic font.', 'Metropolis font. Deprecated.', 'The Source Sans 3 font.', 'Source Sans 3 font. Deprecated.', 'Nunito Sans font.', 'Arimo font.', 'Hanken Grotesk font.', 'Rubik font.', 'Geist font.', 'DM Sans font.', 'IBM Plex Sans font.', 'Sora font.', 'Anybody font.', 'Anton font.', 'Archivo Narrow font.', 'Atkinson Hyperlegible Next font.', 'Barlow Condensed font.', 'Bebas Neue font.', 'Bodoni Moda font.', 'Bricolage Grotesque font.', 'Chivo font.', 'Climate Crisis font.', 'Comfortaa font.', 'Courier Prime font.', 'Fira Sans font.', 'Google Sans font.', 'Google Sans Code font.', 'Google Sans Flex font.', 'Google Sans Mono font.', 'Google Sans Text font.', 'IBM Plex Serif font.', 'JetBrains Mono font.', 'Karla font.', 'Libre Franklin font.', 'Merriweather font.', 'Noto Sans font.', 'Open Sans font.', 'Oswald font.', 'Outfit font.', 'Playfair Display font.', 'Poiret One font.', 'Questrial font.', 'Quicksand font.', 'Raleway font.', 'Roboto Flex font.', 'Space Mono font.', 'Syne font.', 'Vollkorn font.']}, 'preset': {'type': 'string', 'deprecated': True, 'description': 'Optional. DEPRECATED: The preset color of the design.'}, 'spacing': {'type': 'object', 'description': 'Optional. Spacing units for the design system. Maps spacing names to their values.', 'additionalProperties': {'type': 'string'}}, 'bodyFont': {'enum': ['FONT_UNSPECIFIED', 'BE_VIETNAM_PRO', 'EPILOGUE', 'INTER', 'LEXEND', 'MANROPE', 'NEWSREADER', 'NOTO_SERIF', 'PLUS_JAKARTA_SANS', 'PUBLIC_SANS', 'SPACE_GROTESK', 'SPLINE_SANS', 'WORK_SANS', 'DOMINE', 'LIBRE_CASLON_TEXT', 'EB_GARAMOND', 'LITERATA', 'SOURCE_SERIF_4', 'SOURCE_SERIF_FOUR', 'MONTSERRAT', 'METROPHOBIC', 'METROPOLIS', 'SOURCE_SANS_3', 'SOURCE_SANS_THREE', 'NUNITO_SANS', 'ARIMO', 'HANKEN_GROTESK', 'RUBIK', 'GEIST', 'DM_SANS', 'IBM_PLEX_SANS', 'SORA', 'ANYBODY', 'ANTON', 'ARCHIVO_NARROW', 'ATKINSON_HYPERLEGIBLE_NEXT', 'BARLOW_CONDENSED', 'BEBAS_NEUE', 'BODONI_MODA', 'BRICOLAGE_GROTESQUE', 'CHIVO', 'CLIMATE_CRISIS', 'COMFORTAA', 'COURIER_PRIME', 'FIRA_SANS', 'GOOGLE_SANS', 'GOOGLE_SANS_CODE', 'GOOGLE_SANS_FLEX', 'GOOGLE_SANS_MONO', 'GOOGLE_SANS_TEXT', 'IBM_PLEX_SERIF', 'JETBRAINS_MONO', 'KARLA', 'LIBRE_FRANKLIN', 'MERRIWEATHER', 'NOTO_SANS', 'OPEN_SANS', 'OSWALD', 'OUTFIT', 'PLAYFAIR_DISPLAY', 'POIRET_ONE', 'QUESTRIAL', 'QUICKSAND', 'RALEWAY', 'ROBOTO_FLEX', 'SPACE_MONO', 'SYNE', 'VOLLKORN'], 'type': 'string', 'description': 'Optional. Body font.', 'x-google-enum-deprecated': [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, True, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False], 'x-google-enum-descriptions': ['Unspecified font.', 'Be Vietnam Pro font.', 'Epilogue font.', 'Inter font.', 'Lexend font.', 'Manrope font.', 'Newsreader font.', 'Noto Serif font.', 'Plus Jakarta Sans font.', 'Public Sans font.', 'Space Grotesk font.', 'Spline Sans font.', 'Work Sans font.', 'Domine font.', 'Libre Caslon Text font.', 'EB Garamond font.', 'Literata font.', 'Source Serif 4 font.', 'Source Serif 4 font. Deprecated.', 'Montserrat font.', 'The Metrophobic font.', 'Metropolis font. Deprecated.', 'The Source Sans 3 font.', 'Source Sans 3 font. Deprecated.', 'Nunito Sans font.', 'Arimo font.', 'Hanken Grotesk font.', 'Rubik font.', 'Geist font.', 'DM Sans font.', 'IBM Plex Sans font.', 'Sora font.', 'Anybody font.', 'Anton font.', 'Archivo Narrow font.', 'Atkinson Hyperlegible Next font.', 'Barlow Condensed font.', 'Bebas Neue font.', 'Bodoni Moda font.', 'Bricolage Grotesque font.', 'Chivo font.', 'Climate Crisis font.', 'Comfortaa font.', 'Courier Prime font.', 'Fira Sans font.', 'Google Sans font.', 'Google Sans Code font.', 'Google Sans Flex font.', 'Google Sans Mono font.', 'Google Sans Text font.', 'IBM Plex Serif font.', 'JetBrains Mono font.', 'Karla font.', 'Libre Franklin font.', 'Merriweather font.', 'Noto Sans font.', 'Open Sans font.', 'Oswald font.', 'Outfit font.', 'Playfair Display font.', 'Poiret One font.', 'Questrial font.', 'Quicksand font.', 'Raleway font.', 'Roboto Flex font.', 'Space Mono font.', 'Syne font.', 'Vollkorn font.']}, 'designMd': {'type': 'string', 'description': 'Optional. A markdown file that describes the design system.'}, 'colorMode': {'enum': ['COLOR_MODE_UNSPECIFIED', 'LIGHT', 'DARK'], 'type': 'string', 'description': 'Required. The mode of appearance of the design.', 'x-google-enum-descriptions': ['Unspecified color mode.', 'Light mode.', 'Dark mode.']}, 'labelFont': {'enum': ['FONT_UNSPECIFIED', 'BE_VIETNAM_PRO', 'EPILOGUE', 'INTER', 'LEXEND', 'MANROPE', 'NEWSREADER', 'NOTO_SERIF', 'PLUS_JAKARTA_SANS', 'PUBLIC_SANS', 'SPACE_GROTESK', 'SPLINE_SANS', 'WORK_SANS', 'DOMINE', 'LIBRE_CASLON_TEXT', 'EB_GARAMOND', 'LITERATA', 'SOURCE_SERIF_4', 'SOURCE_SERIF_FOUR', 'MONTSERRAT', 'METROPHOBIC', 'METROPOLIS', 'SOURCE_SANS_3', 'SOURCE_SANS_THREE', 'NUNITO_SANS', 'ARIMO', 'HANKEN_GROTESK', 'RUBIK', 'GEIST', 'DM_SANS', 'IBM_PLEX_SANS', 'SORA', 'ANYBODY', 'ANTON', 'ARCHIVO_NARROW', 'ATKINSON_HYPERLEGIBLE_NEXT', 'BARLOW_CONDENSED', 'BEBAS_NEUE', 'BODONI_MODA', 'BRICOLAGE_GROTESQUE', 'CHIVO', 'CLIMATE_CRISIS', 'COMFORTAA', 'COURIER_PRIME', 'FIRA_SANS', 'GOOGLE_SANS', 'GOOGLE_SANS_CODE', 'GOOGLE_SANS_FLEX', 'GOOGLE_SANS_MONO', 'GOOGLE_SANS_TEXT', 'IBM_PLEX_SERIF', 'JETBRAINS_MONO', 'KARLA', 'LIBRE_FRANKLIN', 'MERRIWEATHER', 'NOTO_SANS', 'OPEN_SANS', 'OSWALD', 'OUTFIT', 'PLAYFAIR_DISPLAY', 'POIRET_ONE', 'QUESTRIAL', 'QUICKSAND', 'RALEWAY', 'ROBOTO_FLEX', 'SPACE_MONO', 'SYNE', 'VOLLKORN'], 'type': 'string', 'description': 'Optional. Label font.', 'x-google-enum-deprecated': [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, True, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False], 'x-google-enum-descriptions': ['Unspecified font.', 'Be Vietnam Pro font.', 'Epilogue font.', 'Inter font.', 'Lexend font.', 'Manrope font.', 'Newsreader font.', 'Noto Serif font.', 'Plus Jakarta Sans font.', 'Public Sans font.', 'Space Grotesk font.', 'Spline Sans font.', 'Work Sans font.', 'Domine font.', 'Libre Caslon Text font.', 'EB Garamond font.', 'Literata font.', 'Source Serif 4 font.', 'Source Serif 4 font. Deprecated.', 'Montserrat font.', 'The Metrophobic font.', 'Metropolis font. Deprecated.', 'The Source Sans 3 font.', 'Source Sans 3 font. Deprecated.', 'Nunito Sans font.', 'Arimo font.', 'Hanken Grotesk font.', 'Rubik font.', 'Geist font.', 'DM Sans font.', 'IBM Plex Sans font.', 'Sora font.', 'Anybody font.', 'Anton font.', 'Archivo Narrow font.', 'Atkinson Hyperlegible Next font.', 'Barlow Condensed font.', 'Bebas Neue font.', 'Bodoni Moda font.', 'Bricolage Grotesque font.', 'Chivo font.', 'Climate Crisis font.', 'Comfortaa font.', 'Courier Prime font.', 'Fira Sans font.', 'Google Sans font.', 'Google Sans Code font.', 'Google Sans Flex font.', 'Google Sans Mono font.', 'Google Sans Text font.', 'IBM Plex Serif font.', 'JetBrains Mono font.', 'Karla font.', 'Libre Franklin font.', 'Merriweather font.', 'Noto Sans font.', 'Open Sans font.', 'Oswald font.', 'Outfit font.', 'Playfair Display font.', 'Poiret One font.', 'Questrial font.', 'Quicksand font.', 'Raleway font.', 'Roboto Flex font.', 'Space Mono font.', 'Syne font.', 'Vollkorn font.']}, 'roundness': {'enum': ['ROUNDNESS_UNSPECIFIED', 'ROUND_TWO', 'ROUND_FOUR', 'ROUND_EIGHT', 'ROUND_TWELVE', 'ROUND_FULL'], 'type': 'string', 'description': 'Required. The roundness of the design.', 'x-google-enum-deprecated': [False, True, False, False, False, False], 'x-google-enum-descriptions': ['Unspecified roundness.', 'Round 2. Unused.', 'Round 4.', 'Round 8.', 'Round 12 or full', 'Round full.']}, 'components': {'type': 'object', 'description': 'Optional. Component tokens for the design system. Maps component names to their tokens.', 'additionalProperties': {'$ref': '#/$defs/ComponentTokens'}}, 'saturation': {'type': 'integer', 'format': 'int32', 'deprecated': True, 'description': 'Optional. DEPRECATED: The saturation of the design between 1 and 4.'}, 'typography': {'type': 'object', 'description': 'Optional. Typography scale for the design system. Maps level names (e.g. "display-lg", "body-md") to their Typography token.', 'additionalProperties': {'$ref': '#/$defs/Typography'}}, 'customColor': {'type': 'string', 'description': 'Optional. A custom theme primary color, or a seed color for the dynamic color system (hex format, e.g., "#ff0000").'}, 'description': {'type': 'string', 'deprecated': True, 'description': 'Optional. A brief description of the theme aesthetic.'}, 'namedColors': {'type': 'object', 'description': 'Optional. The color scheme of the design. This is a map of color names to hex color codes. Example: {"primary": "#ff0000", "secondary": "#00ff00", "tertiary": "#0000ff"}', 'additionalProperties': {'type': 'string'}}, 'colorVariant': {'enum': ['COLOR_VARIANT_UNSPECIFIED', 'MONOCHROME', 'NEUTRAL', 'TONAL_SPOT', 'VIBRANT', 'EXPRESSIVE', 'FIDELITY', 'CONTENT', 'RAINBOW', 'FRUIT_SALAD'], 'type': 'string', 'description': 'Optional. The variant of the dynamic color system.', 'x-google-enum-descriptions': ['Unspecified color variant.', 'Monochrome variant.', 'Neutral variant.', 'Tonal spot variant.', 'Vibrant variant.', 'Expressive variant.', 'Fidelity variant.', 'Content variant.', 'Rainbow variant.', 'Fruit salad variant.']}, 'headlineFont': {'enum': ['FONT_UNSPECIFIED', 'BE_VIETNAM_PRO', 'EPILOGUE', 'INTER', 'LEXEND', 'MANROPE', 'NEWSREADER', 'NOTO_SERIF', 'PLUS_JAKARTA_SANS', 'PUBLIC_SANS', 'SPACE_GROTESK', 'SPLINE_SANS', 'WORK_SANS', 'DOMINE', 'LIBRE_CASLON_TEXT', 'EB_GARAMOND', 'LITERATA', 'SOURCE_SERIF_4', 'SOURCE_SERIF_FOUR', 'MONTSERRAT', 'METROPHOBIC', 'METROPOLIS', 'SOURCE_SANS_3', 'SOURCE_SANS_THREE', 'NUNITO_SANS', 'ARIMO', 'HANKEN_GROTESK', 'RUBIK', 'GEIST', 'DM_SANS', 'IBM_PLEX_SANS', 'SORA', 'ANYBODY', 'ANTON', 'ARCHIVO_NARROW', 'ATKINSON_HYPERLEGIBLE_NEXT', 'BARLOW_CONDENSED', 'BEBAS_NEUE', 'BODONI_MODA', 'BRICOLAGE_GROTESQUE', 'CHIVO', 'CLIMATE_CRISIS', 'COMFORTAA', 'COURIER_PRIME', 'FIRA_SANS', 'GOOGLE_SANS', 'GOOGLE_SANS_CODE', 'GOOGLE_SANS_FLEX', 'GOOGLE_SANS_MONO', 'GOOGLE_SANS_TEXT', 'IBM_PLEX_SERIF', 'JETBRAINS_MONO', 'KARLA', 'LIBRE_FRANKLIN', 'MERRIWEATHER', 'NOTO_SANS', 'OPEN_SANS', 'OSWALD', 'OUTFIT', 'PLAYFAIR_DISPLAY', 'POIRET_ONE', 'QUESTRIAL', 'QUICKSAND', 'RALEWAY', 'ROBOTO_FLEX', 'SPACE_MONO', 'SYNE', 'VOLLKORN'], 'type': 'string', 'description': 'Optional. Headline font.', 'x-google-enum-deprecated': [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, True, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False], 'x-google-enum-descriptions': ['Unspecified font.', 'Be Vietnam Pro font.', 'Epilogue font.', 'Inter font.', 'Lexend font.', 'Manrope font.', 'Newsreader font.', 'Noto Serif font.', 'Plus Jakarta Sans font.', 'Public Sans font.', 'Space Grotesk font.', 'Spline Sans font.', 'Work Sans font.', 'Domine font.', 'Libre Caslon Text font.', 'EB Garamond font.', 'Literata font.', 'Source Serif 4 font.', 'Source Serif 4 font. Deprecated.', 'Montserrat font.', 'The Metrophobic font.', 'Metropolis font. Deprecated.', 'The Source Sans 3 font.', 'Source Sans 3 font. Deprecated.', 'Nunito Sans font.', 'Arimo font.', 'Hanken Grotesk font.', 'Rubik font.', 'Geist font.', 'DM Sans font.', 'IBM Plex Sans font.', 'Sora font.', 'Anybody font.', 'Anton font.', 'Archivo Narrow font.', 'Atkinson Hyperlegible Next font.', 'Barlow Condensed font.', 'Bebas Neue font.', 'Bodoni Moda font.', 'Bricolage Grotesque font.', 'Chivo font.', 'Climate Crisis font.', 'Comfortaa font.', 'Courier Prime font.', 'Fira Sans font.', 'Google Sans font.', 'Google Sans Code font.', 'Google Sans Flex font.', 'Google Sans Mono font.', 'Google Sans Text font.', 'IBM Plex Serif font.', 'JetBrains Mono font.', 'Karla font.', 'Libre Franklin font.', 'Merriweather font.', 'Noto Sans font.', 'Open Sans font.', 'Oswald font.', 'Outfit font.', 'Playfair Display font.', 'Poiret One font.', 'Questrial font.', 'Quicksand font.', 'Raleway font.', 'Roboto Flex font.', 'Space Mono font.', 'Syne font.', 'Vollkorn font.']}, 'spacingScale': {'type': 'integer', 'format': 'int32', 'description': 'Optional. The spacing scale level (0=minimal, 1=compact, 2=normal, 3=spacious).'}, 'backgroundDark': {'type': 'string', 'deprecated': True, 'description': 'Optional. DEPRECATED: The background color for dark mode (hex format, e.g., "#1a1a1a").'}, 'bodyFontFamily': {'type': 'string', 'description': 'Optional. Body font family name (e.g., "Inter", "Roboto").'}, 'backgroundLight': {'type': 'string', 'deprecated': True, 'description': 'Optional. DEPRECATED: The background color for light mode (hex format, e.g., "#f8f8f8").'}, 'labelFontFamily': {'type': 'string', 'description': 'Optional. Label font family name (e.g., "Inter", "Roboto").'}, 'headlineFontFamily': {'type': 'string', 'description': 'Optional. Headline font family name (e.g., "Inter", "Roboto").'}, 'overrideNeutralColor': {'type': 'string', 'description': 'Optional. Override neutral color for the dynamic color system (hex format, e.g., "#ffffff").'}, 'overridePrimaryColor': {'type': 'string', 'description': 'Optional. Override primary color for the dynamic color system (hex format, e.g., "#ff0000").'}, 'overrideTertiaryColor': {'type': 'string', 'description': 'Optional. Override tertiary color for the dynamic color system (hex format, e.g., "#0000ff").'}, 'overrideSecondaryColor': {'type': 'string', 'description': 'Optional. Override secondary color for the dynamic color system (hex format, e.g., "#00ff00").'}}, 'description': 'The theme of the design. Next ID: 27 LINT.IfChange'}, 'UserFeedback': {'type': 'object', 'properties': {'rating': {'enum': ['RATING_UNSPECIFIED', 'POSITIVE', 'NEGATIVE'], 'type': 'string', 'description': 'Optional. The user rating of the interaction.', 'x-google-enum-descriptions': ['Unspecified rating.', 'Positive rating.', 'Negative rating.']}, 'comment': {'type': 'string', 'description': 'Optional. Additional comment for the rating.'}, 'designFeedbackReason': {'enum': ['DESIGN_FEEDBACK_REASON_UNSPECIFIED', 'DESIGN_DOESNT_MATCH_PROMPT', 'EDIT_DOESNT_MATCH_PROMPT', 'DESCRIPTION_DOESNT_MATCH', 'COMPONENT_ISSUE', 'INCORRECT_THEME', 'FIGMA_EXPORT_FAILED', 'OTHER'], 'type': 'string', 'description': 'Optional. The reason for the feedback for a design, if the rating is negative.', 'x-google-enum-descriptions': ['Unspecified reason.', 'The design does not match the prompt.', 'The edit does not match the prompt.', 'The description does not match the design.', 'There is an issue with a component in the design.', 'The theme is incorrect.', 'The Figma export failed.', 'Other reason.']}}, 'description': 'User feedback for a given interaction.'}, 'ScreenInstance': {'type': 'object', 'properties': {'x': {'type': 'integer', 'format': 'int32', 'description': 'Optional. The x position of the screen.'}, 'y': {'type': 'integer', 'format': 'int32', 'description': 'Optional. The y position of the screen.'}, 'id': {'type': 'string', 'description': 'Optional. The screen instance id.'}, 'type': {'enum': ['SCREEN_INSTANCE_TYPE_UNSPECIFIED', 'SCREEN_INSTANCE', 'DESIGN_SYSTEM_INSTANCE', 'GROUP_INSTANCE', 'TEXT_INSTANCE'], 'type': 'string', 'description': 'Optional. The type of screen instance.', 'x-google-enum-descriptions': ['The unspecified value.', 'A screen instance.', 'A design system instance.', 'A group instance.', 'A text instance.']}, 'label': {'type': 'string', 'description': 'Optional. The screen label.'}, 'width': {'type': 'integer', 'format': 'int32', 'description': 'Optional. The screen width.'}, 'height': {'type': 'integer', 'format': 'int32', 'description': 'Optional. The screen height.'}, 'hidden': {'type': 'boolean', 'description': 'Optional. User driven action hiding screen from the canvas.'}, 'groupId': {'type': 'string', 'description': 'Optional. Group identifier for Genie Agent output grouping. Screens with the same groupId are rendered and interact as a group.'}, 'groupName': {'type': 'string', 'description': 'Optional. Human-readable name for the group (e.g., "Warm Minimalism", "Ethereal Glow").'}, 'isResized': {'type': 'boolean', 'description': 'Optional. Whether this screen has been resized by the user.'}, 'isFavourite': {'type': 'boolean', 'description': 'Optional. Whether this screen is marked as a favourite by the user.'}, 'needsLayout': {'type': 'boolean', 'description': 'Optional. Whether this screen instance needs frontend layout positioning. Set by the PostProcessor when auto-linking screens that the agent generated but the frontend has not yet positioned on the canvas.'}, 'sourceAsset': {'type': 'string', 'description': 'Optional. The resource name of the source asset. Format: assets/{asset}. Only one of the following fields should be set: this field, sourceScreen, textContent.'}, 'textContent': {'type': 'string', 'description': 'Optional. Text content for TEXT_INSTANCE nodes. Only one of the following fields should be set: this field, sourceScreen, sourceAsset.'}, 'sourceScreen': {'type': 'string', 'description': 'Optional. The resource name of the source screen. Format: projects/{project}/screens/{screen}. Only one of the following fields should be set: this field, sourceAsset, textContent.'}, 'variantScreenInstance': {'$ref': '#/$defs/ScreenInstance', 'description': 'Optional. The variant Screen Instance.'}}, 'description': 'An instance of a screen on the project. Next ID: 18'}, 'ComponentTokens': {'type': 'object', 'properties': {'tokens': {'type': 'object', 'description': 'Optional. A component may have these sub tokens: - backgroundColor: - textColor: - typography: - rounded: - padding: The value may be a literal value or a reference. A token reference must be wrapped in curly braces, and contain an object path to another value in the design system. The referenced object must be a primitive value, e.g. colors.primary-60, rather than an object, e.g. colors.', 'additionalProperties': {'type': 'string'}}}, 'description': 'A component style token in a design system.'}, 'ProjectMetadata': {'type': 'object', 'properties': {'userRole': {'enum': ['ROLE_UNSPECIFIED', 'OWNER', 'READER'], 'type': 'string', 'description': 'The Role of the user accessing the project.', 'x-google-enum-descriptions': ['go/protodosdonts#unspecified-enum', 'Represents the project owner (whose user_id is part of the primary key for Spanner)', 'Represents users with permission to view the project and its assets']}, 'isRemixed': {'type': 'boolean', 'description': 'Whether this project was remixed or not. This allows the frontend to avoid polling for sessions since none will exist for a remixed project.'}}, 'description': 'Metadata relating to the project.'}}, 'properties': {'name': {'type': 'string', 'description': 'Identifier. The resource name of the project. Format: projects/{project}', 'x-google-identifier': True}, 'title': {'type': 'string', 'description': 'Optional. The title of the project.'}, 'origin': {'enum': ['ORIGIN_UNSPECIFIED', 'STITCH', 'IMPORTED_FROM_GALILEO'], 'type': 'string', 'readOnly': True, 'description': 'Output only. The origin of the project.', 'x-google-enum-descriptions': ['Unspecified origin. By default, the project is created from Stitch.', 'The project is created from Stitch.', 'The project is imported from Galileo.']}, 'metadata': {'$ref': '#/$defs/ProjectMetadata', 'description': 'Metadata of the project.'}, 'readTime': {'type': 'string', 'format': 'date-time', 'readOnly': True, 'description': 'Output only. The time the project was last read. Populated only when listing recently viewed projects.'}, 'createTime': {'type': 'string', 'format': 'date-time', 'readOnly': True, 'description': 'Output only. The time when the project was created.'}, 'deviceType': {'enum': ['DEVICE_TYPE_UNSPECIFIED', 'MOBILE', 'DESKTOP', 'TABLET', 'AGNOSTIC'], 'type': 'string', 'description': 'Optional. The device type of the project.', 'x-google-enum-descriptions': ['Unspecified device type.', 'A design for a mobile device.', 'A design for a desktop device.', 'A design for a tablet device.', 'A design that is not tied to a specific device.']}, 'updateTime': {'type': 'string', 'format': 'date-time', 'readOnly': True, 'description': 'Output only. The time when the project was last updated.'}, 'visibility': {'enum': ['VISIBILITY_UNSPECIFIED', 'PUBLIC', 'PRIVATE'], 'type': 'string', 'description': 'Optional. The visibility setting of the project.', 'x-google-enum-descriptions': ['Unspecified visibility. By default, the project is private.', 'The project is visible to all users, and may be featured in the feed.', 'The project is visible to only the creator.']}, 'designTheme': {'$ref': '#/$defs/DesignTheme', 'readOnly': True, 'description': 'Output only. The theme used to generate the first design in the project.'}, 'projectType': {'enum': ['PROJECT_TYPE_UNSPECIFIED', 'TEXT_TO_UI', 'TEXT_TO_UI_PRO', 'TEXT_TO_UI_PRO_IMAGE_SPACE', 'IMAGE_TO_UI', 'IMAGE_TO_UI_PRO', 'PROJECT_DESIGN', 'DESIGN_V2'], 'type': 'string', 'description': 'Optional. The type of the project. If not specified, the project is a text to UI project.', 'x-google-enum-descriptions': ['Unspecified project type. By default, the project is a text to UI project.', 'A text to UI project.', 'Pro version of text to UI project.', 'Deprecated. Pro version of text to UI project using image space for edits.', 'An image to UI project.', 'Deprecated.', 'A new design project.', 'A V2 design project.']}, 'backgroundTheme': {'type': 'string', 'description': 'Optional. The background theme of the project.'}, 'screenInstances': {'type': 'array', 'items': {'$ref': '#/$defs/ScreenInstance'}, 'readOnly': True, 'description': 'Output only. The screen instances on this project.'}, 'thumbnailScreenshot': {'$ref': '#/$defs/File', 'description': 'Optional. The screenshot to be used as the thumbnail for the project. Same as normal design screenshots, this contains the FIFE serving_base_url which requires additional FIFE URL options to be set for sizing.'}}, 'description': 'A project is a single app.'}
get_screen
Retrieves the details of a specific screen within a project.
読み取り専用
入力スキーマ
{'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'description': 'Required. Identifier. The resource name of the screen to retrieve. Format: `projects/{project}/screens/{screen}` Example: `projects/4044680601076201931/screens/98b50e2ddc9943efb387052637738f61`', 'x-google-identifier': True}}, 'description': 'Request message for GetScreen.'}
出力スキーマ
{'type': 'object', '$defs': {'File': {'type': 'object', 'properties': {'name': {'type': 'string', 'description': 'Identifier. The resource name of the file. Format: projects/{project}/files/{file}', 'x-google-identifier': True}, 'mimeType': {'type': 'string', 'description': 'Optional. The mime type of the file. E.g. "image/png", "text/html".'}, 'downloadUrl': {'type': 'string', 'description': 'Optional. The URL of the file for download. For image files, this would be FIFE base URLs. Only one of the following fields should be set: this field, uploadBlobId, fileContentBase64.'}, 'uploadBlobId': {'type': 'string', 'description': 'Optional. The BlobId from Scotty/contrib service file upload. This points to a temporary blobstore location of the file. Only one of the following fields should be set: this field, downloadUrl, fileContentBase64.'}, 'userFeedback': {'$ref': '#/$defs/UserFeedback', 'readOnly': True, 'description': 'Output only. The latest feedback submitted for the file.'}, 'fileContentBase64': {'type': 'string', 'writeOnly': True, 'description': 'Optional. Input only. The base64-encoded string of the file content. Only one of the following fields should be set: this field, uploadBlobId, downloadUrl.'}}, 'description': 'A File resource.'}, 'UserFeedback': {'type': 'object', 'properties': {'rating': {'enum': ['RATING_UNSPECIFIED', 'POSITIVE', 'NEGATIVE'], 'type': 'string', 'description': 'Optional. The user rating of the interaction.', 'x-google-enum-descriptions': ['Unspecified rating.', 'Positive rating.', 'Negative rating.']}, 'comment': {'type': 'string', 'description': 'Optional. Additional comment for the rating.'}, 'designFeedbackReason': {'enum': ['DESIGN_FEEDBACK_REASON_UNSPECIFIED', 'DESIGN_DOESNT_MATCH_PROMPT', 'EDIT_DOESNT_MATCH_PROMPT', 'DESCRIPTION_DOESNT_MATCH', 'COMPONENT_ISSUE', 'INCORRECT_THEME', 'FIGMA_EXPORT_FAILED', 'OTHER'], 'type': 'string', 'description': 'Optional. The reason for the feedback for a design, if the rating is negative.', 'x-google-enum-descriptions': ['Unspecified reason.', 'The design does not match the prompt.', 'The edit does not match the prompt.', 'The description does not match the design.', 'There is an issue with a component in the design.', 'The theme is incorrect.', 'The Figma export failed.', 'Other reason.']}}, 'description': 'User feedback for a given interaction.'}}, 'properties': {'name': {'type': 'string', 'description': 'Identifier. The name of the screen. Format: projects/{project}/screens/{screen}', 'x-google-identifier': True}, 'title': {'type': 'string', 'description': 'The title of the screen.'}, 'width': {'type': 'string', 'description': 'The width of the screen.'}, 'height': {'type': 'string', 'description': 'The height of the screen.'}, 'htmlCode': {'$ref': '#/$defs/File', 'description': 'The HTML code of the screen.'}, 'deviceType': {'enum': ['DEVICE_TYPE_UNSPECIFIED', 'MOBILE', 'DESKTOP', 'TABLET', 'AGNOSTIC'], 'type': 'string', 'description': 'The device type of the screen.', 'x-google-enum-descriptions': ['Unspecified device type.', 'A design for a mobile device.', 'A design for a desktop device.', 'A design for a tablet device.', 'A design that is not tied to a specific device.']}, 'screenshot': {'$ref': '#/$defs/File', 'description': 'The screenshot of the screen.'}}, 'description': 'A screen generated by the agent.'}
list_design_systems
Lists all design systems for a given project.
読み取り専用
入力スキーマ
{'type': 'object', 'properties': {'projectId': {'type': 'string', 'description': "Optional. The project ID to list design systems for, example: '4044680601076201931', without the `projects/` prefix. If empty, lists all global design systems."}}, 'description': 'Request message for ListDesignSystems.'}
出力スキーマ
{'type': 'object', '$defs': {'Asset': {'type': 'object', 'properties': {'name': {'type': 'string', 'description': 'Identifier. The resource name of the asset. Format: assets/{asset}', 'x-google-identifier': True}, 'version': {'type': 'string', 'format': 'int64', 'readOnly': True, 'description': 'Output only. The version of this asset. 0 indicates unversioned (legacy data). Incremented when the asset content changes.'}, 'copiedFrom': {'type': 'string', 'description': 'Optional. The resource name of the asset this was copied from, if any. Format: assets/{asset} Tracks the fork history of assets.'}, 'designSystem': {'$ref': '#/$defs/DesignSystem', 'description': 'Optional. The design system.'}}, 'description': 'An Asset resource.'}, 'Typography': {'type': 'object', 'properties': {'fontSize': {'type': 'string', 'description': 'Optional. The CSS font-size value (e.g., "32px", "1rem").'}, 'fontFamily': {'type': 'string', 'description': 'Optional. The CSS font-family value (e.g., "Manrope", "Inter").'}, 'fontWeight': {'type': 'string', 'description': 'Optional. The CSS font-weight value (e.g., "400", "700").'}, 'lineHeight': {'type': 'string', 'description': 'Optional. The CSS line-height value (e.g., "1.5", "40px").'}, 'letterSpacing': {'type': 'string', 'description': 'Optional. The CSS letter-spacing value (e.g., "0px", "-0.02em").'}}, 'description': 'A typography style token in a design system, defining the visual properties for a single text level (e.g. "display-lg", "body-md").'}, 'DesignTheme': {'type': 'object', 'properties': {'font': {'enum': ['FONT_UNSPECIFIED', 'BE_VIETNAM_PRO', 'EPILOGUE', 'INTER', 'LEXEND', 'MANROPE', 'NEWSREADER', 'NOTO_SERIF', 'PLUS_JAKARTA_SANS', 'PUBLIC_SANS', 'SPACE_GROTESK', 'SPLINE_SANS', 'WORK_SANS', 'DOMINE', 'LIBRE_CASLON_TEXT', 'EB_GARAMOND', 'LITERATA', 'SOURCE_SERIF_4', 'SOURCE_SERIF_FOUR', 'MONTSERRAT', 'METROPHOBIC', 'METROPOLIS', 'SOURCE_SANS_3', 'SOURCE_SANS_THREE', 'NUNITO_SANS', 'ARIMO', 'HANKEN_GROTESK', 'RUBIK', 'GEIST', 'DM_SANS', 'IBM_PLEX_SANS', 'SORA', 'ANYBODY', 'ANTON', 'ARCHIVO_NARROW', 'ATKINSON_HYPERLEGIBLE_NEXT', 'BARLOW_CONDENSED', 'BEBAS_NEUE', 'BODONI_MODA', 'BRICOLAGE_GROTESQUE', 'CHIVO', 'CLIMATE_CRISIS', 'COMFORTAA', 'COURIER_PRIME', 'FIRA_SANS', 'GOOGLE_SANS', 'GOOGLE_SANS_CODE', 'GOOGLE_SANS_FLEX', 'GOOGLE_SANS_MONO', 'GOOGLE_SANS_TEXT', 'IBM_PLEX_SERIF', 'JETBRAINS_MONO', 'KARLA', 'LIBRE_FRANKLIN', 'MERRIWEATHER', 'NOTO_SANS', 'OPEN_SANS', 'OSWALD', 'OUTFIT', 'PLAYFAIR_DISPLAY', 'POIRET_ONE', 'QUESTRIAL', 'QUICKSAND', 'RALEWAY', 'ROBOTO_FLEX', 'SPACE_MONO', 'SYNE', 'VOLLKORN'], 'type': 'string', 'deprecated': True, 'description': 'Optional. DEPRECATED: The font of the design. Planned to be deprecated in favor of `headline_font`, `body_font`, and `label_font`.', 'x-google-enum-deprecated': [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, True, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False], 'x-google-enum-descriptions': ['Unspecified font.', 'Be Vietnam Pro font.', 'Epilogue font.', 'Inter font.', 'Lexend font.', 'Manrope font.', 'Newsreader font.', 'Noto Serif font.', 'Plus Jakarta Sans font.', 'Public Sans font.', 'Space Grotesk font.', 'Spline Sans font.', 'Work Sans font.', 'Domine font.', 'Libre Caslon Text font.', 'EB Garamond font.', 'Literata font.', 'Source Serif 4 font.', 'Source Serif 4 font. Deprecated.', 'Montserrat font.', 'The Metrophobic font.', 'Metropolis font. Deprecated.', 'The Source Sans 3 font.', 'Source Sans 3 font. Deprecated.', 'Nunito Sans font.', 'Arimo font.', 'Hanken Grotesk font.', 'Rubik font.', 'Geist font.', 'DM Sans font.', 'IBM Plex Sans font.', 'Sora font.', 'Anybody font.', 'Anton font.', 'Archivo Narrow font.', 'Atkinson Hyperlegible Next font.', 'Barlow Condensed font.', 'Bebas Neue font.', 'Bodoni Moda font.', 'Bricolage Grotesque font.', 'Chivo font.', 'Climate Crisis font.', 'Comfortaa font.', 'Courier Prime font.', 'Fira Sans font.', 'Google Sans font.', 'Google Sans Code font.', 'Google Sans Flex font.', 'Google Sans Mono font.', 'Google Sans Text font.', 'IBM Plex Serif font.', 'JetBrains Mono font.', 'Karla font.', 'Libre Franklin font.', 'Merriweather font.', 'Noto Sans font.', 'Open Sans font.', 'Oswald font.', 'Outfit font.', 'Playfair Display font.', 'Poiret One font.', 'Questrial font.', 'Quicksand font.', 'Raleway font.', 'Roboto Flex font.', 'Space Mono font.', 'Syne font.', 'Vollkorn font.']}, 'preset': {'type': 'string', 'deprecated': True, 'description': 'Optional. DEPRECATED: The preset color of the design.'}, 'spacing': {'type': 'object', 'description': 'Optional. Spacing units for the design system. Maps spacing names to their values.', 'additionalProperties': {'type': 'string'}}, 'bodyFont': {'enum': ['FONT_UNSPECIFIED', 'BE_VIETNAM_PRO', 'EPILOGUE', 'INTER', 'LEXEND', 'MANROPE', 'NEWSREADER', 'NOTO_SERIF', 'PLUS_JAKARTA_SANS', 'PUBLIC_SANS', 'SPACE_GROTESK', 'SPLINE_SANS', 'WORK_SANS', 'DOMINE', 'LIBRE_CASLON_TEXT', 'EB_GARAMOND', 'LITERATA', 'SOURCE_SERIF_4', 'SOURCE_SERIF_FOUR', 'MONTSERRAT', 'METROPHOBIC', 'METROPOLIS', 'SOURCE_SANS_3', 'SOURCE_SANS_THREE', 'NUNITO_SANS', 'ARIMO', 'HANKEN_GROTESK', 'RUBIK', 'GEIST', 'DM_SANS', 'IBM_PLEX_SANS', 'SORA', 'ANYBODY', 'ANTON', 'ARCHIVO_NARROW', 'ATKINSON_HYPERLEGIBLE_NEXT', 'BARLOW_CONDENSED', 'BEBAS_NEUE', 'BODONI_MODA', 'BRICOLAGE_GROTESQUE', 'CHIVO', 'CLIMATE_CRISIS', 'COMFORTAA', 'COURIER_PRIME', 'FIRA_SANS', 'GOOGLE_SANS', 'GOOGLE_SANS_CODE', 'GOOGLE_SANS_FLEX', 'GOOGLE_SANS_MONO', 'GOOGLE_SANS_TEXT', 'IBM_PLEX_SERIF', 'JETBRAINS_MONO', 'KARLA', 'LIBRE_FRANKLIN', 'MERRIWEATHER', 'NOTO_SANS', 'OPEN_SANS', 'OSWALD', 'OUTFIT', 'PLAYFAIR_DISPLAY', 'POIRET_ONE', 'QUESTRIAL', 'QUICKSAND', 'RALEWAY', 'ROBOTO_FLEX', 'SPACE_MONO', 'SYNE', 'VOLLKORN'], 'type': 'string', 'description': 'Optional. Body font.', 'x-google-enum-deprecated': [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, True, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False], 'x-google-enum-descriptions': ['Unspecified font.', 'Be Vietnam Pro font.', 'Epilogue font.', 'Inter font.', 'Lexend font.', 'Manrope font.', 'Newsreader font.', 'Noto Serif font.', 'Plus Jakarta Sans font.', 'Public Sans font.', 'Space Grotesk font.', 'Spline Sans font.', 'Work Sans font.', 'Domine font.', 'Libre Caslon Text font.', 'EB Garamond font.', 'Literata font.', 'Source Serif 4 font.', 'Source Serif 4 font. Deprecated.', 'Montserrat font.', 'The Metrophobic font.', 'Metropolis font. Deprecated.', 'The Source Sans 3 font.', 'Source Sans 3 font. Deprecated.', 'Nunito Sans font.', 'Arimo font.', 'Hanken Grotesk font.', 'Rubik font.', 'Geist font.', 'DM Sans font.', 'IBM Plex Sans font.', 'Sora font.', 'Anybody font.', 'Anton font.', 'Archivo Narrow font.', 'Atkinson Hyperlegible Next font.', 'Barlow Condensed font.', 'Bebas Neue font.', 'Bodoni Moda font.', 'Bricolage Grotesque font.', 'Chivo font.', 'Climate Crisis font.', 'Comfortaa font.', 'Courier Prime font.', 'Fira Sans font.', 'Google Sans font.', 'Google Sans Code font.', 'Google Sans Flex font.', 'Google Sans Mono font.', 'Google Sans Text font.', 'IBM Plex Serif font.', 'JetBrains Mono font.', 'Karla font.', 'Libre Franklin font.', 'Merriweather font.', 'Noto Sans font.', 'Open Sans font.', 'Oswald font.', 'Outfit font.', 'Playfair Display font.', 'Poiret One font.', 'Questrial font.', 'Quicksand font.', 'Raleway font.', 'Roboto Flex font.', 'Space Mono font.', 'Syne font.', 'Vollkorn font.']}, 'designMd': {'type': 'string', 'description': 'Optional. A markdown file that describes the design system.'}, 'colorMode': {'enum': ['COLOR_MODE_UNSPECIFIED', 'LIGHT', 'DARK'], 'type': 'string', 'description': 'Required. The mode of appearance of the design.', 'x-google-enum-descriptions': ['Unspecified color mode.', 'Light mode.', 'Dark mode.']}, 'labelFont': {'enum': ['FONT_UNSPECIFIED', 'BE_VIETNAM_PRO', 'EPILOGUE', 'INTER', 'LEXEND', 'MANROPE', 'NEWSREADER', 'NOTO_SERIF', 'PLUS_JAKARTA_SANS', 'PUBLIC_SANS', 'SPACE_GROTESK', 'SPLINE_SANS', 'WORK_SANS', 'DOMINE', 'LIBRE_CASLON_TEXT', 'EB_GARAMOND', 'LITERATA', 'SOURCE_SERIF_4', 'SOURCE_SERIF_FOUR', 'MONTSERRAT', 'METROPHOBIC', 'METROPOLIS', 'SOURCE_SANS_3', 'SOURCE_SANS_THREE', 'NUNITO_SANS', 'ARIMO', 'HANKEN_GROTESK', 'RUBIK', 'GEIST', 'DM_SANS', 'IBM_PLEX_SANS', 'SORA', 'ANYBODY', 'ANTON', 'ARCHIVO_NARROW', 'ATKINSON_HYPERLEGIBLE_NEXT', 'BARLOW_CONDENSED', 'BEBAS_NEUE', 'BODONI_MODA', 'BRICOLAGE_GROTESQUE', 'CHIVO', 'CLIMATE_CRISIS', 'COMFORTAA', 'COURIER_PRIME', 'FIRA_SANS', 'GOOGLE_SANS', 'GOOGLE_SANS_CODE', 'GOOGLE_SANS_FLEX', 'GOOGLE_SANS_MONO', 'GOOGLE_SANS_TEXT', 'IBM_PLEX_SERIF', 'JETBRAINS_MONO', 'KARLA', 'LIBRE_FRANKLIN', 'MERRIWEATHER', 'NOTO_SANS', 'OPEN_SANS', 'OSWALD', 'OUTFIT', 'PLAYFAIR_DISPLAY', 'POIRET_ONE', 'QUESTRIAL', 'QUICKSAND', 'RALEWAY', 'ROBOTO_FLEX', 'SPACE_MONO', 'SYNE', 'VOLLKORN'], 'type': 'string', 'description': 'Optional. Label font.', 'x-google-enum-deprecated': [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, True, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False], 'x-google-enum-descriptions': ['Unspecified font.', 'Be Vietnam Pro font.', 'Epilogue font.', 'Inter font.', 'Lexend font.', 'Manrope font.', 'Newsreader font.', 'Noto Serif font.', 'Plus Jakarta Sans font.', 'Public Sans font.', 'Space Grotesk font.', 'Spline Sans font.', 'Work Sans font.', 'Domine font.', 'Libre Caslon Text font.', 'EB Garamond font.', 'Literata font.', 'Source Serif 4 font.', 'Source Serif 4 font. Deprecated.', 'Montserrat font.', 'The Metrophobic font.', 'Metropolis font. Deprecated.', 'The Source Sans 3 font.', 'Source Sans 3 font. Deprecated.', 'Nunito Sans font.', 'Arimo font.', 'Hanken Grotesk font.', 'Rubik font.', 'Geist font.', 'DM Sans font.', 'IBM Plex Sans font.', 'Sora font.', 'Anybody font.', 'Anton font.', 'Archivo Narrow font.', 'Atkinson Hyperlegible Next font.', 'Barlow Condensed font.', 'Bebas Neue font.', 'Bodoni Moda font.', 'Bricolage Grotesque font.', 'Chivo font.', 'Climate Crisis font.', 'Comfortaa font.', 'Courier Prime font.', 'Fira Sans font.', 'Google Sans font.', 'Google Sans Code font.', 'Google Sans Flex font.', 'Google Sans Mono font.', 'Google Sans Text font.', 'IBM Plex Serif font.', 'JetBrains Mono font.', 'Karla font.', 'Libre Franklin font.', 'Merriweather font.', 'Noto Sans font.', 'Open Sans font.', 'Oswald font.', 'Outfit font.', 'Playfair Display font.', 'Poiret One font.', 'Questrial font.', 'Quicksand font.', 'Raleway font.', 'Roboto Flex font.', 'Space Mono font.', 'Syne font.', 'Vollkorn font.']}, 'roundness': {'enum': ['ROUNDNESS_UNSPECIFIED', 'ROUND_TWO', 'ROUND_FOUR', 'ROUND_EIGHT', 'ROUND_TWELVE', 'ROUND_FULL'], 'type': 'string', 'description': 'Required. The roundness of the design.', 'x-google-enum-deprecated': [False, True, False, False, False, False], 'x-google-enum-descriptions': ['Unspecified roundness.', 'Round 2. Unused.', 'Round 4.', 'Round 8.', 'Round 12 or full', 'Round full.']}, 'components': {'type': 'object', 'description': 'Optional. Component tokens for the design system. Maps component names to their tokens.', 'additionalProperties': {'$ref': '#/$defs/ComponentTokens'}}, 'saturation': {'type': 'integer', 'format': 'int32', 'deprecated': True, 'description': 'Optional. DEPRECATED: The saturation of the design between 1 and 4.'}, 'typography': {'type': 'object', 'description': 'Optional. Typography scale for the design system. Maps level names (e.g. "display-lg", "body-md") to their Typography token.', 'additionalProperties': {'$ref': '#/$defs/Typography'}}, 'customColor': {'type': 'string', 'description': 'Optional. A custom theme primary color, or a seed color for the dynamic color system (hex format, e.g., "#ff0000").'}, 'description': {'type': 'string', 'deprecated': True, 'description': 'Optional. A brief description of the theme aesthetic.'}, 'namedColors': {'type': 'object', 'description': 'Optional. The color scheme of the design. This is a map of color names to hex color codes. Example: {"primary": "#ff0000", "secondary": "#00ff00", "tertiary": "#0000ff"}', 'additionalProperties': {'type': 'string'}}, 'colorVariant': {'enum': ['COLOR_VARIANT_UNSPECIFIED', 'MONOCHROME', 'NEUTRAL', 'TONAL_SPOT', 'VIBRANT', 'EXPRESSIVE', 'FIDELITY', 'CONTENT', 'RAINBOW', 'FRUIT_SALAD'], 'type': 'string', 'description': 'Optional. The variant of the dynamic color system.', 'x-google-enum-descriptions': ['Unspecified color variant.', 'Monochrome variant.', 'Neutral variant.', 'Tonal spot variant.', 'Vibrant variant.', 'Expressive variant.', 'Fidelity variant.', 'Content variant.', 'Rainbow variant.', 'Fruit salad variant.']}, 'headlineFont': {'enum': ['FONT_UNSPECIFIED', 'BE_VIETNAM_PRO', 'EPILOGUE', 'INTER', 'LEXEND', 'MANROPE', 'NEWSREADER', 'NOTO_SERIF', 'PLUS_JAKARTA_SANS', 'PUBLIC_SANS', 'SPACE_GROTESK', 'SPLINE_SANS', 'WORK_SANS', 'DOMINE', 'LIBRE_CASLON_TEXT', 'EB_GARAMOND', 'LITERATA', 'SOURCE_SERIF_4', 'SOURCE_SERIF_FOUR', 'MONTSERRAT', 'METROPHOBIC', 'METROPOLIS', 'SOURCE_SANS_3', 'SOURCE_SANS_THREE', 'NUNITO_SANS', 'ARIMO', 'HANKEN_GROTESK', 'RUBIK', 'GEIST', 'DM_SANS', 'IBM_PLEX_SANS', 'SORA', 'ANYBODY', 'ANTON', 'ARCHIVO_NARROW', 'ATKINSON_HYPERLEGIBLE_NEXT', 'BARLOW_CONDENSED', 'BEBAS_NEUE', 'BODONI_MODA', 'BRICOLAGE_GROTESQUE', 'CHIVO', 'CLIMATE_CRISIS', 'COMFORTAA', 'COURIER_PRIME', 'FIRA_SANS', 'GOOGLE_SANS', 'GOOGLE_SANS_CODE', 'GOOGLE_SANS_FLEX', 'GOOGLE_SANS_MONO', 'GOOGLE_SANS_TEXT', 'IBM_PLEX_SERIF', 'JETBRAINS_MONO', 'KARLA', 'LIBRE_FRANKLIN', 'MERRIWEATHER', 'NOTO_SANS', 'OPEN_SANS', 'OSWALD', 'OUTFIT', 'PLAYFAIR_DISPLAY', 'POIRET_ONE', 'QUESTRIAL', 'QUICKSAND', 'RALEWAY', 'ROBOTO_FLEX', 'SPACE_MONO', 'SYNE', 'VOLLKORN'], 'type': 'string', 'description': 'Optional. Headline font.', 'x-google-enum-deprecated': [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, True, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False], 'x-google-enum-descriptions': ['Unspecified font.', 'Be Vietnam Pro font.', 'Epilogue font.', 'Inter font.', 'Lexend font.', 'Manrope font.', 'Newsreader font.', 'Noto Serif font.', 'Plus Jakarta Sans font.', 'Public Sans font.', 'Space Grotesk font.', 'Spline Sans font.', 'Work Sans font.', 'Domine font.', 'Libre Caslon Text font.', 'EB Garamond font.', 'Literata font.', 'Source Serif 4 font.', 'Source Serif 4 font. Deprecated.', 'Montserrat font.', 'The Metrophobic font.', 'Metropolis font. Deprecated.', 'The Source Sans 3 font.', 'Source Sans 3 font. Deprecated.', 'Nunito Sans font.', 'Arimo font.', 'Hanken Grotesk font.', 'Rubik font.', 'Geist font.', 'DM Sans font.', 'IBM Plex Sans font.', 'Sora font.', 'Anybody font.', 'Anton font.', 'Archivo Narrow font.', 'Atkinson Hyperlegible Next font.', 'Barlow Condensed font.', 'Bebas Neue font.', 'Bodoni Moda font.', 'Bricolage Grotesque font.', 'Chivo font.', 'Climate Crisis font.', 'Comfortaa font.', 'Courier Prime font.', 'Fira Sans font.', 'Google Sans font.', 'Google Sans Code font.', 'Google Sans Flex font.', 'Google Sans Mono font.', 'Google Sans Text font.', 'IBM Plex Serif font.', 'JetBrains Mono font.', 'Karla font.', 'Libre Franklin font.', 'Merriweather font.', 'Noto Sans font.', 'Open Sans font.', 'Oswald font.', 'Outfit font.', 'Playfair Display font.', 'Poiret One font.', 'Questrial font.', 'Quicksand font.', 'Raleway font.', 'Roboto Flex font.', 'Space Mono font.', 'Syne font.', 'Vollkorn font.']}, 'spacingScale': {'type': 'integer', 'format': 'int32', 'description': 'Optional. The spacing scale level (0=minimal, 1=compact, 2=normal, 3=spacious).'}, 'backgroundDark': {'type': 'string', 'deprecated': True, 'description': 'Optional. DEPRECATED: The background color for dark mode (hex format, e.g., "#1a1a1a").'}, 'bodyFontFamily': {'type': 'string', 'description': 'Optional. Body font family name (e.g., "Inter", "Roboto").'}, 'backgroundLight': {'type': 'string', 'deprecated': True, 'description': 'Optional. DEPRECATED: The background color for light mode (hex format, e.g., "#f8f8f8").'}, 'labelFontFamily': {'type': 'string', 'description': 'Optional. Label font family name (e.g., "Inter", "Roboto").'}, 'headlineFontFamily': {'type': 'string', 'description': 'Optional. Headline font family name (e.g., "Inter", "Roboto").'}, 'overrideNeutralColor': {'type': 'string', 'description': 'Optional. Override neutral color for the dynamic color system (hex format, e.g., "#ffffff").'}, 'overridePrimaryColor': {'type': 'string', 'description': 'Optional. Override primary color for the dynamic color system (hex format, e.g., "#ff0000").'}, 'overrideTertiaryColor': {'type': 'string', 'description': 'Optional. Override tertiary color for the dynamic color system (hex format, e.g., "#0000ff").'}, 'overrideSecondaryColor': {'type': 'string', 'description': 'Optional. Override secondary color for the dynamic color system (hex format, e.g., "#00ff00").'}}, 'description': 'The theme of the design. Next ID: 27 LINT.IfChange'}, 'DesignSystem': {'type': 'object', 'properties': {'theme': {'$ref': '#/$defs/DesignTheme', 'description': 'Optional. The theme of the design system.'}, 'displayName': {'type': 'string', 'description': 'Optional. The display name of the design system.'}, 'designTokens': {'type': 'string', 'description': 'Optional. Serialized JSON object of the DTCG format design tokens.'}, 'styleGuidelines': {'type': 'string', 'description': 'Optional. Freeform text description of the style guidelines. This field is not displayed to the user and should not be included in MCP.'}}, 'description': "Represents a collection of guidelines, design tokens, and reusable components that define the visual and functional characteristics of a product's design. This is used to guide the generation of consistent and branded designs. LINT.IfChange"}, 'ComponentTokens': {'type': 'object', 'properties': {'tokens': {'type': 'object', 'description': 'Optional. A component may have these sub tokens: - backgroundColor: - textColor: - typography: - rounded: - padding: The value may be a literal value or a reference. A token reference must be wrapped in curly braces, and contain an object path to another value in the design system. The referenced object must be a primitive value, e.g. colors.primary-60, rather than an object, e.g. colors.', 'additionalProperties': {'type': 'string'}}}, 'description': 'A component style token in a design system.'}}, 'properties': {'designSystems': {'type': 'array', 'items': {'$ref': '#/$defs/Asset'}, 'description': 'The design systems for the given project.'}}, 'description': 'Response message for ListDesignSystems.'}
list_projects
Lists all Stitch projects accessible to the user. By default, it lists projects owned by the user.
読み取り専用
入力スキーマ
{'type': 'object', 'properties': {'filter': {'type': 'string', 'description': 'Optional. A filter to apply to the list of projects, following a subset of AIP-160. This service supports filtering on the `view` field. Supported filters: * `view=owned`: Lists only projects owned by the user. This is the default behavior if no filter is specified. * `view=shared`: Lists only projects shared with the user. Example: `view=owned`'}}, 'description': 'Request message for ListProjects.'}
出力スキーマ
{'type': 'object', '$defs': {'File': {'type': 'object', 'properties': {'name': {'type': 'string', 'description': 'Identifier. The resource name of the file. Format: projects/{project}/files/{file}', 'x-google-identifier': True}, 'mimeType': {'type': 'string', 'description': 'Optional. The mime type of the file. E.g. "image/png", "text/html".'}, 'downloadUrl': {'type': 'string', 'description': 'Optional. The URL of the file for download. For image files, this would be FIFE base URLs. Only one of the following fields should be set: this field, uploadBlobId, fileContentBase64.'}, 'uploadBlobId': {'type': 'string', 'description': 'Optional. The BlobId from Scotty/contrib service file upload. This points to a temporary blobstore location of the file. Only one of the following fields should be set: this field, downloadUrl, fileContentBase64.'}, 'userFeedback': {'$ref': '#/$defs/UserFeedback', 'readOnly': True, 'description': 'Output only. The latest feedback submitted for the file.'}, 'fileContentBase64': {'type': 'string', 'writeOnly': True, 'description': 'Optional. Input only. The base64-encoded string of the file content. Only one of the following fields should be set: this field, uploadBlobId, downloadUrl.'}}, 'description': 'A File resource.'}, 'Project': {'type': 'object', 'properties': {'name': {'type': 'string', 'description': 'Identifier. The resource name of the project. Format: projects/{project}', 'x-google-identifier': True}, 'title': {'type': 'string', 'description': 'Optional. The title of the project.'}, 'origin': {'enum': ['ORIGIN_UNSPECIFIED', 'STITCH', 'IMPORTED_FROM_GALILEO'], 'type': 'string', 'readOnly': True, 'description': 'Output only. The origin of the project.', 'x-google-enum-descriptions': ['Unspecified origin. By default, the project is created from Stitch.', 'The project is created from Stitch.', 'The project is imported from Galileo.']}, 'metadata': {'$ref': '#/$defs/ProjectMetadata', 'description': 'Metadata of the project.'}, 'readTime': {'type': 'string', 'format': 'date-time', 'readOnly': True, 'description': 'Output only. The time the project was last read. Populated only when listing recently viewed projects.'}, 'createTime': {'type': 'string', 'format': 'date-time', 'readOnly': True, 'description': 'Output only. The time when the project was created.'}, 'deviceType': {'enum': ['DEVICE_TYPE_UNSPECIFIED', 'MOBILE', 'DESKTOP', 'TABLET', 'AGNOSTIC'], 'type': 'string', 'description': 'Optional. The device type of the project.', 'x-google-enum-descriptions': ['Unspecified device type.', 'A design for a mobile device.', 'A design for a desktop device.', 'A design for a tablet device.', 'A design that is not tied to a specific device.']}, 'updateTime': {'type': 'string', 'format': 'date-time', 'readOnly': True, 'description': 'Output only. The time when the project was last updated.'}, 'visibility': {'enum': ['VISIBILITY_UNSPECIFIED', 'PUBLIC', 'PRIVATE'], 'type': 'string', 'description': 'Optional. The visibility setting of the project.', 'x-google-enum-descriptions': ['Unspecified visibility. By default, the project is private.', 'The project is visible to all users, and may be featured in the feed.', 'The project is visible to only the creator.']}, 'designTheme': {'$ref': '#/$defs/DesignTheme', 'readOnly': True, 'description': 'Output only. The theme used to generate the first design in the project.'}, 'projectType': {'enum': ['PROJECT_TYPE_UNSPECIFIED', 'TEXT_TO_UI', 'TEXT_TO_UI_PRO', 'TEXT_TO_UI_PRO_IMAGE_SPACE', 'IMAGE_TO_UI', 'IMAGE_TO_UI_PRO', 'PROJECT_DESIGN', 'DESIGN_V2'], 'type': 'string', 'description': 'Optional. The type of the project. If not specified, the project is a text to UI project.', 'x-google-enum-descriptions': ['Unspecified project type. By default, the project is a text to UI project.', 'A text to UI project.', 'Pro version of text to UI project.', 'Deprecated. Pro version of text to UI project using image space for edits.', 'An image to UI project.', 'Deprecated.', 'A new design project.', 'A V2 design project.']}, 'backgroundTheme': {'type': 'string', 'description': 'Optional. The background theme of the project.'}, 'screenInstances': {'type': 'array', 'items': {'$ref': '#/$defs/ScreenInstance'}, 'readOnly': True, 'description': 'Output only. The screen instances on this project.'}, 'thumbnailScreenshot': {'$ref': '#/$defs/File', 'description': 'Optional. The screenshot to be used as the thumbnail for the project. Same as normal design screenshots, this contains the FIFE serving_base_url which requires additional FIFE URL options to be set for sizing.'}}, 'description': 'A project is a single app.'}, 'Typography': {'type': 'object', 'properties': {'fontSize': {'type': 'string', 'description': 'Optional. The CSS font-size value (e.g., "32px", "1rem").'}, 'fontFamily': {'type': 'string', 'description': 'Optional. The CSS font-family value (e.g., "Manrope", "Inter").'}, 'fontWeight': {'type': 'string', 'description': 'Optional. The CSS font-weight value (e.g., "400", "700").'}, 'lineHeight': {'type': 'string', 'description': 'Optional. The CSS line-height value (e.g., "1.5", "40px").'}, 'letterSpacing': {'type': 'string', 'description': 'Optional. The CSS letter-spacing value (e.g., "0px", "-0.02em").'}}, 'description': 'A typography style token in a design system, defining the visual properties for a single text level (e.g. "display-lg", "body-md").'}, 'DesignTheme': {'type': 'object', 'properties': {'font': {'enum': ['FONT_UNSPECIFIED', 'BE_VIETNAM_PRO', 'EPILOGUE', 'INTER', 'LEXEND', 'MANROPE', 'NEWSREADER', 'NOTO_SERIF', 'PLUS_JAKARTA_SANS', 'PUBLIC_SANS', 'SPACE_GROTESK', 'SPLINE_SANS', 'WORK_SANS', 'DOMINE', 'LIBRE_CASLON_TEXT', 'EB_GARAMOND', 'LITERATA', 'SOURCE_SERIF_4', 'SOURCE_SERIF_FOUR', 'MONTSERRAT', 'METROPHOBIC', 'METROPOLIS', 'SOURCE_SANS_3', 'SOURCE_SANS_THREE', 'NUNITO_SANS', 'ARIMO', 'HANKEN_GROTESK', 'RUBIK', 'GEIST', 'DM_SANS', 'IBM_PLEX_SANS', 'SORA', 'ANYBODY', 'ANTON', 'ARCHIVO_NARROW', 'ATKINSON_HYPERLEGIBLE_NEXT', 'BARLOW_CONDENSED', 'BEBAS_NEUE', 'BODONI_MODA', 'BRICOLAGE_GROTESQUE', 'CHIVO', 'CLIMATE_CRISIS', 'COMFORTAA', 'COURIER_PRIME', 'FIRA_SANS', 'GOOGLE_SANS', 'GOOGLE_SANS_CODE', 'GOOGLE_SANS_FLEX', 'GOOGLE_SANS_MONO', 'GOOGLE_SANS_TEXT', 'IBM_PLEX_SERIF', 'JETBRAINS_MONO', 'KARLA', 'LIBRE_FRANKLIN', 'MERRIWEATHER', 'NOTO_SANS', 'OPEN_SANS', 'OSWALD', 'OUTFIT', 'PLAYFAIR_DISPLAY', 'POIRET_ONE', 'QUESTRIAL', 'QUICKSAND', 'RALEWAY', 'ROBOTO_FLEX', 'SPACE_MONO', 'SYNE', 'VOLLKORN'], 'type': 'string', 'deprecated': True, 'description': 'Optional. DEPRECATED: The font of the design. Planned to be deprecated in favor of `headline_font`, `body_font`, and `label_font`.', 'x-google-enum-deprecated': [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, True, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False], 'x-google-enum-descriptions': ['Unspecified font.', 'Be Vietnam Pro font.', 'Epilogue font.', 'Inter font.', 'Lexend font.', 'Manrope font.', 'Newsreader font.', 'Noto Serif font.', 'Plus Jakarta Sans font.', 'Public Sans font.', 'Space Grotesk font.', 'Spline Sans font.', 'Work Sans font.', 'Domine font.', 'Libre Caslon Text font.', 'EB Garamond font.', 'Literata font.', 'Source Serif 4 font.', 'Source Serif 4 font. Deprecated.', 'Montserrat font.', 'The Metrophobic font.', 'Metropolis font. Deprecated.', 'The Source Sans 3 font.', 'Source Sans 3 font. Deprecated.', 'Nunito Sans font.', 'Arimo font.', 'Hanken Grotesk font.', 'Rubik font.', 'Geist font.', 'DM Sans font.', 'IBM Plex Sans font.', 'Sora font.', 'Anybody font.', 'Anton font.', 'Archivo Narrow font.', 'Atkinson Hyperlegible Next font.', 'Barlow Condensed font.', 'Bebas Neue font.', 'Bodoni Moda font.', 'Bricolage Grotesque font.', 'Chivo font.', 'Climate Crisis font.', 'Comfortaa font.', 'Courier Prime font.', 'Fira Sans font.', 'Google Sans font.', 'Google Sans Code font.', 'Google Sans Flex font.', 'Google Sans Mono font.', 'Google Sans Text font.', 'IBM Plex Serif font.', 'JetBrains Mono font.', 'Karla font.', 'Libre Franklin font.', 'Merriweather font.', 'Noto Sans font.', 'Open Sans font.', 'Oswald font.', 'Outfit font.', 'Playfair Display font.', 'Poiret One font.', 'Questrial font.', 'Quicksand font.', 'Raleway font.', 'Roboto Flex font.', 'Space Mono font.', 'Syne font.', 'Vollkorn font.']}, 'preset': {'type': 'string', 'deprecated': True, 'description': 'Optional. DEPRECATED: The preset color of the design.'}, 'spacing': {'type': 'object', 'description': 'Optional. Spacing units for the design system. Maps spacing names to their values.', 'additionalProperties': {'type': 'string'}}, 'bodyFont': {'enum': ['FONT_UNSPECIFIED', 'BE_VIETNAM_PRO', 'EPILOGUE', 'INTER', 'LEXEND', 'MANROPE', 'NEWSREADER', 'NOTO_SERIF', 'PLUS_JAKARTA_SANS', 'PUBLIC_SANS', 'SPACE_GROTESK', 'SPLINE_SANS', 'WORK_SANS', 'DOMINE', 'LIBRE_CASLON_TEXT', 'EB_GARAMOND', 'LITERATA', 'SOURCE_SERIF_4', 'SOURCE_SERIF_FOUR', 'MONTSERRAT', 'METROPHOBIC', 'METROPOLIS', 'SOURCE_SANS_3', 'SOURCE_SANS_THREE', 'NUNITO_SANS', 'ARIMO', 'HANKEN_GROTESK', 'RUBIK', 'GEIST', 'DM_SANS', 'IBM_PLEX_SANS', 'SORA', 'ANYBODY', 'ANTON', 'ARCHIVO_NARROW', 'ATKINSON_HYPERLEGIBLE_NEXT', 'BARLOW_CONDENSED', 'BEBAS_NEUE', 'BODONI_MODA', 'BRICOLAGE_GROTESQUE', 'CHIVO', 'CLIMATE_CRISIS', 'COMFORTAA', 'COURIER_PRIME', 'FIRA_SANS', 'GOOGLE_SANS', 'GOOGLE_SANS_CODE', 'GOOGLE_SANS_FLEX', 'GOOGLE_SANS_MONO', 'GOOGLE_SANS_TEXT', 'IBM_PLEX_SERIF', 'JETBRAINS_MONO', 'KARLA', 'LIBRE_FRANKLIN', 'MERRIWEATHER', 'NOTO_SANS', 'OPEN_SANS', 'OSWALD', 'OUTFIT', 'PLAYFAIR_DISPLAY', 'POIRET_ONE', 'QUESTRIAL', 'QUICKSAND', 'RALEWAY', 'ROBOTO_FLEX', 'SPACE_MONO', 'SYNE', 'VOLLKORN'], 'type': 'string', 'description': 'Optional. Body font.', 'x-google-enum-deprecated': [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, True, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False], 'x-google-enum-descriptions': ['Unspecified font.', 'Be Vietnam Pro font.', 'Epilogue font.', 'Inter font.', 'Lexend font.', 'Manrope font.', 'Newsreader font.', 'Noto Serif font.', 'Plus Jakarta Sans font.', 'Public Sans font.', 'Space Grotesk font.', 'Spline Sans font.', 'Work Sans font.', 'Domine font.', 'Libre Caslon Text font.', 'EB Garamond font.', 'Literata font.', 'Source Serif 4 font.', 'Source Serif 4 font. Deprecated.', 'Montserrat font.', 'The Metrophobic font.', 'Metropolis font. Deprecated.', 'The Source Sans 3 font.', 'Source Sans 3 font. Deprecated.', 'Nunito Sans font.', 'Arimo font.', 'Hanken Grotesk font.', 'Rubik font.', 'Geist font.', 'DM Sans font.', 'IBM Plex Sans font.', 'Sora font.', 'Anybody font.', 'Anton font.', 'Archivo Narrow font.', 'Atkinson Hyperlegible Next font.', 'Barlow Condensed font.', 'Bebas Neue font.', 'Bodoni Moda font.', 'Bricolage Grotesque font.', 'Chivo font.', 'Climate Crisis font.', 'Comfortaa font.', 'Courier Prime font.', 'Fira Sans font.', 'Google Sans font.', 'Google Sans Code font.', 'Google Sans Flex font.', 'Google Sans Mono font.', 'Google Sans Text font.', 'IBM Plex Serif font.', 'JetBrains Mono font.', 'Karla font.', 'Libre Franklin font.', 'Merriweather font.', 'Noto Sans font.', 'Open Sans font.', 'Oswald font.', 'Outfit font.', 'Playfair Display font.', 'Poiret One font.', 'Questrial font.', 'Quicksand font.', 'Raleway font.', 'Roboto Flex font.', 'Space Mono font.', 'Syne font.', 'Vollkorn font.']}, 'designMd': {'type': 'string', 'description': 'Optional. A markdown file that describes the design system.'}, 'colorMode': {'enum': ['COLOR_MODE_UNSPECIFIED', 'LIGHT', 'DARK'], 'type': 'string', 'description': 'Required. The mode of appearance of the design.', 'x-google-enum-descriptions': ['Unspecified color mode.', 'Light mode.', 'Dark mode.']}, 'labelFont': {'enum': ['FONT_UNSPECIFIED', 'BE_VIETNAM_PRO', 'EPILOGUE', 'INTER', 'LEXEND', 'MANROPE', 'NEWSREADER', 'NOTO_SERIF', 'PLUS_JAKARTA_SANS', 'PUBLIC_SANS', 'SPACE_GROTESK', 'SPLINE_SANS', 'WORK_SANS', 'DOMINE', 'LIBRE_CASLON_TEXT', 'EB_GARAMOND', 'LITERATA', 'SOURCE_SERIF_4', 'SOURCE_SERIF_FOUR', 'MONTSERRAT', 'METROPHOBIC', 'METROPOLIS', 'SOURCE_SANS_3', 'SOURCE_SANS_THREE', 'NUNITO_SANS', 'ARIMO', 'HANKEN_GROTESK', 'RUBIK', 'GEIST', 'DM_SANS', 'IBM_PLEX_SANS', 'SORA', 'ANYBODY', 'ANTON', 'ARCHIVO_NARROW', 'ATKINSON_HYPERLEGIBLE_NEXT', 'BARLOW_CONDENSED', 'BEBAS_NEUE', 'BODONI_MODA', 'BRICOLAGE_GROTESQUE', 'CHIVO', 'CLIMATE_CRISIS', 'COMFORTAA', 'COURIER_PRIME', 'FIRA_SANS', 'GOOGLE_SANS', 'GOOGLE_SANS_CODE', 'GOOGLE_SANS_FLEX', 'GOOGLE_SANS_MONO', 'GOOGLE_SANS_TEXT', 'IBM_PLEX_SERIF', 'JETBRAINS_MONO', 'KARLA', 'LIBRE_FRANKLIN', 'MERRIWEATHER', 'NOTO_SANS', 'OPEN_SANS', 'OSWALD', 'OUTFIT', 'PLAYFAIR_DISPLAY', 'POIRET_ONE', 'QUESTRIAL', 'QUICKSAND', 'RALEWAY', 'ROBOTO_FLEX', 'SPACE_MONO', 'SYNE', 'VOLLKORN'], 'type': 'string', 'description': 'Optional. Label font.', 'x-google-enum-deprecated': [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, True, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False], 'x-google-enum-descriptions': ['Unspecified font.', 'Be Vietnam Pro font.', 'Epilogue font.', 'Inter font.', 'Lexend font.', 'Manrope font.', 'Newsreader font.', 'Noto Serif font.', 'Plus Jakarta Sans font.', 'Public Sans font.', 'Space Grotesk font.', 'Spline Sans font.', 'Work Sans font.', 'Domine font.', 'Libre Caslon Text font.', 'EB Garamond font.', 'Literata font.', 'Source Serif 4 font.', 'Source Serif 4 font. Deprecated.', 'Montserrat font.', 'The Metrophobic font.', 'Metropolis font. Deprecated.', 'The Source Sans 3 font.', 'Source Sans 3 font. Deprecated.', 'Nunito Sans font.', 'Arimo font.', 'Hanken Grotesk font.', 'Rubik font.', 'Geist font.', 'DM Sans font.', 'IBM Plex Sans font.', 'Sora font.', 'Anybody font.', 'Anton font.', 'Archivo Narrow font.', 'Atkinson Hyperlegible Next font.', 'Barlow Condensed font.', 'Bebas Neue font.', 'Bodoni Moda font.', 'Bricolage Grotesque font.', 'Chivo font.', 'Climate Crisis font.', 'Comfortaa font.', 'Courier Prime font.', 'Fira Sans font.', 'Google Sans font.', 'Google Sans Code font.', 'Google Sans Flex font.', 'Google Sans Mono font.', 'Google Sans Text font.', 'IBM Plex Serif font.', 'JetBrains Mono font.', 'Karla font.', 'Libre Franklin font.', 'Merriweather font.', 'Noto Sans font.', 'Open Sans font.', 'Oswald font.', 'Outfit font.', 'Playfair Display font.', 'Poiret One font.', 'Questrial font.', 'Quicksand font.', 'Raleway font.', 'Roboto Flex font.', 'Space Mono font.', 'Syne font.', 'Vollkorn font.']}, 'roundness': {'enum': ['ROUNDNESS_UNSPECIFIED', 'ROUND_TWO', 'ROUND_FOUR', 'ROUND_EIGHT', 'ROUND_TWELVE', 'ROUND_FULL'], 'type': 'string', 'description': 'Required. The roundness of the design.', 'x-google-enum-deprecated': [False, True, False, False, False, False], 'x-google-enum-descriptions': ['Unspecified roundness.', 'Round 2. Unused.', 'Round 4.', 'Round 8.', 'Round 12 or full', 'Round full.']}, 'components': {'type': 'object', 'description': 'Optional. Component tokens for the design system. Maps component names to their tokens.', 'additionalProperties': {'$ref': '#/$defs/ComponentTokens'}}, 'saturation': {'type': 'integer', 'format': 'int32', 'deprecated': True, 'description': 'Optional. DEPRECATED: The saturation of the design between 1 and 4.'}, 'typography': {'type': 'object', 'description': 'Optional. Typography scale for the design system. Maps level names (e.g. "display-lg", "body-md") to their Typography token.', 'additionalProperties': {'$ref': '#/$defs/Typography'}}, 'customColor': {'type': 'string', 'description': 'Optional. A custom theme primary color, or a seed color for the dynamic color system (hex format, e.g., "#ff0000").'}, 'description': {'type': 'string', 'deprecated': True, 'description': 'Optional. A brief description of the theme aesthetic.'}, 'namedColors': {'type': 'object', 'description': 'Optional. The color scheme of the design. This is a map of color names to hex color codes. Example: {"primary": "#ff0000", "secondary": "#00ff00", "tertiary": "#0000ff"}', 'additionalProperties': {'type': 'string'}}, 'colorVariant': {'enum': ['COLOR_VARIANT_UNSPECIFIED', 'MONOCHROME', 'NEUTRAL', 'TONAL_SPOT', 'VIBRANT', 'EXPRESSIVE', 'FIDELITY', 'CONTENT', 'RAINBOW', 'FRUIT_SALAD'], 'type': 'string', 'description': 'Optional. The variant of the dynamic color system.', 'x-google-enum-descriptions': ['Unspecified color variant.', 'Monochrome variant.', 'Neutral variant.', 'Tonal spot variant.', 'Vibrant variant.', 'Expressive variant.', 'Fidelity variant.', 'Content variant.', 'Rainbow variant.', 'Fruit salad variant.']}, 'headlineFont': {'enum': ['FONT_UNSPECIFIED', 'BE_VIETNAM_PRO', 'EPILOGUE', 'INTER', 'LEXEND', 'MANROPE', 'NEWSREADER', 'NOTO_SERIF', 'PLUS_JAKARTA_SANS', 'PUBLIC_SANS', 'SPACE_GROTESK', 'SPLINE_SANS', 'WORK_SANS', 'DOMINE', 'LIBRE_CASLON_TEXT', 'EB_GARAMOND', 'LITERATA', 'SOURCE_SERIF_4', 'SOURCE_SERIF_FOUR', 'MONTSERRAT', 'METROPHOBIC', 'METROPOLIS', 'SOURCE_SANS_3', 'SOURCE_SANS_THREE', 'NUNITO_SANS', 'ARIMO', 'HANKEN_GROTESK', 'RUBIK', 'GEIST', 'DM_SANS', 'IBM_PLEX_SANS', 'SORA', 'ANYBODY', 'ANTON', 'ARCHIVO_NARROW', 'ATKINSON_HYPERLEGIBLE_NEXT', 'BARLOW_CONDENSED', 'BEBAS_NEUE', 'BODONI_MODA', 'BRICOLAGE_GROTESQUE', 'CHIVO', 'CLIMATE_CRISIS', 'COMFORTAA', 'COURIER_PRIME', 'FIRA_SANS', 'GOOGLE_SANS', 'GOOGLE_SANS_CODE', 'GOOGLE_SANS_FLEX', 'GOOGLE_SANS_MONO', 'GOOGLE_SANS_TEXT', 'IBM_PLEX_SERIF', 'JETBRAINS_MONO', 'KARLA', 'LIBRE_FRANKLIN', 'MERRIWEATHER', 'NOTO_SANS', 'OPEN_SANS', 'OSWALD', 'OUTFIT', 'PLAYFAIR_DISPLAY', 'POIRET_ONE', 'QUESTRIAL', 'QUICKSAND', 'RALEWAY', 'ROBOTO_FLEX', 'SPACE_MONO', 'SYNE', 'VOLLKORN'], 'type': 'string', 'description': 'Optional. Headline font.', 'x-google-enum-deprecated': [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, True, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False], 'x-google-enum-descriptions': ['Unspecified font.', 'Be Vietnam Pro font.', 'Epilogue font.', 'Inter font.', 'Lexend font.', 'Manrope font.', 'Newsreader font.', 'Noto Serif font.', 'Plus Jakarta Sans font.', 'Public Sans font.', 'Space Grotesk font.', 'Spline Sans font.', 'Work Sans font.', 'Domine font.', 'Libre Caslon Text font.', 'EB Garamond font.', 'Literata font.', 'Source Serif 4 font.', 'Source Serif 4 font. Deprecated.', 'Montserrat font.', 'The Metrophobic font.', 'Metropolis font. Deprecated.', 'The Source Sans 3 font.', 'Source Sans 3 font. Deprecated.', 'Nunito Sans font.', 'Arimo font.', 'Hanken Grotesk font.', 'Rubik font.', 'Geist font.', 'DM Sans font.', 'IBM Plex Sans font.', 'Sora font.', 'Anybody font.', 'Anton font.', 'Archivo Narrow font.', 'Atkinson Hyperlegible Next font.', 'Barlow Condensed font.', 'Bebas Neue font.', 'Bodoni Moda font.', 'Bricolage Grotesque font.', 'Chivo font.', 'Climate Crisis font.', 'Comfortaa font.', 'Courier Prime font.', 'Fira Sans font.', 'Google Sans font.', 'Google Sans Code font.', 'Google Sans Flex font.', 'Google Sans Mono font.', 'Google Sans Text font.', 'IBM Plex Serif font.', 'JetBrains Mono font.', 'Karla font.', 'Libre Franklin font.', 'Merriweather font.', 'Noto Sans font.', 'Open Sans font.', 'Oswald font.', 'Outfit font.', 'Playfair Display font.', 'Poiret One font.', 'Questrial font.', 'Quicksand font.', 'Raleway font.', 'Roboto Flex font.', 'Space Mono font.', 'Syne font.', 'Vollkorn font.']}, 'spacingScale': {'type': 'integer', 'format': 'int32', 'description': 'Optional. The spacing scale level (0=minimal, 1=compact, 2=normal, 3=spacious).'}, 'backgroundDark': {'type': 'string', 'deprecated': True, 'description': 'Optional. DEPRECATED: The background color for dark mode (hex format, e.g., "#1a1a1a").'}, 'bodyFontFamily': {'type': 'string', 'description': 'Optional. Body font family name (e.g., "Inter", "Roboto").'}, 'backgroundLight': {'type': 'string', 'deprecated': True, 'description': 'Optional. DEPRECATED: The background color for light mode (hex format, e.g., "#f8f8f8").'}, 'labelFontFamily': {'type': 'string', 'description': 'Optional. Label font family name (e.g., "Inter", "Roboto").'}, 'headlineFontFamily': {'type': 'string', 'description': 'Optional. Headline font family name (e.g., "Inter", "Roboto").'}, 'overrideNeutralColor': {'type': 'string', 'description': 'Optional. Override neutral color for the dynamic color system (hex format, e.g., "#ffffff").'}, 'overridePrimaryColor': {'type': 'string', 'description': 'Optional. Override primary color for the dynamic color system (hex format, e.g., "#ff0000").'}, 'overrideTertiaryColor': {'type': 'string', 'description': 'Optional. Override tertiary color for the dynamic color system (hex format, e.g., "#0000ff").'}, 'overrideSecondaryColor': {'type': 'string', 'description': 'Optional. Override secondary color for the dynamic color system (hex format, e.g., "#00ff00").'}}, 'description': 'The theme of the design. Next ID: 27 LINT.IfChange'}, 'UserFeedback': {'type': 'object', 'properties': {'rating': {'enum': ['RATING_UNSPECIFIED', 'POSITIVE', 'NEGATIVE'], 'type': 'string', 'description': 'Optional. The user rating of the interaction.', 'x-google-enum-descriptions': ['Unspecified rating.', 'Positive rating.', 'Negative rating.']}, 'comment': {'type': 'string', 'description': 'Optional. Additional comment for the rating.'}, 'designFeedbackReason': {'enum': ['DESIGN_FEEDBACK_REASON_UNSPECIFIED', 'DESIGN_DOESNT_MATCH_PROMPT', 'EDIT_DOESNT_MATCH_PROMPT', 'DESCRIPTION_DOESNT_MATCH', 'COMPONENT_ISSUE', 'INCORRECT_THEME', 'FIGMA_EXPORT_FAILED', 'OTHER'], 'type': 'string', 'description': 'Optional. The reason for the feedback for a design, if the rating is negative.', 'x-google-enum-descriptions': ['Unspecified reason.', 'The design does not match the prompt.', 'The edit does not match the prompt.', 'The description does not match the design.', 'There is an issue with a component in the design.', 'The theme is incorrect.', 'The Figma export failed.', 'Other reason.']}}, 'description': 'User feedback for a given interaction.'}, 'ScreenInstance': {'type': 'object', 'properties': {'x': {'type': 'integer', 'format': 'int32', 'description': 'Optional. The x position of the screen.'}, 'y': {'type': 'integer', 'format': 'int32', 'description': 'Optional. The y position of the screen.'}, 'id': {'type': 'string', 'description': 'Optional. The screen instance id.'}, 'type': {'enum': ['SCREEN_INSTANCE_TYPE_UNSPECIFIED', 'SCREEN_INSTANCE', 'DESIGN_SYSTEM_INSTANCE', 'GROUP_INSTANCE', 'TEXT_INSTANCE'], 'type': 'string', 'description': 'Optional. The type of screen instance.', 'x-google-enum-descriptions': ['The unspecified value.', 'A screen instance.', 'A design system instance.', 'A group instance.', 'A text instance.']}, 'label': {'type': 'string', 'description': 'Optional. The screen label.'}, 'width': {'type': 'integer', 'format': 'int32', 'description': 'Optional. The screen width.'}, 'height': {'type': 'integer', 'format': 'int32', 'description': 'Optional. The screen height.'}, 'hidden': {'type': 'boolean', 'description': 'Optional. User driven action hiding screen from the canvas.'}, 'groupId': {'type': 'string', 'description': 'Optional. Group identifier for Genie Agent output grouping. Screens with the same groupId are rendered and interact as a group.'}, 'groupName': {'type': 'string', 'description': 'Optional. Human-readable name for the group (e.g., "Warm Minimalism", "Ethereal Glow").'}, 'isResized': {'type': 'boolean', 'description': 'Optional. Whether this screen has been resized by the user.'}, 'isFavourite': {'type': 'boolean', 'description': 'Optional. Whether this screen is marked as a favourite by the user.'}, 'needsLayout': {'type': 'boolean', 'description': 'Optional. Whether this screen instance needs frontend layout positioning. Set by the PostProcessor when auto-linking screens that the agent generated but the frontend has not yet positioned on the canvas.'}, 'sourceAsset': {'type': 'string', 'description': 'Optional. The resource name of the source asset. Format: assets/{asset}. Only one of the following fields should be set: this field, sourceScreen, textContent.'}, 'textContent': {'type': 'string', 'description': 'Optional. Text content for TEXT_INSTANCE nodes. Only one of the following fields should be set: this field, sourceScreen, sourceAsset.'}, 'sourceScreen': {'type': 'string', 'description': 'Optional. The resource name of the source screen. Format: projects/{project}/screens/{screen}. Only one of the following fields should be set: this field, sourceAsset, textContent.'}, 'variantScreenInstance': {'$ref': '#/$defs/ScreenInstance', 'description': 'Optional. The variant Screen Instance.'}}, 'description': 'An instance of a screen on the project. Next ID: 18'}, 'ComponentTokens': {'type': 'object', 'properties': {'tokens': {'type': 'object', 'description': 'Optional. A component may have these sub tokens: - backgroundColor: - textColor: - typography: - rounded: - padding: The value may be a literal value or a reference. A token reference must be wrapped in curly braces, and contain an object path to another value in the design system. The referenced object must be a primitive value, e.g. colors.primary-60, rather than an object, e.g. colors.', 'additionalProperties': {'type': 'string'}}}, 'description': 'A component style token in a design system.'}, 'ProjectMetadata': {'type': 'object', 'properties': {'userRole': {'enum': ['ROLE_UNSPECIFIED', 'OWNER', 'READER'], 'type': 'string', 'description': 'The Role of the user accessing the project.', 'x-google-enum-descriptions': ['go/protodosdonts#unspecified-enum', 'Represents the project owner (whose user_id is part of the primary key for Spanner)', 'Represents users with permission to view the project and its assets']}, 'isRemixed': {'type': 'boolean', 'description': 'Whether this project was remixed or not. This allows the frontend to avoid polling for sessions since none will exist for a remixed project.'}}, 'description': 'Metadata relating to the project.'}}, 'properties': {'projects': {'type': 'array', 'items': {'$ref': '#/$defs/Project'}, 'description': 'The projects for the given user, sorted by update time from the most recent to the least recent. Adding a new session to an existing project is considered as an update to the project.'}}, 'description': 'Response message for ListProjects.'}
list_screens
Lists all screens within a given Stitch project.
読み取り専用
入力スキーマ
{'type': 'object', 'required': ['projectId'], 'properties': {'projectId': {'type': 'string', 'description': "Required. Identifier. The project ID to list screens for, example: '4044680601076201931', without the `projects/` prefix.", 'x-google-identifier': True}}, 'description': 'Request message for ListScreens.'}
出力スキーマ
{'type': 'object', '$defs': {'File': {'type': 'object', 'properties': {'name': {'type': 'string', 'description': 'Identifier. The resource name of the file. Format: projects/{project}/files/{file}', 'x-google-identifier': True}, 'mimeType': {'type': 'string', 'description': 'Optional. The mime type of the file. E.g. "image/png", "text/html".'}, 'downloadUrl': {'type': 'string', 'description': 'Optional. The URL of the file for download. For image files, this would be FIFE base URLs. Only one of the following fields should be set: this field, uploadBlobId, fileContentBase64.'}, 'uploadBlobId': {'type': 'string', 'description': 'Optional. The BlobId from Scotty/contrib service file upload. This points to a temporary blobstore location of the file. Only one of the following fields should be set: this field, downloadUrl, fileContentBase64.'}, 'userFeedback': {'$ref': '#/$defs/UserFeedback', 'readOnly': True, 'description': 'Output only. The latest feedback submitted for the file.'}, 'fileContentBase64': {'type': 'string', 'writeOnly': True, 'description': 'Optional. Input only. The base64-encoded string of the file content. Only one of the following fields should be set: this field, uploadBlobId, downloadUrl.'}}, 'description': 'A File resource.'}, 'Screen': {'type': 'object', 'properties': {'name': {'type': 'string', 'description': 'Identifier. The name of the screen. Format: projects/{project}/screens/{screen}', 'x-google-identifier': True}, 'title': {'type': 'string', 'description': 'The title of the screen.'}, 'width': {'type': 'string', 'description': 'The width of the screen.'}, 'height': {'type': 'string', 'description': 'The height of the screen.'}, 'htmlCode': {'$ref': '#/$defs/File', 'description': 'The HTML code of the screen.'}, 'deviceType': {'enum': ['DEVICE_TYPE_UNSPECIFIED', 'MOBILE', 'DESKTOP', 'TABLET', 'AGNOSTIC'], 'type': 'string', 'description': 'The device type of the screen.', 'x-google-enum-descriptions': ['Unspecified device type.', 'A design for a mobile device.', 'A design for a desktop device.', 'A design for a tablet device.', 'A design that is not tied to a specific device.']}, 'screenshot': {'$ref': '#/$defs/File', 'description': 'The screenshot of the screen.'}}, 'description': 'A screen generated by the agent.'}, 'UserFeedback': {'type': 'object', 'properties': {'rating': {'enum': ['RATING_UNSPECIFIED', 'POSITIVE', 'NEGATIVE'], 'type': 'string', 'description': 'Optional. The user rating of the interaction.', 'x-google-enum-descriptions': ['Unspecified rating.', 'Positive rating.', 'Negative rating.']}, 'comment': {'type': 'string', 'description': 'Optional. Additional comment for the rating.'}, 'designFeedbackReason': {'enum': ['DESIGN_FEEDBACK_REASON_UNSPECIFIED', 'DESIGN_DOESNT_MATCH_PROMPT', 'EDIT_DOESNT_MATCH_PROMPT', 'DESCRIPTION_DOESNT_MATCH', 'COMPONENT_ISSUE', 'INCORRECT_THEME', 'FIGMA_EXPORT_FAILED', 'OTHER'], 'type': 'string', 'description': 'Optional. The reason for the feedback for a design, if the rating is negative.', 'x-google-enum-descriptions': ['Unspecified reason.', 'The design does not match the prompt.', 'The edit does not match the prompt.', 'The description does not match the design.', 'There is an issue with a component in the design.', 'The theme is incorrect.', 'The Figma export failed.', 'Other reason.']}}, 'description': 'User feedback for a given interaction.'}}, 'properties': {'screens': {'type': 'array', 'items': {'$ref': '#/$defs/Screen'}, 'description': 'The screens for the given project.'}}, 'description': 'Response message for ListScreens.'}
update_design_system
Updates a design system for a project. Use this tool when the user wants to change the overall visual theme, style, or branding of the application. This includes configuring: - Color Palette: Presets, custom primary colors, and saturation levels. - Typography: Font families (e.g., Inter, Roboto, etc.). - Shape: Corner roundness for UI elements. - Appearance: Light and dark mode background colors. - Design MD: Free-form design instructions in markdown. This tool establishes the foundational design tokens that apply across all screens in the project.
破壊的操作あり
入力スキーマ
{'type': 'object', '$defs': {'Typography': {'type': 'object', 'properties': {'fontSize': {'type': 'string', 'description': 'Optional. The CSS font-size value (e.g., "32px", "1rem").'}, 'fontFamily': {'type': 'string', 'description': 'Optional. The CSS font-family value (e.g., "Manrope", "Inter").'}, 'fontWeight': {'type': 'string', 'description': 'Optional. The CSS font-weight value (e.g., "400", "700").'}, 'lineHeight': {'type': 'string', 'description': 'Optional. The CSS line-height value (e.g., "1.5", "40px").'}, 'letterSpacing': {'type': 'string', 'description': 'Optional. The CSS letter-spacing value (e.g., "0px", "-0.02em").'}}, 'description': 'A typography style token in a design system, defining the visual properties for a single text level (e.g. "display-lg", "body-md").'}, 'DesignTheme': {'type': 'object', 'required': ['colorMode', 'headlineFont', 'bodyFont', 'roundness', 'customColor'], 'properties': {'spacing': {'type': 'object', 'description': 'Optional. Spacing units for the design system. Maps spacing names to their values.', 'additionalProperties': {'type': 'string'}}, 'bodyFont': {'enum': ['FONT_UNSPECIFIED', 'BE_VIETNAM_PRO', 'EPILOGUE', 'INTER', 'LEXEND', 'MANROPE', 'NEWSREADER', 'NOTO_SERIF', 'PLUS_JAKARTA_SANS', 'PUBLIC_SANS', 'SPACE_GROTESK', 'SPLINE_SANS', 'WORK_SANS', 'DOMINE', 'LIBRE_CASLON_TEXT', 'EB_GARAMOND', 'LITERATA', 'SOURCE_SERIF_4', 'SOURCE_SERIF_FOUR', 'MONTSERRAT', 'METROPHOBIC', 'METROPOLIS', 'SOURCE_SANS_3', 'SOURCE_SANS_THREE', 'NUNITO_SANS', 'ARIMO', 'HANKEN_GROTESK', 'RUBIK', 'GEIST', 'DM_SANS', 'IBM_PLEX_SANS', 'SORA', 'ANYBODY', 'ANTON', 'ARCHIVO_NARROW', 'ATKINSON_HYPERLEGIBLE_NEXT', 'BARLOW_CONDENSED', 'BEBAS_NEUE', 'BODONI_MODA', 'BRICOLAGE_GROTESQUE', 'CHIVO', 'CLIMATE_CRISIS', 'COMFORTAA', 'COURIER_PRIME', 'FIRA_SANS', 'GOOGLE_SANS', 'GOOGLE_SANS_CODE', 'GOOGLE_SANS_FLEX', 'GOOGLE_SANS_MONO', 'GOOGLE_SANS_TEXT', 'IBM_PLEX_SERIF', 'JETBRAINS_MONO', 'KARLA', 'LIBRE_FRANKLIN', 'MERRIWEATHER', 'NOTO_SANS', 'OPEN_SANS', 'OSWALD', 'OUTFIT', 'PLAYFAIR_DISPLAY', 'POIRET_ONE', 'QUESTRIAL', 'QUICKSAND', 'RALEWAY', 'ROBOTO_FLEX', 'SPACE_MONO', 'SYNE', 'VOLLKORN'], 'type': 'string', 'description': 'Required. Specifies the body font.', 'x-google-enum-deprecated': [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, True, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False], 'x-google-enum-descriptions': ['Unspecified font.', 'Be Vietnam Pro font.', 'Epilogue font.', 'Inter font.', 'Lexend font.', 'Manrope font.', 'Newsreader font.', 'Noto Serif font.', 'Plus Jakarta Sans font.', 'Public Sans font.', 'Space Grotesk font.', 'Spline Sans font.', 'Work Sans font.', 'Domine font.', 'Libre Caslon Text font.', 'EB Garamond font.', 'Literata font.', 'Source Serif 4 font.', 'Source Serif 4 font. Deprecated.', 'Montserrat font.', 'The Metrophobic font.', 'Metropolis font. Deprecated.', 'The Source Sans 3 font.', 'Source Sans 3 font. Deprecated.', 'Nunito Sans font.', 'Arimo font.', 'Hanken Grotesk font.', 'Rubik font.', 'Geist font.', 'DM Sans font.', 'IBM Plex Sans font.', 'Sora font.', 'Anybody font.', 'Anton font.', 'Archivo Narrow font.', 'Atkinson Hyperlegible Next font.', 'Barlow Condensed font.', 'Bebas Neue font.', 'Bodoni Moda font.', 'Bricolage Grotesque font.', 'Chivo font.', 'Climate Crisis font.', 'Comfortaa font.', 'Courier Prime font.', 'Fira Sans font.', 'Google Sans font.', 'Google Sans Code font.', 'Google Sans Flex font.', 'Google Sans Mono font.', 'Google Sans Text font.', 'IBM Plex Serif font.', 'JetBrains Mono font.', 'Karla font.', 'Libre Franklin font.', 'Merriweather font.', 'Noto Sans font.', 'Open Sans font.', 'Oswald font.', 'Outfit font.', 'Playfair Display font.', 'Poiret One font.', 'Questrial font.', 'Quicksand font.', 'Raleway font.', 'Roboto Flex font.', 'Space Mono font.', 'Syne font.', 'Vollkorn font.']}, 'designMd': {'type': 'string', 'description': 'Optional. Specifies a markdown file that describes the design system.'}, 'colorMode': {'enum': ['COLOR_MODE_UNSPECIFIED', 'LIGHT', 'DARK'], 'type': 'string', 'description': 'Required. Specifies the mode of appearance of the design.', 'x-google-enum-descriptions': ['Unspecified color mode.', 'Light mode.', 'Dark mode.']}, 'labelFont': {'enum': ['FONT_UNSPECIFIED', 'BE_VIETNAM_PRO', 'EPILOGUE', 'INTER', 'LEXEND', 'MANROPE', 'NEWSREADER', 'NOTO_SERIF', 'PLUS_JAKARTA_SANS', 'PUBLIC_SANS', 'SPACE_GROTESK', 'SPLINE_SANS', 'WORK_SANS', 'DOMINE', 'LIBRE_CASLON_TEXT', 'EB_GARAMOND', 'LITERATA', 'SOURCE_SERIF_4', 'SOURCE_SERIF_FOUR', 'MONTSERRAT', 'METROPHOBIC', 'METROPOLIS', 'SOURCE_SANS_3', 'SOURCE_SANS_THREE', 'NUNITO_SANS', 'ARIMO', 'HANKEN_GROTESK', 'RUBIK', 'GEIST', 'DM_SANS', 'IBM_PLEX_SANS', 'SORA', 'ANYBODY', 'ANTON', 'ARCHIVO_NARROW', 'ATKINSON_HYPERLEGIBLE_NEXT', 'BARLOW_CONDENSED', 'BEBAS_NEUE', 'BODONI_MODA', 'BRICOLAGE_GROTESQUE', 'CHIVO', 'CLIMATE_CRISIS', 'COMFORTAA', 'COURIER_PRIME', 'FIRA_SANS', 'GOOGLE_SANS', 'GOOGLE_SANS_CODE', 'GOOGLE_SANS_FLEX', 'GOOGLE_SANS_MONO', 'GOOGLE_SANS_TEXT', 'IBM_PLEX_SERIF', 'JETBRAINS_MONO', 'KARLA', 'LIBRE_FRANKLIN', 'MERRIWEATHER', 'NOTO_SANS', 'OPEN_SANS', 'OSWALD', 'OUTFIT', 'PLAYFAIR_DISPLAY', 'POIRET_ONE', 'QUESTRIAL', 'QUICKSAND', 'RALEWAY', 'ROBOTO_FLEX', 'SPACE_MONO', 'SYNE', 'VOLLKORN'], 'type': 'string', 'description': 'Optional. Specifies the label font.', 'x-google-enum-deprecated': [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, True, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False], 'x-google-enum-descriptions': ['Unspecified font.', 'Be Vietnam Pro font.', 'Epilogue font.', 'Inter font.', 'Lexend font.', 'Manrope font.', 'Newsreader font.', 'Noto Serif font.', 'Plus Jakarta Sans font.', 'Public Sans font.', 'Space Grotesk font.', 'Spline Sans font.', 'Work Sans font.', 'Domine font.', 'Libre Caslon Text font.', 'EB Garamond font.', 'Literata font.', 'Source Serif 4 font.', 'Source Serif 4 font. Deprecated.', 'Montserrat font.', 'The Metrophobic font.', 'Metropolis font. Deprecated.', 'The Source Sans 3 font.', 'Source Sans 3 font. Deprecated.', 'Nunito Sans font.', 'Arimo font.', 'Hanken Grotesk font.', 'Rubik font.', 'Geist font.', 'DM Sans font.', 'IBM Plex Sans font.', 'Sora font.', 'Anybody font.', 'Anton font.', 'Archivo Narrow font.', 'Atkinson Hyperlegible Next font.', 'Barlow Condensed font.', 'Bebas Neue font.', 'Bodoni Moda font.', 'Bricolage Grotesque font.', 'Chivo font.', 'Climate Crisis font.', 'Comfortaa font.', 'Courier Prime font.', 'Fira Sans font.', 'Google Sans font.', 'Google Sans Code font.', 'Google Sans Flex font.', 'Google Sans Mono font.', 'Google Sans Text font.', 'IBM Plex Serif font.', 'JetBrains Mono font.', 'Karla font.', 'Libre Franklin font.', 'Merriweather font.', 'Noto Sans font.', 'Open Sans font.', 'Oswald font.', 'Outfit font.', 'Playfair Display font.', 'Poiret One font.', 'Questrial font.', 'Quicksand font.', 'Raleway font.', 'Roboto Flex font.', 'Space Mono font.', 'Syne font.', 'Vollkorn font.']}, 'roundness': {'enum': ['ROUNDNESS_UNSPECIFIED', 'ROUND_TWO', 'ROUND_FOUR', 'ROUND_EIGHT', 'ROUND_TWELVE', 'ROUND_FULL'], 'type': 'string', 'description': 'Required. Specifies the roundness of the design. Supported values are: "ROUND_FOUR", "ROUND_EIGHT", and "ROUND_TWELVE", and "ROUND_FULL".', 'x-google-enum-deprecated': [False, True, False, False, False, False], 'x-google-enum-descriptions': ['Unspecified roundness.', 'Round 2. Unused.', 'Round 4.', 'Round 8.', 'Round 12 or full', 'Round full.']}, 'typography': {'type': 'object', 'description': 'Optional. Typography scale for the design system. Maps level names (e.g. "display-lg", "body-md") to their Typography token.', 'additionalProperties': {'$ref': '#/$defs/Typography'}}, 'customColor': {'type': 'string', 'description': 'Required. Specifies a custom theme primary color, or a seed color for the dynamic color system (hex format, e.g., "#ff0000").'}, 'colorVariant': {'enum': ['COLOR_VARIANT_UNSPECIFIED', 'MONOCHROME', 'NEUTRAL', 'TONAL_SPOT', 'VIBRANT', 'EXPRESSIVE', 'FIDELITY', 'CONTENT', 'RAINBOW', 'FRUIT_SALAD'], 'type': 'string', 'description': 'Optional. Specifies the variant of the dynamic color system.', 'x-google-enum-descriptions': ['Unspecified color variant.', 'Monochrome variant.', 'Neutral variant.', 'Tonal spot variant.', 'Vibrant variant.', 'Expressive variant.', 'Fidelity variant.', 'Content variant.', 'Rainbow variant.', 'Fruit salad variant.']}, 'headlineFont': {'enum': ['FONT_UNSPECIFIED', 'BE_VIETNAM_PRO', 'EPILOGUE', 'INTER', 'LEXEND', 'MANROPE', 'NEWSREADER', 'NOTO_SERIF', 'PLUS_JAKARTA_SANS', 'PUBLIC_SANS', 'SPACE_GROTESK', 'SPLINE_SANS', 'WORK_SANS', 'DOMINE', 'LIBRE_CASLON_TEXT', 'EB_GARAMOND', 'LITERATA', 'SOURCE_SERIF_4', 'SOURCE_SERIF_FOUR', 'MONTSERRAT', 'METROPHOBIC', 'METROPOLIS', 'SOURCE_SANS_3', 'SOURCE_SANS_THREE', 'NUNITO_SANS', 'ARIMO', 'HANKEN_GROTESK', 'RUBIK', 'GEIST', 'DM_SANS', 'IBM_PLEX_SANS', 'SORA', 'ANYBODY', 'ANTON', 'ARCHIVO_NARROW', 'ATKINSON_HYPERLEGIBLE_NEXT', 'BARLOW_CONDENSED', 'BEBAS_NEUE', 'BODONI_MODA', 'BRICOLAGE_GROTESQUE', 'CHIVO', 'CLIMATE_CRISIS', 'COMFORTAA', 'COURIER_PRIME', 'FIRA_SANS', 'GOOGLE_SANS', 'GOOGLE_SANS_CODE', 'GOOGLE_SANS_FLEX', 'GOOGLE_SANS_MONO', 'GOOGLE_SANS_TEXT', 'IBM_PLEX_SERIF', 'JETBRAINS_MONO', 'KARLA', 'LIBRE_FRANKLIN', 'MERRIWEATHER', 'NOTO_SANS', 'OPEN_SANS', 'OSWALD', 'OUTFIT', 'PLAYFAIR_DISPLAY', 'POIRET_ONE', 'QUESTRIAL', 'QUICKSAND', 'RALEWAY', 'ROBOTO_FLEX', 'SPACE_MONO', 'SYNE', 'VOLLKORN'], 'type': 'string', 'description': 'Required. Specifies the headline font.', 'x-google-enum-deprecated': [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, True, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False], 'x-google-enum-descriptions': ['Unspecified font.', 'Be Vietnam Pro font.', 'Epilogue font.', 'Inter font.', 'Lexend font.', 'Manrope font.', 'Newsreader font.', 'Noto Serif font.', 'Plus Jakarta Sans font.', 'Public Sans font.', 'Space Grotesk font.', 'Spline Sans font.', 'Work Sans font.', 'Domine font.', 'Libre Caslon Text font.', 'EB Garamond font.', 'Literata font.', 'Source Serif 4 font.', 'Source Serif 4 font. Deprecated.', 'Montserrat font.', 'The Metrophobic font.', 'Metropolis font. Deprecated.', 'The Source Sans 3 font.', 'Source Sans 3 font. Deprecated.', 'Nunito Sans font.', 'Arimo font.', 'Hanken Grotesk font.', 'Rubik font.', 'Geist font.', 'DM Sans font.', 'IBM Plex Sans font.', 'Sora font.', 'Anybody font.', 'Anton font.', 'Archivo Narrow font.', 'Atkinson Hyperlegible Next font.', 'Barlow Condensed font.', 'Bebas Neue font.', 'Bodoni Moda font.', 'Bricolage Grotesque font.', 'Chivo font.', 'Climate Crisis font.', 'Comfortaa font.', 'Courier Prime font.', 'Fira Sans font.', 'Google Sans font.', 'Google Sans Code font.', 'Google Sans Flex font.', 'Google Sans Mono font.', 'Google Sans Text font.', 'IBM Plex Serif font.', 'JetBrains Mono font.', 'Karla font.', 'Libre Franklin font.', 'Merriweather font.', 'Noto Sans font.', 'Open Sans font.', 'Oswald font.', 'Outfit font.', 'Playfair Display font.', 'Poiret One font.', 'Questrial font.', 'Quicksand font.', 'Raleway font.', 'Roboto Flex font.', 'Space Mono font.', 'Syne font.', 'Vollkorn font.']}, 'overrideNeutralColor': {'type': 'string', 'description': 'Optional. Overrides the neutral color for the dynamic color system (hex format, e.g., "#ffffff").'}, 'overridePrimaryColor': {'type': 'string', 'description': 'Optional. Overrides the primary color for the dynamic color system (hex format, e.g., "#ff0000").'}, 'overrideTertiaryColor': {'type': 'string', 'description': 'Optional. Overrides the tertiary color for the dynamic color system (hex format, e.g., "#0000ff").'}, 'overrideSecondaryColor': {'type': 'string', 'description': 'Optional. Overrides the secondary color for the dynamic color system (hex format, e.g., "#00ff00").'}}, 'description': 'The theme of the design. Next ID: 15 LINT.IfChange'}, 'DesignSystem': {'type': 'object', 'required': ['displayName', 'theme'], 'properties': {'theme': {'$ref': '#/$defs/DesignTheme', 'description': 'Required. Specifies the theme of the design system.'}, 'displayName': {'type': 'string', 'description': 'Required. Specifies the display name of the design system.'}}, 'description': "Represents a collection of guidelines, design tokens, and reusable components that define the visual and functional characteristics of a product's design. This is used to guide the generation of consistent and branded designs. LINT.IfChange"}}, 'required': ['name', 'projectId', 'designSystem'], 'properties': {'name': {'type': 'string', 'description': 'Required. Identifier. The resource name of the design system to update. Format: `assets/{asset_id}` Example: `assets/15996705518239280238`', 'x-google-identifier': True}, 'projectId': {'type': 'string', 'description': "Required. The project ID to update design system for, example: '4044680601076201931', without the `projects/` prefix."}, 'designSystem': {'$ref': '#/$defs/DesignSystem', 'description': 'Required. The design system to update.'}}, 'description': 'Request message for UpdateDesignSystem.'}
出力スキーマ
{'type': 'object', '$defs': {'Typography': {'type': 'object', 'properties': {'fontSize': {'type': 'string', 'description': 'Optional. The CSS font-size value (e.g., "32px", "1rem").'}, 'fontFamily': {'type': 'string', 'description': 'Optional. The CSS font-family value (e.g., "Manrope", "Inter").'}, 'fontWeight': {'type': 'string', 'description': 'Optional. The CSS font-weight value (e.g., "400", "700").'}, 'lineHeight': {'type': 'string', 'description': 'Optional. The CSS line-height value (e.g., "1.5", "40px").'}, 'letterSpacing': {'type': 'string', 'description': 'Optional. The CSS letter-spacing value (e.g., "0px", "-0.02em").'}}, 'description': 'A typography style token in a design system, defining the visual properties for a single text level (e.g. "display-lg", "body-md").'}, 'DesignTheme': {'type': 'object', 'properties': {'font': {'enum': ['FONT_UNSPECIFIED', 'BE_VIETNAM_PRO', 'EPILOGUE', 'INTER', 'LEXEND', 'MANROPE', 'NEWSREADER', 'NOTO_SERIF', 'PLUS_JAKARTA_SANS', 'PUBLIC_SANS', 'SPACE_GROTESK', 'SPLINE_SANS', 'WORK_SANS', 'DOMINE', 'LIBRE_CASLON_TEXT', 'EB_GARAMOND', 'LITERATA', 'SOURCE_SERIF_4', 'SOURCE_SERIF_FOUR', 'MONTSERRAT', 'METROPHOBIC', 'METROPOLIS', 'SOURCE_SANS_3', 'SOURCE_SANS_THREE', 'NUNITO_SANS', 'ARIMO', 'HANKEN_GROTESK', 'RUBIK', 'GEIST', 'DM_SANS', 'IBM_PLEX_SANS', 'SORA', 'ANYBODY', 'ANTON', 'ARCHIVO_NARROW', 'ATKINSON_HYPERLEGIBLE_NEXT', 'BARLOW_CONDENSED', 'BEBAS_NEUE', 'BODONI_MODA', 'BRICOLAGE_GROTESQUE', 'CHIVO', 'CLIMATE_CRISIS', 'COMFORTAA', 'COURIER_PRIME', 'FIRA_SANS', 'GOOGLE_SANS', 'GOOGLE_SANS_CODE', 'GOOGLE_SANS_FLEX', 'GOOGLE_SANS_MONO', 'GOOGLE_SANS_TEXT', 'IBM_PLEX_SERIF', 'JETBRAINS_MONO', 'KARLA', 'LIBRE_FRANKLIN', 'MERRIWEATHER', 'NOTO_SANS', 'OPEN_SANS', 'OSWALD', 'OUTFIT', 'PLAYFAIR_DISPLAY', 'POIRET_ONE', 'QUESTRIAL', 'QUICKSAND', 'RALEWAY', 'ROBOTO_FLEX', 'SPACE_MONO', 'SYNE', 'VOLLKORN'], 'type': 'string', 'deprecated': True, 'description': 'Optional. DEPRECATED: The font of the design. Planned to be deprecated in favor of `headline_font`, `body_font`, and `label_font`.', 'x-google-enum-deprecated': [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, True, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False], 'x-google-enum-descriptions': ['Unspecified font.', 'Be Vietnam Pro font.', 'Epilogue font.', 'Inter font.', 'Lexend font.', 'Manrope font.', 'Newsreader font.', 'Noto Serif font.', 'Plus Jakarta Sans font.', 'Public Sans font.', 'Space Grotesk font.', 'Spline Sans font.', 'Work Sans font.', 'Domine font.', 'Libre Caslon Text font.', 'EB Garamond font.', 'Literata font.', 'Source Serif 4 font.', 'Source Serif 4 font. Deprecated.', 'Montserrat font.', 'The Metrophobic font.', 'Metropolis font. Deprecated.', 'The Source Sans 3 font.', 'Source Sans 3 font. Deprecated.', 'Nunito Sans font.', 'Arimo font.', 'Hanken Grotesk font.', 'Rubik font.', 'Geist font.', 'DM Sans font.', 'IBM Plex Sans font.', 'Sora font.', 'Anybody font.', 'Anton font.', 'Archivo Narrow font.', 'Atkinson Hyperlegible Next font.', 'Barlow Condensed font.', 'Bebas Neue font.', 'Bodoni Moda font.', 'Bricolage Grotesque font.', 'Chivo font.', 'Climate Crisis font.', 'Comfortaa font.', 'Courier Prime font.', 'Fira Sans font.', 'Google Sans font.', 'Google Sans Code font.', 'Google Sans Flex font.', 'Google Sans Mono font.', 'Google Sans Text font.', 'IBM Plex Serif font.', 'JetBrains Mono font.', 'Karla font.', 'Libre Franklin font.', 'Merriweather font.', 'Noto Sans font.', 'Open Sans font.', 'Oswald font.', 'Outfit font.', 'Playfair Display font.', 'Poiret One font.', 'Questrial font.', 'Quicksand font.', 'Raleway font.', 'Roboto Flex font.', 'Space Mono font.', 'Syne font.', 'Vollkorn font.']}, 'preset': {'type': 'string', 'deprecated': True, 'description': 'Optional. DEPRECATED: The preset color of the design.'}, 'spacing': {'type': 'object', 'description': 'Optional. Spacing units for the design system. Maps spacing names to their values.', 'additionalProperties': {'type': 'string'}}, 'bodyFont': {'enum': ['FONT_UNSPECIFIED', 'BE_VIETNAM_PRO', 'EPILOGUE', 'INTER', 'LEXEND', 'MANROPE', 'NEWSREADER', 'NOTO_SERIF', 'PLUS_JAKARTA_SANS', 'PUBLIC_SANS', 'SPACE_GROTESK', 'SPLINE_SANS', 'WORK_SANS', 'DOMINE', 'LIBRE_CASLON_TEXT', 'EB_GARAMOND', 'LITERATA', 'SOURCE_SERIF_4', 'SOURCE_SERIF_FOUR', 'MONTSERRAT', 'METROPHOBIC', 'METROPOLIS', 'SOURCE_SANS_3', 'SOURCE_SANS_THREE', 'NUNITO_SANS', 'ARIMO', 'HANKEN_GROTESK', 'RUBIK', 'GEIST', 'DM_SANS', 'IBM_PLEX_SANS', 'SORA', 'ANYBODY', 'ANTON', 'ARCHIVO_NARROW', 'ATKINSON_HYPERLEGIBLE_NEXT', 'BARLOW_CONDENSED', 'BEBAS_NEUE', 'BODONI_MODA', 'BRICOLAGE_GROTESQUE', 'CHIVO', 'CLIMATE_CRISIS', 'COMFORTAA', 'COURIER_PRIME', 'FIRA_SANS', 'GOOGLE_SANS', 'GOOGLE_SANS_CODE', 'GOOGLE_SANS_FLEX', 'GOOGLE_SANS_MONO', 'GOOGLE_SANS_TEXT', 'IBM_PLEX_SERIF', 'JETBRAINS_MONO', 'KARLA', 'LIBRE_FRANKLIN', 'MERRIWEATHER', 'NOTO_SANS', 'OPEN_SANS', 'OSWALD', 'OUTFIT', 'PLAYFAIR_DISPLAY', 'POIRET_ONE', 'QUESTRIAL', 'QUICKSAND', 'RALEWAY', 'ROBOTO_FLEX', 'SPACE_MONO', 'SYNE', 'VOLLKORN'], 'type': 'string', 'description': 'Optional. Body font.', 'x-google-enum-deprecated': [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, True, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False], 'x-google-enum-descriptions': ['Unspecified font.', 'Be Vietnam Pro font.', 'Epilogue font.', 'Inter font.', 'Lexend font.', 'Manrope font.', 'Newsreader font.', 'Noto Serif font.', 'Plus Jakarta Sans font.', 'Public Sans font.', 'Space Grotesk font.', 'Spline Sans font.', 'Work Sans font.', 'Domine font.', 'Libre Caslon Text font.', 'EB Garamond font.', 'Literata font.', 'Source Serif 4 font.', 'Source Serif 4 font. Deprecated.', 'Montserrat font.', 'The Metrophobic font.', 'Metropolis font. Deprecated.', 'The Source Sans 3 font.', 'Source Sans 3 font. Deprecated.', 'Nunito Sans font.', 'Arimo font.', 'Hanken Grotesk font.', 'Rubik font.', 'Geist font.', 'DM Sans font.', 'IBM Plex Sans font.', 'Sora font.', 'Anybody font.', 'Anton font.', 'Archivo Narrow font.', 'Atkinson Hyperlegible Next font.', 'Barlow Condensed font.', 'Bebas Neue font.', 'Bodoni Moda font.', 'Bricolage Grotesque font.', 'Chivo font.', 'Climate Crisis font.', 'Comfortaa font.', 'Courier Prime font.', 'Fira Sans font.', 'Google Sans font.', 'Google Sans Code font.', 'Google Sans Flex font.', 'Google Sans Mono font.', 'Google Sans Text font.', 'IBM Plex Serif font.', 'JetBrains Mono font.', 'Karla font.', 'Libre Franklin font.', 'Merriweather font.', 'Noto Sans font.', 'Open Sans font.', 'Oswald font.', 'Outfit font.', 'Playfair Display font.', 'Poiret One font.', 'Questrial font.', 'Quicksand font.', 'Raleway font.', 'Roboto Flex font.', 'Space Mono font.', 'Syne font.', 'Vollkorn font.']}, 'designMd': {'type': 'string', 'description': 'Optional. A markdown file that describes the design system.'}, 'colorMode': {'enum': ['COLOR_MODE_UNSPECIFIED', 'LIGHT', 'DARK'], 'type': 'string', 'description': 'Required. The mode of appearance of the design.', 'x-google-enum-descriptions': ['Unspecified color mode.', 'Light mode.', 'Dark mode.']}, 'labelFont': {'enum': ['FONT_UNSPECIFIED', 'BE_VIETNAM_PRO', 'EPILOGUE', 'INTER', 'LEXEND', 'MANROPE', 'NEWSREADER', 'NOTO_SERIF', 'PLUS_JAKARTA_SANS', 'PUBLIC_SANS', 'SPACE_GROTESK', 'SPLINE_SANS', 'WORK_SANS', 'DOMINE', 'LIBRE_CASLON_TEXT', 'EB_GARAMOND', 'LITERATA', 'SOURCE_SERIF_4', 'SOURCE_SERIF_FOUR', 'MONTSERRAT', 'METROPHOBIC', 'METROPOLIS', 'SOURCE_SANS_3', 'SOURCE_SANS_THREE', 'NUNITO_SANS', 'ARIMO', 'HANKEN_GROTESK', 'RUBIK', 'GEIST', 'DM_SANS', 'IBM_PLEX_SANS', 'SORA', 'ANYBODY', 'ANTON', 'ARCHIVO_NARROW', 'ATKINSON_HYPERLEGIBLE_NEXT', 'BARLOW_CONDENSED', 'BEBAS_NEUE', 'BODONI_MODA', 'BRICOLAGE_GROTESQUE', 'CHIVO', 'CLIMATE_CRISIS', 'COMFORTAA', 'COURIER_PRIME', 'FIRA_SANS', 'GOOGLE_SANS', 'GOOGLE_SANS_CODE', 'GOOGLE_SANS_FLEX', 'GOOGLE_SANS_MONO', 'GOOGLE_SANS_TEXT', 'IBM_PLEX_SERIF', 'JETBRAINS_MONO', 'KARLA', 'LIBRE_FRANKLIN', 'MERRIWEATHER', 'NOTO_SANS', 'OPEN_SANS', 'OSWALD', 'OUTFIT', 'PLAYFAIR_DISPLAY', 'POIRET_ONE', 'QUESTRIAL', 'QUICKSAND', 'RALEWAY', 'ROBOTO_FLEX', 'SPACE_MONO', 'SYNE', 'VOLLKORN'], 'type': 'string', 'description': 'Optional. Label font.', 'x-google-enum-deprecated': [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, True, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False], 'x-google-enum-descriptions': ['Unspecified font.', 'Be Vietnam Pro font.', 'Epilogue font.', 'Inter font.', 'Lexend font.', 'Manrope font.', 'Newsreader font.', 'Noto Serif font.', 'Plus Jakarta Sans font.', 'Public Sans font.', 'Space Grotesk font.', 'Spline Sans font.', 'Work Sans font.', 'Domine font.', 'Libre Caslon Text font.', 'EB Garamond font.', 'Literata font.', 'Source Serif 4 font.', 'Source Serif 4 font. Deprecated.', 'Montserrat font.', 'The Metrophobic font.', 'Metropolis font. Deprecated.', 'The Source Sans 3 font.', 'Source Sans 3 font. Deprecated.', 'Nunito Sans font.', 'Arimo font.', 'Hanken Grotesk font.', 'Rubik font.', 'Geist font.', 'DM Sans font.', 'IBM Plex Sans font.', 'Sora font.', 'Anybody font.', 'Anton font.', 'Archivo Narrow font.', 'Atkinson Hyperlegible Next font.', 'Barlow Condensed font.', 'Bebas Neue font.', 'Bodoni Moda font.', 'Bricolage Grotesque font.', 'Chivo font.', 'Climate Crisis font.', 'Comfortaa font.', 'Courier Prime font.', 'Fira Sans font.', 'Google Sans font.', 'Google Sans Code font.', 'Google Sans Flex font.', 'Google Sans Mono font.', 'Google Sans Text font.', 'IBM Plex Serif font.', 'JetBrains Mono font.', 'Karla font.', 'Libre Franklin font.', 'Merriweather font.', 'Noto Sans font.', 'Open Sans font.', 'Oswald font.', 'Outfit font.', 'Playfair Display font.', 'Poiret One font.', 'Questrial font.', 'Quicksand font.', 'Raleway font.', 'Roboto Flex font.', 'Space Mono font.', 'Syne font.', 'Vollkorn font.']}, 'roundness': {'enum': ['ROUNDNESS_UNSPECIFIED', 'ROUND_TWO', 'ROUND_FOUR', 'ROUND_EIGHT', 'ROUND_TWELVE', 'ROUND_FULL'], 'type': 'string', 'description': 'Required. The roundness of the design.', 'x-google-enum-deprecated': [False, True, False, False, False, False], 'x-google-enum-descriptions': ['Unspecified roundness.', 'Round 2. Unused.', 'Round 4.', 'Round 8.', 'Round 12 or full', 'Round full.']}, 'components': {'type': 'object', 'description': 'Optional. Component tokens for the design system. Maps component names to their tokens.', 'additionalProperties': {'$ref': '#/$defs/ComponentTokens'}}, 'saturation': {'type': 'integer', 'format': 'int32', 'deprecated': True, 'description': 'Optional. DEPRECATED: The saturation of the design between 1 and 4.'}, 'typography': {'type': 'object', 'description': 'Optional. Typography scale for the design system. Maps level names (e.g. "display-lg", "body-md") to their Typography token.', 'additionalProperties': {'$ref': '#/$defs/Typography'}}, 'customColor': {'type': 'string', 'description': 'Optional. A custom theme primary color, or a seed color for the dynamic color system (hex format, e.g., "#ff0000").'}, 'description': {'type': 'string', 'deprecated': True, 'description': 'Optional. A brief description of the theme aesthetic.'}, 'namedColors': {'type': 'object', 'description': 'Optional. The color scheme of the design. This is a map of color names to hex color codes. Example: {"primary": "#ff0000", "secondary": "#00ff00", "tertiary": "#0000ff"}', 'additionalProperties': {'type': 'string'}}, 'colorVariant': {'enum': ['COLOR_VARIANT_UNSPECIFIED', 'MONOCHROME', 'NEUTRAL', 'TONAL_SPOT', 'VIBRANT', 'EXPRESSIVE', 'FIDELITY', 'CONTENT', 'RAINBOW', 'FRUIT_SALAD'], 'type': 'string', 'description': 'Optional. The variant of the dynamic color system.', 'x-google-enum-descriptions': ['Unspecified color variant.', 'Monochrome variant.', 'Neutral variant.', 'Tonal spot variant.', 'Vibrant variant.', 'Expressive variant.', 'Fidelity variant.', 'Content variant.', 'Rainbow variant.', 'Fruit salad variant.']}, 'headlineFont': {'enum': ['FONT_UNSPECIFIED', 'BE_VIETNAM_PRO', 'EPILOGUE', 'INTER', 'LEXEND', 'MANROPE', 'NEWSREADER', 'NOTO_SERIF', 'PLUS_JAKARTA_SANS', 'PUBLIC_SANS', 'SPACE_GROTESK', 'SPLINE_SANS', 'WORK_SANS', 'DOMINE', 'LIBRE_CASLON_TEXT', 'EB_GARAMOND', 'LITERATA', 'SOURCE_SERIF_4', 'SOURCE_SERIF_FOUR', 'MONTSERRAT', 'METROPHOBIC', 'METROPOLIS', 'SOURCE_SANS_3', 'SOURCE_SANS_THREE', 'NUNITO_SANS', 'ARIMO', 'HANKEN_GROTESK', 'RUBIK', 'GEIST', 'DM_SANS', 'IBM_PLEX_SANS', 'SORA', 'ANYBODY', 'ANTON', 'ARCHIVO_NARROW', 'ATKINSON_HYPERLEGIBLE_NEXT', 'BARLOW_CONDENSED', 'BEBAS_NEUE', 'BODONI_MODA', 'BRICOLAGE_GROTESQUE', 'CHIVO', 'CLIMATE_CRISIS', 'COMFORTAA', 'COURIER_PRIME', 'FIRA_SANS', 'GOOGLE_SANS', 'GOOGLE_SANS_CODE', 'GOOGLE_SANS_FLEX', 'GOOGLE_SANS_MONO', 'GOOGLE_SANS_TEXT', 'IBM_PLEX_SERIF', 'JETBRAINS_MONO', 'KARLA', 'LIBRE_FRANKLIN', 'MERRIWEATHER', 'NOTO_SANS', 'OPEN_SANS', 'OSWALD', 'OUTFIT', 'PLAYFAIR_DISPLAY', 'POIRET_ONE', 'QUESTRIAL', 'QUICKSAND', 'RALEWAY', 'ROBOTO_FLEX', 'SPACE_MONO', 'SYNE', 'VOLLKORN'], 'type': 'string', 'description': 'Optional. Headline font.', 'x-google-enum-deprecated': [False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, True, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False], 'x-google-enum-descriptions': ['Unspecified font.', 'Be Vietnam Pro font.', 'Epilogue font.', 'Inter font.', 'Lexend font.', 'Manrope font.', 'Newsreader font.', 'Noto Serif font.', 'Plus Jakarta Sans font.', 'Public Sans font.', 'Space Grotesk font.', 'Spline Sans font.', 'Work Sans font.', 'Domine font.', 'Libre Caslon Text font.', 'EB Garamond font.', 'Literata font.', 'Source Serif 4 font.', 'Source Serif 4 font. Deprecated.', 'Montserrat font.', 'The Metrophobic font.', 'Metropolis font. Deprecated.', 'The Source Sans 3 font.', 'Source Sans 3 font. Deprecated.', 'Nunito Sans font.', 'Arimo font.', 'Hanken Grotesk font.', 'Rubik font.', 'Geist font.', 'DM Sans font.', 'IBM Plex Sans font.', 'Sora font.', 'Anybody font.', 'Anton font.', 'Archivo Narrow font.', 'Atkinson Hyperlegible Next font.', 'Barlow Condensed font.', 'Bebas Neue font.', 'Bodoni Moda font.', 'Bricolage Grotesque font.', 'Chivo font.', 'Climate Crisis font.', 'Comfortaa font.', 'Courier Prime font.', 'Fira Sans font.', 'Google Sans font.', 'Google Sans Code font.', 'Google Sans Flex font.', 'Google Sans Mono font.', 'Google Sans Text font.', 'IBM Plex Serif font.', 'JetBrains Mono font.', 'Karla font.', 'Libre Franklin font.', 'Merriweather font.', 'Noto Sans font.', 'Open Sans font.', 'Oswald font.', 'Outfit font.', 'Playfair Display font.', 'Poiret One font.', 'Questrial font.', 'Quicksand font.', 'Raleway font.', 'Roboto Flex font.', 'Space Mono font.', 'Syne font.', 'Vollkorn font.']}, 'spacingScale': {'type': 'integer', 'format': 'int32', 'description': 'Optional. The spacing scale level (0=minimal, 1=compact, 2=normal, 3=spacious).'}, 'backgroundDark': {'type': 'string', 'deprecated': True, 'description': 'Optional. DEPRECATED: The background color for dark mode (hex format, e.g., "#1a1a1a").'}, 'bodyFontFamily': {'type': 'string', 'description': 'Optional. Body font family name (e.g., "Inter", "Roboto").'}, 'backgroundLight': {'type': 'string', 'deprecated': True, 'description': 'Optional. DEPRECATED: The background color for light mode (hex format, e.g., "#f8f8f8").'}, 'labelFontFamily': {'type': 'string', 'description': 'Optional. Label font family name (e.g., "Inter", "Roboto").'}, 'headlineFontFamily': {'type': 'string', 'description': 'Optional. Headline font family name (e.g., "Inter", "Roboto").'}, 'overrideNeutralColor': {'type': 'string', 'description': 'Optional. Override neutral color for the dynamic color system (hex format, e.g., "#ffffff").'}, 'overridePrimaryColor': {'type': 'string', 'description': 'Optional. Override primary color for the dynamic color system (hex format, e.g., "#ff0000").'}, 'overrideTertiaryColor': {'type': 'string', 'description': 'Optional. Override tertiary color for the dynamic color system (hex format, e.g., "#0000ff").'}, 'overrideSecondaryColor': {'type': 'string', 'description': 'Optional. Override secondary color for the dynamic color system (hex format, e.g., "#00ff00").'}}, 'description': 'The theme of the design. Next ID: 27 LINT.IfChange'}, 'DesignSystem': {'type': 'object', 'properties': {'theme': {'$ref': '#/$defs/DesignTheme', 'description': 'Optional. The theme of the design system.'}, 'displayName': {'type': 'string', 'description': 'Optional. The display name of the design system.'}, 'designTokens': {'type': 'string', 'description': 'Optional. Serialized JSON object of the DTCG format design tokens.'}, 'styleGuidelines': {'type': 'string', 'description': 'Optional. Freeform text description of the style guidelines. This field is not displayed to the user and should not be included in MCP.'}}, 'description': "Represents a collection of guidelines, design tokens, and reusable components that define the visual and functional characteristics of a product's design. This is used to guide the generation of consistent and branded designs. LINT.IfChange"}, 'ComponentTokens': {'type': 'object', 'properties': {'tokens': {'type': 'object', 'description': 'Optional. A component may have these sub tokens: - backgroundColor: - textColor: - typography: - rounded: - padding: The value may be a literal value or a reference. A token reference must be wrapped in curly braces, and contain an object path to another value in the design system. The referenced object must be a primitive value, e.g. colors.primary-60, rather than an object, e.g. colors.', 'additionalProperties': {'type': 'string'}}}, 'description': 'A component style token in a design system.'}}, 'properties': {'name': {'type': 'string', 'description': 'Identifier. The resource name of the asset. Format: assets/{asset}', 'x-google-identifier': True}, 'version': {'type': 'string', 'format': 'int64', 'readOnly': True, 'description': 'Output only. The version of this asset. 0 indicates unversioned (legacy data). Incremented when the asset content changes.'}, 'copiedFrom': {'type': 'string', 'description': 'Optional. The resource name of the asset this was copied from, if any. Format: assets/{asset} Tracks the fork history of assets.'}, 'designSystem': {'$ref': '#/$defs/DesignSystem', 'description': 'Optional. The design system.'}}, 'description': 'An Asset resource.'}
upload_design_md
Uploads DESIGN.md to a Stitch project. Use this tool when the user wants to create a design system from a DESIGN.md file. **Instructions for Tool Call:** * Call `create_design_system_from_design_md` tool immediately after this tool to create the design system from the uploaded DESIGN.md, and display the design system in the UI.
破壊的操作あり
入力スキーマ
{'type': 'object', 'required': ['projectId', 'designMdBase64'], 'properties': {'projectId': {'type': 'string', 'description': "Required. The project ID to upload the DESIGN.md to, example: '4044680601076201931', without the `projects/` prefix."}, 'designMdBase64': {'type': 'string', 'description': 'Required. The base64-encoded DESIGN.md content. The decoded content must be valid UTF-8; uploads with invalid UTF-8 bytes will be rejected. Run `base64 -w 0 ` to get the base64-encoded string.'}}, 'description': 'Request message for UploadDesignMd.'}
出力スキーマ
{'type': 'object', '$defs': {'ScreenInstance': {'type': 'object', 'properties': {'x': {'type': 'integer', 'format': 'int32', 'description': 'Optional. The x position of the screen.'}, 'y': {'type': 'integer', 'format': 'int32', 'description': 'Optional. The y position of the screen.'}, 'id': {'type': 'string', 'description': 'Optional. The screen instance id.'}, 'type': {'enum': ['SCREEN_INSTANCE_TYPE_UNSPECIFIED', 'SCREEN_INSTANCE', 'DESIGN_SYSTEM_INSTANCE', 'GROUP_INSTANCE', 'TEXT_INSTANCE'], 'type': 'string', 'description': 'Optional. The type of screen instance.', 'x-google-enum-descriptions': ['The unspecified value.', 'A screen instance.', 'A design system instance.', 'A group instance.', 'A text instance.']}, 'label': {'type': 'string', 'description': 'Optional. The screen label.'}, 'width': {'type': 'integer', 'format': 'int32', 'description': 'Optional. The screen width.'}, 'height': {'type': 'integer', 'format': 'int32', 'description': 'Optional. The screen height.'}, 'hidden': {'type': 'boolean', 'description': 'Optional. User driven action hiding screen from the canvas.'}, 'groupId': {'type': 'string', 'description': 'Optional. Group identifier for Genie Agent output grouping. Screens with the same groupId are rendered and interact as a group.'}, 'groupName': {'type': 'string', 'description': 'Optional. Human-readable name for the group (e.g., "Warm Minimalism", "Ethereal Glow").'}, 'isResized': {'type': 'boolean', 'description': 'Optional. Whether this screen has been resized by the user.'}, 'isFavourite': {'type': 'boolean', 'description': 'Optional. Whether this screen is marked as a favourite by the user.'}, 'needsLayout': {'type': 'boolean', 'description': 'Optional. Whether this screen instance needs frontend layout positioning. Set by the PostProcessor when auto-linking screens that the agent generated but the frontend has not yet positioned on the canvas.'}, 'sourceAsset': {'type': 'string', 'description': 'Optional. The resource name of the source asset. Format: assets/{asset}. Only one of the following fields should be set: this field, sourceScreen, textContent.'}, 'textContent': {'type': 'string', 'description': 'Optional. Text content for TEXT_INSTANCE nodes. Only one of the following fields should be set: this field, sourceScreen, sourceAsset.'}, 'sourceScreen': {'type': 'string', 'description': 'Optional. The resource name of the source screen. Format: projects/{project}/screens/{screen}. Only one of the following fields should be set: this field, sourceAsset, textContent.'}, 'variantScreenInstance': {'$ref': '#/$defs/ScreenInstance', 'description': 'Optional. The variant Screen Instance.'}}, 'description': 'An instance of a screen on the project. Next ID: 18'}}, 'properties': {'x': {'type': 'integer', 'format': 'int32', 'description': 'Optional. The x position of the screen.'}, 'y': {'type': 'integer', 'format': 'int32', 'description': 'Optional. The y position of the screen.'}, 'id': {'type': 'string', 'description': 'Optional. The screen instance id.'}, 'type': {'enum': ['SCREEN_INSTANCE_TYPE_UNSPECIFIED', 'SCREEN_INSTANCE', 'DESIGN_SYSTEM_INSTANCE', 'GROUP_INSTANCE', 'TEXT_INSTANCE'], 'type': 'string', 'description': 'Optional. The type of screen instance.', 'x-google-enum-descriptions': ['The unspecified value.', 'A screen instance.', 'A design system instance.', 'A group instance.', 'A text instance.']}, 'label': {'type': 'string', 'description': 'Optional. The screen label.'}, 'width': {'type': 'integer', 'format': 'int32', 'description': 'Optional. The screen width.'}, 'height': {'type': 'integer', 'format': 'int32', 'description': 'Optional. The screen height.'}, 'hidden': {'type': 'boolean', 'description': 'Optional. User driven action hiding screen from the canvas.'}, 'groupId': {'type': 'string', 'description': 'Optional. Group identifier for Genie Agent output grouping. Screens with the same groupId are rendered and interact as a group.'}, 'groupName': {'type': 'string', 'description': 'Optional. Human-readable name for the group (e.g., "Warm Minimalism", "Ethereal Glow").'}, 'isResized': {'type': 'boolean', 'description': 'Optional. Whether this screen has been resized by the user.'}, 'isFavourite': {'type': 'boolean', 'description': 'Optional. Whether this screen is marked as a favourite by the user.'}, 'needsLayout': {'type': 'boolean', 'description': 'Optional. Whether this screen instance needs frontend layout positioning. Set by the PostProcessor when auto-linking screens that the agent generated but the frontend has not yet positioned on the canvas.'}, 'sourceAsset': {'type': 'string', 'description': 'Optional. The resource name of the source asset. Format: assets/{asset}. Only one of the following fields should be set: this field, sourceScreen, textContent.'}, 'textContent': {'type': 'string', 'description': 'Optional. Text content for TEXT_INSTANCE nodes. Only one of the following fields should be set: this field, sourceScreen, sourceAsset.'}, 'sourceScreen': {'type': 'string', 'description': 'Optional. The resource name of the source screen. Format: projects/{project}/screens/{screen}. Only one of the following fields should be set: this field, sourceAsset, textContent.'}, 'variantScreenInstance': {'$ref': '#/$defs/ScreenInstance', 'description': 'Optional. The variant Screen Instance.'}}, 'description': 'An instance of a screen on the project. Next ID: 18'}
変更
apply_design_system
2026年9月23日2:53
変更
generate_variants
2026年9月23日2:53
変更
edit_screens
2026年9月23日2:53
変更
generate_screen_from_text
2026年9月23日2:53
変更
apply_design_system
2026年9月19日2:51
変更
upload_design_md
2026年9月19日2:51
変更
generate_variants
2026年9月19日2:51
変更
edit_screens
2026年9月19日2:51
変更
generate_screen_from_text
2026年9月19日2:51
変更
get_screen
2026年9月19日2:51
変更
list_screens
2026年9月19日2:51
変更
list_projects
2026年9月19日2:51
変更
get_project
2026年9月19日2:51
変更
create_project
2026年9月19日2:51
追加
apply_design_system
2026年9月17日12:35
追加
list_design_systems
2026年9月17日12:35
追加
update_design_system
2026年9月17日12:35
追加
create_design_system_from_design_md
2026年9月17日12:35
追加
create_design_system
2026年9月17日12:35
追加
upload_design_md
2026年9月17日12:35
追加
generate_variants
2026年9月17日12:35
追加
edit_screens
2026年9月17日12:35
追加
generate_screen_from_text
2026年9月17日12:35
追加
get_screen
2026年9月17日12:35
追加
list_screens
2026年9月17日12:35
追加
list_projects
2026年9月17日12:35
追加
delete_project
2026年9月17日12:35
追加
get_project
2026年9月17日12:35
追加
create_project
2026年9月17日12:35