{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://contio.ai/schemas/toolkit-manifest.schema.json",
  "$ref": "#/$defs/ToolkitManifest",
  "$defs": {
    "IconVocabulary": {
      "type": "string",
      "enum": [
        "briefcase",
        "bullhorn",
        "bullseye",
        "chart-bar",
        "chart-line",
        "clipboard",
        "clipboard-check",
        "gavel",
        "handshake",
        "list-check",
        "trophy",
        "medal",
        "lightbulb",
        "bolt",
        "star",
        "thumbs-up",
        "circle-check",
        "wand-magic-sparkles",
        "comment",
        "comments",
        "message",
        "envelope",
        "paper-plane",
        "bell",
        "phone",
        "inbox",
        "user",
        "user-group",
        "user-secret",
        "users",
        "heart",
        "heart-pulse",
        "stethoscope",
        "first-aid",
        "bandage",
        "pills",
        "syringe",
        "wrench",
        "hammer",
        "screwdriver",
        "gear",
        "flask",
        "microscope",
        "atom",
        "dna",
        "bug",
        "arrow-right",
        "arrow-left",
        "arrow-up",
        "arrow-down",
        "flag",
        "location-dot",
        "map-pin",
        "map",
        "compass",
        "globe",
        "magnifying-glass",
        "rocket",
        "calendar",
        "clock",
        "stopwatch",
        "hourglass",
        "file-lines",
        "file-pdf",
        "file-signature",
        "file-text",
        "file-excel",
        "file-powerpoint",
        "file-word",
        "scroll",
        "book",
        "book-open",
        "graduation-cap",
        "pen",
        "pencil",
        "key",
        "lock",
        "unlock",
        "shield",
        "link",
        "bookmark",
        "gift",
        "fire",
        "camera",
        "image",
        "video",
        "music",
        "microphone",
        "headphones",
        "waveform-lines",
        "briefcase-arrow-right",
        "folder-arrow-down",
        "user-question",
        "folder-arrow-left",
        "square-list",
        "message-question",
        "paperclip",
        "chart-line-up",
        "money-bill-1-wave",
        "clock-rotate-left"
      ],
      "title": "IconVocabulary",
      "description": "Icon name from the Contio icon library. See the Icon Reference documentation for a visual gallery."
    },
    "ManifestRef": {
      "properties": {
        "$ref": {
          "type": "string",
          "description": "Reference to an entity defined in the same manifest via its $id value. Use this to link to templates and next steps and action buttons defined elsewhere in this manifest."
        },
        "$id": {
          "type": "string",
          "description": "Reference to an existing entity by its database ID. Use this to link to pre-existing templates and next steps and action buttons that are not defined in this manifest."
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "NextStepActionButtonRelation": {
      "properties": {
        "action_button": {
          "$ref": "#/$defs/ManifestRef",
          "description": "Reference to the action button entity. Use $ref for manifest-defined action buttons or $id for existing database entities."
        },
        "sort_order": {
          "type": "integer",
          "description": "Display order of this action button within the next step. Lower values appear first."
        }
      },
      "additionalProperties": false,
      "type": "object",
      "required": [
        "action_button"
      ]
    },
    "ShortcutSurfaceInput": {
      "properties": {
        "surface": {
          "type": "string"
        },
        "position": {
          "type": "integer"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "TemplateNextStepRelation": {
      "properties": {
        "next_step": {
          "$ref": "#/$defs/ManifestRef",
          "description": "Reference to the next step entity. Use $ref for manifest-defined next steps or $id for existing database entities."
        },
        "sort_order": {
          "type": "integer",
          "description": "Display order of this next step within the template. Lower values appear first."
        },
        "autopilot": {
          "type": "boolean",
          "description": "When enabled the next step will automatically execute when the meeting is finalized."
        }
      },
      "additionalProperties": false,
      "type": "object",
      "required": [
        "next_step"
      ]
    },
    "ToolkitActionButtonSpec": {
      "properties": {
        "$id": {
          "type": "string",
          "description": "Manifest-internal identifier for this action button. Other entries in the manifest can reference this action button using $ref with this value."
        },
        "name": {
          "type": "string",
          "description": "The display name of the action button."
        },
        "slug": {
          "type": "string",
          "description": "Human-readable URL-safe identifier for this action button. Used for deduplication during import/export."
        },
        "icon_name": {
          "$ref": "#/$defs/IconVocabulary",
          "description": "Icon name from the icon library to display for this action button. See Icon Reference documentation for the full list."
        },
        "delivery_mechanism": {
          "type": "string",
          "enum": [
            "clipboard",
            "email",
            "os_email_client",
            "file_download",
            "integration",
            "webhook",
            "redirect",
            "canvas"
          ],
          "title": "DeliveryType",
          "description": "How the action button delivers its output. Values: clipboard | email | os_email_client | file_download | integration | webhook | redirect."
        },
        "integration_type": {
          "type": "string",
          "description": "The type of integration such as 'slack' or 'salesforce'. Required when delivery_mechanism is 'integration'."
        },
        "webhook_url": {
          "type": "string",
          "description": "URL to send webhook payload. Required when delivery_mechanism is 'webhook'."
        },
        "redirect_url": {
          "type": "string",
          "description": "URL to redirect to. Required when delivery_mechanism is 'redirect'."
        },
        "file_format": {
          "type": "string",
          "description": "File format for downloads such as 'pdf' or 'docx'. Required when delivery_mechanism is 'file_download'."
        },
        "content_format": {
          "type": "string",
          "enum": [
            "rich_text",
            "markdown",
            "plain_text",
            "html"
          ],
          "title": "ContentFormat",
          "description": "The format of the action button output. Values: rich_text | markdown | plain_text | html."
        },
        "requires_connected_integration": {
          "type": "boolean",
          "description": "When enabled the user must have the integration connected before using this action button."
        },
        "is_default_for_next_step": {
          "type": "boolean",
          "description": "When enabled this action button is the default for its parent next step."
        },
        "sort_order": {
          "type": "integer",
          "description": "Display order of this action button. Lower values appear first."
        }
      },
      "additionalProperties": false,
      "type": "object",
      "required": [
        "name",
        "delivery_mechanism",
        "content_format"
      ]
    },
    "ToolkitAgendaItemSpec": {
      "properties": {
        "item_type": {
          "type": "string",
          "description": "The type of agenda item (DISCUSSION or ACTION_ITEM_RECAP or BREAK or ADJOURN etc.)."
        },
        "title": {
          "type": "string",
          "description": "The agenda item title."
        },
        "description": {
          "type": "string",
          "description": "Optional short description or subtitle for the agenda item."
        },
        "content": {
          "type": "string",
          "description": "Rich text in markdown format. On toolkit install this becomes the agenda item's shared template talking points (a template private note inherited by everyone who applies the template); it does not populate the visible discussion body. Toolkit export writes the backing meeting's discussion content into this field."
        },
        "time_allocation_minutes": {
          "type": "number",
          "description": "Suggested time allocation in minutes for this agenda item."
        },
        "sequence": {
          "type": "string",
          "description": "Display order sequence value for the agenda item."
        },
        "restricted_to_leads": {
          "type": "boolean",
          "description": "DEPRECATED and ignored. The lead-restriction feature has been withdrawn; this property is retained only for backward compatibility with existing manifests and has no effect.",
          "deprecated": true
        },
        "questions": {
          "items": {
            "$ref": "#/$defs/ToolkitQuestionSpec"
          },
          "type": "array",
          "description": "Question list for QUESTIONS_TO_ANSWER items. Ignored for other item types."
        }
      },
      "additionalProperties": false,
      "type": "object",
      "required": [
        "item_type",
        "title"
      ]
    },
    "ToolkitAgenticWorkflowSpec": {
      "properties": {
        "$id": {
          "type": "string",
          "description": "Manifest-internal identifier for this agentic workflow spec. Other entries in the manifest can reference this spec using $ref with this value."
        },
        "name": {
          "type": "string",
          "description": "The mutable display name of the agentic workflow spec."
        },
        "slug": {
          "type": "string",
          "description": "Stable URL-safe workflow-family identifier used by AWE workflow chaining and import/export."
        },
        "description": {
          "type": "string",
          "description": "Optional description of the agentic workflow spec."
        },
        "usage_guidance": {
          "type": "string",
          "description": "Optional guidance on when and how to use this agentic workflow spec."
        },
        "source_document": {
          "description": "Raw JSON awe/v2 source document. Must conform to the awe/v2 spec schema; it is compiled during toolkit installation and the compiled artifact and hashes are derived from it."
        },
        "version": {
          "type": "integer",
          "description": "Authored version of this spec. Defaults to 1. Toolkit installation stamps the installing toolkit version number."
        },
        "status": {
          "type": "string",
          "enum": [
            "draft",
            "active",
            "archived"
          ],
          "title": "AgenticWorkflowSpecStatus",
          "description": "Spec library lifecycle state (draft active or archived). Defaults to active."
        }
      },
      "additionalProperties": false,
      "type": "object",
      "required": [
        "name",
        "slug",
        "source_document"
      ]
    },
    "ToolkitCanvasTemplateSpec": {
      "properties": {
        "$id": {
          "type": "string",
          "description": "Manifest-internal identifier for this canvas template."
        },
        "name": {
          "type": "string",
          "description": "The display name of the canvas template."
        },
        "slug": {
          "type": "string",
          "description": "Human-readable URL-safe identifier for this canvas template. Used for deduplication during import/export."
        },
        "description": {
          "type": "string",
          "description": "Optional description of the canvas template."
        },
        "usage_guidance": {
          "type": "string",
          "description": "Optional guidance on when and how to use this canvas template."
        },
        "content": {
          "description": "Serialized Tiptap ProseMirror document content (JSON). Populated on export; consumed on import."
        },
        "content_schema_version": {
          "type": "string",
          "description": "ProseMirror schema version that produced the content. Import rejects unsupported versions."
        }
      },
      "additionalProperties": false,
      "type": "object",
      "required": [
        "name",
        "content_schema_version"
      ]
    },
    "ToolkitManifest": {
      "properties": {
        "name": {
          "type": "string",
          "description": "Human-readable toolkit name. Required in standalone manifest files."
        },
        "slug": {
          "type": "string",
          "description": "Human-readable URL-safe identifier for this toolkit. Used for deduplication and upgrades."
        },
        "version": {
          "type": "string",
          "description": "Semantic version of the toolkit content (e.g. 1.0.0)."
        },
        "license": {
          "type": "string",
          "description": "SPDX license identifier or expression declaring usage terms for this toolkit. Use standard identifiers (e.g. MIT or Apache-2.0 or CC-BY-4.0) or expressions for dual licensing (e.g. (MIT OR Apache-2.0)) or LicenseRef-{Name} for proprietary licenses whose terms are published at license_url. Contio-authored SYSTEM and VERTICAL toolkits use LicenseRef-Contio-Proprietary. Prefer a LicenseRef over UNLICENSED so recipients have terms to read. See https://spdx.org/licenses/ for the full list."
        },
        "license_url": {
          "type": "string",
          "description": "Optional URL to the full license text. Recommended when using custom license identifiers (LicenseRef-*)."
        },
        "ownership_type": {
          "type": "string",
          "enum": [
            "PARTNER",
            "SYSTEM",
            "VERTICAL",
            "ENTITLEMENT",
            "PUBLIC"
          ],
          "title": "ManifestOwnershipType",
          "description": "Ownership type that determines import behaviour."
        },
        "vertical_abbrev": {
          "type": "string",
          "description": "Owning vertical for ownership_type VERTICAL toolkits. Must be omitted for every other ownership type."
        },
        "auto_install_on_new_workspaces": {
          "type": "boolean",
          "description": "Install this toolkit into new workspaces matching the owning vertical. Defaults to false."
        },
        "auto_propagate": {
          "type": "boolean",
          "description": "Propagate new versions of this toolkit to workspaces that already have it installed. Defaults to false."
        },
        "manifest": {
          "$ref": "#/$defs/ToolkitManifestContent",
          "description": "The entity definitions for this toolkit (templates"
        },
        "schema_version": {
          "type": "string",
          "description": "DEPRECATED: Use manifest.schema_version instead."
        },
        "toolkit_logo_url": {
          "type": "string",
          "description": "DEPRECATED: Use manifest.toolkit_logo_url instead."
        },
        "toolkit_prompt": {
          "type": "string",
          "description": "DEPRECATED: Use manifest.toolkit_prompt instead."
        },
        "templates": {
          "items": {
            "$ref": "#/$defs/ToolkitManifestTemplate"
          },
          "type": "array",
          "description": "DEPRECATED: Use manifest.templates instead."
        },
        "next_steps": {
          "items": {
            "$ref": "#/$defs/ToolkitManifestNextStep"
          },
          "type": "array",
          "description": "DEPRECATED: Use manifest.next_steps instead."
        },
        "action_buttons": {
          "items": {
            "$ref": "#/$defs/ToolkitManifestActionButton"
          },
          "type": "array",
          "description": "DEPRECATED: Use manifest.action_buttons instead."
        },
        "shortcuts": {
          "items": {
            "$ref": "#/$defs/ToolkitManifestShortcut"
          },
          "type": "array",
          "description": "DEPRECATED: Use manifest.shortcuts instead."
        },
        "canvas_templates": {
          "items": {
            "$ref": "#/$defs/ToolkitManifestCanvasTemplate"
          },
          "type": "array",
          "description": "DEPRECATED: Use manifest.canvas_templates instead."
        },
        "agentic_workflows": {
          "items": {
            "$ref": "#/$defs/ToolkitManifestAgenticWorkflow"
          },
          "type": "array",
          "description": "DEPRECATED: Use manifest.agentic_workflows instead."
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "ToolkitManifestActionButton": {
      "properties": {
        "id": {
          "type": "string",
          "description": "Reference an existing action button by its database ID. Mutually exclusive with spec."
        },
        "spec": {
          "$ref": "#/$defs/ToolkitActionButtonSpec",
          "description": "Define a new action button to create during toolkit installation. Mutually exclusive with id."
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "ToolkitManifestAgenticWorkflow": {
      "properties": {
        "id": {
          "type": "string",
          "description": "Reference an existing agentic workflow spec by its database ID. Mutually exclusive with spec."
        },
        "spec": {
          "$ref": "#/$defs/ToolkitAgenticWorkflowSpec",
          "description": "Define a new agentic workflow spec to compile and create during toolkit installation. Mutually exclusive with id."
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "ToolkitManifestCanvasTemplate": {
      "properties": {
        "id": {
          "type": "string",
          "description": "Reference an existing canvas template by its database ID. Mutually exclusive with spec."
        },
        "spec": {
          "$ref": "#/$defs/ToolkitCanvasTemplateSpec",
          "description": "Define a new canvas template to create during toolkit installation. Mutually exclusive with id."
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "ToolkitManifestContent": {
      "properties": {
        "schema_version": {
          "type": "string",
          "description": "Manifest schema version this file conforms to (e.g. 1)."
        },
        "toolkit_logo_url": {
          "type": "string",
          "description": "Optional HTTPS URL to a square logo image (recommended 256x256 PNG or SVG) used to represent the toolkit in UI listings. If omitted a generic icon is shown."
        },
        "toolkit_prompt": {
          "type": "string",
          "description": "Optional AI persona/behavioral instructions that apply to all entities in this toolkit."
        },
        "templates": {
          "items": {
            "$ref": "#/$defs/ToolkitManifestTemplate"
          },
          "type": "array",
          "description": "Meeting templates to include in the toolkit. Each entry can reference an existing template (by id) or define a new template to create (via spec)."
        },
        "next_steps": {
          "items": {
            "$ref": "#/$defs/ToolkitManifestNextStep"
          },
          "type": "array",
          "description": "Next steps to include in the toolkit. Each entry can reference an existing next step (by id) or define a new next step to create (via spec)."
        },
        "action_buttons": {
          "items": {
            "$ref": "#/$defs/ToolkitManifestActionButton"
          },
          "type": "array",
          "description": "Action buttons to include in the toolkit. Each entry can reference an existing action button (by id) or define a new action button to create (via spec)."
        },
        "shortcuts": {
          "items": {
            "$ref": "#/$defs/ToolkitManifestShortcut"
          },
          "type": "array",
          "description": "AI prompt shortcuts to include in the toolkit. Each entry can reference an existing shortcut (by id) or define a new shortcut to create (via spec)."
        },
        "canvas_templates": {
          "items": {
            "$ref": "#/$defs/ToolkitManifestCanvasTemplate"
          },
          "type": "array",
          "description": "Canvas templates to include in the toolkit. Each entry can reference an existing canvas template (by id) or define a new canvas template to create (via spec)."
        },
        "agentic_workflows": {
          "items": {
            "$ref": "#/$defs/ToolkitManifestAgenticWorkflow"
          },
          "type": "array",
          "description": "Agentic workflow (AWE) specs to include in the toolkit. Each entry can reference an existing AWE spec (by id) or define a new spec to compile and create (via spec). Authored by Contio only."
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "ToolkitManifestNextStep": {
      "properties": {
        "id": {
          "type": "string",
          "description": "Reference an existing next step by its database ID. Mutually exclusive with spec."
        },
        "spec": {
          "$ref": "#/$defs/ToolkitNextStepSpec",
          "description": "Define a new next step to create during toolkit installation. Mutually exclusive with id."
        },
        "action_buttons": {
          "items": {
            "$ref": "#/$defs/NextStepActionButtonRelation"
          },
          "type": "array",
          "description": "Action buttons to attach to this next step. Each entry includes the action button reference and junction table fields (sort_order)."
        },
        "default_action_button": {
          "$ref": "#/$defs/ManifestRef",
          "description": "The default action button for this next step. This button will be highlighted or pre-selected in the UI."
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "ToolkitManifestShortcut": {
      "properties": {
        "id": {
          "type": "string",
          "description": "Reference an existing shortcut by its database ID. Mutually exclusive with spec."
        },
        "spec": {
          "$ref": "#/$defs/ToolkitShortcutSpec",
          "description": "Define a new AI prompt shortcut to create during toolkit installation. Mutually exclusive with id."
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "ToolkitManifestTemplate": {
      "properties": {
        "id": {
          "type": "string",
          "description": "Reference an existing meeting template by its database ID. Mutually exclusive with spec."
        },
        "spec": {
          "$ref": "#/$defs/ToolkitTemplateSpec",
          "description": "Define a new meeting template to create during toolkit installation. Mutually exclusive with id."
        },
        "next_steps": {
          "items": {
            "$ref": "#/$defs/TemplateNextStepRelation"
          },
          "type": "array",
          "description": "Next steps to attach to this template. Each entry includes the next step reference and junction table fields such as sort_order and autopilot."
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "ToolkitNextStepSpec": {
      "properties": {
        "$id": {
          "type": "string",
          "description": "Manifest-internal identifier for this next step. Other entries in the manifest can reference this next step using $ref with this value."
        },
        "name": {
          "type": "string",
          "description": "The display name of the next step."
        },
        "slug": {
          "type": "string",
          "description": "Human-readable URL-safe identifier for this next step. Used for deduplication during import/export."
        },
        "description": {
          "type": "string",
          "description": "Optional description of the next step."
        },
        "icon_name": {
          "$ref": "#/$defs/IconVocabulary",
          "description": "Icon name from the icon library to display for this next step. See Icon Reference documentation for the full list."
        },
        "color": {
          "type": "string",
          "description": "Color code (hex or named) for the next step display."
        },
        "ai_prompt": {
          "type": "string",
          "description": "AI prompt template used when type is 'ai'. This prompt is sent to the AI model to generate the next step content."
        },
        "type": {
          "type": "string",
          "enum": [
            "ai",
            "redirect"
          ],
          "title": "NextStepType",
          "description": "The type of next step: 'ai' for AI-powered prompts or 'redirect' for URL navigation."
        },
        "redirect_url": {
          "type": "string",
          "description": "URL to redirect to when type is 'redirect'. Required when type is 'redirect'."
        },
        "sort_order": {
          "type": "integer",
          "description": "Display order of this next step. Lower values appear first."
        }
      },
      "additionalProperties": false,
      "type": "object",
      "required": [
        "name",
        "type"
      ]
    },
    "ToolkitParticipantSpec": {
      "properties": {
        "email": {
          "type": "string",
          "description": "The participant email address. Used to resolve the user during installation."
        },
        "name": {
          "type": "string",
          "description": "The participant display name."
        },
        "role": {
          "type": "string",
          "description": "The participant role in the meeting. Values: EDITOR or VIEWER."
        }
      },
      "additionalProperties": false,
      "type": "object",
      "required": [
        "email",
        "name",
        "role"
      ]
    },
    "ToolkitQuestionSpec": {
      "properties": {
        "id": {
          "type": "string",
          "description": "Stable question identifier. Optional: a fresh UUID is generated on installation."
        },
        "text": {
          "type": "string",
          "description": "The question text."
        },
        "order": {
          "type": "string",
          "description": "Fractional index controlling display order within the agenda item. Must be a decimal string ordered numerically (e.g. 500); omit it to have installation assign the spacing."
        }
      },
      "additionalProperties": false,
      "type": "object",
      "required": [
        "text"
      ]
    },
    "ToolkitShortcutSpec": {
      "properties": {
        "$id": {
          "type": "string",
          "description": "Manifest-internal identifier for this shortcut. Other entries in the manifest can reference this shortcut using $ref with this value."
        },
        "name": {
          "type": "string",
          "description": "The display name of the shortcut."
        },
        "slug": {
          "type": "string",
          "description": "Human-readable URL-safe identifier for this shortcut. Used for deduplication during import/export."
        },
        "description": {
          "type": "string",
          "description": "Optional description of the shortcut."
        },
        "icon_name": {
          "$ref": "#/$defs/IconVocabulary",
          "description": "Icon name from the icon library to display for this shortcut. See Icon Reference documentation for the full list."
        },
        "color": {
          "type": "string",
          "description": "Color code (hex or named) for the shortcut display."
        },
        "prompt": {
          "type": "string",
          "description": "The AI prompt template for the shortcut."
        },
        "surfaces": {
          "items": {
            "$ref": "#/$defs/ShortcutSurfaceInput"
          },
          "type": "array",
          "description": "Optional list of UI surfaces where this shortcut should appear. Each entry specifies a surface name (HOME"
        }
      },
      "additionalProperties": false,
      "type": "object",
      "required": [
        "name",
        "prompt"
      ]
    },
    "ToolkitTemplateSpec": {
      "properties": {
        "$id": {
          "type": "string",
          "description": "Manifest-internal identifier for this template. Other entries in the manifest can reference this template using $ref with this value."
        },
        "name": {
          "type": "string",
          "description": "The display name of the meeting template."
        },
        "slug": {
          "type": "string",
          "description": "Human-readable URL-safe identifier for this template. Used for deduplication during import/export."
        },
        "description": {
          "type": "string",
          "description": "Optional description of the meeting template."
        },
        "usage_guidance": {
          "type": "string",
          "description": "Optional guidance on when and how to use this meeting template."
        },
        "backing_meeting_id": {
          "type": "string",
          "description": "Reference an existing meeting to use as the content source for this template. Mutually exclusive with inline content fields (detail_level and agenda_items and participants etc)."
        },
        "title": {
          "type": "string",
          "description": "The meeting title for the template."
        },
        "meeting_duration_seconds": {
          "type": "integer",
          "description": "Default meeting duration in seconds. -1 means open-ended."
        },
        "start_time_offset_seconds": {
          "type": "integer",
          "description": "Default start time as seconds from UTC midnight. -1 means untimed."
        },
        "detail_level": {
          "type": "string",
          "description": "Note detail level for the template meeting. Values: BULLET_POINTS or STANDARD or VERBATIM."
        },
        "notes_prompt": {
          "type": "string",
          "description": "Custom AI recap prompt used when generating notes for meetings created from this template."
        },
        "action_items_prompt": {
          "type": "string",
          "description": "Custom AI recap prompt used when generating action items for meetings created from this template."
        },
        "agenda_items": {
          "items": {
            "$ref": "#/$defs/ToolkitAgendaItemSpec"
          },
          "type": "array",
          "description": "Agenda items for the template meeting. Each defines a type and title and optional content."
        },
        "participants": {
          "items": {
            "$ref": "#/$defs/ToolkitParticipantSpec"
          },
          "type": "array",
          "description": "Default participants for the template meeting. Each defines an email and name and role."
        }
      },
      "additionalProperties": false,
      "type": "object",
      "required": [
        "name"
      ]
    }
  },
  "title": "Contio Toolkit Manifest",
  "description": "Schema for Contio Partner API toolkit manifests. A Toolkit defines a set of templates, next steps, and action buttons that are bundled together and can be installed on workspaces.",
  "x-api-version": "1.14"
}
