mcp
Ce que fait ce MCP
Creates and edits Stitch UI projects and screens, generates screen variants, and manages application design systems.
Outils
Schéma d’entrée
{'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.'}
Schéma de sortie
{'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.'}
Schéma d’entrée
{'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.'}
Schéma de sortie
{'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.'}
Schéma d’entrée
{'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.'}
Schéma de sortie
{'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.'}
Schéma d’entrée
{'type': 'object', 'properties': {'title': {'type': 'string', 'description': 'Optional. The title of the project.'}}, 'description': 'Request message for CreateProject.'}
Schéma de sortie
{'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.'}
Schéma d’entrée
{'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.'}
Schéma de sortie
{'type': 'object', 'properties': {}, 'description': 'Response message for DeleteProject.'}
Schéma d’entrée
{'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.'}
Schéma de sortie
{'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.'}
Schéma d’entrée
{'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.'}
Schéma de sortie
{'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.'}
Schéma d’entrée
{'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.'}
Schéma de sortie
{'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.'}
Schéma d’entrée
{'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.'}
Schéma de sortie
{'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.'}
Schéma d’entrée
{'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.'}
Schéma de sortie
{'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.'}
Schéma d’entrée
{'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.'}
Schéma de sortie
{'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.'}
Schéma d’entrée
{'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.'}
Schéma de sortie
{'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.'}
Schéma d’entrée
{'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.'}
Schéma de sortie
{'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.'}
Schéma d’entrée
{'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.'}
Schéma de sortie
{'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.'}
Schéma d’entrée
{'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.'}
Schéma de sortie
{'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'}
Modifications récentes des outils
Serveurs MCP similaires
GripForge
Generates, rigs, animates, analyzes, and packages game characters, weapons, armor, effects, environments, and engine-ready assets.
spriteship
Generates and manages 2D game characters, assets, animations, tilesets, UI packs, maps, and engine-ready exports for multiple gam…
Blixtworks
Offers pay-per-call utilities for text, image processing and analysis, data conversion, validation, web inspection, cryptography,…
Compose Preview Catalogs
Browses, renders, compares, audits, and edits Jetpack Compose preview catalogs and associated UI designs.
arch-tools-mcp
Provides general-purpose agent APIs for browser automation, web and PDF extraction, data conversion, email operations, fact check…
kernelcad
Authors, evaluates, reviews, simulates, edits, and exports parametric CAD assemblies and geometry from editable TypeScript-based …
floot
Creates, edits, previews, databases, and publishes full-stack web and mobile applications with hosted resources and deployment wo…
Raven
Supports coding agents with design audits, design-system guidance, and a configurable visual preference profile.