Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,561Letters: 14Defects: 1,336counted 3 min ago
teppi

Server definition

Hash
sha256:c3bc1546a12ec5259b52e50204c57689ca965213723b39ecc25158c37393c87e
What it is
What a remote MCP server returned when asked what it offers: 15 tools

The blob, as servednamed by its sha256

{ "instructions": null, "tools": [ { "description": "Applies a design system to a list of screens. Use this tool when the user wants to update one or more screens to match the style of a design system.\nThis tool applies the selected design system's foundational design tokens (colors, fonts, shapes, etc.) to the chosen screens, modifying their appearance to align with the design system.\n", "inputSchema": { "$defs": { "SelectedScreenInstance": { "description": "A screen instance to be edited by the agent, selected by the user.", "properties": { "id": { "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`.", "type": "string" }, "sourceScreen": { "description": "Required. The source screen of the screen instance. The resource name of the source screen. Format: projects/{project}/screens/{screen}", "type": "string" } }, "required": [ "id", "sourceScreen" ], "type": "object" } }, "description": "Request message for ApplyDesignSystem.", "properties": { "assetId": { "description": "Required. The asset id of the design system to apply, can be fetched from 'list_design_systems'. Example: '15996705518239280238', without the `assets/` prefix.", "type": "string" }, "projectId": { "description": "Required. The project ID of screen instances to edit, example: '4044680601076201931', without the `projects/` prefix.", "type": "string" }, "selectedScreenInstances": { "description": "Required. The screen instances to edit, which is available in the Project info, fetched by `get_project`.", "items": { "$ref": "#/$defs/SelectedScreenInstance" }, "type": "array" } }, "required": [ "projectId", "selectedScreenInstances", "assetId" ], "type": "object" }, "name": "apply_design_system", "outputSchema": { "$defs": { "Asset": { "description": "An Asset resource.", "properties": { "copiedFrom": { "description": "Optional. The resource name of the asset this was copied from, if any. Format: assets/{asset} Tracks the fork history of assets.", "type": "string" }, "designSystem": { "$ref": "#/$defs/DesignSystem", "description": "Optional. The design system." }, "name": { "description": "Identifier. The resource name of the asset. Format: assets/{asset}", "type": "string", "x-google-identifier": true }, "version": { "description": "Output only. The version of this asset. 0 indicates unversioned (legacy data). Incremented when the asset content changes.", "format": "int64", "readOnly": true, "type": "string" } }, "type": "object" }, "BoundingBox": { "description": "The bounding box of a component.", "properties": { "height": { "description": "The height of the bounding box.", "format": "int32", "type": "integer" }, "width": { "description": "The width of the bounding box.", "format": "int32", "type": "integer" }, "x": { "description": "The x coordinate of the bounding box, relative to the image width.", "format": "int32", "type": "integer" }, "y": { "description": "The y coordinate of the bounding box, relative to the image height.", "format": "int32", "type": "integer" } }, "type": "object" }, "ComponentRegion": { "description": "The region of a component region.", "properties": { "boundingBox": { "$ref": "#/$defs/BoundingBox", "description": "The bounding box of the component region." }, "description": { "description": "The description of the component region.", "type": "string" }, "type": { "description": "The type of the component region.", "enum": [ "COMPONENT_TYPE_UNSPECIFIED", "COMPONENT_TYPE_IMAGE", "COMPONENT_TYPE_TEXT", "COMPONENT_TYPE_BUTTON", "COMPONENT_TYPE_INPUT", "COMPONENT_TYPE_CONTAINER" ], "type": "string", "x-google-enum-descriptions": [ "Unspecified component type.", "An image component.", "A text component.", "A button component.", "An input component.", "A container component." ] }, "xpath": { "description": "The xpath of the component region.", "type": "string" } }, "type": "object" }, "ComponentTokens": { "description": "A component style token in a design system.", "properties": { "tokens": { "additionalProperties": { "type": "string" }, "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.", "type": "object" } }, "type": "object" }, "Design": { "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.", "properties": { "deviceType": { "description": "Optional. The device type of the design.", "enum": [ "DEVICE_TYPE_UNSPECIFIED", "MOBILE", "DESKTOP", "TABLET", "AGNOSTIC" ], "type": "string", "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." ] }, "screens": { "description": "Optional. The screens of the design.", "items": { "$ref": "#/$defs/Screen" }, "type": "array" }, "theme": { "$ref": "#/$defs/DesignTheme", "description": "Optional. The theme used to generate the design." }, "title": { "description": "Optional. The generated title of the design.", "type": "string" } }, "type": "object" }, "DesignSuggestion": { "description": "A suggested next action for a screen.", "properties": { "label": { "description": "A short label for the suggestion (max 3 words, e.g. \"Dark mode theme\").", "type": "string" }, "prompt": { "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\").", "type": "string" } }, "type": "object" }, "DesignSystem": { "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", "properties": { "designTokens": { "description": "Optional. Serialized JSON object of the DTCG format design tokens.", "type": "string" }, "displayName": { "description": "Optional. The display name of the design system.", "type": "string" }, "styleGuidelines": { "description": "Optional. Freeform text description of the style guidelines. This field is not displayed to the user and should not be included in MCP.", "type": "string" }, "theme": { "$ref": "#/$defs/DesignTheme", "description": "Optional. The theme of the design system." } }, "type": "object" }, "DesignTheme": { "description": "The theme of the design. Next ID: 27 LINT.IfChange", "properties": { "backgroundDark": { "deprecated": true, "description": "Optional. DEPRECATED: The background color for dark mode (hex format, e.g., \"#1a1a1a\").", "type": "string" }, "backgroundLight": { "deprecated": true, "description": "Optional. DEPRECATED: The background color for light mode (hex format, e.g., \"#f8f8f8\").", "type": "string" }, "bodyFont": { "description": "Optional. Body 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", "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." ] }, "bodyFontFamily": { "description": "Optional. Body font family name (e.g., \"Inter\", \"Roboto\").", "type": "string" }, "colorMode": { "description": "Required. The mode of appearance of the design.", "enum": [ "COLOR_MODE_UNSPECIFIED", "LIGHT", "DARK" ], "type": "string", "x-google-enum-descriptions": [ "Unspecified color mode.", "Light mode.", "Dark mode." ] }, "colorVariant": { "description": "Optional. The variant of the dynamic color system.", "enum": [ "COLOR_VARIANT_UNSPECIFIED", "MONOCHROME", "NEUTRAL", "TONAL_SPOT", "VIBRANT", "EXPRESSIVE", "FIDELITY", "CONTENT", "RAINBOW", "FRUIT_SALAD" ], "type": "string", "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." ] }, "components": { "additionalProperties": { "$ref": "#/$defs/ComponentTokens" }, "description": "Optional. Component tokens for the design system. Maps component names to their tokens.", "type": "object" }, "customColor": { "description": "Optional. A custom theme primary color, or a seed color for the dynamic color system (hex format, e.g., \"#ff0000\").", "type": "string" }, "description": { "deprecated": true, "description": "Optional. A brief description of the theme aesthetic.", "type": "string" }, "designMd": { "description": "Optional. A markdown file that describes the design system.", "type": "string" }, "font": { "deprecated": true, "description": "Optional. DEPRECATED: The font of the design. Planned to be deprecated in favor of `headline_font`, `body_font`, and `label_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", "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." ] }, "headlineFont": { "description": "Optional. Headline 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", "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." ] }, "headlineFontFamily": { "description": "Optional. Headline font family name (e.g., \"Inter\", \"Roboto\").", "type": "string" }, "labelFont": { "description": "Optional. Label 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", "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." ] }, "labelFontFamily": { "description": "Optional. Label font family name (e.g., \"Inter\", \"Roboto\").", "type": "string" }, "namedColors": { "additionalProperties": { "type": "string" }, "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\"}", "type": "object" }, "overrideNeutralColor": { "description": "Optional. Override neutral color for the dynamic color system (hex format, e.g., \"#ffffff\").", "type": "string" }, "overridePrimaryColor": { "description": "Optional. Override primary color for the dynamic color system (hex format, e.g., \"#ff0000\").", "type": "string" }, "overrideSecondaryColor": { "description": "Optional. Override secondary color for the dynamic color system (hex format, e.g., \"#00ff00\").", "type": "string" }, "overrideTertiaryColor": { "description": "Optional. Override tertiary color for the dynamic color system (hex format, e.g., \"#0000ff\").", "type": "string" }, "preset": { "deprecated": true, "description": "Optional. DEPRECATED: The preset color of the design.", "type": "string" }, "roundness": { "description": "Required. The roundness of the design.", "enum": [ "ROUNDNESS_UNSPECIFIED", "ROUND_TWO", "ROUND_FOUR", "ROUND_EIGHT", "ROUND_TWELVE", "ROUND_FULL" ], "type": "string", "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." ] }, "saturation": { "deprecated": true, "description": "Optional. DEPRECATED: The saturation of the design between 1 and 4.", "format": "int32", "type": "integer" }, "spacing": { "additionalProperties": { "type": "string" }, "description": "Optional. Spacing units for the design system. Maps spacing names to their values.", "type": "object" }, "spacingScale": { "description": "Optional. The spacing scale level (0=minimal, 1=compact, 2=normal, 3=spacious).", "format": "int32", "type": "integer" }, "typography": { "additionalProperties": { "$ref": "#/$defs/Typography" }, "description": "Optional. Typography scale for the design system. Maps level names (e.g. \"display-lg\", \"body-md\") to their Typography token.", "type": "object" } }, "type": "object" }, "File": { "description": "A File resource.", "properties": { "downloadUrl": { "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.", "type": "string" }, "fileContentBase64": { "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.", "type": "string", "writeOnly": true }, "mimeType": { "description": "Optional. The mime type of the file. E.g. \"image/png\", \"text/html\".", "type": "string" }, "name": { "description": "Identifier. The resource name of the file. Format: projects/{project}/files/{file}", "type": "string", "x-google-identifier": true }, "uploadBlobId": { "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.", "type": "string" }, "userFeedback": { "$ref": "#/$defs/UserFeedback", "description": "Output only. The latest feedback submitted for the file.", "readOnly": true } }, "type": "object" }, "ProgressUpdate": { "properties": { "displayName": { "type": "string" }, "status": { "enum": [ "STATUS_UNSPECIFIED", "STARTED", "COMPLETED", "FAILED" ], "type": "string", "x-google-enum-descriptions": [ "", "", "", "" ] }, "toolCallId": { "type": "string" }, "toolName": { "type": "string" } }, "type": "object" }, "ProgressUpdates": { "properties": { "updates": { "items": { "$ref": "#/$defs/ProgressUpdate" }, "type": "array" } }, "type": "object" }, "PrototypeLink": { "description": "A single interactive link within a prototype screen.", "properties": { "state": { "description": "Optional. The state under which this link is active. Defaults to \"default\".", "type": "string" }, "targetScreenId": { "description": "Required. ID of the destination screen.", "type": "string" }, "transition": { "description": "Optional. The transition animation to use when navigating to the target screen.", "enum": [ "TRANSITION_TYPE_UNSPECIFIED", "NONE", "PUSH", "PUSH_BACK", "SLIDE_UP" ], "type": "string", "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." ] }, "xpath": { "description": "Required. XPath to the interactive element.", "type": "string" } }, "type": "object" }, "PrototypeLinks": { "description": "A collection of prototype links for a single screen.", "properties": { "links": { "description": "Optional. The list of links for this screen.", "items": { "$ref": "#/$defs/PrototypeLink" }, "type": "array" } }, "type": "object" }, "PrototypeState": { "description": "A named state that controls link behavior in a prototype.", "properties": { "name": { "description": "Required. The name of the state (e.g., \"default\", \"login-failed\").", "type": "string" } }, "type": "object" }, "PrototypeV2Spec": { "description": "The full specification for a V2 interactive prototype.", "properties": { "initScreenId": { "description": "Required. ID of the initial screen.", "type": "string" }, "links": { "additionalProperties": { "$ref": "#/$defs/PrototypeLinks" }, "description": "Optional. Map of screenId to list of links.", "type": "object" }, "screenIds": { "description": "Optional. List of all screen IDs.", "items": { "type": "string" }, "type": "array" }, "states": { "description": "Optional. The list of states available in this prototype.", "items": { "$ref": "#/$defs/PrototypeState" }, "type": "array" } }, "type": "object" }, "Question": { "description": "A single structured question the agent asks the user.", "properties": { "options": { "description": "Options for MULTIPLE_CHOICE / SINGLE_CHOICE questions.", "items": { "type": "string" }, "type": "array" }, "questionId": { "description": "An optional unique identifier for correlating answers to questions.", "type": "string" }, "responseType": { "description": "The expected response type.", "enum": [ "QUESTION_RESPONSE_TYPE_UNSPECIFIED", "FREEFORM_TEXT", "MULTIPLE_CHOICE", "SINGLE_CHOICE", "YES_NO", "RATING_SCALE" ], "type": "string", "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." ] }, "text": { "description": "The question text displayed to the user.", "type": "string" } }, "type": "object" }, "QuestionsAsked": { "description": "A set of questions sent from the agent to the user.", "properties": { "questions": { "description": "The list of questions asked by the agent.", "items": { "$ref": "#/$defs/Question" }, "type": "array" } }, "type": "object" }, "Screen": { "description": "A generated screen.", "properties": { "designSystem": { "$ref": "#/$defs/Asset", "description": "Output only. The design system used to generate the screen.", "readOnly": true }, "deviceType": { "description": "Optional. The device type of the screen.", "enum": [ "DEVICE_TYPE_UNSPECIFIED", "MOBILE", "DESKTOP", "TABLET", "AGNOSTIC" ], "type": "string", "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." ] }, "figmaExport": { "$ref": "#/$defs/File", "description": "Optional. The Figma export of the screen." }, "generatedBy": { "description": "Optional. The generated by field of the screen.", "type": "string" }, "groupId": { "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).", "type": "string" }, "groupName": { "description": "Optional. The name of the group (e.g., design package name) for display purposes.", "type": "string" }, "height": { "description": "Optional. The height of the screen.", "type": "string" }, "htmlCode": { "$ref": "#/$defs/File", "description": "Optional. The HTML code of the screen." }, "id": { "deprecated": true, "description": "Optional. The screen id.", "type": "string" }, "isCreatedByClient": { "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.", "type": "boolean" }, "name": { "description": "Identifier. The resource name of the screen. Format: projects/{project}/screens/{screen}", "type": "string", "x-google-identifier": true }, "prompt": { "description": "Optional. The prompt used to generate the screen.", "type": "string" }, "screenMetadata": { "$ref": "#/$defs/ScreenMetadata", "description": "Optional. The metadata of the screen." }, "screenType": { "description": "Optional. The screen type.", "enum": [ "SCREEN_TYPE_UNSPECIFIED", "DESIGN", "IMAGE", "PROTOTYPE", "DOCUMENT", "PROTOTYPE_V2" ], "type": "string", "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." }, "theme": { "$ref": "#/$defs/DesignTheme", "description": "Optional. The theme used to generate the screen." }, "title": { "description": "Optional. The title of the screen.", "type": "string" }, "width": { "description": "Optional. The width of the screen.", "type": "string" } }, "type": "object" }, "ScreenMetadata": { "description": "The metadata of a screen.", "properties": { "agentType": { "description": "The agent type that generated the screen.", "enum": [ "DESIGN_AGENT_TYPE_UNSPECIFIED", "TURBO_AGENT", "PRO_AGENT", "IMAGE_AGENT", "GENIE_AGENT", "IMAGE_PRO_AGENT", "HATTER_AGENT", "GEMINI_3_AGENT" ], "type": "string", "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." ] }, "componentRegions": { "description": "Optional. The component regions of the screen.", "items": { "$ref": "#/$defs/ComponentRegion" }, "type": "array" }, "displayMode": { "description": "Optional. Whether the frontend should display HTML or a screenshot.", "enum": [ "DISPLAY_MODE_UNSPECIFIED", "SCREENSHOT", "HTML", "CODE", "MARKDOWN", "STICKY_NOTE", "SVG", "TABLE", "MERMAID", "CHECKLIST", "CHART", "PDF", "FIGMA" ], "type": "string", "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." ] }, "isRemixed": { "description": "Optional. Whether this screen was created as a result of remixing or not.", "type": "boolean" }, "prototypeSpec": { "$ref": "#/$defs/PrototypeV2Spec", "description": "Optional. The prototype spec of the screen." }, "status": { "description": "The status of the screen.", "enum": [ "SCREEN_STATUS_UNSPECIFIED", "IN_PROGRESS", "COMPLETE", "FAILED" ], "type": "string", "x-google-enum-descriptions": [ "Unspecified screen status.", "The screen is in progress.", "The screen is complete.", "The screen failed to generate." ] }, "statusMessage": { "description": "Optional. A human readable status message for the screen, generated by the agent.", "type": "string" }, "suggestions": { "description": "Optional. Suggested next actions for the screen.", "items": { "$ref": "#/$defs/DesignSuggestion" }, "type": "array" }, "summary": { "description": "Optional. A first-person summary of what was generated or changed for the screen.", "type": "string" } }, "type": "object" }, "SessionEvent": { "description": "Flexible session events carrying JSON payload.", "properties": { "actor": { "description": "Output only. The actor who triggered the event.", "readOnly": true, "type": "string" }, "eventId": { "description": "Output only. Unique identifier for the event.", "readOnly": true, "type": "string" }, "eventPayload": { "additionalProperties": { "description": "Properties of the object." }, "description": "Output only. Payload carrying flexible event data.", "readOnly": true, "type": "object" }, "eventTime": { "description": "Output only. Time when the event occurred.", "format": "date-time", "readOnly": true, "type": "string" }, "eventType": { "description": "Output only. Type of the event.", "readOnly": true, "type": "string" } }, "type": "object" }, "SessionOutputComponent": { "description": "A partial output of the session.", "properties": { "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." }, "designSystem": { "$ref": "#/$defs/Asset", "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.", "readOnly": true }, "progressUpdates": { "$ref": "#/$defs/ProgressUpdates", "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.", "readOnly": true }, "questionsAsked": { "$ref": "#/$defs/QuestionsAsked", "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.", "readOnly": true }, "sessionEvent": { "$ref": "#/$defs/SessionEvent", "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.", "readOnly": true }, "suggestion": { "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.", "type": "string" }, "text": { "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.", "type": "string" } }, "type": "object" }, "Typography": { "description": "A typography style token in a design system, defining the visual properties for a single text level (e.g. \"display-lg\", \"body-md\").", "properties": { "fontFamily": { "description": "Optional. The CSS font-family value (e.g., \"Manrope\", \"Inter\").", "type": "string" }, "fontSize": { "description": "Optional. The CSS font-size value (e.g., \"32px\", \"1rem\").", "type": "string" }, "fontWeight": { "description": "Optional. The CSS font-weight value (e.g., \"400\", \"700\").", "type": "string" }, "letterSpacing": { "description": "Optional. The CSS letter-spacing value (e.g., \"0px\", \"-0.02em\").", "type": "string" }, "lineHeight": { "description": "Optional. The CSS line-height value (e.g., \"1.5\", \"40px\").", "type": "string" } }, "type": "object" }, "UserFeedback": { "description": "User feedback for a given interaction.", "properties": { "comment": { "description": "Optional. Additional comment for the rating.", "type": "string" }, "designFeedbackReason": { "description": "Optional. The reason for the feedback for a design, if the rating is negative.", "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", "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." ] }, "rating": { "description": "Optional. The user rating of the interaction.", "enum": [ "RATING_UNSPECIFIED", "POSITIVE", "NEGATIVE" ], "type": "string", "x-google-enum-descriptions": [ "Unspecified rating.", "Positive rating.", "Negative rating." ] } }, "type": "object" } }, "description": "The output design generated by the agent.", "properties": { "outputComponents": { "description": "The generated output components.", "items": { "$ref": "#/$defs/SessionOutputComponent" }, "type": "array" }, "projectId": { "description": "The project ID of the generated screen. This is the same as the input project ID.", "type": "string" }, "sessionId": { "description": "The session ID of the generated screen.", "type": "string" } }, "type": "object" } }, { "description": "Creates a new design system for a project. Use this tool when the user wants to set or update the overall visual theme, style, or branding of the application.\nThis includes configuring:\n- Color Palette: Presets, custom primary colors, and saturation levels.\n- Typography: Font families (e.g., Inter, Roboto, etc.).\n- Shape: Corner roundness for UI elements.\n- Appearance: Light and dark mode background colors.\n- Design MD: Free-form design instructions in markdown.\nThis tool establishes the foundational design tokens that apply across all screens in the project.\n\n**Instructions for Tool Call:**\n* Call `update_design_system` tool immediately after this tool to apply the design system to the project, and display the design system in the UI.\n", "inputSchema": { "$defs": { "DesignSystem": { "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", "properties": { "displayName": { "description": "Required. Specifies the display name of the design system.", "type": "string" }, "theme": { "$ref": "#/$defs/DesignTheme", "description": "Required. Specifies the theme of the design system." } }, "required": [ "displayName", "theme" ], "type": "object" }, "DesignTheme": { "description": "The theme of the design. Next ID: 15 LINT.IfChange", "properties": { "bodyFont": { "description": "Required. Specifies the body 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", "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." ] }, "colorMode": { "description": "Required. Specifies the mode of appearance of the design.", "enum": [ "COLOR_MODE_UNSPECIFIED", "LIGHT", "DARK" ], "type": "string", "x-google-enum-descriptions": [ "Unspecified color mode.", "Light mode.", "Dark mode." ] }, "colorVariant": { "description": "Optional. Specifies the variant of the dynamic color system.", "enum": [ "COLOR_VARIANT_UNSPECIFIED", "MONOCHROME", "NEUTRAL", "TONAL_SPOT", "VIBRANT", "EXPRESSIVE", "FIDELITY", "CONTENT", "RAINBOW", "FRUIT_SALAD" ], "type": "string", "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." ] }, "customColor": { "description": "Required. Specifies a custom theme primary color, or a seed color for the dynamic color system (hex format, e.g., \"#ff0000\").", "type": "string" }, "designMd": { "description": "Optional. Specifies a markdown file that describes the design system.", "type": "string" }, "headlineFont": { "description": "Required. Specifies the headline 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", "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." ] }, "labelFont": { "description": "Optional. Specifies the label 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", "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": { "description": "Optional. Overrides the neutral color for the dynamic color system (hex format, e.g., \"#ffffff\").", "type": "string" }, "overridePrimaryColor": { "description": "Optional. Overrides the primary color for the dynamic color system (hex format, e.g., \"#ff0000\").", "type": "string" }, "overrideSecondaryColor": { "description": "Optional. Overrides the secondary color for the dynamic color system (hex format, e.g., \"#00ff00\").", "type": "string" }, "overrideTertiaryColor": { "description": "Optional. Overrides the tertiary color for the dynamic color system (hex format, e.g., \"#0000ff\").", "type": "string" }, "roundness": { "description": "Required. Specifies the roundness of the design. Supported values are: \"ROUND_FOUR\", \"ROUND_EIGHT\", and \"ROUND_TWELVE\", and \"ROUND_FULL\".", "enum": [ "ROUNDNESS_UNSPECIFIED", "ROUND_TWO", "ROUND_FOUR", "ROUND_EIGHT", "ROUND_TWELVE", "ROUND_FULL" ], "type": "string", "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." ] }, "spacing": { "additionalProperties": { "type": "string" }, "description": "Optional. Spacing units for the design system. Maps spacing names to their values.", "type": "object" }, "typography": { "additionalProperties": { "$ref": "#/$defs/Typography" }, "description": "Optional. Typography scale for the design system. Maps level names (e.g. \"display-lg\", \"body-md\") to their Typography token.", "type": "object" } }, "required": [ "colorMode", "headlineFont", "bodyFont", "roundness", "customColor" ], "type": "object" }, "Typography": { "description": "A typography style token in a design system, defining the visual properties for a single text level (e.g. \"display-lg\", \"body-md\").", "properties": { "fontFamily": { "description": "Optional. The CSS font-family value (e.g., \"Manrope\", \"Inter\").", "type": "string" }, "fontSize": { "description": "Optional. The CSS font-size value (e.g., \"32px\", \"1rem\").", "type": "string" }, "fontWeight": { "description": "Optional. The CSS font-weight value (e.g., \"400\", \"700\").", "type": "string" }, "letterSpacing": { "description": "Optional. The CSS letter-spacing value (e.g., \"0px\", \"-0.02em\").", "type": "string" }, "lineHeight": { "description": "Optional. The CSS line-height value (e.g., \"1.5\", \"40px\").", "type": "string" } }, "type": "object" } }, "description": "Request message for CreateDesignSystem.", "properties": { "designSystem": { "$ref": "#/$defs/DesignSystem", "description": "Required. The design system to create." }, "projectId": { "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).", "type": "string" } }, "required": [ "designSystem" ], "type": "object" }, "name": "create_design_system", "outputSchema": { "$defs": { "ComponentTokens": { "description": "A component style token in a design system.", "properties": { "tokens": { "additionalProperties": { "type": "string" }, "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.", "type": "object" } }, "type": "object" }, "DesignSystem": { "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", "properties": { "designTokens": { "description": "Optional. Serialized JSON object of the DTCG format design tokens.", "type": "string" }, "displayName": { "description": "Optional. The display name of the design system.", "type": "string" }, "styleGuidelines": { "description": "Optional. Freeform text description of the style guidelines. This field is not displayed to the user and should not be included in MCP.", "type": "string" }, "theme": { "$ref": "#/$defs/DesignTheme", "description": "Optional. The theme of the design system." } }, "type": "object" }, "DesignTheme": { "description": "The theme of the design. Next ID: 27 LINT.IfChange", "properties": { "backgroundDark": { "deprecated": true, "description": "Optional. DEPRECATED: The background color for dark mode (hex format, e.g., \"#1a1a1a\").", "type": "string" }, "backgroundLight": { "deprecated": true, "description": "Optional. DEPRECATED: The background color for light mode (hex format, e.g., \"#f8f8f8\").", "type": "string" }, "bodyFont": { "description": "Optional. Body 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", "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." ] }, "bodyFontFamily": { "description": "Optional. Body font family name (e.g., \"Inter\", \"Roboto\").", "type": "string" }, "colorMode": { "description": "Required. The mode of appearance of the design.", "enum": [ "COLOR_MODE_UNSPECIFIED", "LIGHT", "DARK" ], "type": "string", "x-google-enum-descriptions": [ "Unspecified color mode.", "Light mode.", "Dark mode." ] }, "colorVariant": { "description": "Optional. The variant of the dynamic color system.", "enum": [ "COLOR_VARIANT_UNSPECIFIED", "MONOCHROME", "NEUTRAL", "TONAL_SPOT", "VIBRANT", "EXPRESSIVE", "FIDELITY", "CONTENT", "RAINBOW", "FRUIT_SALAD" ], "type": "string", "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." ] }, "components": { "additionalProperties": { "$ref": "#/$defs/ComponentTokens" }, "description": "Optional. Component tokens for the design system. Maps component names to their tokens.", "type": "object" }, "customColor": { "description": "Optional. A custom theme primary color, or a seed color for the dynamic color system (hex format, e.g., \"#ff0000\").", "type": "string" }, "description": { "deprecated": true, "description": "Optional. A brief description of the theme aesthetic.", "type": "string" }, "designMd": { "description": "Optional. A markdown file that describes the design system.", "type": "string" }, "font": { "deprecated": true, "description": "Optional. DEPRECATED: The font of the design. Planned to be deprecated in favor of `headline_font`, `body_font`, and `label_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", "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." ] }, "headlineFont": { "description": "Optional. Headline 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", "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." ] }, "headlineFontFamily": { "description": "Optional. Headline font family name (e.g., \"Inter\", \"Roboto\").", "type": "string" }, "labelFont": { "description": "Optional. Label 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", "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." ] }, "labelFontFamily": { "description": "Optional. Label font family name (e.g., \"Inter\", \"Roboto\").", "type": "string" }, "namedColors": { "additionalProperties": { "type": "string" }, "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\"}", "type": "object" }, "overrideNeutralColor": { "description": "Optional. Override neutral color for the dynamic color system (hex format, e.g., \"#ffffff\").", "type": "string" }, "overridePrimaryColor": { "description": "Optional. Override primary color for the dynamic color system (hex format, e.g., \"#ff0000\").", "type": "string" }, "overrideSecondaryColor": { "description": "Optional. Override secondary color for the dynamic color system (hex format, e.g., \"#00ff00\").", "type": "string" }, "overrideTertiaryColor": { "description": "Optional. Override tertiary color for the dynamic color system (hex format, e.g., \"#0000ff\").", "type": "string" }, "preset": { "deprecated": true, "description": "Optional. DEPRECATED: The preset color of the design.", "type": "string" }, "roundness": { "description": "Required. The roundness of the design.", "enum": [ "ROUNDNESS_UNSPECIFIED", "ROUND_TWO", "ROUND_FOUR", "ROUND_EIGHT", "ROUND_TWELVE", "ROUND_FULL" ], "type": "string", "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." ] }, "saturation": { "deprecated": true, "description": "Optional. DEPRECATED: The saturation of the design between 1 and 4.", "format": "int32", "type": "integer" }, "spacing": { "additionalProperties": { "type": "string" }, "description": "Optional. Spacing units for the design system. Maps spacing names to their values.", "type": "object" }, "spacingScale": { "description": "Optional. The spacing scale level (0=minimal, 1=compact, 2=normal, 3=spacious).", "format": "int32", "type": "integer" }, "typography": { "additionalProperties": { "$ref": "#/$defs/Typography" }, "description": "Optional. Typography scale for the design system. Maps level names (e.g. \"display-lg\", \"body-md\") to their Typography token.", "type": "object" } }, "type": "object" }, "Typography": { "description": "A typography style token in a design system, defining the visual properties for a single text level (e.g. \"display-lg\", \"body-md\").", "properties": { "fontFamily": { "description": "Optional. The CSS font-family value (e.g., \"Manrope\", \"Inter\").", "type": "string" }, "fontSize": { "description": "Optional. The CSS font-size value (e.g., \"32px\", \"1rem\").", "type": "string" }, "fontWeight": { "description": "Optional. The CSS font-weight value (e.g., \"400\", \"700\").", "type": "string" }, "letterSpacing": { "description": "Optional. The CSS letter-spacing value (e.g., \"0px\", \"-0.02em\").", "type": "string" }, "lineHeight": { "description": "Optional. The CSS line-height value (e.g., \"1.5\", \"40px\").", "type": "string" } }, "type": "object" } }, "description": "An Asset resource.", "properties": { "copiedFrom": { "description": "Optional. The resource name of the asset this was copied from, if any. Format: assets/{asset} Tracks the fork history of assets.", "type": "string" }, "designSystem": { "$ref": "#/$defs/DesignSystem", "description": "Optional. The design system." }, "name": { "description": "Identifier. The resource name of the asset. Format: assets/{asset}", "type": "string", "x-google-identifier": true }, "version": { "description": "Output only. The version of this asset. 0 indicates unversioned (legacy data). Incremented when the asset content changes.", "format": "int64", "readOnly": true, "type": "string" } }, "type": "object" } }, { "description": "Creates a design system for a project, with user uploaded DESIGN.md file, and displays the design system in the UI.\n\n**Instructions for Tool Call:**\n* Should call `upload_design_md` tool first to upload DESIGN.md to a Stitch project.\n", "inputSchema": { "$defs": { "SelectedScreenInstance": { "description": "A screen instance to be edited by the agent, selected by the user.", "properties": { "id": { "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`.", "type": "string" }, "sourceScreen": { "description": "Required. The source screen of the screen instance. The resource name of the source screen. Format: projects/{project}/screens/{screen}", "type": "string" } }, "required": [ "id", "sourceScreen" ], "type": "object" } }, "description": "Request message for CreateDesignSystemFromDesignMd.", "properties": { "deviceType": { "description": "Optional. The device type of the screen.", "enum": [ "DEVICE_TYPE_UNSPECIFIED", "MOBILE", "DESKTOP", "TABLET", "AGNOSTIC" ], "type": "string", "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." ] }, "projectId": { "description": "Required. The project ID to update design system for, example: '4044680601076201931', without the `projects/` prefix.", "type": "string" }, "selectedScreenInstance": { "$ref": "#/$defs/SelectedScreenInstance", "description": "Required. The screen instance to create the design system from, which is created by UploadDesignMd RPC." } }, "required": [ "projectId", "selectedScreenInstance" ], "type": "object" }, "name": "create_design_system_from_design_md", "outputSchema": { "description": "Response message for CreateDesignSystemFromDesignMd.", "properties": { "assetId": { "description": "The asset id of the design system. Example: '15996705518239280238', without the `assets/` prefix.", "type": "string" } }, "type": "object" } }, { "description": "Creates a new Stitch project. A project is a container for UI designs and frontend code.\n", "inputSchema": { "description": "Request message for CreateProject.", "properties": { "title": { "description": "Optional. The title of the project.", "type": "string" } }, "type": "object" }, "name": "create_project", "outputSchema": { "$defs": { "ComponentTokens": { "description": "A component style token in a design system.", "properties": { "tokens": { "additionalProperties": { "type": "string" }, "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.", "type": "object" } }, "type": "object" }, "DesignTheme": { "description": "The theme of the design. Next ID: 27 LINT.IfChange", "properties": { "backgroundDark": { "deprecated": true, "description": "Optional. DEPRECATED: The background color for dark mode (hex format, e.g., \"#1a1a1a\").", "type": "string" }, "backgroundLight": { "deprecated": true, "description": "Optional. DEPRECATED: The background color for light mode (hex format, e.g., \"#f8f8f8\").", "type": "string" }, "bodyFont": { "description": "Optional. Body 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", "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." ] }, "bodyFontFamily": { "description": "Optional. Body font family name (e.g., \"Inter\", \"Roboto\").", "type": "string" }, "colorMode": { "description": "Required. The mode of appearance of the design.", "enum": [ "COLOR_MODE_UNSPECIFIED", "LIGHT", "DARK" ], "type": "string", "x-google-enum-descriptions": [ "Unspecified color mode.", "Light mode.", "Dark mode." ] }, "colorVariant": { "description": "Optional. The variant of the dynamic color system.", "enum": [ "COLOR_VARIANT_UNSPECIFIED", "MONOCHROME", "NEUTRAL", "TONAL_SPOT", "VIBRANT", "EXPRESSIVE", "FIDELITY", "CONTENT", "RAINBOW", "FRUIT_SALAD" ], "type": "string", "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." ] }, "components": { "additionalProperties": { "$ref": "#/$defs/ComponentTokens" }, "description": "Optional. Component tokens for the design system. Maps component names to their tokens.", "type": "object" }, "customColor": { "description": "Optional. A custom theme primary color, or a seed color for the dynamic color system (hex format, e.g., \"#ff0000\").", "type": "string" }, "description": { "deprecated": true, "description": "Optional. A brief description of the theme aesthetic.", "type": "string" }, "designMd": { "description": "Optional. A markdown file that describes the design system.", "type": "string" }, "font": { "deprecated": true, "description": "Optional. DEPRECATED: The font of the design. Planned to be deprecated in favor of `headline_font`, `body_font`, and `label_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", "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." ] }, "headlineFont": { "description": "Optional. Headline 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", "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." ] }, "headlineFontFamily": { "description": "Optional. Headline font family name (e.g., \"Inter\", \"Roboto\").", "type": "string" }, "labelFont": { "description": "Optional. Label 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", "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." ] }, "labelFontFamily": { "description": "Optional. Label font family name (e.g., \"Inter\", \"Roboto\").", "type": "string" }, "namedColors": { "additionalProperties": { "type": "string" }, "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\"}", "type": "object" }, "overrideNeutralColor": { "description": "Optional. Override neutral color for the dynamic color system (hex format, e.g., \"#ffffff\").", "type": "string" }, "overridePrimaryColor": { "description": "Optional. Override primary color for the dynamic color system (hex format, e.g., \"#ff0000\").", "type": "string" }, "overrideSecondaryColor": { "description": "Optional. Override secondary color for the dynamic color system (hex format, e.g., \"#00ff00\").", "type": "string" }, "overrideTertiaryColor": { "description": "Optional. Override tertiary color for the dynamic color system (hex format, e.g., \"#0000ff\").", "type": "string" }, "preset": { "deprecated": true, "description": "Optional. DEPRECATED: The preset color of the design.", "type": "string" }, "roundness": { "description": "Required. The roundness of the design.", "enum": [ "ROUNDNESS_UNSPECIFIED", "ROUND_TWO", "ROUND_FOUR", "ROUND_EIGHT", "ROUND_TWELVE", "ROUND_FULL" ], "type": "string", "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." ] }, "saturation": { "deprecated": true, "description": "Optional. DEPRECATED: The saturation of the design between 1 and 4.", "format": "int32", "type": "integer" }, "spacing": { "additionalProperties": { "type": "string" }, "description": "Optional. Spacing units for the design system. Maps spacing names to their values.", "type": "object" }, "spacingScale": { "description": "Optional. The spacing scale level (0=minimal, 1=compact, 2=normal, 3=spacious).", "format": "int32", "type": "integer" }, "typography": { "additionalProperties": { "$ref": "#/$defs/Typography" }, "description": "Optional. Typography scale for the design system. Maps level names (e.g. \"display-lg\", \"body-md\") to their Typography token.", "type": "object" } }, "type": "object" }, "File": { "description": "A File resource.", "properties": { "downloadUrl": { "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.", "type": "string" }, "fileContentBase64": { "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.", "type": "string", "writeOnly": true }, "mimeType": { "description": "Optional. The mime type of the file. E.g. \"image/png\", \"text/html\".", "type": "string" }, "name": { "description": "Identifier. The resource name of the file. Format: projects/{project}/files/{file}", "type": "string", "x-google-identifier": true }, "uploadBlobId": { "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.", "type": "string" }, "userFeedback": { "$ref": "#/$defs/UserFeedback", "description": "Output only. The latest feedback submitted for the file.", "readOnly": true } }, "type": "object" }, "ProjectMetadata": { "description": "Metadata relating to the project.", "properties": { "isRemixed": { "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.", "type": "boolean" }, "userRole": { "description": "The Role of the user accessing the project.", "enum": [ "ROLE_UNSPECIFIED", "OWNER", "READER" ], "type": "string", "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" ] } }, "type": "object" }, "ScreenInstance": { "description": "An instance of a screen on the project. Next ID: 18", "properties": { "groupId": { "description": "Optional. Group identifier for Genie Agent output grouping. Screens with the same groupId are rendered and interact as a group.", "type": "string" }, "groupName": { "description": "Optional. Human-readable name for the group (e.g., \"Warm Minimalism\", \"Ethereal Glow\").", "type": "string" }, "height": { "description": "Optional. The screen height.", "format": "int32", "type": "integer" }, "hidden": { "description": "Optional. User driven action hiding screen from the canvas.", "type": "boolean" }, "id": { "description": "Optional. The screen instance id.", "type": "string" }, "isFavourite": { "description": "Optional. Whether this screen is marked as a favourite by the user.", "type": "boolean" }, "isResized": { "description": "Optional. Whether this screen has been resized by the user.", "type": "boolean" }, "label": { "description": "Optional. The screen label.", "type": "string" }, "needsLayout": { "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.", "type": "boolean" }, "sourceAsset": { "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.", "type": "string" }, "sourceScreen": { "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.", "type": "string" }, "textContent": { "description": "Optional. Text content for TEXT_INSTANCE nodes. Only one of the following fields should be set: this field, sourceScreen, sourceAsset.", "type": "string" }, "type": { "description": "Optional. The type of screen instance.", "enum": [ "SCREEN_INSTANCE_TYPE_UNSPECIFIED", "SCREEN_INSTANCE", "DESIGN_SYSTEM_INSTANCE", "GROUP_INSTANCE", "TEXT_INSTANCE" ], "type": "string", "x-google-enum-descriptions": [ "The unspecified value.", "A screen instance.", "A design system instance.", "A group instance.", "A text instance." ] }, "variantScreenInstance": { "$ref": "#/$defs/ScreenInstance", "description": "Optional. The variant Screen Instance." }, "width": { "description": "Optional. The screen width.", "format": "int32", "type": "integer" }, "x": { "description": "Optional. The x position of the screen.", "format": "int32", "type": "integer" }, "y": { "description": "Optional. The y position of the screen.", "format": "int32", "type": "integer" } }, "type": "object" }, "Typography": { "description": "A typography style token in a design system, defining the visual properties for a single text level (e.g. \"display-lg\", \"body-md\").", "properties": { "fontFamily": { "description": "Optional. The CSS font-family value (e.g., \"Manrope\", \"Inter\").", "type": "string" }, "fontSize": { "description": "Optional. The CSS font-size value (e.g., \"32px\", \"1rem\").", "type": "string" }, "fontWeight": { "description": "Optional. The CSS font-weight value (e.g., \"400\", \"700\").", "type": "string" }, "letterSpacing": { "description": "Optional. The CSS letter-spacing value (e.g., \"0px\", \"-0.02em\").", "type": "string" }, "lineHeight": { "description": "Optional. The CSS line-height value (e.g., \"1.5\", \"40px\").", "type": "string" } }, "type": "object" }, "UserFeedback": { "description": "User feedback for a given interaction.", "properties": { "comment": { "description": "Optional. Additional comment for the rating.", "type": "string" }, "designFeedbackReason": { "description": "Optional. The reason for the feedback for a design, if the rating is negative.", "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", "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." ] }, "rating": { "description": "Optional. The user rating of the interaction.", "enum": [ "RATING_UNSPECIFIED", "POSITIVE", "NEGATIVE" ], "type": "string", "x-google-enum-descriptions": [ "Unspecified rating.", "Positive rating.", "Negative rating." ] } }, "type": "object" } }, "description": "A project is a single app.", "properties": { "backgroundTheme": { "description": "Optional. The background theme of the project.", "type": "string" }, "createTime": { "description": "Output only. The time when the project was created.", "format": "date-time", "readOnly": true, "type": "string" }, "designTheme": { "$ref": "#/$defs/DesignTheme", "description": "Output only. The theme used to generate the first design in the project.", "readOnly": true }, "deviceType": { "description": "Optional. The device type of the project.", "enum": [ "DEVICE_TYPE_UNSPECIFIED", "MOBILE", "DESKTOP", "TABLET", "AGNOSTIC" ], "type": "string", "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." ] }, "metadata": { "$ref": "#/$defs/ProjectMetadata", "description": "Metadata of the project." }, "name": { "description": "Identifier. The resource name of the project. Format: projects/{project}", "type": "string", "x-google-identifier": true }, "origin": { "description": "Output only. The origin of the project.", "enum": [ "ORIGIN_UNSPECIFIED", "STITCH", "IMPORTED_FROM_GALILEO" ], "readOnly": true, "type": "string", "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." ] }, "projectType": { "description": "Optional. The type of the project. If not specified, the project is a text to UI project.", "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", "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." ] }, "readTime": { "description": "Output only. The time the project was last read. Populated only when listing recently viewed projects.", "format": "date-time", "readOnly": true, "type": "string" }, "screenInstances": { "description": "Output only. The screen instances on this project.", "items": { "$ref": "#/$defs/ScreenInstance" }, "readOnly": true, "type": "array" }, "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." }, "title": { "description": "Optional. The title of the project.", "type": "string" }, "updateTime": { "description": "Output only. The time when the project was last updated.", "format": "date-time", "readOnly": true, "type": "string" }, "visibility": { "description": "Optional. The visibility setting of the project.", "enum": [ "VISIBILITY_UNSPECIFIED", "PUBLIC", "PRIVATE" ], "type": "string", "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." ] } }, "type": "object" } }, { "description": "Deletes a specific Stitch project using its project name.\n\n**Instructions for Tool Call:**\n\n* This action cannot be undone. Please confirm with \"yes\" or \"no\" to proceed.\n", "inputSchema": { "description": "Request message for DeleteProject.", "properties": { "name": { "description": "Required. Identifier. The resource name of the project to delete. Format: `projects/{project}` Example: `projects/4044680601076201931`", "type": "string", "x-google-identifier": true } }, "required": [ "name" ], "type": "object" }, "name": "delete_project", "outputSchema": { "description": "Response message for DeleteProject.", "properties": {}, "type": "object" } }, { "description": "Edits existing screens within a project using a text prompt.\n\n**Instructions for Tool Call:**\n* This action can take a few minutes to complete. Please be patient. DO NOT RETRY.\n* If the tool call fails due to connection error, the process may still succeed.\n", "inputSchema": { "description": "Request message for EditScreens.", "properties": { "deviceType": { "description": "Optional. The type of device that captured the screenshot, e.g., mobile or desktop.", "enum": [ "DEVICE_TYPE_UNSPECIFIED", "MOBILE", "DESKTOP", "TABLET", "AGNOSTIC" ], "type": "string", "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." ] }, "modelId": { "description": "Optional. The model to use for generation.", "enum": [ "MODEL_ID_UNSPECIFIED", "GEMINI_3_8_FLASH", "GEMINI_3_5_FLASH_LITE" ], "type": "string", "x-google-enum-descriptions": [ "Unspecified model.", "Gemini 3.8 Flash.", "Gemini 3.5 Flash-Lite." ] }, "projectId": { "description": "Required. The project ID of screens to edit, example: '4044680601076201931', without the `projects/` prefix.", "type": "string" }, "prompt": { "description": "Required. The input text to generate the screen from.", "type": "string" }, "selectedScreenIds": { "description": "Required. The screen IDs of screens to edit, example: ['98b50e2ddc9943efb387052637738f61', '98b50e2ddc9943efb387052637738f62'], without the `screens/` prefix.", "items": { "type": "string" }, "type": "array" } }, "required": [ "projectId", "selectedScreenIds", "prompt" ], "type": "object" }, "name": "edit_screens", "outputSchema": { "$defs": { "Asset": { "description": "An Asset resource.", "properties": { "copiedFrom": { "description": "Optional. The resource name of the asset this was copied from, if any. Format: assets/{asset} Tracks the fork history of assets.", "type": "string" }, "designSystem": { "$ref": "#/$defs/DesignSystem", "description": "Optional. The design system." }, "name": { "description": "Identifier. The resource name of the asset. Format: assets/{asset}", "type": "string", "x-google-identifier": true }, "version": { "description": "Output only. The version of this asset. 0 indicates unversioned (legacy data). Incremented when the asset content changes.", "format": "int64", "readOnly": true, "type": "string" } }, "type": "object" }, "BoundingBox": { "description": "The bounding box of a component.", "properties": { "height": { "description": "The height of the bounding box.", "format": "int32", "type": "integer" }, "width": { "description": "The width of the bounding box.", "format": "int32", "type": "integer" }, "x": { "description": "The x coordinate of the bounding box, relative to the image width.", "format": "int32", "type": "integer" }, "y": { "description": "The y coordinate of the bounding box, relative to the image height.", "format": "int32", "type": "integer" } }, "type": "object" }, "ComponentRegion": { "description": "The region of a component region.", "properties": { "boundingBox": { "$ref": "#/$defs/BoundingBox", "description": "The bounding box of the component region." }, "description": { "description": "The description of the component region.", "type": "string" }, "type": { "description": "The type of the component region.", "enum": [ "COMPONENT_TYPE_UNSPECIFIED", "COMPONENT_TYPE_IMAGE", "COMPONENT_TYPE_TEXT", "COMPONENT_TYPE_BUTTON", "COMPONENT_TYPE_INPUT", "COMPONENT_TYPE_CONTAINER" ], "type": "string", "x-google-enum-descriptions": [ "Unspecified component type.", "An image component.", "A text component.", "A button component.", "An input component.", "A container component." ] }, "xpath": { "description": "The xpath of the component region.", "type": "string" } }, "type": "object" }, "ComponentTokens": { "description": "A component style token in a design system.", "properties": { "tokens": { "additionalProperties": { "type": "string" }, "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.", "type": "object" } }, "type": "object" }, "Design": { "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.", "properties": { "deviceType": { "description": "Optional. The device type of the design.", "enum": [ "DEVICE_TYPE_UNSPECIFIED", "MOBILE", "DESKTOP", "TABLET", "AGNOSTIC" ], "type": "string", "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." ] }, "screens": { "description": "Optional. The screens of the design.", "items": { "$ref": "#/$defs/Screen" }, "type": "array" }, "theme": { "$ref": "#/$defs/DesignTheme", "description": "Optional. The theme used to generate the design." }, "title": { "description": "Optional. The generated title of the design.", "type": "string" } }, "type": "object" }, "DesignSuggestion": { "description": "A suggested next action for a screen.", "properties": { "label": { "description": "A short label for the suggestion (max 3 words, e.g. \"Dark mode theme\").", "type": "string" }, "prompt": { "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\").", "type": "string" } }, "type": "object" }, "DesignSystem": { "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", "properties": { "designTokens": { "description": "Optional. Serialized JSON object of the DTCG format design tokens.", "type": "string" }, "displayName": { "description": "Optional. The display name of the design system.", "type": "string" }, "styleGuidelines": { "description": "Optional. Freeform text description of the style guidelines. This field is not displayed to the user and should not be included in MCP.", "type": "string" }, "theme": { "$ref": "#/$defs/DesignTheme", "description": "Optional. The theme of the design system." } }, "type": "object" }, "DesignTheme": { "description": "The theme of the design. Next ID: 27 LINT.IfChange", "properties": { "backgroundDark": { "deprecated": true, "description": "Optional. DEPRECATED: The background color for dark mode (hex format, e.g., \"#1a1a1a\").", "type": "string" }, "backgroundLight": { "deprecated": true, "description": "Optional. DEPRECATED: The background color for light mode (hex format, e.g., \"#f8f8f8\").", "type": "string" }, "bodyFont": { "description": "Optional. Body 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", "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." ] }, "bodyFontFamily": { "description": "Optional. Body font family name (e.g., \"Inter\", \"Roboto\").", "type": "string" }, "colorMode": { "description": "Required. The mode of appearance of the design.", "enum": [ "COLOR_MODE_UNSPECIFIED", "LIGHT", "DARK" ], "type": "string", "x-google-enum-descriptions": [ "Unspecified color mode.", "Light mode.", "Dark mode." ] }, "colorVariant": { "description": "Optional. The variant of the dynamic color system.", "enum": [ "COLOR_VARIANT_UNSPECIFIED", "MONOCHROME", "NEUTRAL", "TONAL_SPOT", "VIBRANT", "EXPRESSIVE", "FIDELITY", "CONTENT", "RAINBOW", "FRUIT_SALAD" ], "type": "string", "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." ] }, "components": { "additionalProperties": { "$ref": "#/$defs/ComponentTokens" }, "description": "Optional. Component tokens for the design system. Maps component names to their tokens.", "type": "object" }, "customColor": { "description": "Optional. A custom theme primary color, or a seed color for the dynamic color system (hex format, e.g., \"#ff0000\").", "type": "string" }, "description": { "deprecated": true, "description": "Optional. A brief description of the theme aesthetic.", "type": "string" }, "designMd": { "description": "Optional. A markdown file that describes the design system.", "type": "string" }, "font": { "deprecated": true, "description": "Optional. DEPRECATED: The font of the design. Planned to be deprecated in favor of `headline_font`, `body_font`, and `label_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", "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." ] }, "headlineFont": { "description": "Optional. Headline 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", "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." ] }, "headlineFontFamily": { "description": "Optional. Headline font family name (e.g., \"Inter\", \"Roboto\").", "type": "string" }, "labelFont": { "description": "Optional. Label 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", "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." ] }, "labelFontFamily": { "description": "Optional. Label font family name (e.g., \"Inter\", \"Roboto\").", "type": "string" }, "namedColors": { "additionalProperties": { "type": "string" }, "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\"}", "type": "object" }, "overrideNeutralColor": { "description": "Optional. Override neutral color for the dynamic color system (hex format, e.g., \"#ffffff\").", "type": "string" }, "overridePrimaryColor": { "description": "Optional. Override primary color for the dynamic color system (hex format, e.g., \"#ff0000\").", "type": "string" }, "overrideSecondaryColor": { "description": "Optional. Override secondary color for the dynamic color system (hex format, e.g., \"#00ff00\").", "type": "string" }, "overrideTertiaryColor": { "description": "Optional. Override tertiary color for the dynamic color system (hex format, e.g., \"#0000ff\").", "type": "string" }, "preset": { "deprecated": true, "description": "Optional. DEPRECATED: The preset color of the design.", "type": "string" }, "roundness": { "description": "Required. The roundness of the design.", "enum": [ "ROUNDNESS_UNSPECIFIED", "ROUND_TWO", "ROUND_FOUR", "ROUND_EIGHT", "ROUND_TWELVE", "ROUND_FULL" ], "type": "string", "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." ] }, "saturation": { "deprecated": true, "description": "Optional. DEPRECATED: The saturation of the design between 1 and 4.", "format": "int32", "type": "integer" }, "spacing": { "additionalProperties": { "type": "string" }, "description": "Optional. Spacing units for the design system. Maps spacing names to their values.", "type": "object" }, "spacingScale": { "description": "Optional. The spacing scale level (0=minimal, 1=compact, 2=normal, 3=spacious).", "format": "int32", "type": "integer" }, "typography": { "additionalProperties": { "$ref": "#/$defs/Typography" }, "description": "Optional. Typography scale for the design system. Maps level names (e.g. \"display-lg\", \"body-md\") to their Typography token.", "type": "object" } }, "type": "object" }, "File": { "description": "A File resource.", "properties": { "downloadUrl": { "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.", "type": "string" }, "fileContentBase64": { "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.", "type": "string", "writeOnly": true }, "mimeType": { "description": "Optional. The mime type of the file. E.g. \"image/png\", \"text/html\".", "type": "string" }, "name": { "description": "Identifier. The resource name of the file. Format: projects/{project}/files/{file}", "type": "string", "x-google-identifier": true }, "uploadBlobId": { "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.", "type": "string" }, "userFeedback": { "$ref": "#/$defs/UserFeedback", "description": "Output only. The latest feedback submitted for the file.", "readOnly": true } }, "type": "object" }, "ProgressUpdate": { "properties": { "displayName": { "type": "string" }, "status": { "enum": [ "STATUS_UNSPECIFIED", "STARTED", "COMPLETED", "FAILED" ], "type": "string", "x-google-enum-descriptions": [ "", "", "", "" ] }, "toolCallId": { "type": "string" }, "toolName": { "type": "string" } }, "type": "object" }, "ProgressUpdates": { "properties": { "updates": { "items": { "$ref": "#/$defs/ProgressUpdate" }, "type": "array" } }, "type": "object" }, "PrototypeLink": { "description": "A single interactive link within a prototype screen.", "properties": { "state": { "description": "Optional. The state under which this link is active. Defaults to \"default\".", "type": "string" }, "targetScreenId": { "description": "Required. ID of the destination screen.", "type": "string" }, "transition": { "description": "Optional. The transition animation to use when navigating to the target screen.", "enum": [ "TRANSITION_TYPE_UNSPECIFIED", "NONE", "PUSH", "PUSH_BACK", "SLIDE_UP" ], "type": "string", "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." ] }, "xpath": { "description": "Required. XPath to the interactive element.", "type": "string" } }, "type": "object" }, "PrototypeLinks": { "description": "A collection of prototype links for a single screen.", "properties": { "links": { "description": "Optional. The list of links for this screen.", "items": { "$ref": "#/$defs/PrototypeLink" }, "type": "array" } }, "type": "object" }, "PrototypeState": { "description": "A named state that controls link behavior in a prototype.", "properties": { "name": { "description": "Required. The name of the state (e.g., \"default\", \"login-failed\").", "type": "string" } }, "type": "object" }, "PrototypeV2Spec": { "description": "The full specification for a V2 interactive prototype.", "properties": { "initScreenId": { "description": "Required. ID of the initial screen.", "type": "string" }, "links": { "additionalProperties": { "$ref": "#/$defs/PrototypeLinks" }, "description": "Optional. Map of screenId to list of links.", "type": "object" }, "screenIds": { "description": "Optional. List of all screen IDs.", "items": { "type": "string" }, "type": "array" }, "states": { "description": "Optional. The list of states available in this prototype.", "items": { "$ref": "#/$defs/PrototypeState" }, "type": "array" } }, "type": "object" }, "Question": { "description": "A single structured question the agent asks the user.", "properties": { "options": { "description": "Options for MULTIPLE_CHOICE / SINGLE_CHOICE questions.", "items": { "type": "string" }, "type": "array" }, "questionId": { "description": "An optional unique identifier for correlating answers to questions.", "type": "string" }, "responseType": { "description": "The expected response type.", "enum": [ "QUESTION_RESPONSE_TYPE_UNSPECIFIED", "FREEFORM_TEXT", "MULTIPLE_CHOICE", "SINGLE_CHOICE", "YES_NO", "RATING_SCALE" ], "type": "string", "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." ] }, "text": { "description": "The question text displayed to the user.", "type": "string" } }, "type": "object" }, "QuestionsAsked": { "description": "A set of questions sent from the agent to the user.", "properties": { "questions": { "description": "The list of questions asked by the agent.", "items": { "$ref": "#/$defs/Question" }, "type": "array" } }, "type": "object" }, "Screen": { "description": "A generated screen.", "properties": { "designSystem": { "$ref": "#/$defs/Asset", "description": "Output only. The design system used to generate the screen.", "readOnly": true }, "deviceType": { "description": "Optional. The device type of the screen.", "enum": [ "DEVICE_TYPE_UNSPECIFIED", "MOBILE", "DESKTOP", "TABLET", "AGNOSTIC" ], "type": "string", "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." ] }, "figmaExport": { "$ref": "#/$defs/File", "description": "Optional. The Figma export of the screen." }, "generatedBy": { "description": "Optional. The generated by field of the screen.", "type": "string" }, "groupId": { "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).", "type": "string" }, "groupName": { "description": "Optional. The name of the group (e.g., design package name) for display purposes.", "type": "string" }, "height": { "description": "Optional. The height of the screen.", "type": "string" }, "htmlCode": { "$ref": "#/$defs/File", "description": "Optional. The HTML code of the screen." }, "id": { "deprecated": true, "description": "Optional. The screen id.", "type": "string" }, "isCreatedByClient": { "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.", "type": "boolean" }, "name": { "description": "Identifier. The resource name of the screen. Format: projects/{project}/screens/{screen}", "type": "string", "x-google-identifier": true }, "prompt": { "description": "Optional. The prompt used to generate the screen.", "type": "string" }, "screenMetadata": { "$ref": "#/$defs/ScreenMetadata", "description": "Optional. The metadata of the screen." }, "screenType": { "description": "Optional. The screen type.", "enum": [ "SCREEN_TYPE_UNSPECIFIED", "DESIGN", "IMAGE", "PROTOTYPE", "DOCUMENT", "PROTOTYPE_V2" ], "type": "string", "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." }, "theme": { "$ref": "#/$defs/DesignTheme", "description": "Optional. The theme used to generate the screen." }, "title": { "description": "Optional. The title of the screen.", "type": "string" }, "width": { "description": "Optional. The width of the screen.", "type": "string" } }, "type": "object" }, "ScreenMetadata": { "description": "The metadata of a screen.", "properties": { "agentType": { "description": "The agent type that generated the screen.", "enum": [ "DESIGN_AGENT_TYPE_UNSPECIFIED", "TURBO_AGENT", "PRO_AGENT", "IMAGE_AGENT", "GENIE_AGENT", "IMAGE_PRO_AGENT", "HATTER_AGENT", "GEMINI_3_AGENT" ], "type": "string", "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." ] }, "componentRegions": { "description": "Optional. The component regions of the screen.", "items": { "$ref": "#/$defs/ComponentRegion" }, "type": "array" }, "displayMode": { "description": "Optional. Whether the frontend should display HTML or a screenshot.", "enum": [ "DISPLAY_MODE_UNSPECIFIED", "SCREENSHOT", "HTML", "CODE", "MARKDOWN", "STICKY_NOTE", "SVG", "TABLE", "MERMAID", "CHECKLIST", "CHART", "PDF", "FIGMA" ], "type": "string", "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." ] }, "isRemixed": { "description": "Optional. Whether this screen was created as a result of remixing or not.", "type": "boolean" }, "prototypeSpec": { "$ref": "#/$defs/PrototypeV2Spec", "description": "Optional. The prototype spec of the screen." }, "status": { "description": "The status of the screen.", "enum": [ "SCREEN_STATUS_UNSPECIFIED", "IN_PROGRESS", "COMPLETE", "FAILED" ], "type": "string", "x-google-enum-descriptions": [ "Unspecified screen status.", "The screen is in progress.", "The screen is complete.", "The screen failed to generate." ] }, "statusMessage": { "description": "Optional. A human readable status message for the screen, generated by the agent.", "type": "string" }, "suggestions": { "description": "Optional. Suggested next actions for the screen.", "items": { "$ref": "#/$defs/DesignSuggestion" }, "type": "array" }, "summary": { "description": "Optional. A first-person summary of what was generated or changed for the screen.", "type": "string" } }, "type": "object" }, "SessionEvent": { "description": "Flexible session events carrying JSON payload.", "properties": { "actor": { "description": "Output only. The actor who triggered the event.", "readOnly": true, "type": "string" }, "eventId": { "description": "Output only. Unique identifier for the event.", "readOnly": true, "type": "string" }, "eventPayload": { "additionalProperties": { "description": "Properties of the object." }, "description": "Output only. Payload carrying flexible event data.", "readOnly": true, "type": "object" }, "eventTime": { "description": "Output only. Time when the event occurred.", "format": "date-time", "readOnly": true, "type": "string" }, "eventType": { "description": "Output only. Type of the event.", "readOnly": true, "type": "string" } }, "type": "object" }, "SessionOutputComponent": { "description": "A partial output of the session.", "properties": { "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." }, "designSystem": { "$ref": "#/$defs/Asset", "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.", "readOnly": true }, "progressUpdates": { "$ref": "#/$defs/ProgressUpdates", "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.", "readOnly": true }, "questionsAsked": { "$ref": "#/$defs/QuestionsAsked", "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.", "readOnly": true }, "sessionEvent": { "$ref": "#/$defs/SessionEvent", "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.", "readOnly": true }, "suggestion": { "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.", "type": "string" }, "text": { "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.", "type": "string" } }, "type": "object" }, "Typography": { "description": "A typography style token in a design system, defining the visual properties for a single text level (e.g. \"display-lg\", \"body-md\").", "properties": { "fontFamily": { "description": "Optional. The CSS font-family value (e.g., \"Manrope\", \"Inter\").", "type": "string" }, "fontSize": { "description": "Optional. The CSS font-size value (e.g., \"32px\", \"1rem\").", "type": "string" }, "fontWeight": { "description": "Optional. The CSS font-weight value (e.g., \"400\", \"700\").", "type": "string" }, "letterSpacing": { "description": "Optional. The CSS letter-spacing value (e.g., \"0px\", \"-0.02em\").", "type": "string" }, "lineHeight": { "description": "Optional. The CSS line-height value (e.g., \"1.5\", \"40px\").", "type": "string" } }, "type": "object" }, "UserFeedback": { "description": "User feedback for a given interaction.", "properties": { "comment": { "description": "Optional. Additional comment for the rating.", "type": "string" }, "designFeedbackReason": { "description": "Optional. The reason for the feedback for a design, if the rating is negative.", "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", "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." ] }, "rating": { "description": "Optional. The user rating of the interaction.", "enum": [ "RATING_UNSPECIFIED", "POSITIVE", "NEGATIVE" ], "type": "string", "x-google-enum-descriptions": [ "Unspecified rating.", "Positive rating.", "Negative rating." ] } }, "type": "object" } }, "description": "The output design generated by the agent.", "properties": { "outputComponents": { "description": "The generated output components.", "items": { "$ref": "#/$defs/SessionOutputComponent" }, "type": "array" }, "projectId": { "description": "The project ID of the generated screen. This is the same as the input project ID.", "type": "string" }, "sessionId": { "description": "The session ID of the generated screen.", "type": "string" } }, "type": "object" } }, { "description": "Generates a new screen within a project from a text prompt.\n\n**Instructions for Tool Call:**\n* This action can take a few minutes to complete. Please be patient. DO NOT RETRY.\n* If the tool fails with a timeout, don't retry. Instead, try to get the screen with `get_screen` method every 30 seconds for up to 10 times before giving up.\n* If the tool call fails due to connection error, the generation process may still succeed. Please try to get the screen with `get_screen` method later.\n\n**Output:**\n* **`output_components`**: If `output_components` contains text, return it to the user. If `output_components` contains suggestions (e.g. \"Yes, make them all\"), present these suggestions to the user. If the user accepts one of the suggestions, call `generate_screen_from_text` again with `prompt` set to the accepted suggestion.\n", "inputSchema": { "description": "Request message for GenerateScreenFromText.", "properties": { "designSystem": { "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`.", "type": "string" }, "deviceType": { "description": "The type of device that captured the screenshot, e.g., mobile or desktop.", "enum": [ "DEVICE_TYPE_UNSPECIFIED", "MOBILE", "DESKTOP", "TABLET", "AGNOSTIC" ], "type": "string", "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." ] }, "modelId": { "description": "Optional. The model to use for generation.", "enum": [ "MODEL_ID_UNSPECIFIED", "GEMINI_3_8_FLASH", "GEMINI_3_5_FLASH_LITE" ], "type": "string", "x-google-enum-descriptions": [ "Unspecified model.", "Gemini 3.8 Flash.", "Gemini 3.5 Flash-Lite." ] }, "projectId": { "description": "Required. The project ID to generate the screen for, example: '4044680601076201931', without the `projects/` prefix.", "type": "string" }, "prompt": { "description": "Required. The input text to generate the screen from.", "type": "string" } }, "required": [ "projectId", "prompt" ], "type": "object" }, "name": "generate_screen_from_text", "outputSchema": { "$defs": { "Asset": { "description": "An Asset resource.", "properties": { "copiedFrom": { "description": "Optional. The resource name of the asset this was copied from, if any. Format: assets/{asset} Tracks the fork history of assets.", "type": "string" }, "designSystem": { "$ref": "#/$defs/DesignSystem", "description": "Optional. The design system." }, "name": { "description": "Identifier. The resource name of the asset. Format: assets/{asset}", "type": "string", "x-google-identifier": true }, "version": { "description": "Output only. The version of this asset. 0 indicates unversioned (legacy data). Incremented when the asset content changes.", "format": "int64", "readOnly": true, "type": "string" } }, "type": "object" }, "BoundingBox": { "description": "The bounding box of a component.", "properties": { "height": { "description": "The height of the bounding box.", "format": "int32", "type": "integer" }, "width": { "description": "The width of the bounding box.", "format": "int32", "type": "integer" }, "x": { "description": "The x coordinate of the bounding box, relative to the image width.", "format": "int32", "type": "integer" }, "y": { "description": "The y coordinate of the bounding box, relative to the image height.", "format": "int32", "type": "integer" } }, "type": "object" }, "ComponentRegion": { "description": "The region of a component region.", "properties": { "boundingBox": { "$ref": "#/$defs/BoundingBox", "description": "The bounding box of the component region." }, "description": { "description": "The description of the component region.", "type": "string" }, "type": { "description": "The type of the component region.", "enum": [ "COMPONENT_TYPE_UNSPECIFIED", "COMPONENT_TYPE_IMAGE", "COMPONENT_TYPE_TEXT", "COMPONENT_TYPE_BUTTON", "COMPONENT_TYPE_INPUT", "COMPONENT_TYPE_CONTAINER" ], "type": "string", "x-google-enum-descriptions": [ "Unspecified component type.", "An image component.", "A text component.", "A button component.", "An input component.", "A container component." ] }, "xpath": { "description": "The xpath of the component region.", "type": "string" } }, "type": "object" }, "ComponentTokens": { "description": "A component style token in a design system.", "properties": { "tokens": { "additionalProperties": { "type": "string" }, "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.", "type": "object" } }, "type": "object" }, "Design": { "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.", "properties": { "deviceType": { "description": "Optional. The device type of the design.", "enum": [ "DEVICE_TYPE_UNSPECIFIED", "MOBILE", "DESKTOP", "TABLET", "AGNOSTIC" ], "type": "string", "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." ] }, "screens": { "description": "Optional. The screens of the design.", "items": { "$ref": "#/$defs/Screen" }, "type": "array" }, "theme": { "$ref": "#/$defs/DesignTheme", "description": "Optional. The theme used to generate the design." }, "title": { "description": "Optional. The generated title of the design.", "type": "string" } }, "type": "object" }, "DesignSuggestion": { "description": "A suggested next action for a screen.", "properties": { "label": { "description": "A short label for the suggestion (max 3 words, e.g. \"Dark mode theme\").", "type": "string" }, "prompt": { "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\").", "type": "string" } }, "type": "object" }, "DesignSystem": { "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", "properties": { "designTokens": { "description": "Optional. Serialized JSON object of the DTCG format design tokens.", "type": "string" }, "displayName": { "description": "Optional. The display name of the design system.", "type": "string" }, "styleGuidelines": { "description": "Optional. Freeform text description of the style guidelines. This field is not displayed to the user and should not be included in MCP.", "type": "string" }, "theme": { "$ref": "#/$defs/DesignTheme", "description": "Optional. The theme of the design system." } }, "type": "object" }, "DesignTheme": { "description": "The theme of the design. Next ID: 27 LINT.IfChange", "properties": { "backgroundDark": { "deprecated": true, "description": "Optional. DEPRECATED: The background color for dark mode (hex format, e.g., \"#1a1a1a\").", "type": "string" }, "backgroundLight": { "deprecated": true, "description": "Optional. DEPRECATED: The background color for light mode (hex format, e.g., \"#f8f8f8\").", "type": "string" }, "bodyFont": { "description": "Optional. Body 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", "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." ] }, "bodyFontFamily": { "description": "Optional. Body font family name (e.g., \"Inter\", \"Roboto\").", "type": "string" }, "colorMode": { "description": "Required. The mode of appearance of the design.", "enum": [ "COLOR_MODE_UNSPECIFIED", "LIGHT", "DARK" ], "type": "string", "x-google-enum-descriptions": [ "Unspecified color mode.", "Light mode.", "Dark mode." ] }, "colorVariant": { "description": "Optional. The variant of the dynamic color system.", "enum": [ "COLOR_VARIANT_UNSPECIFIED", "MONOCHROME", "NEUTRAL", "TONAL_SPOT", "VIBRANT", "EXPRESSIVE", "FIDELITY", "CONTENT", "RAINBOW", "FRUIT_SALAD" ], "type": "string", "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." ] }, "components": { "additionalProperties": { "$ref": "#/$defs/ComponentTokens" }, "description": "Optional. Component tokens for the design system. Maps component names to their tokens.", "type": "object" }, "customColor": { "description": "Optional. A custom theme primary color, or a seed color for the dynamic color system (hex format, e.g., \"#ff0000\").", "type": "string" }, "description": { "deprecated": true, "description": "Optional. A brief description of the theme aesthetic.", "type": "string" }, "designMd": { "description": "Optional. A markdown file that describes the design system.", "type": "string" }, "font": { "deprecated": true, "description": "Optional. DEPRECATED: The font of the design. Planned to be deprecated in favor of `headline_font`, `body_font`, and `label_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", "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." ] }, "headlineFont": { "description": "Optional. Headline 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", "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." ] }, "headlineFontFamily": { "description": "Optional. Headline font family name (e.g., \"Inter\", \"Roboto\").", "type": "string" }, "labelFont": { "description": "Optional. Label 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", "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." ] }, "labelFontFamily": { "description": "Optional. Label font family name (e.g., \"Inter\", \"Roboto\").", "type": "string" }, "namedColors": { "additionalProperties": { "type": "string" }, "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\"}", "type": "object" }, "overrideNeutralColor": { "description": "Optional. Override neutral color for the dynamic color system (hex format, e.g., \"#ffffff\").", "type": "string" }, "overridePrimaryColor": { "description": "Optional. Override primary color for the dynamic color system (hex format, e.g., \"#ff0000\").", "type": "string" }, "overrideSecondaryColor": { "description": "Optional. Override secondary color for the dynamic color system (hex format, e.g., \"#00ff00\").", "type": "string" }, "overrideTertiaryColor": { "description": "Optional. Override tertiary color for the dynamic color system (hex format, e.g., \"#0000ff\").", "type": "string" }, "preset": { "deprecated": true, "description": "Optional. DEPRECATED: The preset color of the design.", "type": "string" }, "roundness": { "description": "Required. The roundness of the design.", "enum": [ "ROUNDNESS_UNSPECIFIED", "ROUND_TWO", "ROUND_FOUR", "ROUND_EIGHT", "ROUND_TWELVE", "ROUND_FULL" ], "type": "string", "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." ] }, "saturation": { "deprecated": true, "description": "Optional. DEPRECATED: The saturation of the design between 1 and 4.", "format": "int32", "type": "integer" }, "spacing": { "additionalProperties": { "type": "string" }, "description": "Optional. Spacing units for the design system. Maps spacing names to their values.", "type": "object" }, "spacingScale": { "description": "Optional. The spacing scale level (0=minimal, 1=compact, 2=normal, 3=spacious).", "format": "int32", "type": "integer" }, "typography": { "additionalProperties": { "$ref": "#/$defs/Typography" }, "description": "Optional. Typography scale for the design system. Maps level names (e.g. \"display-lg\", \"body-md\") to their Typography token.", "type": "object" } }, "type": "object" }, "File": { "description": "A File resource.", "properties": { "downloadUrl": { "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.", "type": "string" }, "fileContentBase64": { "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.", "type": "string", "writeOnly": true }, "mimeType": { "description": "Optional. The mime type of the file. E.g. \"image/png\", \"text/html\".", "type": "string" }, "name": { "description": "Identifier. The resource name of the file. Format: projects/{project}/files/{file}", "type": "string", "x-google-identifier": true }, "uploadBlobId": { "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.", "type": "string" }, "userFeedback": { "$ref": "#/$defs/UserFeedback", "description": "Output only. The latest feedback submitted for the file.", "readOnly": true } }, "type": "object" }, "ProgressUpdate": { "properties": { "displayName": { "type": "string" }, "status": { "enum": [ "STATUS_UNSPECIFIED", "STARTED", "COMPLETED", "FAILED" ], "type": "string", "x-google-enum-descriptions": [ "", "", "", "" ] }, "toolCallId": { "type": "string" }, "toolName": { "type": "string" } }, "type": "object" }, "ProgressUpdates": { "properties": { "updates": { "items": { "$ref": "#/$defs/ProgressUpdate" }, "type": "array" } }, "type": "object" }, "PrototypeLink": { "description": "A single interactive link within a prototype screen.", "properties": { "state": { "description": "Optional. The state under which this link is active. Defaults to \"default\".", "type": "string" }, "targetScreenId": { "description": "Required. ID of the destination screen.", "type": "string" }, "transition": { "description": "Optional. The transition animation to use when navigating to the target screen.", "enum": [ "TRANSITION_TYPE_UNSPECIFIED", "NONE", "PUSH", "PUSH_BACK", "SLIDE_UP" ], "type": "string", "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." ] }, "xpath": { "description": "Required. XPath to the interactive element.", "type": "string" } }, "type": "object" }, "PrototypeLinks": { "description": "A collection of prototype links for a single screen.", "properties": { "links": { "description": "Optional. The list of links for this screen.", "items": { "$ref": "#/$defs/PrototypeLink" }, "type": "array" } }, "type": "object" }, "PrototypeState": { "description": "A named state that controls link behavior in a prototype.", "properties": { "name": { "description": "Required. The name of the state (e.g., \"default\", \"login-failed\").", "type": "string" } }, "type": "object" }, "PrototypeV2Spec": { "description": "The full specification for a V2 interactive prototype.", "properties": { "initScreenId": { "description": "Required. ID of the initial screen.", "type": "string" }, "links": { "additionalProperties": { "$ref": "#/$defs/PrototypeLinks" }, "description": "Optional. Map of screenId to list of links.", "type": "object" }, "screenIds": { "description": "Optional. List of all screen IDs.", "items": { "type": "string" }, "type": "array" }, "states": { "description": "Optional. The list of states available in this prototype.", "items": { "$ref": "#/$defs/PrototypeState" }, "type": "array" } }, "type": "object" }, "Question": { "description": "A single structured question the agent asks the user.", "properties": { "options": { "description": "Options for MULTIPLE_CHOICE / SINGLE_CHOICE questions.", "items": { "type": "string" }, "type": "array" }, "questionId": { "description": "An optional unique identifier for correlating answers to questions.", "type": "string" }, "responseType": { "description": "The expected response type.", "enum": [ "QUESTION_RESPONSE_TYPE_UNSPECIFIED", "FREEFORM_TEXT", "MULTIPLE_CHOICE", "SINGLE_CHOICE", "YES_NO", "RATING_SCALE" ], "type": "string", "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." ] }, "text": { "description": "The question text displayed to the user.", "type": "string" } }, "type": "object" }, "QuestionsAsked": { "description": "A set of questions sent from the agent to the user.", "properties": { "questions": { "description": "The list of questions asked by the agent.", "items": { "$ref": "#/$defs/Question" }, "type": "array" } }, "type": "object" }, "Screen": { "description": "A generated screen.", "properties": { "designSystem": { "$ref": "#/$defs/Asset", "description": "Output only. The design system used to generate the screen.", "readOnly": true }, "deviceType": { "description": "Optional. The device type of the screen.", "enum": [ "DEVICE_TYPE_UNSPECIFIED", "MOBILE", "DESKTOP", "TABLET", "AGNOSTIC" ], "type": "string", "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." ] }, "figmaExport": { "$ref": "#/$defs/File", "description": "Optional. The Figma export of the screen." }, "generatedBy": { "description": "Optional. The generated by field of the screen.", "type": "string" }, "groupId": { "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).", "type": "string" }, "groupName": { "description": "Optional. The name of the group (e.g., design package name) for display purposes.", "type": "string" }, "height": { "description": "Optional. The height of the screen.", "type": "string" }, "htmlCode": { "$ref": "#/$defs/File", "description": "Optional. The HTML code of the screen." }, "id": { "deprecated": true, "description": "Optional. The screen id.", "type": "string" }, "isCreatedByClient": { "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.", "type": "boolean" }, "name": { "description": "Identifier. The resource name of the screen. Format: projects/{project}/screens/{screen}", "type": "string", "x-google-identifier": true }, "prompt": { "description": "Optional. The prompt used to generate the screen.", "type": "string" }, "screenMetadata": { "$ref": "#/$defs/ScreenMetadata", "description": "Optional. The metadata of the screen." }, "screenType": { "description": "Optional. The screen type.", "enum": [ "SCREEN_TYPE_UNSPECIFIED", "DESIGN", "IMAGE", "PROTOTYPE", "DOCUMENT", "PROTOTYPE_V2" ], "type": "string", "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." }, "theme": { "$ref": "#/$defs/DesignTheme", "description": "Optional. The theme used to generate the screen." }, "title": { "description": "Optional. The title of the screen.", "type": "string" }, "width": { "description": "Optional. The width of the screen.", "type": "string" } }, "type": "object" }, "ScreenMetadata": { "description": "The metadata of a screen.", "properties": { "agentType": { "description": "The agent type that generated the screen.", "enum": [ "DESIGN_AGENT_TYPE_UNSPECIFIED", "TURBO_AGENT", "PRO_AGENT", "IMAGE_AGENT", "GENIE_AGENT", "IMAGE_PRO_AGENT", "HATTER_AGENT", "GEMINI_3_AGENT" ], "type": "string", "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." ] }, "componentRegions": { "description": "Optional. The component regions of the screen.", "items": { "$ref": "#/$defs/ComponentRegion" }, "type": "array" }, "displayMode": { "description": "Optional. Whether the frontend should display HTML or a screenshot.", "enum": [ "DISPLAY_MODE_UNSPECIFIED", "SCREENSHOT", "HTML", "CODE", "MARKDOWN", "STICKY_NOTE", "SVG", "TABLE", "MERMAID", "CHECKLIST", "CHART", "PDF", "FIGMA" ], "type": "string", "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." ] }, "isRemixed": { "description": "Optional. Whether this screen was created as a result of remixing or not.", "type": "boolean" }, "prototypeSpec": { "$ref": "#/$defs/PrototypeV2Spec", "description": "Optional. The prototype spec of the screen." }, "status": { "description": "The status of the screen.", "enum": [ "SCREEN_STATUS_UNSPECIFIED", "IN_PROGRESS", "COMPLETE", "FAILED" ], "type": "string", "x-google-enum-descriptions": [ "Unspecified screen status.", "The screen is in progress.", "The screen is complete.", "The screen failed to generate." ] }, "statusMessage": { "description": "Optional. A human readable status message for the screen, generated by the agent.", "type": "string" }, "suggestions": { "description": "Optional. Suggested next actions for the screen.", "items": { "$ref": "#/$defs/DesignSuggestion" }, "type": "array" }, "summary": { "description": "Optional. A first-person summary of what was generated or changed for the screen.", "type": "string" } }, "type": "object" }, "SessionEvent": { "description": "Flexible session events carrying JSON payload.", "properties": { "actor": { "description": "Output only. The actor who triggered the event.", "readOnly": true, "type": "string" }, "eventId": { "description": "Output only. Unique identifier for the event.", "readOnly": true, "type": "string" }, "eventPayload": { "additionalProperties": { "description": "Properties of the object." }, "description": "Output only. Payload carrying flexible event data.", "readOnly": true, "type": "object" }, "eventTime": { "description": "Output only. Time when the event occurred.", "format": "date-time", "readOnly": true, "type": "string" }, "eventType": { "description": "Output only. Type of the event.", "readOnly": true, "type": "string" } }, "type": "object" }, "SessionOutputComponent": { "description": "A partial output of the session.", "properties": { "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." }, "designSystem": { "$ref": "#/$defs/Asset", "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.", "readOnly": true }, "progressUpdates": { "$ref": "#/$defs/ProgressUpdates", "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.", "readOnly": true }, "questionsAsked": { "$ref": "#/$defs/QuestionsAsked", "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.", "readOnly": true }, "sessionEvent": { "$ref": "#/$defs/SessionEvent", "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.", "readOnly": true }, "suggestion": { "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.", "type": "string" }, "text": { "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.", "type": "string" } }, "type": "object" }, "Typography": { "description": "A typography style token in a design system, defining the visual properties for a single text level (e.g. \"display-lg\", \"body-md\").", "properties": { "fontFamily": { "description": "Optional. The CSS font-family value (e.g., \"Manrope\", \"Inter\").", "type": "string" }, "fontSize": { "description": "Optional. The CSS font-size value (e.g., \"32px\", \"1rem\").", "type": "string" }, "fontWeight": { "description": "Optional. The CSS font-weight value (e.g., \"400\", \"700\").", "type": "string" }, "letterSpacing": { "description": "Optional. The CSS letter-spacing value (e.g., \"0px\", \"-0.02em\").", "type": "string" }, "lineHeight": { "description": "Optional. The CSS line-height value (e.g., \"1.5\", \"40px\").", "type": "string" } }, "type": "object" }, "UserFeedback": { "description": "User feedback for a given interaction.", "properties": { "comment": { "description": "Optional. Additional comment for the rating.", "type": "string" }, "designFeedbackReason": { "description": "Optional. The reason for the feedback for a design, if the rating is negative.", "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", "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." ] }, "rating": { "description": "Optional. The user rating of the interaction.", "enum": [ "RATING_UNSPECIFIED", "POSITIVE", "NEGATIVE" ], "type": "string", "x-google-enum-descriptions": [ "Unspecified rating.", "Positive rating.", "Negative rating." ] } }, "type": "object" } }, "description": "Response message for GenerateScreenFromText.", "properties": { "outputComponents": { "description": "The generated output components.", "items": { "$ref": "#/$defs/SessionOutputComponent" }, "type": "array" }, "projectId": { "description": "The project ID of the generated screen. This is the same as the input project ID.", "type": "string" }, "sessionId": { "description": "The session ID of the generated screen.", "type": "string" } }, "type": "object" } }, { "description": "Generates variants of existing screens within a project using a text prompt.\n\n**Instructions for Tool Call:**\n* If the tool fails with a timeout, don't retry. Instead, try to get the screen with `get_screen` method every 30 seconds for up to 10 times before giving up.\n", "inputSchema": { "$defs": { "VariantOptions": { "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.", "properties": { "aspects": { "description": "Optional. Specific aspects to focus on. If empty, all aspects may be varied.", "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." ] }, "type": "array" }, "creativeRange": { "description": "Optional. Creative range for variations. Default: EXPLORE", "enum": [ "CREATIVE_RANGE_UNSPECIFIED", "REFINE", "EXPLORE", "REIMAGINE" ], "type": "string", "x-google-enum-descriptions": [ "Unspecified creative range.", "Subtle refinements, closely adhering to original.", "Balanced exploration. Default.", "Radical explorations, fundamentally challenging the original." ] }, "variantCount": { "description": "Optional. Number of variants to generate (1-5). Default: 3", "format": "int32", "type": "integer" } }, "type": "object" } }, "description": "Request message for GenerateVariants.", "properties": { "deviceType": { "description": "Optional. The type of device that captured the screenshot, e.g., mobile or desktop.", "enum": [ "DEVICE_TYPE_UNSPECIFIED", "MOBILE", "DESKTOP", "TABLET", "AGNOSTIC" ], "type": "string", "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." ] }, "modelId": { "description": "Optional. The model to use for generation.", "enum": [ "MODEL_ID_UNSPECIFIED", "GEMINI_3_8_FLASH", "GEMINI_3_5_FLASH_LITE" ], "type": "string", "x-google-enum-descriptions": [ "Unspecified model.", "Gemini 3.8 Flash.", "Gemini 3.5 Flash-Lite." ] }, "projectId": { "description": "Required. The project ID of screens to generate variants for, example: '4044680601076201931', without the `projects/` prefix.", "type": "string" }, "prompt": { "description": "Required. The input text used to generate the variants.", "type": "string" }, "selectedScreenIds": { "description": "Required. The screen ids of screen to generate variants for, example: ['98b50e2ddc9943efb387052637738f61', '98b50e2ddc9943efb387052637738f62'], without the `screens/` prefix.", "items": { "type": "string" }, "type": "array" }, "variantOptions": { "$ref": "#/$defs/VariantOptions", "description": "Required. The variant options for generation, including the number of variants, creative range, and aspects to focus on." } }, "required": [ "projectId", "selectedScreenIds", "prompt", "variantOptions" ], "type": "object" }, "name": "generate_variants", "outputSchema": { "$defs": { "Asset": { "description": "An Asset resource.", "properties": { "copiedFrom": { "description": "Optional. The resource name of the asset this was copied from, if any. Format: assets/{asset} Tracks the fork history of assets.", "type": "string" }, "designSystem": { "$ref": "#/$defs/DesignSystem", "description": "Optional. The design system." }, "name": { "description": "Identifier. The resource name of the asset. Format: assets/{asset}", "type": "string", "x-google-identifier": true }, "version": { "description": "Output only. The version of this asset. 0 indicates unversioned (legacy data). Incremented when the asset content changes.", "format": "int64", "readOnly": true, "type": "string" } }, "type": "object" }, "BoundingBox": { "description": "The bounding box of a component.", "properties": { "height": { "description": "The height of the bounding box.", "format": "int32", "type": "integer" }, "width": { "description": "The width of the bounding box.", "format": "int32", "type": "integer" }, "x": { "description": "The x coordinate of the bounding box, relative to the image width.", "format": "int32", "type": "integer" }, "y": { "description": "The y coordinate of the bounding box, relative to the image height.", "format": "int32", "type": "integer" } }, "type": "object" }, "ComponentRegion": { "description": "The region of a component region.", "properties": { "boundingBox": { "$ref": "#/$defs/BoundingBox", "description": "The bounding box of the component region." }, "description": { "description": "The description of the component region.", "type": "string" }, "type": { "description": "The type of the component region.", "enum": [ "COMPONENT_TYPE_UNSPECIFIED", "COMPONENT_TYPE_IMAGE", "COMPONENT_TYPE_TEXT", "COMPONENT_TYPE_BUTTON", "COMPONENT_TYPE_INPUT", "COMPONENT_TYPE_CONTAINER" ], "type": "string", "x-google-enum-descriptions": [ "Unspecified component type.", "An image component.", "A text component.", "A button component.", "An input component.", "A container component." ] }, "xpath": { "description": "The xpath of the component region.", "type": "string" } }, "type": "object" }, "ComponentTokens": { "description": "A component style token in a design system.", "properties": { "tokens": { "additionalProperties": { "type": "string" }, "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.", "type": "object" } }, "type": "object" }, "Design": { "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.", "properties": { "deviceType": { "description": "Optional. The device type of the design.", "enum": [ "DEVICE_TYPE_UNSPECIFIED", "MOBILE", "DESKTOP", "TABLET", "AGNOSTIC" ], "type": "string", "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." ] }, "screens": { "description": "Optional. The screens of the design.", "items": { "$ref": "#/$defs/Screen" }, "type": "array" }, "theme": { "$ref": "#/$defs/DesignTheme", "description": "Optional. The theme used to generate the design." }, "title": { "description": "Optional. The generated title of the design.", "type": "string" } }, "type": "object" }, "DesignSuggestion": { "description": "A suggested next action for a screen.", "properties": { "label": { "description": "A short label for the suggestion (max 3 words, e.g. \"Dark mode theme\").", "type": "string" }, "prompt": { "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\").", "type": "string" } }, "type": "object" }, "DesignSystem": { "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", "properties": { "designTokens": { "description": "Optional. Serialized JSON object of the DTCG format design tokens.", "type": "string" }, "displayName": { "description": "Optional. The display name of the design system.", "type": "string" }, "styleGuidelines": { "description": "Optional. Freeform text description of the style guidelines. This field is not displayed to the user and should not be included in MCP.", "type": "string" }, "theme": { "$ref": "#/$defs/DesignTheme", "description": "Optional. The theme of the design system." } }, "type": "object" }, "DesignTheme": { "description": "The theme of the design. Next ID: 27 LINT.IfChange", "properties": { "backgroundDark": { "deprecated": true, "description": "Optional. DEPRECATED: The background color for dark mode (hex format, e.g., \"#1a1a1a\").", "type": "string" }, "backgroundLight": { "deprecated": true, "description": "Optional. DEPRECATED: The background color for light mode (hex format, e.g., \"#f8f8f8\").", "type": "string" }, "bodyFont": { "description": "Optional. Body 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", "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." ] }, "bodyFontFamily": { "description": "Optional. Body font family name (e.g., \"Inter\", \"Roboto\").", "type": "string" }, "colorMode": { "description": "Required. The mode of appearance of the design.", "enum": [ "COLOR_MODE_UNSPECIFIED", "LIGHT", "DARK" ], "type": "string", "x-google-enum-descriptions": [ "Unspecified color mode.", "Light mode.", "Dark mode." ] }, "colorVariant": { "description": "Optional. The variant of the dynamic color system.", "enum": [ "COLOR_VARIANT_UNSPECIFIED", "MONOCHROME", "NEUTRAL", "TONAL_SPOT", "VIBRANT", "EXPRESSIVE", "FIDELITY", "CONTENT", "RAINBOW", "FRUIT_SALAD" ], "type": "string", "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." ] }, "components": { "additionalProperties": { "$ref": "#/$defs/ComponentTokens" }, "description": "Optional. Component tokens for the design system. Maps component names to their tokens.", "type": "object" }, "customColor": { "description": "Optional. A custom theme primary color, or a seed color for the dynamic color system (hex format, e.g., \"#ff0000\").", "type": "string" }, "description": { "deprecated": true, "description": "Optional. A brief description of the theme aesthetic.", "type": "string" }, "designMd": { "description": "Optional. A markdown file that describes the design system.", "type": "string" }, "font": { "deprecated": true, "description": "Optional. DEPRECATED: The font of the design. Planned to be deprecated in favor of `headline_font`, `body_font`, and `label_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", "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." ] }, "headlineFont": { "description": "Optional. Headline 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", "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." ] }, "headlineFontFamily": { "description": "Optional. Headline font family name (e.g., \"Inter\", \"Roboto\").", "type": "string" }, "labelFont": { "description": "Optional. Label 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", "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." ] }, "labelFontFamily": { "description": "Optional. Label font family name (e.g., \"Inter\", \"Roboto\").", "type": "string" }, "namedColors": { "additionalProperties": { "type": "string" }, "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\"}", "type": "object" }, "overrideNeutralColor": { "description": "Optional. Override neutral color for the dynamic color system (hex format, e.g., \"#ffffff\").", "type": "string" }, "overridePrimaryColor": { "description": "Optional. Override primary color for the dynamic color system (hex format, e.g., \"#ff0000\").", "type": "string" }, "overrideSecondaryColor": { "description": "Optional. Override secondary color for the dynamic color system (hex format, e.g., \"#00ff00\").", "type": "string" }, "overrideTertiaryColor": { "description": "Optional. Override tertiary color for the dynamic color system (hex format, e.g., \"#0000ff\").", "type": "string" }, "preset": { "deprecated": true, "description": "Optional. DEPRECATED: The preset color of the design.", "type": "string" }, "roundness": { "description": "Required. The roundness of the design.", "enum": [ "ROUNDNESS_UNSPECIFIED", "ROUND_TWO", "ROUND_FOUR", "ROUND_EIGHT", "ROUND_TWELVE", "ROUND_FULL" ], "type": "string", "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." ] }, "saturation": { "deprecated": true, "description": "Optional. DEPRECATED: The saturation of the design between 1 and 4.", "format": "int32", "type": "integer" }, "spacing": { "additionalProperties": { "type": "string" }, "description": "Optional. Spacing units for the design system. Maps spacing names to their values.", "type": "object" }, "spacingScale": { "description": "Optional. The spacing scale level (0=minimal, 1=compact, 2=normal, 3=spacious).", "format": "int32", "type": "integer" }, "typography": { "additionalProperties": { "$ref": "#/$defs/Typography" }, "description": "Optional. Typography scale for the design system. Maps level names (e.g. \"display-lg\", \"body-md\") to their Typography token.", "type": "object" } }, "type": "object" }, "File": { "description": "A File resource.", "properties": { "downloadUrl": { "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.", "type": "string" }, "fileContentBase64": { "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.", "type": "string", "writeOnly": true }, "mimeType": { "description": "Optional. The mime type of the file. E.g. \"image/png\", \"text/html\".", "type": "string" }, "name": { "description": "Identifier. The resource name of the file. Format: projects/{project}/files/{file}", "type": "string", "x-google-identifier": true }, "uploadBlobId": { "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.", "type": "string" }, "userFeedback": { "$ref": "#/$defs/UserFeedback", "description": "Output only. The latest feedback submitted for the file.", "readOnly": true } }, "type": "object" }, "ProgressUpdate": { "properties": { "displayName": { "type": "string" }, "status": { "enum": [ "STATUS_UNSPECIFIED", "STARTED", "COMPLETED", "FAILED" ], "type": "string", "x-google-enum-descriptions": [ "", "", "", "" ] }, "toolCallId": { "type": "string" }, "toolName": { "type": "string" } }, "type": "object" }, "ProgressUpdates": { "properties": { "updates": { "items": { "$ref": "#/$defs/ProgressUpdate" }, "type": "array" } }, "type": "object" }, "PrototypeLink": { "description": "A single interactive link within a prototype screen.", "properties": { "state": { "description": "Optional. The state under which this link is active. Defaults to \"default\".", "type": "string" }, "targetScreenId": { "description": "Required. ID of the destination screen.", "type": "string" }, "transition": { "description": "Optional. The transition animation to use when navigating to the target screen.", "enum": [ "TRANSITION_TYPE_UNSPECIFIED", "NONE", "PUSH", "PUSH_BACK", "SLIDE_UP" ], "type": "string", "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." ] }, "xpath": { "description": "Required. XPath to the interactive element.", "type": "string" } }, "type": "object" }, "PrototypeLinks": { "description": "A collection of prototype links for a single screen.", "properties": { "links": { "description": "Optional. The list of links for this screen.", "items": { "$ref": "#/$defs/PrototypeLink" }, "type": "array" } }, "type": "object" }, "PrototypeState": { "description": "A named state that controls link behavior in a prototype.", "properties": { "name": { "description": "Required. The name of the state (e.g., \"default\", \"login-failed\").", "type": "string" } }, "type": "object" }, "PrototypeV2Spec": { "description": "The full specification for a V2 interactive prototype.", "properties": { "initScreenId": { "description": "Required. ID of the initial screen.", "type": "string" }, "links": { "additionalProperties": { "$ref": "#/$defs/PrototypeLinks" }, "description": "Optional. Map of screenId to list of links.", "type": "object" }, "screenIds": { "description": "Optional. List of all screen IDs.", "items": { "type": "string" }, "type": "array" }, "states": { "description": "Optional. The list of states available in this prototype.", "items": { "$ref": "#/$defs/PrototypeState" }, "type": "array" } }, "type": "object" }, "Question": { "description": "A single structured question the agent asks the user.", "properties": { "options": { "description": "Options for MULTIPLE_CHOICE / SINGLE_CHOICE questions.", "items": { "type": "string" }, "type": "array" }, "questionId": { "description": "An optional unique identifier for correlating answers to questions.", "type": "string" }, "responseType": { "description": "The expected response type.", "enum": [ "QUESTION_RESPONSE_TYPE_UNSPECIFIED", "FREEFORM_TEXT", "MULTIPLE_CHOICE", "SINGLE_CHOICE", "YES_NO", "RATING_SCALE" ], "type": "string", "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." ] }, "text": { "description": "The question text displayed to the user.", "type": "string" } }, "type": "object" }, "QuestionsAsked": { "description": "A set of questions sent from the agent to the user.", "properties": { "questions": { "description": "The list of questions asked by the agent.", "items": { "$ref": "#/$defs/Question" }, "type": "array" } }, "type": "object" }, "Screen": { "description": "A generated screen.", "properties": { "designSystem": { "$ref": "#/$defs/Asset", "description": "Output only. The design system used to generate the screen.", "readOnly": true }, "deviceType": { "description": "Optional. The device type of the screen.", "enum": [ "DEVICE_TYPE_UNSPECIFIED", "MOBILE", "DESKTOP", "TABLET", "AGNOSTIC" ], "type": "string", "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." ] }, "figmaExport": { "$ref": "#/$defs/File", "description": "Optional. The Figma export of the screen." }, "generatedBy": { "description": "Optional. The generated by field of the screen.", "type": "string" }, "groupId": { "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).", "type": "string" }, "groupName": { "description": "Optional. The name of the group (e.g., design package name) for display purposes.", "type": "string" }, "height": { "description": "Optional. The height of the screen.", "type": "string" }, "htmlCode": { "$ref": "#/$defs/File", "description": "Optional. The HTML code of the screen." }, "id": { "deprecated": true, "description": "Optional. The screen id.", "type": "string" }, "isCreatedByClient": { "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.", "type": "boolean" }, "name": { "description": "Identifier. The resource name of the screen. Format: projects/{project}/screens/{screen}", "type": "string", "x-google-identifier": true }, "prompt": { "description": "Optional. The prompt used to generate the screen.", "type": "string" }, "screenMetadata": { "$ref": "#/$defs/ScreenMetadata", "description": "Optional. The metadata of the screen." }, "screenType": { "description": "Optional. The screen type.", "enum": [ "SCREEN_TYPE_UNSPECIFIED", "DESIGN", "IMAGE", "PROTOTYPE", "DOCUMENT", "PROTOTYPE_V2" ], "type": "string", "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." }, "theme": { "$ref": "#/$defs/DesignTheme", "description": "Optional. The theme used to generate the screen." }, "title": { "description": "Optional. The title of the screen.", "type": "string" }, "width": { "description": "Optional. The width of the screen.", "type": "string" } }, "type": "object" }, "ScreenMetadata": { "description": "The metadata of a screen.", "properties": { "agentType": { "description": "The agent type that generated the screen.", "enum": [ "DESIGN_AGENT_TYPE_UNSPECIFIED", "TURBO_AGENT", "PRO_AGENT", "IMAGE_AGENT", "GENIE_AGENT", "IMAGE_PRO_AGENT", "HATTER_AGENT", "GEMINI_3_AGENT" ], "type": "string", "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." ] }, "componentRegions": { "description": "Optional. The component regions of the screen.", "items": { "$ref": "#/$defs/ComponentRegion" }, "type": "array" }, "displayMode": { "description": "Optional. Whether the frontend should display HTML or a screenshot.", "enum": [ "DISPLAY_MODE_UNSPECIFIED", "SCREENSHOT", "HTML", "CODE", "MARKDOWN", "STICKY_NOTE", "SVG", "TABLE", "MERMAID", "CHECKLIST", "CHART", "PDF", "FIGMA" ], "type": "string", "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." ] }, "isRemixed": { "description": "Optional. Whether this screen was created as a result of remixing or not.", "type": "boolean" }, "prototypeSpec": { "$ref": "#/$defs/PrototypeV2Spec", "description": "Optional. The prototype spec of the screen." }, "status": { "description": "The status of the screen.", "enum": [ "SCREEN_STATUS_UNSPECIFIED", "IN_PROGRESS", "COMPLETE", "FAILED" ], "type": "string", "x-google-enum-descriptions": [ "Unspecified screen status.", "The screen is in progress.", "The screen is complete.", "The screen failed to generate." ] }, "statusMessage": { "description": "Optional. A human readable status message for the screen, generated by the agent.", "type": "string" }, "suggestions": { "description": "Optional. Suggested next actions for the screen.", "items": { "$ref": "#/$defs/DesignSuggestion" }, "type": "array" }, "summary": { "description": "Optional. A first-person summary of what was generated or changed for the screen.", "type": "string" } }, "type": "object" }, "SessionEvent": { "description": "Flexible session events carrying JSON payload.", "properties": { "actor": { "description": "Output only. The actor who triggered the event.", "readOnly": true, "type": "string" }, "eventId": { "description": "Output only. Unique identifier for the event.", "readOnly": true, "type": "string" }, "eventPayload": { "additionalProperties": { "description": "Properties of the object." }, "description": "Output only. Payload carrying flexible event data.", "readOnly": true, "type": "object" }, "eventTime": { "description": "Output only. Time when the event occurred.", "format": "date-time", "readOnly": true, "type": "string" }, "eventType": { "description": "Output only. Type of the event.", "readOnly": true, "type": "string" } }, "type": "object" }, "SessionOutputComponent": { "description": "A partial output of the session.", "properties": { "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." }, "designSystem": { "$ref": "#/$defs/Asset", "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.", "readOnly": true }, "progressUpdates": { "$ref": "#/$defs/ProgressUpdates", "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.", "readOnly": true }, "questionsAsked": { "$ref": "#/$defs/QuestionsAsked", "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.", "readOnly": true }, "sessionEvent": { "$ref": "#/$defs/SessionEvent", "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.", "readOnly": true }, "suggestion": { "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.", "type": "string" }, "text": { "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.", "type": "string" } }, "type": "object" }, "Typography": { "description": "A typography style token in a design system, defining the visual properties for a single text level (e.g. \"display-lg\", \"body-md\").", "properties": { "fontFamily": { "description": "Optional. The CSS font-family value (e.g., \"Manrope\", \"Inter\").", "type": "string" }, "fontSize": { "description": "Optional. The CSS font-size value (e.g., \"32px\", \"1rem\").", "type": "string" }, "fontWeight": { "description": "Optional. The CSS font-weight value (e.g., \"400\", \"700\").", "type": "string" }, "letterSpacing": { "description": "Optional. The CSS letter-spacing value (e.g., \"0px\", \"-0.02em\").", "type": "string" }, "lineHeight": { "description": "Optional. The CSS line-height value (e.g., \"1.5\", \"40px\").", "type": "string" } }, "type": "object" }, "UserFeedback": { "description": "User feedback for a given interaction.", "properties": { "comment": { "description": "Optional. Additional comment for the rating.", "type": "string" }, "designFeedbackReason": { "description": "Optional. The reason for the feedback for a design, if the rating is negative.", "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", "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." ] }, "rating": { "description": "Optional. The user rating of the interaction.", "enum": [ "RATING_UNSPECIFIED", "POSITIVE", "NEGATIVE" ], "type": "string", "x-google-enum-descriptions": [ "Unspecified rating.", "Positive rating.", "Negative rating." ] } }, "type": "object" } }, "description": "The output design generated by the agent.", "properties": { "outputComponents": { "description": "The generated output components.", "items": { "$ref": "#/$defs/SessionOutputComponent" }, "type": "array" }, "projectId": { "description": "The project ID of the generated screen. This is the same as the input project ID.", "type": "string" }, "sessionId": { "description": "The session ID of the generated screen.", "type": "string" } }, "type": "object" } }, { "description": "Retrieves the details of a specific Stitch project using its project name.\n", "inputSchema": { "description": "Request message for GetProject.", "properties": { "name": { "description": "Required. Identifier. The resource name of the project to retrieve. Format: `projects/{project}` Example: `projects/4044680601076201931`", "type": "string", "x-google-identifier": true } }, "required": [ "name" ], "type": "object" }, "name": "get_project", "outputSchema": { "$defs": { "ComponentTokens": { "description": "A component style token in a design system.", "properties": { "tokens": { "additionalProperties": { "type": "string" }, "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.", "type": "object" } }, "type": "object" }, "DesignTheme": { "description": "The theme of the design. Next ID: 27 LINT.IfChange", "properties": { "backgroundDark": { "deprecated": true, "description": "Optional. DEPRECATED: The background color for dark mode (hex format, e.g., \"#1a1a1a\").", "type": "string" }, "backgroundLight": { "deprecated": true, "description": "Optional. DEPRECATED: The background color for light mode (hex format, e.g., \"#f8f8f8\").", "type": "string" }, "bodyFont": { "description": "Optional. Body 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", "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." ] }, "bodyFontFamily": { "description": "Optional. Body font family name (e.g., \"Inter\", \"Roboto\").", "type": "string" }, "colorMode": { "description": "Required. The mode of appearance of the design.", "enum": [ "COLOR_MODE_UNSPECIFIED", "LIGHT", "DARK" ], "type": "string", "x-google-enum-descriptions": [ "Unspecified color mode.", "Light mode.", "Dark mode." ] }, "colorVariant": { "description": "Optional. The variant of the dynamic color system.", "enum": [ "COLOR_VARIANT_UNSPECIFIED", "MONOCHROME", "NEUTRAL", "TONAL_SPOT", "VIBRANT", "EXPRESSIVE", "FIDELITY", "CONTENT", "RAINBOW", "FRUIT_SALAD" ], "type": "string", "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." ] }, "components": { "additionalProperties": { "$ref": "#/$defs/ComponentTokens" }, "description": "Optional. Component tokens for the design system. Maps component names to their tokens.", "type": "object" }, "customColor": { "description": "Optional. A custom theme primary color, or a seed color for the dynamic color system (hex format, e.g., \"#ff0000\").", "type": "string" }, "description": { "deprecated": true, "description": "Optional. A brief description of the theme aesthetic.", "type": "string" }, "designMd": { "description": "Optional. A markdown file that describes the design system.", "type": "string" }, "font": { "deprecated": true, "description": "Optional. DEPRECATED: The font of the design. Planned to be deprecated in favor of `headline_font`, `body_font`, and `label_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", "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." ] }, "headlineFont": { "description": "Optional. Headline 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", "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." ] }, "headlineFontFamily": { "description": "Optional. Headline font family name (e.g., \"Inter\", \"Roboto\").", "type": "string" }, "labelFont": { "description": "Optional. Label 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", "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." ] }, "labelFontFamily": { "description": "Optional. Label font family name (e.g., \"Inter\", \"Roboto\").", "type": "string" }, "namedColors": { "additionalProperties": { "type": "string" }, "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\"}", "type": "object" }, "overrideNeutralColor": { "description": "Optional. Override neutral color for the dynamic color system (hex format, e.g., \"#ffffff\").", "type": "string" }, "overridePrimaryColor": { "description": "Optional. Override primary color for the dynamic color system (hex format, e.g., \"#ff0000\").", "type": "string" }, "overrideSecondaryColor": { "description": "Optional. Override secondary color for the dynamic color system (hex format, e.g., \"#00ff00\").", "type": "string" }, "overrideTertiaryColor": { "description": "Optional. Override tertiary color for the dynamic color system (hex format, e.g., \"#0000ff\").", "type": "string" }, "preset": { "deprecated": true, "description": "Optional. DEPRECATED: The preset color of the design.", "type": "string" }, "roundness": { "description": "Required. The roundness of the design.", "enum": [ "ROUNDNESS_UNSPECIFIED", "ROUND_TWO", "ROUND_FOUR", "ROUND_EIGHT", "ROUND_TWELVE", "ROUND_FULL" ], "type": "string", "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." ] }, "saturation": { "deprecated": true, "description": "Optional. DEPRECATED: The saturation of the design between 1 and 4.", "format": "int32", "type": "integer" }, "spacing": { "additionalProperties": { "type": "string" }, "description": "Optional. Spacing units for the design system. Maps spacing names to their values.", "type": "object" }, "spacingScale": { "description": "Optional. The spacing scale level (0=minimal, 1=compact, 2=normal, 3=spacious).", "format": "int32", "type": "integer" }, "typography": { "additionalProperties": { "$ref": "#/$defs/Typography" }, "description": "Optional. Typography scale for the design system. Maps level names (e.g. \"display-lg\", \"body-md\") to their Typography token.", "type": "object" } }, "type": "object" }, "File": { "description": "A File resource.", "properties": { "downloadUrl": { "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.", "type": "string" }, "fileContentBase64": { "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.", "type": "string", "writeOnly": true }, "mimeType": { "description": "Optional. The mime type of the file. E.g. \"image/png\", \"text/html\".", "type": "string" }, "name": { "description": "Identifier. The resource name of the file. Format: projects/{project}/files/{file}", "type": "string", "x-google-identifier": true }, "uploadBlobId": { "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.", "type": "string" }, "userFeedback": { "$ref": "#/$defs/UserFeedback", "description": "Output only. The latest feedback submitted for the file.", "readOnly": true } }, "type": "object" }, "ProjectMetadata": { "description": "Metadata relating to the project.", "properties": { "isRemixed": { "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.", "type": "boolean" }, "userRole": { "description": "The Role of the user accessing the project.", "enum": [ "ROLE_UNSPECIFIED", "OWNER", "READER" ], "type": "string", "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" ] } }, "type": "object" }, "ScreenInstance": { "description": "An instance of a screen on the project. Next ID: 18", "properties": { "groupId": { "description": "Optional. Group identifier for Genie Agent output grouping. Screens with the same groupId are rendered and interact as a group.", "type": "string" }, "groupName": { "description": "Optional. Human-readable name for the group (e.g., \"Warm Minimalism\", \"Ethereal Glow\").", "type": "string" }, "height": { "description": "Optional. The screen height.", "format": "int32", "type": "integer" }, "hidden": { "description": "Optional. User driven action hiding screen from the canvas.", "type": "boolean" }, "id": { "description": "Optional. The screen instance id.", "type": "string" }, "isFavourite": { "description": "Optional. Whether this screen is marked as a favourite by the user.", "type": "boolean" }, "isResized": { "description": "Optional. Whether this screen has been resized by the user.", "type": "boolean" }, "label": { "description": "Optional. The screen label.", "type": "string" }, "needsLayout": { "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.", "type": "boolean" }, "sourceAsset": { "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.", "type": "string" }, "sourceScreen": { "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.", "type": "string" }, "textContent": { "description": "Optional. Text content for TEXT_INSTANCE nodes. Only one of the following fields should be set: this field, sourceScreen, sourceAsset.", "type": "string" }, "type": { "description": "Optional. The type of screen instance.", "enum": [ "SCREEN_INSTANCE_TYPE_UNSPECIFIED", "SCREEN_INSTANCE", "DESIGN_SYSTEM_INSTANCE", "GROUP_INSTANCE", "TEXT_INSTANCE" ], "type": "string", "x-google-enum-descriptions": [ "The unspecified value.", "A screen instance.", "A design system instance.", "A group instance.", "A text instance." ] }, "variantScreenInstance": { "$ref": "#/$defs/ScreenInstance", "description": "Optional. The variant Screen Instance." }, "width": { "description": "Optional. The screen width.", "format": "int32", "type": "integer" }, "x": { "description": "Optional. The x position of the screen.", "format": "int32", "type": "integer" }, "y": { "description": "Optional. The y position of the screen.", "format": "int32", "type": "integer" } }, "type": "object" }, "Typography": { "description": "A typography style token in a design system, defining the visual properties for a single text level (e.g. \"display-lg\", \"body-md\").", "properties": { "fontFamily": { "description": "Optional. The CSS font-family value (e.g., \"Manrope\", \"Inter\").", "type": "string" }, "fontSize": { "description": "Optional. The CSS font-size value (e.g., \"32px\", \"1rem\").", "type": "string" }, "fontWeight": { "description": "Optional. The CSS font-weight value (e.g., \"400\", \"700\").", "type": "string" }, "letterSpacing": { "description": "Optional. The CSS letter-spacing value (e.g., \"0px\", \"-0.02em\").", "type": "string" }, "lineHeight": { "description": "Optional. The CSS line-height value (e.g., \"1.5\", \"40px\").", "type": "string" } }, "type": "object" }, "UserFeedback": { "description": "User feedback for a given interaction.", "properties": { "comment": { "description": "Optional. Additional comment for the rating.", "type": "string" }, "designFeedbackReason": { "description": "Optional. The reason for the feedback for a design, if the rating is negative.", "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", "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." ] }, "rating": { "description": "Optional. The user rating of the interaction.", "enum": [ "RATING_UNSPECIFIED", "POSITIVE", "NEGATIVE" ], "type": "string", "x-google-enum-descriptions": [ "Unspecified rating.", "Positive rating.", "Negative rating." ] } }, "type": "object" } }, "description": "A project is a single app.", "properties": { "backgroundTheme": { "description": "Optional. The background theme of the project.", "type": "string" }, "createTime": { "description": "Output only. The time when the project was created.", "format": "date-time", "readOnly": true, "type": "string" }, "designTheme": { "$ref": "#/$defs/DesignTheme", "description": "Output only. The theme used to generate the first design in the project.", "readOnly": true }, "deviceType": { "description": "Optional. The device type of the project.", "enum": [ "DEVICE_TYPE_UNSPECIFIED", "MOBILE", "DESKTOP", "TABLET", "AGNOSTIC" ], "type": "string", "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." ] }, "metadata": { "$ref": "#/$defs/ProjectMetadata", "description": "Metadata of the project." }, "name": { "description": "Identifier. The resource name of the project. Format: projects/{project}", "type": "string", "x-google-identifier": true }, "origin": { "description": "Output only. The origin of the project.", "enum": [ "ORIGIN_UNSPECIFIED", "STITCH", "IMPORTED_FROM_GALILEO" ], "readOnly": true, "type": "string", "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." ] }, "projectType": { "description": "Optional. The type of the project. If not specified, the project is a text to UI project.", "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", "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." ] }, "readTime": { "description": "Output only. The time the project was last read. Populated only when listing recently viewed projects.", "format": "date-time", "readOnly": true, "type": "string" }, "screenInstances": { "description": "Output only. The screen instances on this project.", "items": { "$ref": "#/$defs/ScreenInstance" }, "readOnly": true, "type": "array" }, "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." }, "title": { "description": "Optional. The title of the project.", "type": "string" }, "updateTime": { "description": "Output only. The time when the project was last updated.", "format": "date-time", "readOnly": true, "type": "string" }, "visibility": { "description": "Optional. The visibility setting of the project.", "enum": [ "VISIBILITY_UNSPECIFIED", "PUBLIC", "PRIVATE" ], "type": "string", "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." ] } }, "type": "object" } }, { "description": "Retrieves the details of a specific screen within a project.\n", "inputSchema": { "description": "Request message for GetScreen.", "properties": { "name": { "description": "Required. Identifier. The resource name of the screen to retrieve. Format: `projects/{project}/screens/{screen}` Example: `projects/4044680601076201931/screens/98b50e2ddc9943efb387052637738f61`", "type": "string", "x-google-identifier": true } }, "required": [ "name" ], "type": "object" }, "name": "get_screen", "outputSchema": { "$defs": { "File": { "description": "A File resource.", "properties": { "downloadUrl": { "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.", "type": "string" }, "fileContentBase64": { "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.", "type": "string", "writeOnly": true }, "mimeType": { "description": "Optional. The mime type of the file. E.g. \"image/png\", \"text/html\".", "type": "string" }, "name": { "description": "Identifier. The resource name of the file. Format: projects/{project}/files/{file}", "type": "string", "x-google-identifier": true }, "uploadBlobId": { "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.", "type": "string" }, "userFeedback": { "$ref": "#/$defs/UserFeedback", "description": "Output only. The latest feedback submitted for the file.", "readOnly": true } }, "type": "object" }, "UserFeedback": { "description": "User feedback for a given interaction.", "properties": { "comment": { "description": "Optional. Additional comment for the rating.", "type": "string" }, "designFeedbackReason": { "description": "Optional. The reason for the feedback for a design, if the rating is negative.", "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", "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." ] }, "rating": { "description": "Optional. The user rating of the interaction.", "enum": [ "RATING_UNSPECIFIED", "POSITIVE", "NEGATIVE" ], "type": "string", "x-google-enum-descriptions": [ "Unspecified rating.", "Positive rating.", "Negative rating." ] } }, "type": "object" } }, "description": "A screen generated by the agent.", "properties": { "deviceType": { "description": "The device type of the screen.", "enum": [ "DEVICE_TYPE_UNSPECIFIED", "MOBILE", "DESKTOP", "TABLET", "AGNOSTIC" ], "type": "string", "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." ] }, "height": { "description": "The height of the screen.", "type": "string" }, "htmlCode": { "$ref": "#/$defs/File", "description": "The HTML code of the screen." }, "name": { "description": "Identifier. The name of the screen. Format: projects/{project}/screens/{screen}", "type": "string", "x-google-identifier": true }, "screenshot": { "$ref": "#/$defs/File", "description": "The screenshot of the screen." }, "title": { "description": "The title of the screen.", "type": "string" }, "width": { "description": "The width of the screen.", "type": "string" } }, "type": "object" } }, { "description": "Lists all design systems for a given project.\n", "inputSchema": { "description": "Request message for ListDesignSystems.", "properties": { "projectId": { "description": "Optional. The project ID to list design systems for, example: '4044680601076201931', without the `projects/` prefix. If empty, lists all global design systems.", "type": "string" } }, "type": "object" }, "name": "list_design_systems", "outputSchema": { "$defs": { "Asset": { "description": "An Asset resource.", "properties": { "copiedFrom": { "description": "Optional. The resource name of the asset this was copied from, if any. Format: assets/{asset} Tracks the fork history of assets.", "type": "string" }, "designSystem": { "$ref": "#/$defs/DesignSystem", "description": "Optional. The design system." }, "name": { "description": "Identifier. The resource name of the asset. Format: assets/{asset}", "type": "string", "x-google-identifier": true }, "version": { "description": "Output only. The version of this asset. 0 indicates unversioned (legacy data). Incremented when the asset content changes.", "format": "int64", "readOnly": true, "type": "string" } }, "type": "object" }, "ComponentTokens": { "description": "A component style token in a design system.", "properties": { "tokens": { "additionalProperties": { "type": "string" }, "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.", "type": "object" } }, "type": "object" }, "DesignSystem": { "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", "properties": { "designTokens": { "description": "Optional. Serialized JSON object of the DTCG format design tokens.", "type": "string" }, "displayName": { "description": "Optional. The display name of the design system.", "type": "string" }, "styleGuidelines": { "description": "Optional. Freeform text description of the style guidelines. This field is not displayed to the user and should not be included in MCP.", "type": "string" }, "theme": { "$ref": "#/$defs/DesignTheme", "description": "Optional. The theme of the design system." } }, "type": "object" }, "DesignTheme": { "description": "The theme of the design. Next ID: 27 LINT.IfChange", "properties": { "backgroundDark": { "deprecated": true, "description": "Optional. DEPRECATED: The background color for dark mode (hex format, e.g., \"#1a1a1a\").", "type": "string" }, "backgroundLight": { "deprecated": true, "description": "Optional. DEPRECATED: The background color for light mode (hex format, e.g., \"#f8f8f8\").", "type": "string" }, "bodyFont": { "description": "Optional. Body 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", "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." ] }, "bodyFontFamily": { "description": "Optional. Body font family name (e.g., \"Inter\", \"Roboto\").", "type": "string" }, "colorMode": { "description": "Required. The mode of appearance of the design.", "enum": [ "COLOR_MODE_UNSPECIFIED", "LIGHT", "DARK" ], "type": "string", "x-google-enum-descriptions": [ "Unspecified color mode.", "Light mode.", "Dark mode." ] }, "colorVariant": { "description": "Optional. The variant of the dynamic color system.", "enum": [ "COLOR_VARIANT_UNSPECIFIED", "MONOCHROME", "NEUTRAL", "TONAL_SPOT", "VIBRANT", "EXPRESSIVE", "FIDELITY", "CONTENT", "RAINBOW", "FRUIT_SALAD" ], "type": "string", "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." ] }, "components": { "additionalProperties": { "$ref": "#/$defs/ComponentTokens" }, "description": "Optional. Component tokens for the design system. Maps component names to their tokens.", "type": "object" }, "customColor": { "description": "Optional. A custom theme primary color, or a seed color for the dynamic color system (hex format, e.g., \"#ff0000\").", "type": "string" }, "description": { "deprecated": true, "description": "Optional. A brief description of the theme aesthetic.", "type": "string" }, "designMd": { "description": "Optional. A markdown file that describes the design system.", "type": "string" }, "font": { "deprecated": true, "description": "Optional. DEPRECATED: The font of the design. Planned to be deprecated in favor of `headline_font`, `body_font`, and `label_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", "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." ] }, "headlineFont": { "description": "Optional. Headline 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", "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." ] }, "headlineFontFamily": { "description": "Optional. Headline font family name (e.g., \"Inter\", \"Roboto\").", "type": "string" }, "labelFont": { "description": "Optional. Label 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", "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." ] }, "labelFontFamily": { "description": "Optional. Label font family name (e.g., \"Inter\", \"Roboto\").", "type": "string" }, "namedColors": { "additionalProperties": { "type": "string" }, "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\"}", "type": "object" }, "overrideNeutralColor": { "description": "Optional. Override neutral color for the dynamic color system (hex format, e.g., \"#ffffff\").", "type": "string" }, "overridePrimaryColor": { "description": "Optional. Override primary color for the dynamic color system (hex format, e.g., \"#ff0000\").", "type": "string" }, "overrideSecondaryColor": { "description": "Optional. Override secondary color for the dynamic color system (hex format, e.g., \"#00ff00\").", "type": "string" }, "overrideTertiaryColor": { "description": "Optional. Override tertiary color for the dynamic color system (hex format, e.g., \"#0000ff\").", "type": "string" }, "preset": { "deprecated": true, "description": "Optional. DEPRECATED: The preset color of the design.", "type": "string" }, "roundness": { "description": "Required. The roundness of the design.", "enum": [ "ROUNDNESS_UNSPECIFIED", "ROUND_TWO", "ROUND_FOUR", "ROUND_EIGHT", "ROUND_TWELVE", "ROUND_FULL" ], "type": "string", "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." ] }, "saturation": { "deprecated": true, "description": "Optional. DEPRECATED: The saturation of the design between 1 and 4.", "format": "int32", "type": "integer" }, "spacing": { "additionalProperties": { "type": "string" }, "description": "Optional. Spacing units for the design system. Maps spacing names to their values.", "type": "object" }, "spacingScale": { "description": "Optional. The spacing scale level (0=minimal, 1=compact, 2=normal, 3=spacious).", "format": "int32", "type": "integer" }, "typography": { "additionalProperties": { "$ref": "#/$defs/Typography" }, "description": "Optional. Typography scale for the design system. Maps level names (e.g. \"display-lg\", \"body-md\") to their Typography token.", "type": "object" } }, "type": "object" }, "Typography": { "description": "A typography style token in a design system, defining the visual properties for a single text level (e.g. \"display-lg\", \"body-md\").", "properties": { "fontFamily": { "description": "Optional. The CSS font-family value (e.g., \"Manrope\", \"Inter\").", "type": "string" }, "fontSize": { "description": "Optional. The CSS font-size value (e.g., \"32px\", \"1rem\").", "type": "string" }, "fontWeight": { "description": "Optional. The CSS font-weight value (e.g., \"400\", \"700\").", "type": "string" }, "letterSpacing": { "description": "Optional. The CSS letter-spacing value (e.g., \"0px\", \"-0.02em\").", "type": "string" }, "lineHeight": { "description": "Optional. The CSS line-height value (e.g., \"1.5\", \"40px\").", "type": "string" } }, "type": "object" } }, "description": "Response message for ListDesignSystems.", "properties": { "designSystems": { "description": "The design systems for the given project.", "items": { "$ref": "#/$defs/Asset" }, "type": "array" } }, "type": "object" } }, { "description": "Lists all Stitch projects accessible to the user. By default, it lists projects owned by the user.\n", "inputSchema": { "description": "Request message for ListProjects.", "properties": { "filter": { "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`", "type": "string" } }, "type": "object" }, "name": "list_projects", "outputSchema": { "$defs": { "ComponentTokens": { "description": "A component style token in a design system.", "properties": { "tokens": { "additionalProperties": { "type": "string" }, "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.", "type": "object" } }, "type": "object" }, "DesignTheme": { "description": "The theme of the design. Next ID: 27 LINT.IfChange", "properties": { "backgroundDark": { "deprecated": true, "description": "Optional. DEPRECATED: The background color for dark mode (hex format, e.g., \"#1a1a1a\").", "type": "string" }, "backgroundLight": { "deprecated": true, "description": "Optional. DEPRECATED: The background color for light mode (hex format, e.g., \"#f8f8f8\").", "type": "string" }, "bodyFont": { "description": "Optional. Body 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", "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." ] }, "bodyFontFamily": { "description": "Optional. Body font family name (e.g., \"Inter\", \"Roboto\").", "type": "string" }, "colorMode": { "description": "Required. The mode of appearance of the design.", "enum": [ "COLOR_MODE_UNSPECIFIED", "LIGHT", "DARK" ], "type": "string", "x-google-enum-descriptions": [ "Unspecified color mode.", "Light mode.", "Dark mode." ] }, "colorVariant": { "description": "Optional. The variant of the dynamic color system.", "enum": [ "COLOR_VARIANT_UNSPECIFIED", "MONOCHROME", "NEUTRAL", "TONAL_SPOT", "VIBRANT", "EXPRESSIVE", "FIDELITY", "CONTENT", "RAINBOW", "FRUIT_SALAD" ], "type": "string", "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." ] }, "components": { "additionalProperties": { "$ref": "#/$defs/ComponentTokens" }, "description": "Optional. Component tokens for the design system. Maps component names to their tokens.", "type": "object" }, "customColor": { "description": "Optional. A custom theme primary color, or a seed color for the dynamic color system (hex format, e.g., \"#ff0000\").", "type": "string" }, "description": { "deprecated": true, "description": "Optional. A brief description of the theme aesthetic.", "type": "string" }, "designMd": { "description": "Optional. A markdown file that describes the design system.", "type": "string" }, "font": { "deprecated": true, "description": "Optional. DEPRECATED: The font of the design. Planned to be deprecated in favor of `headline_font`, `body_font`, and `label_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", "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." ] }, "headlineFont": { "description": "Optional. Headline 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", "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." ] }, "headlineFontFamily": { "description": "Optional. Headline font family name (e.g., \"Inter\", \"Roboto\").", "type": "string" }, "labelFont": { "description": "Optional. Label 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", "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." ] }, "labelFontFamily": { "description": "Optional. Label font family name (e.g., \"Inter\", \"Roboto\").", "type": "string" }, "namedColors": { "additionalProperties": { "type": "string" }, "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\"}", "type": "object" }, "overrideNeutralColor": { "description": "Optional. Override neutral color for the dynamic color system (hex format, e.g., \"#ffffff\").", "type": "string" }, "overridePrimaryColor": { "description": "Optional. Override primary color for the dynamic color system (hex format, e.g., \"#ff0000\").", "type": "string" }, "overrideSecondaryColor": { "description": "Optional. Override secondary color for the dynamic color system (hex format, e.g., \"#00ff00\").", "type": "string" }, "overrideTertiaryColor": { "description": "Optional. Override tertiary color for the dynamic color system (hex format, e.g., \"#0000ff\").", "type": "string" }, "preset": { "deprecated": true, "description": "Optional. DEPRECATED: The preset color of the design.", "type": "string" }, "roundness": { "description": "Required. The roundness of the design.", "enum": [ "ROUNDNESS_UNSPECIFIED", "ROUND_TWO", "ROUND_FOUR", "ROUND_EIGHT", "ROUND_TWELVE", "ROUND_FULL" ], "type": "string", "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." ] }, "saturation": { "deprecated": true, "description": "Optional. DEPRECATED: The saturation of the design between 1 and 4.", "format": "int32", "type": "integer" }, "spacing": { "additionalProperties": { "type": "string" }, "description": "Optional. Spacing units for the design system. Maps spacing names to their values.", "type": "object" }, "spacingScale": { "description": "Optional. The spacing scale level (0=minimal, 1=compact, 2=normal, 3=spacious).", "format": "int32", "type": "integer" }, "typography": { "additionalProperties": { "$ref": "#/$defs/Typography" }, "description": "Optional. Typography scale for the design system. Maps level names (e.g. \"display-lg\", \"body-md\") to their Typography token.", "type": "object" } }, "type": "object" }, "File": { "description": "A File resource.", "properties": { "downloadUrl": { "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.", "type": "string" }, "fileContentBase64": { "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.", "type": "string", "writeOnly": true }, "mimeType": { "description": "Optional. The mime type of the file. E.g. \"image/png\", \"text/html\".", "type": "string" }, "name": { "description": "Identifier. The resource name of the file. Format: projects/{project}/files/{file}", "type": "string", "x-google-identifier": true }, "uploadBlobId": { "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.", "type": "string" }, "userFeedback": { "$ref": "#/$defs/UserFeedback", "description": "Output only. The latest feedback submitted for the file.", "readOnly": true } }, "type": "object" }, "Project": { "description": "A project is a single app.", "properties": { "backgroundTheme": { "description": "Optional. The background theme of the project.", "type": "string" }, "createTime": { "description": "Output only. The time when the project was created.", "format": "date-time", "readOnly": true, "type": "string" }, "designTheme": { "$ref": "#/$defs/DesignTheme", "description": "Output only. The theme used to generate the first design in the project.", "readOnly": true }, "deviceType": { "description": "Optional. The device type of the project.", "enum": [ "DEVICE_TYPE_UNSPECIFIED", "MOBILE", "DESKTOP", "TABLET", "AGNOSTIC" ], "type": "string", "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." ] }, "metadata": { "$ref": "#/$defs/ProjectMetadata", "description": "Metadata of the project." }, "name": { "description": "Identifier. The resource name of the project. Format: projects/{project}", "type": "string", "x-google-identifier": true }, "origin": { "description": "Output only. The origin of the project.", "enum": [ "ORIGIN_UNSPECIFIED", "STITCH", "IMPORTED_FROM_GALILEO" ], "readOnly": true, "type": "string", "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." ] }, "projectType": { "description": "Optional. The type of the project. If not specified, the project is a text to UI project.", "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", "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." ] }, "readTime": { "description": "Output only. The time the project was last read. Populated only when listing recently viewed projects.", "format": "date-time", "readOnly": true, "type": "string" }, "screenInstances": { "description": "Output only. The screen instances on this project.", "items": { "$ref": "#/$defs/ScreenInstance" }, "readOnly": true, "type": "array" }, "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." }, "title": { "description": "Optional. The title of the project.", "type": "string" }, "updateTime": { "description": "Output only. The time when the project was last updated.", "format": "date-time", "readOnly": true, "type": "string" }, "visibility": { "description": "Optional. The visibility setting of the project.", "enum": [ "VISIBILITY_UNSPECIFIED", "PUBLIC", "PRIVATE" ], "type": "string", "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." ] } }, "type": "object" }, "ProjectMetadata": { "description": "Metadata relating to the project.", "properties": { "isRemixed": { "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.", "type": "boolean" }, "userRole": { "description": "The Role of the user accessing the project.", "enum": [ "ROLE_UNSPECIFIED", "OWNER", "READER" ], "type": "string", "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" ] } }, "type": "object" }, "ScreenInstance": { "description": "An instance of a screen on the project. Next ID: 18", "properties": { "groupId": { "description": "Optional. Group identifier for Genie Agent output grouping. Screens with the same groupId are rendered and interact as a group.", "type": "string" }, "groupName": { "description": "Optional. Human-readable name for the group (e.g., \"Warm Minimalism\", \"Ethereal Glow\").", "type": "string" }, "height": { "description": "Optional. The screen height.", "format": "int32", "type": "integer" }, "hidden": { "description": "Optional. User driven action hiding screen from the canvas.", "type": "boolean" }, "id": { "description": "Optional. The screen instance id.", "type": "string" }, "isFavourite": { "description": "Optional. Whether this screen is marked as a favourite by the user.", "type": "boolean" }, "isResized": { "description": "Optional. Whether this screen has been resized by the user.", "type": "boolean" }, "label": { "description": "Optional. The screen label.", "type": "string" }, "needsLayout": { "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.", "type": "boolean" }, "sourceAsset": { "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.", "type": "string" }, "sourceScreen": { "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.", "type": "string" }, "textContent": { "description": "Optional. Text content for TEXT_INSTANCE nodes. Only one of the following fields should be set: this field, sourceScreen, sourceAsset.", "type": "string" }, "type": { "description": "Optional. The type of screen instance.", "enum": [ "SCREEN_INSTANCE_TYPE_UNSPECIFIED", "SCREEN_INSTANCE", "DESIGN_SYSTEM_INSTANCE", "GROUP_INSTANCE", "TEXT_INSTANCE" ], "type": "string", "x-google-enum-descriptions": [ "The unspecified value.", "A screen instance.", "A design system instance.", "A group instance.", "A text instance." ] }, "variantScreenInstance": { "$ref": "#/$defs/ScreenInstance", "description": "Optional. The variant Screen Instance." }, "width": { "description": "Optional. The screen width.", "format": "int32", "type": "integer" }, "x": { "description": "Optional. The x position of the screen.", "format": "int32", "type": "integer" }, "y": { "description": "Optional. The y position of the screen.", "format": "int32", "type": "integer" } }, "type": "object" }, "Typography": { "description": "A typography style token in a design system, defining the visual properties for a single text level (e.g. \"display-lg\", \"body-md\").", "properties": { "fontFamily": { "description": "Optional. The CSS font-family value (e.g., \"Manrope\", \"Inter\").", "type": "string" }, "fontSize": { "description": "Optional. The CSS font-size value (e.g., \"32px\", \"1rem\").", "type": "string" }, "fontWeight": { "description": "Optional. The CSS font-weight value (e.g., \"400\", \"700\").", "type": "string" }, "letterSpacing": { "description": "Optional. The CSS letter-spacing value (e.g., \"0px\", \"-0.02em\").", "type": "string" }, "lineHeight": { "description": "Optional. The CSS line-height value (e.g., \"1.5\", \"40px\").", "type": "string" } }, "type": "object" }, "UserFeedback": { "description": "User feedback for a given interaction.", "properties": { "comment": { "description": "Optional. Additional comment for the rating.", "type": "string" }, "designFeedbackReason": { "description": "Optional. The reason for the feedback for a design, if the rating is negative.", "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", "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." ] }, "rating": { "description": "Optional. The user rating of the interaction.", "enum": [ "RATING_UNSPECIFIED", "POSITIVE", "NEGATIVE" ], "type": "string", "x-google-enum-descriptions": [ "Unspecified rating.", "Positive rating.", "Negative rating." ] } }, "type": "object" } }, "description": "Response message for ListProjects.", "properties": { "projects": { "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.", "items": { "$ref": "#/$defs/Project" }, "type": "array" } }, "type": "object" } }, { "description": "Lists all screens within a given Stitch project.\n", "inputSchema": { "description": "Request message for ListScreens.", "properties": { "projectId": { "description": "Required. Identifier. The project ID to list screens for, example: '4044680601076201931', without the `projects/` prefix.", "type": "string", "x-google-identifier": true } }, "required": [ "projectId" ], "type": "object" }, "name": "list_screens", "outputSchema": { "$defs": { "File": { "description": "A File resource.", "properties": { "downloadUrl": { "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.", "type": "string" }, "fileContentBase64": { "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.", "type": "string", "writeOnly": true }, "mimeType": { "description": "Optional. The mime type of the file. E.g. \"image/png\", \"text/html\".", "type": "string" }, "name": { "description": "Identifier. The resource name of the file. Format: projects/{project}/files/{file}", "type": "string", "x-google-identifier": true }, "uploadBlobId": { "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.", "type": "string" }, "userFeedback": { "$ref": "#/$defs/UserFeedback", "description": "Output only. The latest feedback submitted for the file.", "readOnly": true } }, "type": "object" }, "Screen": { "description": "A screen generated by the agent.", "properties": { "deviceType": { "description": "The device type of the screen.", "enum": [ "DEVICE_TYPE_UNSPECIFIED", "MOBILE", "DESKTOP", "TABLET", "AGNOSTIC" ], "type": "string", "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." ] }, "height": { "description": "The height of the screen.", "type": "string" }, "htmlCode": { "$ref": "#/$defs/File", "description": "The HTML code of the screen." }, "name": { "description": "Identifier. The name of the screen. Format: projects/{project}/screens/{screen}", "type": "string", "x-google-identifier": true }, "screenshot": { "$ref": "#/$defs/File", "description": "The screenshot of the screen." }, "title": { "description": "The title of the screen.", "type": "string" }, "width": { "description": "The width of the screen.", "type": "string" } }, "type": "object" }, "UserFeedback": { "description": "User feedback for a given interaction.", "properties": { "comment": { "description": "Optional. Additional comment for the rating.", "type": "string" }, "designFeedbackReason": { "description": "Optional. The reason for the feedback for a design, if the rating is negative.", "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", "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." ] }, "rating": { "description": "Optional. The user rating of the interaction.", "enum": [ "RATING_UNSPECIFIED", "POSITIVE", "NEGATIVE" ], "type": "string", "x-google-enum-descriptions": [ "Unspecified rating.", "Positive rating.", "Negative rating." ] } }, "type": "object" } }, "description": "Response message for ListScreens.", "properties": { "screens": { "description": "The screens for the given project.", "items": { "$ref": "#/$defs/Screen" }, "type": "array" } }, "type": "object" } }, { "description": "Updates a design system for a project. Use this tool when the user wants to change the overall visual theme, style, or branding of the application.\nThis includes configuring:\n- Color Palette: Presets, custom primary colors, and saturation levels.\n- Typography: Font families (e.g., Inter, Roboto, etc.).\n- Shape: Corner roundness for UI elements.\n- Appearance: Light and dark mode background colors.\n- Design MD: Free-form design instructions in markdown.\nThis tool establishes the foundational design tokens that apply across all screens in the project.\n", "inputSchema": { "$defs": { "DesignSystem": { "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", "properties": { "displayName": { "description": "Required. Specifies the display name of the design system.", "type": "string" }, "theme": { "$ref": "#/$defs/DesignTheme", "description": "Required. Specifies the theme of the design system." } }, "required": [ "displayName", "theme" ], "type": "object" }, "DesignTheme": { "description": "The theme of the design. Next ID: 15 LINT.IfChange", "properties": { "bodyFont": { "description": "Required. Specifies the body 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", "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." ] }, "colorMode": { "description": "Required. Specifies the mode of appearance of the design.", "enum": [ "COLOR_MODE_UNSPECIFIED", "LIGHT", "DARK" ], "type": "string", "x-google-enum-descriptions": [ "Unspecified color mode.", "Light mode.", "Dark mode." ] }, "colorVariant": { "description": "Optional. Specifies the variant of the dynamic color system.", "enum": [ "COLOR_VARIANT_UNSPECIFIED", "MONOCHROME", "NEUTRAL", "TONAL_SPOT", "VIBRANT", "EXPRESSIVE", "FIDELITY", "CONTENT", "RAINBOW", "FRUIT_SALAD" ], "type": "string", "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." ] }, "customColor": { "description": "Required. Specifies a custom theme primary color, or a seed color for the dynamic color system (hex format, e.g., \"#ff0000\").", "type": "string" }, "designMd": { "description": "Optional. Specifies a markdown file that describes the design system.", "type": "string" }, "headlineFont": { "description": "Required. Specifies the headline 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", "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." ] }, "labelFont": { "description": "Optional. Specifies the label 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", "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": { "description": "Optional. Overrides the neutral color for the dynamic color system (hex format, e.g., \"#ffffff\").", "type": "string" }, "overridePrimaryColor": { "description": "Optional. Overrides the primary color for the dynamic color system (hex format, e.g., \"#ff0000\").", "type": "string" }, "overrideSecondaryColor": { "description": "Optional. Overrides the secondary color for the dynamic color system (hex format, e.g., \"#00ff00\").", "type": "string" }, "overrideTertiaryColor": { "description": "Optional. Overrides the tertiary color for the dynamic color system (hex format, e.g., \"#0000ff\").", "type": "string" }, "roundness": { "description": "Required. Specifies the roundness of the design. Supported values are: \"ROUND_FOUR\", \"ROUND_EIGHT\", and \"ROUND_TWELVE\", and \"ROUND_FULL\".", "enum": [ "ROUNDNESS_UNSPECIFIED", "ROUND_TWO", "ROUND_FOUR", "ROUND_EIGHT", "ROUND_TWELVE", "ROUND_FULL" ], "type": "string", "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." ] }, "spacing": { "additionalProperties": { "type": "string" }, "description": "Optional. Spacing units for the design system. Maps spacing names to their values.", "type": "object" }, "typography": { "additionalProperties": { "$ref": "#/$defs/Typography" }, "description": "Optional. Typography scale for the design system. Maps level names (e.g. \"display-lg\", \"body-md\") to their Typography token.", "type": "object" } }, "required": [ "colorMode", "headlineFont", "bodyFont", "roundness", "customColor" ], "type": "object" }, "Typography": { "description": "A typography style token in a design system, defining the visual properties for a single text level (e.g. \"display-lg\", \"body-md\").", "properties": { "fontFamily": { "description": "Optional. The CSS font-family value (e.g., \"Manrope\", \"Inter\").", "type": "string" }, "fontSize": { "description": "Optional. The CSS font-size value (e.g., \"32px\", \"1rem\").", "type": "string" }, "fontWeight": { "description": "Optional. The CSS font-weight value (e.g., \"400\", \"700\").", "type": "string" }, "letterSpacing": { "description": "Optional. The CSS letter-spacing value (e.g., \"0px\", \"-0.02em\").", "type": "string" }, "lineHeight": { "description": "Optional. The CSS line-height value (e.g., \"1.5\", \"40px\").", "type": "string" } }, "type": "object" } }, "description": "Request message for UpdateDesignSystem.", "properties": { "designSystem": { "$ref": "#/$defs/DesignSystem", "description": "Required. The design system to update." }, "name": { "description": "Required. Identifier. The resource name of the design system to update. Format: `assets/{asset_id}` Example: `assets/15996705518239280238`", "type": "string", "x-google-identifier": true }, "projectId": { "description": "Required. The project ID to update design system for, example: '4044680601076201931', without the `projects/` prefix.", "type": "string" } }, "required": [ "name", "projectId", "designSystem" ], "type": "object" }, "name": "update_design_system", "outputSchema": { "$defs": { "ComponentTokens": { "description": "A component style token in a design system.", "properties": { "tokens": { "additionalProperties": { "type": "string" }, "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.", "type": "object" } }, "type": "object" }, "DesignSystem": { "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", "properties": { "designTokens": { "description": "Optional. Serialized JSON object of the DTCG format design tokens.", "type": "string" }, "displayName": { "description": "Optional. The display name of the design system.", "type": "string" }, "styleGuidelines": { "description": "Optional. Freeform text description of the style guidelines. This field is not displayed to the user and should not be included in MCP.", "type": "string" }, "theme": { "$ref": "#/$defs/DesignTheme", "description": "Optional. The theme of the design system." } }, "type": "object" }, "DesignTheme": { "description": "The theme of the design. Next ID: 27 LINT.IfChange", "properties": { "backgroundDark": { "deprecated": true, "description": "Optional. DEPRECATED: The background color for dark mode (hex format, e.g., \"#1a1a1a\").", "type": "string" }, "backgroundLight": { "deprecated": true, "description": "Optional. DEPRECATED: The background color for light mode (hex format, e.g., \"#f8f8f8\").", "type": "string" }, "bodyFont": { "description": "Optional. Body 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", "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." ] }, "bodyFontFamily": { "description": "Optional. Body font family name (e.g., \"Inter\", \"Roboto\").", "type": "string" }, "colorMode": { "description": "Required. The mode of appearance of the design.", "enum": [ "COLOR_MODE_UNSPECIFIED", "LIGHT", "DARK" ], "type": "string", "x-google-enum-descriptions": [ "Unspecified color mode.", "Light mode.", "Dark mode." ] }, "colorVariant": { "description": "Optional. The variant of the dynamic color system.", "enum": [ "COLOR_VARIANT_UNSPECIFIED", "MONOCHROME", "NEUTRAL", "TONAL_SPOT", "VIBRANT", "EXPRESSIVE", "FIDELITY", "CONTENT", "RAINBOW", "FRUIT_SALAD" ], "type": "string", "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." ] }, "components": { "additionalProperties": { "$ref": "#/$defs/ComponentTokens" }, "description": "Optional. Component tokens for the design system. Maps component names to their tokens.", "type": "object" }, "customColor": { "description": "Optional. A custom theme primary color, or a seed color for the dynamic color system (hex format, e.g., \"#ff0000\").", "type": "string" }, "description": { "deprecated": true, "description": "Optional. A brief description of the theme aesthetic.", "type": "string" }, "designMd": { "description": "Optional. A markdown file that describes the design system.", "type": "string" }, "font": { "deprecated": true, "description": "Optional. DEPRECATED: The font of the design. Planned to be deprecated in favor of `headline_font`, `body_font`, and `label_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", "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." ] }, "headlineFont": { "description": "Optional. Headline 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", "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." ] }, "headlineFontFamily": { "description": "Optional. Headline font family name (e.g., \"Inter\", \"Roboto\").", "type": "string" }, "labelFont": { "description": "Optional. Label 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", "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." ] }, "labelFontFamily": { "description": "Optional. Label font family name (e.g., \"Inter\", \"Roboto\").", "type": "string" }, "namedColors": { "additionalProperties": { "type": "string" }, "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\"}", "type": "object" }, "overrideNeutralColor": { "description": "Optional. Override neutral color for the dynamic color system (hex format, e.g., \"#ffffff\").", "type": "string" }, "overridePrimaryColor": { "description": "Optional. Override primary color for the dynamic color system (hex format, e.g., \"#ff0000\").", "type": "string" }, "overrideSecondaryColor": { "description": "Optional. Override secondary color for the dynamic color system (hex format, e.g., \"#00ff00\").", "type": "string" }, "overrideTertiaryColor": { "description": "Optional. Override tertiary color for the dynamic color system (hex format, e.g., \"#0000ff\").", "type": "string" }, "preset": { "deprecated": true, "description": "Optional. DEPRECATED: The preset color of the design.", "type": "string" }, "roundness": { "description": "Required. The roundness of the design.", "enum": [ "ROUNDNESS_UNSPECIFIED", "ROUND_TWO", "ROUND_FOUR", "ROUND_EIGHT", "ROUND_TWELVE", "ROUND_FULL" ], "type": "string", "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." ] }, "saturation": { "deprecated": true, "description": "Optional. DEPRECATED: The saturation of the design between 1 and 4.", "format": "int32", "type": "integer" }, "spacing": { "additionalProperties": { "type": "string" }, "description": "Optional. Spacing units for the design system. Maps spacing names to their values.", "type": "object" }, "spacingScale": { "description": "Optional. The spacing scale level (0=minimal, 1=compact, 2=normal, 3=spacious).", "format": "int32", "type": "integer" }, "typography": { "additionalProperties": { "$ref": "#/$defs/Typography" }, "description": "Optional. Typography scale for the design system. Maps level names (e.g. \"display-lg\", \"body-md\") to their Typography token.", "type": "object" } }, "type": "object" }, "Typography": { "description": "A typography style token in a design system, defining the visual properties for a single text level (e.g. \"display-lg\", \"body-md\").", "properties": { "fontFamily": { "description": "Optional. The CSS font-family value (e.g., \"Manrope\", \"Inter\").", "type": "string" }, "fontSize": { "description": "Optional. The CSS font-size value (e.g., \"32px\", \"1rem\").", "type": "string" }, "fontWeight": { "description": "Optional. The CSS font-weight value (e.g., \"400\", \"700\").", "type": "string" }, "letterSpacing": { "description": "Optional. The CSS letter-spacing value (e.g., \"0px\", \"-0.02em\").", "type": "string" }, "lineHeight": { "description": "Optional. The CSS line-height value (e.g., \"1.5\", \"40px\").", "type": "string" } }, "type": "object" } }, "description": "An Asset resource.", "properties": { "copiedFrom": { "description": "Optional. The resource name of the asset this was copied from, if any. Format: assets/{asset} Tracks the fork history of assets.", "type": "string" }, "designSystem": { "$ref": "#/$defs/DesignSystem", "description": "Optional. The design system." }, "name": { "description": "Identifier. The resource name of the asset. Format: assets/{asset}", "type": "string", "x-google-identifier": true }, "version": { "description": "Output only. The version of this asset. 0 indicates unversioned (legacy data). Incremented when the asset content changes.", "format": "int64", "readOnly": true, "type": "string" } }, "type": "object" } }, { "description": "Uploads DESIGN.md to a Stitch project. Use this tool when the user wants to create a design system from a DESIGN.md file.\n\n**Instructions for Tool Call:**\n* Call `create_design_system_from_design_md` tool immediately after this tool to create the design system from the uploaded DESIGN.md, and display the design system in the UI.\n", "inputSchema": { "description": "Request message for UploadDesignMd.", "properties": { "designMdBase64": { "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.", "type": "string" }, "projectId": { "description": "Required. The project ID to upload the DESIGN.md to, example: '4044680601076201931', without the `projects/` prefix.", "type": "string" } }, "required": [ "projectId", "designMdBase64" ], "type": "object" }, "name": "upload_design_md", "outputSchema": { "$defs": { "ScreenInstance": { "description": "An instance of a screen on the project. Next ID: 18", "properties": { "groupId": { "description": "Optional. Group identifier for Genie Agent output grouping. Screens with the same groupId are rendered and interact as a group.", "type": "string" }, "groupName": { "description": "Optional. Human-readable name for the group (e.g., \"Warm Minimalism\", \"Ethereal Glow\").", "type": "string" }, "height": { "description": "Optional. The screen height.", "format": "int32", "type": "integer" }, "hidden": { "description": "Optional. User driven action hiding screen from the canvas.", "type": "boolean" }, "id": { "description": "Optional. The screen instance id.", "type": "string" }, "isFavourite": { "description": "Optional. Whether this screen is marked as a favourite by the user.", "type": "boolean" }, "isResized": { "description": "Optional. Whether this screen has been resized by the user.", "type": "boolean" }, "label": { "description": "Optional. The screen label.", "type": "string" }, "needsLayout": { "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.", "type": "boolean" }, "sourceAsset": { "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.", "type": "string" }, "sourceScreen": { "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.", "type": "string" }, "textContent": { "description": "Optional. Text content for TEXT_INSTANCE nodes. Only one of the following fields should be set: this field, sourceScreen, sourceAsset.", "type": "string" }, "type": { "description": "Optional. The type of screen instance.", "enum": [ "SCREEN_INSTANCE_TYPE_UNSPECIFIED", "SCREEN_INSTANCE", "DESIGN_SYSTEM_INSTANCE", "GROUP_INSTANCE", "TEXT_INSTANCE" ], "type": "string", "x-google-enum-descriptions": [ "The unspecified value.", "A screen instance.", "A design system instance.", "A group instance.", "A text instance." ] }, "variantScreenInstance": { "$ref": "#/$defs/ScreenInstance", "description": "Optional. The variant Screen Instance." }, "width": { "description": "Optional. The screen width.", "format": "int32", "type": "integer" }, "x": { "description": "Optional. The x position of the screen.", "format": "int32", "type": "integer" }, "y": { "description": "Optional. The y position of the screen.", "format": "int32", "type": "integer" } }, "type": "object" } }, "description": "An instance of a screen on the project. Next ID: 18", "properties": { "groupId": { "description": "Optional. Group identifier for Genie Agent output grouping. Screens with the same groupId are rendered and interact as a group.", "type": "string" }, "groupName": { "description": "Optional. Human-readable name for the group (e.g., \"Warm Minimalism\", \"Ethereal Glow\").", "type": "string" }, "height": { "description": "Optional. The screen height.", "format": "int32", "type": "integer" }, "hidden": { "description": "Optional. User driven action hiding screen from the canvas.", "type": "boolean" }, "id": { "description": "Optional. The screen instance id.", "type": "string" }, "isFavourite": { "description": "Optional. Whether this screen is marked as a favourite by the user.", "type": "boolean" }, "isResized": { "description": "Optional. Whether this screen has been resized by the user.", "type": "boolean" }, "label": { "description": "Optional. The screen label.", "type": "string" }, "needsLayout": { "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.", "type": "boolean" }, "sourceAsset": { "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.", "type": "string" }, "sourceScreen": { "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.", "type": "string" }, "textContent": { "description": "Optional. Text content for TEXT_INSTANCE nodes. Only one of the following fields should be set: this field, sourceScreen, sourceAsset.", "type": "string" }, "type": { "description": "Optional. The type of screen instance.", "enum": [ "SCREEN_INSTANCE_TYPE_UNSPECIFIED", "SCREEN_INSTANCE", "DESIGN_SYSTEM_INSTANCE", "GROUP_INSTANCE", "TEXT_INSTANCE" ], "type": "string", "x-google-enum-descriptions": [ "The unspecified value.", "A screen instance.", "A design system instance.", "A group instance.", "A text instance." ] }, "variantScreenInstance": { "$ref": "#/$defs/ScreenInstance", "description": "Optional. The variant Screen Instance." }, "width": { "description": "Optional. The screen width.", "format": "int32", "type": "integer" }, "x": { "description": "Optional. The x position of the screen.", "format": "int32", "type": "integer" }, "y": { "description": "Optional. The y position of the screen.", "format": "int32", "type": "integer" } }, "type": "object" } } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:c3bc1546a12ec5259b52e50204c57689ca965213723b39ecc25158c37393c87e | sha256sum