{
  "$schema": "https://json-schema.org/draft-07/schema",
  "type": "object",
  "properties": {
    "$schema": {
      "type": "string",
      "description": "Optional reference to the JSON schema used to validate this manifest (for editor/agent tooling). Ignored by Uniform."
    },
    "type": {
      "type": "string",
      "minLength": 2,
      "pattern": "^[a-z0-9-_]+$",
      "description": "Integration public id. Do not change after registering. Must be unique and lowercase alphanumeric with hyphens/underscores."
    },
    "displayName": {
      "type": "string",
      "minLength": 1,
      "description": "Display name used in the UI for the integration."
    },
    "logoIconUrl": {
      "type": "string",
      "description": "URL to the integration's logo icon (larger, used on listing)."
    },
    "badgeIconUrl": {
      "type": "string",
      "description": "URL to the integration's badge icon (small, round, used as a badge in the UI)."
    },
    "category": {
      "type": "string",
      "enum": [
        "analytics",
        "cdn",
        "classic",
        "commerce",
        "content",
        "comingSoon",
        "data",
        "deprecated",
        "email",
        "framework",
        "search",
        "starters",
        "translation",
        "uniform",
        "ai",
        "unknown"
      ],
      "description": "Category of the integration."
    },
    "scopes": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "List of permissions to access sensitive data or perform certain actions."
    },
    "identityDelegation": {
      "type": "boolean",
      "description": "When true, this integration can request delegation tokens to call Uniform APIs on behalf of the current user."
    },
    "baseLocationUrl": {
      "type": "string",
      "description": "Prefix for location URL paths. When set, location URLs may be relative to it; otherwise full URLs are required."
    },
    "locations": {
      "type": "object",
      "properties": {
        "install": {
          "type": "object",
          "properties": {
            "description": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "informationUrl": {
              "type": "string"
            },
            "canvasPackageUrl": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "description": "Locations used during installation of the integration."
        },
        "settings": {
          "type": "object",
          "properties": {
            "url": {
              "type": "string"
            },
            "locations": {
              "type": "object",
              "propertyNames": {
                "type": "string"
              },
              "additionalProperties": {
                "type": "object",
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "layout": {
                    "type": "object",
                    "properties": {
                      "height": {
                        "type": "string",
                        "enum": [
                          "full-height"
                        ]
                      },
                      "width": {
                        "type": "string",
                        "enum": [
                          "wide"
                        ]
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "url"
                ],
                "additionalProperties": false
              }
            }
          },
          "required": [
            "url"
          ],
          "additionalProperties": false,
          "description": "Settings location for configuring the integration."
        },
        "canvas": {
          "type": "object",
          "properties": {
            "parameterTypes": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string"
                  },
                  "displayName": {
                    "type": "string"
                  },
                  "configureUrl": {
                    "type": "string"
                  },
                  "editorUrl": {
                    "type": "string"
                  },
                  "configurationLocations": {
                    "type": "object",
                    "propertyNames": {
                      "type": "string"
                    },
                    "additionalProperties": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string"
                        },
                        "layout": {
                          "type": "object",
                          "properties": {
                            "height": {
                              "type": "string",
                              "enum": [
                                "full-height"
                              ]
                            },
                            "width": {
                              "type": "string",
                              "enum": [
                                "wide"
                              ]
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "url"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "editorLocations": {
                    "type": "object",
                    "propertyNames": {
                      "type": "string"
                    },
                    "additionalProperties": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string"
                        },
                        "layout": {
                          "type": "object",
                          "properties": {
                            "height": {
                              "type": "string",
                              "enum": [
                                "full-height"
                              ]
                            },
                            "width": {
                              "type": "string",
                              "enum": [
                                "wide"
                              ]
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "url"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "renderableInPropertyPanel": {
                    "type": "boolean"
                  },
                  "localizable": {
                    "type": "string",
                    "enum": [
                      "default-yes",
                      "default-no",
                      "yes",
                      "no"
                    ]
                  },
                  "allowedPlacement": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "parameter",
                        "field"
                      ]
                    }
                  }
                },
                "required": [
                  "type",
                  "displayName",
                  "editorUrl"
                ],
                "additionalProperties": false
              }
            },
            "editorTools": {
              "anyOf": [
                {
                  "type": "object",
                  "properties": {
                    "composition": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "url"
                      ],
                      "additionalProperties": false
                    },
                    "componentPattern": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "url"
                      ],
                      "additionalProperties": false
                    },
                    "compositionDefaults": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "url"
                      ],
                      "additionalProperties": false
                    },
                    "entry": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "url"
                      ],
                      "additionalProperties": false
                    },
                    "entryPattern": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "url"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "additionalProperties": false
                },
                {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1
                      },
                      "name": {
                        "type": "string",
                        "minLength": 1
                      },
                      "url": {
                        "type": "string",
                        "minLength": 1
                      },
                      "iconUrl": {
                        "type": "string"
                      },
                      "access": {
                        "type": "object",
                        "properties": {
                          "teamAdminRequired": {
                            "type": "boolean",
                            "const": true
                          }
                        },
                        "additionalProperties": false
                      },
                      "editorTypes": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "enum": [
                            "composition",
                            "componentPattern",
                            "compositionDefaults",
                            "entry",
                            "entryPattern"
                          ]
                        }
                      }
                    },
                    "required": [
                      "id",
                      "name",
                      "url"
                    ],
                    "additionalProperties": false
                  }
                }
              ]
            },
            "personalization": {
              "type": "object",
              "properties": {
                "selectionAlgorithms": {
                  "type": "object",
                  "propertyNames": {
                    "type": "string"
                  },
                  "additionalProperties": {
                    "type": "object",
                    "properties": {
                      "displayName": {
                        "type": "string"
                      },
                      "description": {
                        "type": "string"
                      },
                      "criteriaEditorUrl": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "displayName"
                    ],
                    "additionalProperties": false
                  }
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false,
          "description": "Locations within Uniform Canvas for the integration to extend."
        },
        "dataConnectors": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "type": {
                "type": "string"
              },
              "displayName": {
                "type": "string"
              },
              "dataSourceEditorUrl": {
                "type": "string"
              },
              "supportsUnpublishedData": {
                "type": "boolean"
              },
              "dataSourceEditorLocations": {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {
                  "type": "object",
                  "properties": {
                    "url": {
                      "type": "string"
                    },
                    "layout": {
                      "type": "object",
                      "properties": {
                        "height": {
                          "type": "string",
                          "enum": [
                            "full-height"
                          ]
                        },
                        "width": {
                          "type": "string",
                          "enum": [
                            "wide"
                          ]
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "url"
                  ],
                  "additionalProperties": false
                }
              },
              "dataArchetypes": {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {
                  "type": "object",
                  "properties": {
                    "displayName": {
                      "type": "string"
                    },
                    "typeEditorUrl": {
                      "type": "string"
                    },
                    "typeEditorLocations": {
                      "type": "object",
                      "propertyNames": {
                        "type": "string"
                      },
                      "additionalProperties": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "type": "string"
                          },
                          "layout": {
                            "type": "object",
                            "properties": {
                              "height": {
                                "type": "string",
                                "enum": [
                                  "full-height"
                                ]
                              },
                              "width": {
                                "type": "string",
                                "enum": [
                                  "wide"
                                ]
                              }
                            },
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "dataEditorUrl": {
                      "type": "string"
                    },
                    "dataEditorUrlLocations": {
                      "type": "object",
                      "propertyNames": {
                        "type": "string"
                      },
                      "additionalProperties": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "type": "string"
                          },
                          "layout": {
                            "type": "object",
                            "properties": {
                              "height": {
                                "type": "string",
                                "enum": [
                                  "full-height"
                                ]
                              },
                              "width": {
                                "type": "string",
                                "enum": [
                                  "wide"
                                ]
                              }
                            },
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "embeddedEditor": {
                      "type": "string"
                    },
                    "dataResourceSelectorUrl": {
                      "type": "string"
                    },
                    "dataResourceSelectorLocations": {
                      "type": "object",
                      "propertyNames": {
                        "type": "string"
                      },
                      "additionalProperties": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "type": "string"
                          },
                          "layout": {
                            "type": "object",
                            "properties": {
                              "height": {
                                "type": "string",
                                "enum": [
                                  "full-height"
                                ]
                              },
                              "width": {
                                "type": "string",
                                "enum": [
                                  "wide"
                                ]
                              }
                            },
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "displayName"
                  ],
                  "additionalProperties": false
                }
              },
              "badgeIconUrl": {
                "type": "string"
              }
            },
            "required": [
              "type",
              "displayName"
            ],
            "additionalProperties": false
          },
          "description": "Data Connector(s) provided by the integration."
        },
        "assetLibrary": {
          "type": "object",
          "properties": {
            "assetLibraryUrl": {
              "type": "string"
            },
            "assetParameterUrl": {
              "type": "string"
            },
            "assetLibraryLocations": {
              "type": "object",
              "propertyNames": {
                "type": "string"
              },
              "additionalProperties": {
                "type": "object",
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "layout": {
                    "type": "object",
                    "properties": {
                      "height": {
                        "type": "string",
                        "enum": [
                          "full-height"
                        ]
                      },
                      "width": {
                        "type": "string",
                        "enum": [
                          "wide"
                        ]
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "url"
                ],
                "additionalProperties": false
              }
            },
            "unstable_dynamicAssets": {
              "type": "object",
              "properties": {
                "dataConnectorId": {
                  "type": "string"
                },
                "assetsListArchetypeId": {
                  "type": "string"
                },
                "singleAssetArchetypeId": {
                  "type": "string"
                }
              },
              "required": [
                "dataConnectorId",
                "assetsListArchetypeId",
                "singleAssetArchetypeId"
              ],
              "additionalProperties": false
            }
          },
          "required": [
            "assetLibraryUrl",
            "assetParameterUrl"
          ],
          "additionalProperties": false,
          "description": "Asset Library provided by the integration."
        },
        "unstable_assetLibrary": {
          "type": "object",
          "properties": {
            "url": {
              "type": "string"
            },
            "dynamicAssets": {
              "type": "object",
              "properties": {
                "dataConnectorId": {
                  "type": "string"
                },
                "assetsListArchetypeId": {
                  "type": "string"
                },
                "singleAssetArchetypeId": {
                  "type": "string"
                }
              },
              "required": [
                "dataConnectorId",
                "assetsListArchetypeId",
                "singleAssetArchetypeId"
              ],
              "additionalProperties": false
            }
          },
          "required": [
            "url"
          ],
          "additionalProperties": false,
          "description": "Deprecated. Use `assetLibrary` instead."
        },
        "ai": {
          "type": "object",
          "properties": {
            "generateUrl": {
              "type": "string"
            },
            "metadataUrl": {
              "type": "string"
            },
            "prompts": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "format": "uuid",
                    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"
                  },
                  "name": {
                    "type": "string"
                  },
                  "text": {
                    "type": "string"
                  },
                  "data": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "arguments": {
                            "anyOf": [
                              {
                                "type": "object",
                                "propertyNames": {
                                  "type": "string"
                                },
                                "additionalProperties": {
                                  "type": "object",
                                  "properties": {
                                    "type": {
                                      "type": "string"
                                    },
                                    "displayName": {
                                      "anyOf": [
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "helpText": {
                                      "anyOf": [
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "default": {
                                      "anyOf": [
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    }
                                  },
                                  "required": [
                                    "type"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "metadata": {
                            "anyOf": [
                              {},
                              {
                                "type": "null"
                              }
                            ]
                          }
                        },
                        "additionalProperties": false
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "parameterTypes": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                },
                "required": [
                  "id",
                  "name",
                  "text",
                  "parameterTypes"
                ],
                "additionalProperties": false
              }
            }
          },
          "required": [
            "generateUrl"
          ],
          "additionalProperties": false,
          "description": "AI configuration for the integration."
        },
        "unstable_ai": {
          "type": "object",
          "properties": {
            "generateUrl": {
              "type": "string"
            },
            "metadataUrl": {
              "type": "string"
            }
          },
          "required": [
            "generateUrl"
          ],
          "additionalProperties": false,
          "description": "Deprecated. Use `ai` instead."
        },
        "aiAgents": {
          "type": "object",
          "properties": {
            "functionCalling": {
              "type": "object",
              "properties": {
                "handlerUrl": {
                  "type": "string"
                },
                "functions": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "definition": {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string"
                          },
                          "description": {
                            "type": "string"
                          },
                          "parameters": {
                            "type": "object",
                            "propertyNames": {
                              "type": "string"
                            },
                            "additionalProperties": {}
                          },
                          "strict": {
                            "type": "boolean"
                          }
                        },
                        "required": [
                          "name",
                          "description",
                          "parameters",
                          "strict"
                        ],
                        "additionalProperties": false
                      },
                      "systemParameters": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "enum": [
                            "pageHtml"
                          ]
                        }
                      },
                      "includedAgents": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "enum": [
                            "scout",
                            "sage"
                          ]
                        }
                      }
                    },
                    "required": [
                      "definition"
                    ],
                    "additionalProperties": false
                  }
                }
              },
              "required": [
                "handlerUrl",
                "functions"
              ],
              "additionalProperties": false
            }
          },
          "additionalProperties": false,
          "description": "Deprecated/experimental. AI agents function-calling configuration."
        },
        "tools": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              },
              "name": {
                "type": "string",
                "minLength": 1
              },
              "url": {
                "type": "string",
                "minLength": 1
              },
              "iconUrl": {
                "type": "string"
              },
              "access": {
                "type": "object",
                "properties": {
                  "teamAdminRequired": {
                    "type": "boolean",
                    "const": true
                  }
                },
                "additionalProperties": false
              }
            },
            "required": [
              "id",
              "name",
              "url"
            ],
            "additionalProperties": false
          },
          "description": "Deprecated. Will be removed shortly."
        },
        "projectTools": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              },
              "name": {
                "type": "string",
                "minLength": 1
              },
              "url": {
                "type": "string",
                "minLength": 1
              },
              "iconUrl": {
                "type": "string"
              },
              "access": {
                "type": "object",
                "properties": {
                  "teamAdminRequired": {
                    "type": "boolean",
                    "const": true
                  }
                },
                "additionalProperties": false
              }
            },
            "required": [
              "id",
              "name",
              "url"
            ],
            "additionalProperties": false
          },
          "description": "Project-level tools provided by the integration."
        },
        "dashboardTools": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              },
              "name": {
                "type": "string",
                "minLength": 1
              },
              "url": {
                "type": "string",
                "minLength": 1
              },
              "iconUrl": {
                "type": "string"
              },
              "access": {
                "type": "object",
                "properties": {
                  "teamAdminRequired": {
                    "type": "boolean",
                    "const": true
                  }
                },
                "additionalProperties": false
              }
            },
            "required": [
              "id",
              "name",
              "url"
            ],
            "additionalProperties": false
          },
          "description": "Dashboard-level tools provided by the integration."
        }
      },
      "additionalProperties": false,
      "description": "Locations where the integration is exposed within the Uniform application."
    },
    "unstable_prompts": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"
          },
          "name": {
            "type": "string"
          },
          "text": {
            "type": "string"
          },
          "data": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "arguments": {
                    "anyOf": [
                      {
                        "type": "object",
                        "propertyNames": {
                          "type": "string"
                        },
                        "additionalProperties": {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string"
                            },
                            "displayName": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "helpText": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "default": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            }
                          },
                          "required": [
                            "type"
                          ],
                          "additionalProperties": false
                        }
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "metadata": {
                    "anyOf": [
                      {},
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ]
          },
          "parameterTypes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "id",
          "name",
          "text",
          "parameterTypes"
        ],
        "additionalProperties": false
      },
      "description": "Deprecated. Use `locations.ai.prompts` instead."
    }
  },
  "required": [
    "type",
    "displayName",
    "locations"
  ],
  "additionalProperties": false,
  "$id": "http://localhost:8889/schemas/json-schema/mesh-manifest/v1.json",
  "title": "Uniform Mesh Integration Manifest",
  "description": "Schema for a Uniform Mesh integration manifest (mesh-manifest.json), registered via `uniform integration definition register`."
}