{"_id":"@abeedoo/radish-schemas","_rev":"6-85fdd77d78707741a740c7d8102f0903","name":"@abeedoo/radish-schemas","dist-tags":{"latest":"1.12.0"},"versions":{"1.7.7":{"name":"@abeedoo/radish-schemas","version":"1.7.7","keywords":["radish","schema","validation","blueprints"],"author":{"name":"Radish CLI"},"license":"MIT","_id":"@abeedoo/radish-schemas@1.7.7","maintainers":[{"name":"meecect","email":"clifford.meece@me.com"}],"dist":{"shasum":"f96f0c3fd73a5792b1a843e3c0ed159543ef3702","tarball":"https://registry.npmjs.org/@abeedoo/radish-schemas/-/radish-schemas-1.7.7.tgz","fileCount":19,"integrity":"sha512-Kwb66WPVM8VC2dLeCi5uv3A3fZe2d28mkIBST5xxQubXIbDvYmsr3swhT0n49sHgJt9bnQLTPMabc8VzNzyfXw==","signatures":[{"sig":"MEQCIHmxzyv+FI1oHL0O3HuP68THVuBNaz4ZMBfpa+YgBny+AiBSoDGjJUmwj8s3nQg1Vpc5m38Qv8hc07lwGMol5fC+Ig==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":123557},"main":"index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./index.js","./prompts":"./prompts/index.js","./schemas":"./schemas/index.js","./validators":"./validators/index.js","./schemas/ui.schema.json":"./schemas/ui.schema.json","./schemas/app.schema.json":"./schemas/app.schema.json","./schemas/roles.schema.json":"./schemas/roles.schema.json","./schemas/theme.schema.json":"./schemas/theme.schema.json","./schemas/types.schema.json":"./schemas/types.schema.json","./schemas/components.schema.json":"./schemas/components.schema.json"},"gitHead":"6003694cf155cad9d4105f176f81c192f44d7b1c","scripts":{"test":"node test.js","start":"node server/index.js","prepublishOnly":"echo 'Running pre-publish checks...'"},"_npmUser":{"name":"meecect","email":"clifford.meece@me.com"},"_npmVersion":"11.14.1","description":"Shared JSON schemas, validators, and prompts for Radish CLI ecosystem","directories":{},"sideEffects":false,"_nodeVersion":"22.18.0","dependencies":{"ajv":"^8.12.0","ajv-formats":"^2.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/radish-schemas_1.7.7_1779205101987_0.20863366300700914","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"@abeedoo/radish-schemas","version":"1.8.0","keywords":["radish","schema","validation","blueprints"],"author":{"name":"Radish CLI"},"license":"MIT","_id":"@abeedoo/radish-schemas@1.8.0","maintainers":[{"name":"meecect","email":"clifford.meece@me.com"}],"dist":{"shasum":"886f756e0fe192fbbeb301daa923b033fbdcd3ba","tarball":"https://registry.npmjs.org/@abeedoo/radish-schemas/-/radish-schemas-1.8.0.tgz","fileCount":19,"integrity":"sha512-NacpnIbrNzm2z8/aG6iKu402NL7TYkjde3zAyTV8bLKK27Y7UMJT41irl5jeh6soPz+Yv64/HY31tiCZQpQbBQ==","signatures":[{"sig":"MEYCIQDr4Djj0pIL33tkVlwc79Ic/fXV68wA7tcQAtUEH2NsiwIhAJKpSDprm8lmlw+O+yzW1jdeDPt5jX1qCeLcuR4XyMSW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":125300},"main":"index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./index.js","./prompts":"./prompts/index.js","./schemas":"./schemas/index.js","./validators":"./validators/index.js","./schemas/ui.schema.json":"./schemas/ui.schema.json","./schemas/app.schema.json":"./schemas/app.schema.json","./schemas/roles.schema.json":"./schemas/roles.schema.json","./schemas/theme.schema.json":"./schemas/theme.schema.json","./schemas/types.schema.json":"./schemas/types.schema.json","./schemas/components.schema.json":"./schemas/components.schema.json"},"gitHead":"bc89544e7f92ae10c6b534c8d89e71ef6c1c0245","scripts":{"test":"node test.js","start":"node server/index.js","prepublishOnly":"echo 'Running pre-publish checks...'"},"_npmUser":{"name":"meecect","email":"clifford.meece@me.com"},"_npmVersion":"11.14.1","description":"Shared JSON schemas, validators, and prompts for Radish CLI ecosystem","directories":{},"sideEffects":false,"_nodeVersion":"22.18.0","dependencies":{"ajv":"^8.12.0","ajv-formats":"^2.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/radish-schemas_1.8.0_1787286534296_0.14645451266333498","host":"s3://npm-registry-packages-npm-production"}},"1.9.0":{"name":"@abeedoo/radish-schemas","version":"1.9.0","keywords":["radish","schema","validation","blueprints"],"author":{"name":"Radish CLI"},"license":"MIT","_id":"@abeedoo/radish-schemas@1.9.0","maintainers":[{"name":"meecect","email":"clifford.meece@me.com"}],"dist":{"shasum":"11eadb74d60b325c87fbed5b0ae96ffe5b3ca9f0","tarball":"https://registry.npmjs.org/@abeedoo/radish-schemas/-/radish-schemas-1.9.0.tgz","fileCount":19,"integrity":"sha512-UYcisprpjm5dd3OKvgD6U5O+kDcyGmnBzk13gOqR1phd+X8t6LRZSehe+0t7aHqrJWle/5z5FXGPN0eF4jRI6g==","signatures":[{"sig":"MEQCIHg0uD2aex5AygE4h6VdwVEV08OEWQw+hAr2TzBM+PwAAiAjK3QScNQhRGseBlgWESgTCDXOTXQSy6XJGC85fUTTOw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":127046},"main":"index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./index.js","./prompts":"./prompts/index.js","./schemas":"./schemas/index.js","./validators":"./validators/index.js","./schemas/ui.schema.json":"./schemas/ui.schema.json","./schemas/app.schema.json":"./schemas/app.schema.json","./schemas/roles.schema.json":"./schemas/roles.schema.json","./schemas/theme.schema.json":"./schemas/theme.schema.json","./schemas/types.schema.json":"./schemas/types.schema.json","./schemas/components.schema.json":"./schemas/components.schema.json"},"gitHead":"21b1146a0e89327adf2998479f68ce4dc0d35876","scripts":{"test":"node test.js","start":"node server/index.js","prepublishOnly":"echo 'Running pre-publish checks...'"},"_npmUser":{"name":"meecect","email":"clifford.meece@me.com"},"_npmVersion":"11.14.1","description":"Shared JSON schemas, validators, and prompts for Radish CLI ecosystem","directories":{},"sideEffects":false,"_nodeVersion":"22.18.0","dependencies":{"ajv":"^8.12.0","ajv-formats":"^2.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/radish-schemas_1.9.0_1787352247449_0.17930265705835935","host":"s3://npm-registry-packages-npm-production"}},"1.10.0":{"name":"@abeedoo/radish-schemas","version":"1.10.0","keywords":["radish","schema","validation","blueprints"],"author":{"name":"Radish CLI"},"license":"MIT","_id":"@abeedoo/radish-schemas@1.10.0","maintainers":[{"name":"meecect","email":"clifford.meece@me.com"}],"dist":{"shasum":"00ea06675f2eaa6f8ac27f6a53f836175e656aa9","tarball":"https://registry.npmjs.org/@abeedoo/radish-schemas/-/radish-schemas-1.10.0.tgz","fileCount":19,"integrity":"sha512-VEBfO2dTU+W9ShLqA3OzjfjGva73LW0GIJPsHm5egXD8z9K0o4VBSKtW+KaQ/UPOHomZ6HtJCAI7zWKht4/CfQ==","signatures":[{"sig":"MEYCIQC1l6rbsEukZl63kVx/rI1N66Voh/wrxL99qeafoqZQ1QIhAIUofIxeYZ6pu4QGpla5ZKLL/TfeR/BmCsoVMVwcSRP4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":128672},"main":"index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./index.js","./prompts":"./prompts/index.js","./schemas":"./schemas/index.js","./validators":"./validators/index.js","./schemas/ui.schema.json":"./schemas/ui.schema.json","./schemas/app.schema.json":"./schemas/app.schema.json","./schemas/roles.schema.json":"./schemas/roles.schema.json","./schemas/theme.schema.json":"./schemas/theme.schema.json","./schemas/types.schema.json":"./schemas/types.schema.json","./schemas/components.schema.json":"./schemas/components.schema.json"},"gitHead":"561d5d87410d9da4e9f22c0ad2b1b50ba6db1939","scripts":{"test":"node test.js","start":"node server/index.js","prepublishOnly":"echo 'Running pre-publish checks...'"},"_npmUser":{"name":"meecect","email":"clifford.meece@me.com"},"_npmVersion":"11.14.1","description":"Shared JSON schemas, validators, and prompts for Radish CLI ecosystem","directories":{},"sideEffects":false,"_nodeVersion":"22.18.0","dependencies":{"ajv":"^8.12.0","ajv-formats":"^2.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/radish-schemas_1.10.0_1787783659547_0.6122741851399187","host":"s3://npm-registry-packages-npm-production"}},"1.11.0":{"name":"@abeedoo/radish-schemas","version":"1.11.0","keywords":["radish","schema","validation","blueprints"],"author":{"name":"Radish CLI"},"license":"MIT","_id":"@abeedoo/radish-schemas@1.11.0","maintainers":[{"name":"meecect","email":"clifford.meece@me.com"}],"dist":{"shasum":"53b92f9c581a9c9d48acb9dce73b4502adb373b3","tarball":"https://registry.npmjs.org/@abeedoo/radish-schemas/-/radish-schemas-1.11.0.tgz","fileCount":19,"integrity":"sha512-YmfhwZzPemhOA3Xry1kiegHhBSs9fZdNfAGP7Zi7HPY6sdyHJy/czi/8fm3o+Rl/KqEuO2dkd04iZ1wUqgeidg==","signatures":[{"sig":"MEQCID8ckvee8tq0AilVV+x1C1Ko1I0z86Rfi1jGWik2HM8bAiBa0+z2KaMjqKTiVjhdcHOITWQ+dfC65sJ1zqqRBfdMmw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCx3r43AWQsy+5AGicIOxeVEdsj4qN1E7t2JghhKDjG4QIhAMLjZ9IoyOf5elzcdpFqxK/aDSl+afVnfwpwjV2l1TJx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":131927},"main":"index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./index.js","./prompts":"./prompts/index.js","./schemas":"./schemas/index.js","./validators":"./validators/index.js","./schemas/ui.schema.json":"./schemas/ui.schema.json","./schemas/app.schema.json":"./schemas/app.schema.json","./schemas/roles.schema.json":"./schemas/roles.schema.json","./schemas/theme.schema.json":"./schemas/theme.schema.json","./schemas/types.schema.json":"./schemas/types.schema.json","./schemas/components.schema.json":"./schemas/components.schema.json"},"gitHead":"808efcd9082ae8baed2a14e805827087ec16066e","scripts":{"test":"node test.js","start":"node server/index.js","prepublishOnly":"echo 'Running pre-publish checks...'"},"_npmUser":{"name":"meecect","email":"clifford.meece@me.com"},"_npmVersion":"11.14.1","description":"Shared JSON schemas, validators, and prompts for Radish CLI ecosystem","directories":{},"sideEffects":false,"_nodeVersion":"22.18.0","dependencies":{"ajv":"^8.12.0","ajv-formats":"^2.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/radish-schemas_1.11.0_1790357030407_0.9148058448746879","host":"s3://npm-registry-packages-npm-production"}},"1.12.0":{"_id":"@abeedoo/radish-schemas@1.12.0","dist":{"shasum":"87d417ff44e6096627e11cdf894b11bb1b0df47f","tarball":"https://registry.npmjs.org/@abeedoo/radish-schemas/-/radish-schemas-1.12.0.tgz","fileCount":19,"integrity":"sha512-ua3QXpIm7hdw5zsfZBh3Oi2kIfMm+qpqYPRBeLuPhgO2ftQQvYzMmZLzcwMNdIINgkxy24m1oOkivUGmKKOTVQ==","signatures":[{"sig":"MEYCIQD0pdI8li+DZo2V6dUQZ5OJ0HC4+UciofGOkiSn+PjBQgIhAJIlzPXh4vq4jUrVBajTk7ekS7P6WudeQSDZAblNsmjl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIBbs59WTty/7rWx6XHAGU15g6Ymu9+sErbA8asUP6IiaAiBTWbMQUNiHNTYLF1OfvTLh5omhBE+4ELmI/UnSsZz4pg=="}],"unpackedSize":133550},"main":"index.js","name":"@abeedoo/radish-schemas","type":"module","author":{"name":"Radish CLI"},"engines":{"node":">=18"},"exports":{".":"./index.js","./prompts":"./prompts/index.js","./schemas":"./schemas/index.js","./validators":"./validators/index.js","./schemas/ui.schema.json":"./schemas/ui.schema.json","./schemas/app.schema.json":"./schemas/app.schema.json","./schemas/roles.schema.json":"./schemas/roles.schema.json","./schemas/theme.schema.json":"./schemas/theme.schema.json","./schemas/types.schema.json":"./schemas/types.schema.json","./schemas/components.schema.json":"./schemas/components.schema.json"},"gitHead":"b14c62b98381c1d607313d6cb6b7480b08f87255","license":"MIT","scripts":{"test":"node test.js","start":"node server/index.js","prepublishOnly":"echo 'Running pre-publish checks...'"},"version":"1.12.0","_npmUser":{"name":"meecect","email":"clifford.meece@me.com"},"keywords":["radish","schema","validation","blueprints"],"_npmVersion":"11.14.1","description":"Shared JSON schemas, validators, and prompts for Radish CLI ecosystem","directories":{},"maintainers":[{"name":"meecect","email":"clifford.meece@me.com"}],"sideEffects":false,"_nodeVersion":"22.18.0","dependencies":{"ajv":"^8.12.0","ajv-formats":"^2.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/radish-schemas_1.12.0_1790609879870_0.2525362621884857"}}},"time":{"created":"2026-05-19T15:38:21.897Z","modified":"2026-09-28T15:38:00.142Z","1.7.7":"2026-05-19T15:38:22.151Z","1.8.0":"2026-08-21T04:28:54.446Z","1.9.0":"2026-08-21T22:44:07.605Z","1.10.0":"2026-08-26T22:34:19.700Z","1.11.0":"2026-09-25T17:23:50.488Z","1.12.0":"2026-09-28T15:37:59.953Z"},"author":{"name":"Radish CLI"},"license":"MIT","keywords":["radish","schema","validation","blueprints"],"description":"Shared JSON schemas, validators, and prompts for Radish CLI ecosystem","maintainers":[{"name":"meecect","email":"clifford.meece@me.com"}],"readme":"# @radish/schemas\n\nShared JSON schemas, validators, and AI prompts for the Radish CLI ecosystem.\n\n**All blueprints use JSON as the source of truth.** YAML rendering is available as a display utility.\n\n## Installation\n\n```bash\nnpm install @radish/schemas\n```\n\nFor GitLab private registry:\n\n```bash\nnpm config set @radish:registry https://your-gitlab.com/api/v4/projects/PROJECT_ID/packages/npm/\nnpm install @radish/schemas\n```\n\n## Usage\n\n### Validating Blueprints\n\n```javascript\nimport { validateBlueprint, formatValidationErrors } from '@radish/schemas';\nimport { readFileSync } from 'fs';\n\nconst blueprint = JSON.parse(readFileSync('types.json', 'utf8'));\n\nconst result = validateBlueprint(blueprint, 'types');\n\nif (result.valid) {\n  console.log('Blueprint is valid');\n} else {\n  console.error(formatValidationErrors(result.errors));\n}\n```\n\n### Validating from Raw JSON Strings\n\n```javascript\nimport { validateFromJSON } from '@radish/schemas';\n\n// Parse and validate in one step - useful for AI-generated output\nconst result = validateFromJSON(aiResponseString, 'app');\n\nif (result.valid) {\n  console.log('Valid!', result.data); // Parsed object available\n} else {\n  console.error(result.errors); // Includes JSON parse errors\n}\n```\n\n### YAML Display\n\n```javascript\nimport { toYAML } from '@radish/schemas';\n\nconst blueprint = JSON.parse(readFileSync('app.json', 'utf8'));\nconst yamlView = toYAML(blueprint);\nconsole.log(yamlView);\n// version: 1\n// app:\n//   name: MyApp\n//   description: My application\n```\n\n### Getting Schemas\n\n```javascript\nimport { getSchemas, typesSchema, rolesSchema, appSchema } from '@radish/schemas';\n\n// Get all schemas\nconst schemas = getSchemas();\n\n// Or import directly\nconsole.log(typesSchema);\nconsole.log(rolesSchema);\nconsole.log(appSchema);\n```\n\n### AI Prompts\n\n```javascript\nimport { buildPrompt } from '@radish/schemas/prompts';\n\n// Build a prompt for app blueprint generation\nconst appPrompt = buildPrompt('app', 'A blog with posts and comments');\n\n// Build a prompt for types/roles generation\nconst typesPrompt = buildPrompt('types', 'A blog with posts and comments');\n```\n\n## Package Structure\n\n```\n@radish/schemas/\n├── schemas/          # JSON Schema files\n│   ├── types.schema.json    # Data layer entities/fields\n│   ├── roles.schema.json    # Roles and permissions\n│   └── app.schema.json      # Application blueprint\n├── validators/       # Validation utilities\n│   └── index.js\n├── prompts/          # AI prompt templates\n│   ├── radish-schema-generation.md   # Types/roles generation\n│   └── radish-app-generation.md      # App blueprint generation\n└── index.js          # Main exports\n```\n\n## Blueprint Types\n\n### types.json\nData layer entity definitions - fields, relationships, indexes, filters.\n\n### roles.json\nRole and permission definitions for access control.\n\n### app.json\nApplication-level blueprint (master document) including:\n- **app** - Name, description, domain, tags\n- **audience** - User personas (primary, secondary, admin)\n- **workflows** - Core user journeys with actors\n- **categories** - Content taxonomy\n- **style** - Branding and UI hints\n- **features** - Feature flags (auth, roles, api, search, etc.)\n- **entityOverview** - High-level entity descriptions grouped by domain concern\n- **accessPatterns** - Who can do what, by access level\n- **database** - Database configuration\n\n## Version Compatibility\n\n### Current Version\n\n- **Package Version:** `@radish/schemas@1.4.0`\n- **Blueprint Spec Version:** `1`\n- **Minimum CLI Version:** `radish-cli@0.1.0`\n\n### Compatibility Policy\n\n`@radish/schemas` follows semantic versioning with special consideration for blueprint compatibility:\n\n- **Major version bumps** (e.g., 1.x → 2.x) indicate **breaking changes to blueprint format**\n- **Minor version bumps** (e.g., 1.0 → 1.1) add **backward-compatible features**\n- **Patch version bumps** (e.g., 1.0.0 → 1.0.1) include **bug fixes and improvements**\n\nFor detailed versioning strategy, see [VERSIONING-STRATEGY.md](./VERSIONING-STRATEGY.md).\n\n### Using VERSIONING Metadata\n\n```javascript\nimport { VERSIONING } from '@radish/schemas';\n\nconsole.log(VERSIONING.packageVersion);           // \"1.4.0\"\nconsole.log(VERSIONING.currentSpecVersion);       // 1\nconsole.log(VERSIONING.supportedSpecVersions);    // [1]\nconsole.log(VERSIONING.minCliVersion);            // \"0.1.0\"\n```\n\n## API Reference\n\n### Validators\n\n#### `validateBlueprint(data, type)`\n\nValidates a parsed object against a schema.\n\n- **Parameters:**\n  - `data` (object): Parsed JSON data\n  - `type` ('types' | 'roles' | 'app'): Schema type\n- **Returns:** `{ valid: boolean, errors: Array }`\n\n#### `validateFromJSON(jsonString, type)`\n\nParses a JSON string and validates against a schema.\n\n- **Parameters:**\n  - `jsonString` (string): Raw JSON string\n  - `type` ('types' | 'roles' | 'app'): Schema type\n- **Returns:** `{ valid: boolean, errors: Array, data: object|null }`\n\n#### `toYAML(data)`\n\nConverts a blueprint object to YAML string for display purposes.\n\n- **Parameters:**\n  - `data` (object): Blueprint data\n- **Returns:** `string` - YAML-formatted string\n\n#### `formatValidationErrors(errors)`\n\nFormats AJV errors for display.\n\n- **Parameters:**\n  - `errors` (Array): AJV validation errors\n- **Returns:** `string` - Formatted error message\n\n#### `getSchemas()`\n\nGets all schemas.\n\n- **Returns:** `{ types: object, roles: object, app: object }`\n\n### Prompts\n\n#### `getSchemaPrompt()`\n\nGets the AI prompt template for types/roles generation.\n\n- **Returns:** `string` - Prompt markdown\n\n#### `getAppPrompt()`\n\nGets the AI prompt template for app blueprint generation.\n\n- **Returns:** `string` - Prompt markdown\n\n#### `buildPrompt(promptType, description)`\n\nBuilds a complete prompt with user description injected.\n\n- **Parameters:**\n  - `promptType` ('app' | 'types' | 'roles'): Blueprint type to generate\n  - `description` (string): User's app description\n- **Returns:** `string` - Complete prompt\n\n#### `getSchemaForPrompt(type)`\n\nGets a schema as a JSON string for inclusion in prompts.\n\n- **Parameters:**\n  - `type` ('types' | 'roles' | 'app'): Schema type\n- **Returns:** `string` - Stringified JSON schema\n\n## Validation Service\n\nThis package includes a standalone Fastify validation service deployed at `https://schemas.radishplatform.com`.\n\nAll Radish tools (wizard, n8n workflows, CLI) use this service as the single source of truth for validation.\n\n### Live URL\n\n`https://schemas.radishplatform.com`\n\n### Running Locally\n\n```bash\nnpm start\n# Server starts on http://localhost:3000\n```\n\n### Endpoints\n\n#### `GET /health`\nReturns service status and version info.\n```bash\ncurl https://schemas.radishplatform.com/health\n```\nReturns: `{ \"status\": \"ok\", \"version\": \"1.4.0\", \"specVersion\": 1, \"supportedSpecVersions\": [1] }`\n\n#### `POST /validate`\nValidates a parsed JSON object.\n```bash\ncurl -X POST https://schemas.radishplatform.com/validate \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"type\": \"app\", \"data\": {\"version\": 1, \"app\": {\"name\": \"Test\", \"description\": \"A test\"}}}'\n```\nReturns: `{ \"valid\": true|false, \"errors\": [...], \"data\": {...}, \"formatted\": \"...\" }`\n\n#### `POST /validate/json`\nParses a raw JSON string and validates (ideal for AI output).\n```bash\ncurl -X POST https://schemas.radishplatform.com/validate/json \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"type\": \"types\", \"json\": \"{\\\"version\\\":1,\\\"entities\\\":{...}}\"}'\n```\nReturns: `{ \"valid\": true|false, \"errors\": [...], \"data\": {...}, \"formatted\": \"...\" }`\n\n#### `GET /schemas/:type`\nReturns the raw JSON schema for `app`, `types`, or `roles`.\n```bash\ncurl https://schemas.radishplatform.com/schemas/app\n```\n\n#### `POST /prompts/:type`\nReturns an AI prompt with user description injected. Types: `app`, `types`, `roles`.\n```bash\ncurl -X POST https://schemas.radishplatform.com/prompts/app \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"description\": \"A blog with posts and comments\"}'\n```\nReturns: `{ \"prompt\": \"...\" }`\n\n#### `GET /prompts/:type`\nReturns the raw prompt template (with `{{USER_DESCRIPTION}}` placeholder).\n```bash\ncurl https://schemas.radishplatform.com/prompts/types\n```\n\n#### `POST /to-yaml`\nConverts a JSON object to YAML for display.\n```bash\ncurl -X POST https://schemas.radishplatform.com/to-yaml \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"version\": 1, \"app\": {\"name\": \"Blog\", \"description\": \"A blog\"}}'\n```\nReturns: `{ \"yaml\": \"...\" }`\n\n### Docker Deployment\n\n```bash\ndocker build -t radish-schemas .\ndocker run -p 3000:3000 radish-schemas\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}