{ "$schema": "http://json-schema.org/draft-07/schema#", "title": "Tools Catalog", "description": "Schema for the awesome-copilot tools catalog (website/data/tools.yml)", "type": "object", "required": ["tools"], "additionalProperties": false, "properties": { "tools": { "type": "array", "description": "List of tools in the catalog", "minItems": 1, "items": { "type": "object", "required": ["id", "name", "description", "category"], "additionalProperties": false, "properties": { "id": { "type": "string", "description": "Unique identifier for the tool", "pattern": "^[a-z0-9-]+$", "minLength": 1, "maxLength": 50 }, "name": { "type": "string", "description": "Display name for the tool", "minLength": 1, "maxLength": 100 }, "description": { "type": "string", "description": "Description of what this tool does", "minLength": 1, "maxLength": 1000 }, "category": { "type": "string", "description": "Category for grouping tools", "minLength": 1, "maxLength": 50, "examples": ["MCP Servers", "VS Code Extensions", "CLI Tools", "Visual Studio Extensions"] }, "featured": { "type": "boolean", "description": "Whether this tool is featured (shown first)", "default": false }, "requirements": { "type": "array", "description": "List of requirements to use this tool", "items": { "type": "string", "minLength": 1, "maxLength": 200 }, "maxItems": 10 }, "features": { "type": "array", "description": "List of key features", "items": { "type": "string", "minLength": 1, "maxLength": 200 }, "maxItems": 20 }, "links": { "type": "object", "description": "Links related to this tool", "additionalProperties": false, "properties": { "blog": { "type": "string", "description": "Link to a blog post about the tool", "format": "uri" }, "documentation": { "type": "string", "description": "Link to documentation", "format": "uri" }, "github": { "type": "string", "description": "Link to GitHub repository", "format": "uri" }, "marketplace": { "type": "string", "description": "Link to VS Code or Visual Studio Marketplace", "format": "uri" }, "npm": { "type": "string", "description": "Link to npm package", "format": "uri" }, "pypi": { "type": "string", "description": "Link to PyPI package", "format": "uri" }, "vscode": { "type": "string", "description": "VS Code install link (vscode: URI or aka.ms link)" }, "vscode-insiders": { "type": "string", "description": "VS Code Insiders install link" }, "visual-studio": { "type": "string", "description": "Visual Studio install link" } } }, "configuration": { "type": "object", "description": "Configuration snippet for the tool", "required": ["type", "content"], "additionalProperties": false, "properties": { "type": { "type": "string", "description": "Type of configuration (for syntax highlighting)", "enum": ["json", "yaml", "bash", "toml", "ini"] }, "content": { "type": "string", "description": "The configuration content" } } }, "tags": { "type": "array", "description": "Tags for filtering and discovery", "items": { "type": "string", "pattern": "^[a-z0-9-]+$", "minLength": 1, "maxLength": 30 }, "uniqueItems": true, "maxItems": 15 } } } } } }