soleprint init commit
This commit is contained in:
163
schema.json
Normal file
163
schema.json
Normal file
@@ -0,0 +1,163 @@
|
||||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "Pawprint Models",
|
||||
"description": "Platform-agnostic model definitions. Portable to TypeScript, Pydantic, Django, Prisma.",
|
||||
"definitions": {
|
||||
"Status": {
|
||||
"type": "string",
|
||||
"enum": ["pending", "planned", "building", "dev", "live", "ready"]
|
||||
},
|
||||
"System": {
|
||||
"type": "string",
|
||||
"enum": ["artery", "album", "ward"]
|
||||
},
|
||||
"Nest": {
|
||||
"type": "object",
|
||||
"description": "Runtime environment configuration. Shared across artery, ward.",
|
||||
"properties": {
|
||||
"name": { "type": "string", "description": "Unique identifier" },
|
||||
"slug": { "type": "string", "description": "URL-friendly identifier" },
|
||||
"title": { "type": "string", "description": "Display title for UI" },
|
||||
"status": { "$ref": "#/definitions/Status" },
|
||||
"config_path": { "type": "string" }
|
||||
},
|
||||
"required": ["name", "slug", "title"]
|
||||
},
|
||||
"Larder": {
|
||||
"type": "object",
|
||||
"description": "Data storage. When generated from Template = 'Book (written)'. Independent in ward/artery.",
|
||||
"properties": {
|
||||
"name": { "type": "string", "description": "Unique identifier" },
|
||||
"slug": { "type": "string", "description": "URL-friendly identifier" },
|
||||
"title": { "type": "string", "description": "Display title for UI" },
|
||||
"status": { "$ref": "#/definitions/Status" },
|
||||
"source_template": { "type": "string", "description": "Template name if generated" },
|
||||
"data_path": { "type": "string", "description": "Path to data files" }
|
||||
},
|
||||
"required": ["name", "slug", "title"]
|
||||
},
|
||||
"Vein": {
|
||||
"type": "object",
|
||||
"description": "Connector (artery). Single responsibility.",
|
||||
"properties": {
|
||||
"name": { "type": "string", "description": "Unique identifier" },
|
||||
"slug": { "type": "string", "description": "URL-friendly identifier" },
|
||||
"title": { "type": "string", "description": "Display title for UI" },
|
||||
"status": { "$ref": "#/definitions/Status" },
|
||||
"system": { "const": "artery" }
|
||||
},
|
||||
"required": ["name", "slug", "title"]
|
||||
},
|
||||
"Template": {
|
||||
"type": "object",
|
||||
"description": "Documentation template (album). Gherkin, BDD patterns.",
|
||||
"properties": {
|
||||
"name": { "type": "string", "description": "Unique identifier" },
|
||||
"slug": { "type": "string", "description": "URL-friendly identifier" },
|
||||
"title": { "type": "string", "description": "Display title for UI" },
|
||||
"status": { "$ref": "#/definitions/Status" },
|
||||
"template_path": { "type": "string", "description": "Path to template files" },
|
||||
"system": { "const": "album" }
|
||||
},
|
||||
"required": ["name", "slug", "title"]
|
||||
},
|
||||
"ToolType": {
|
||||
"type": "string",
|
||||
"enum": ["app", "cli"],
|
||||
"description": "Type of tool: app (web UI) or cli (command line)"
|
||||
},
|
||||
"Tool": {
|
||||
"type": "object",
|
||||
"description": "Execution tool (ward). Test runners, seeders.",
|
||||
"properties": {
|
||||
"name": { "type": "string", "description": "Unique identifier" },
|
||||
"slug": { "type": "string", "description": "URL-friendly identifier" },
|
||||
"title": { "type": "string", "description": "Display title for UI" },
|
||||
"status": { "$ref": "#/definitions/Status" },
|
||||
"system": { "const": "ward" },
|
||||
"type": { "$ref": "#/definitions/ToolType" },
|
||||
"description": { "type": "string", "description": "Human-readable description" },
|
||||
"path": { "type": "string", "description": "Path to tool source" },
|
||||
"url": { "type": "string", "description": "URL path for app tools" },
|
||||
"cli": { "type": "string", "description": "CLI command for cli tools" }
|
||||
},
|
||||
"required": ["name", "slug", "title"]
|
||||
},
|
||||
"Monitor": {
|
||||
"type": "object",
|
||||
"description": "Service monitor (ward). Health checks, status watchers.",
|
||||
"properties": {
|
||||
"name": { "type": "string", "description": "Unique identifier" },
|
||||
"slug": { "type": "string", "description": "URL-friendly identifier" },
|
||||
"title": { "type": "string", "description": "Display title for UI" },
|
||||
"status": { "$ref": "#/definitions/Status" },
|
||||
"system": { "const": "ward" }
|
||||
},
|
||||
"required": ["name", "slug", "title"]
|
||||
},
|
||||
"Cabinet": {
|
||||
"type": "object",
|
||||
"description": "Tool cabinet (ward). Contains 0+ tools.",
|
||||
"properties": {
|
||||
"name": { "type": "string", "description": "Unique identifier" },
|
||||
"slug": { "type": "string", "description": "URL-friendly identifier" },
|
||||
"title": { "type": "string", "description": "Display title for UI" },
|
||||
"status": { "$ref": "#/definitions/Status" },
|
||||
"tools": {
|
||||
"type": "array",
|
||||
"items": { "$ref": "#/definitions/Tool" }
|
||||
},
|
||||
"system": { "const": "ward" }
|
||||
},
|
||||
"required": ["name", "slug", "title"]
|
||||
},
|
||||
"Pulse": {
|
||||
"type": "object",
|
||||
"description": "Composed data flow (artery). Pulse = Vein + Nest + Larder.",
|
||||
"properties": {
|
||||
"name": { "type": "string", "description": "Unique identifier" },
|
||||
"slug": { "type": "string", "description": "URL-friendly identifier" },
|
||||
"title": { "type": "string", "description": "Display title for UI" },
|
||||
"status": { "$ref": "#/definitions/Status" },
|
||||
"vein": { "$ref": "#/definitions/Vein" },
|
||||
"nest": { "$ref": "#/definitions/Nest" },
|
||||
"larder": { "$ref": "#/definitions/Larder" },
|
||||
"system": { "const": "artery" }
|
||||
},
|
||||
"required": ["name", "slug", "title"]
|
||||
},
|
||||
"Book": {
|
||||
"type": "object",
|
||||
"description": "Composed documentation (album). Book = Template + Larder.",
|
||||
"properties": {
|
||||
"name": { "type": "string", "description": "Unique identifier" },
|
||||
"slug": { "type": "string", "description": "URL-friendly identifier" },
|
||||
"title": { "type": "string", "description": "Display title for UI" },
|
||||
"status": { "$ref": "#/definitions/Status" },
|
||||
"template": { "$ref": "#/definitions/Template" },
|
||||
"larder": { "$ref": "#/definitions/Larder" },
|
||||
"output_larder": { "$ref": "#/definitions/Larder" },
|
||||
"system": { "const": "album" }
|
||||
},
|
||||
"required": ["name", "slug", "title"]
|
||||
},
|
||||
"Table": {
|
||||
"type": "object",
|
||||
"description": "Composed execution bundle (ward). Table = Cabinet + Nest + Larders.",
|
||||
"properties": {
|
||||
"name": { "type": "string", "description": "Unique identifier" },
|
||||
"slug": { "type": "string", "description": "URL-friendly identifier" },
|
||||
"title": { "type": "string", "description": "Display title for UI" },
|
||||
"status": { "$ref": "#/definitions/Status" },
|
||||
"cabinet": { "$ref": "#/definitions/Cabinet" },
|
||||
"nest": { "$ref": "#/definitions/Nest" },
|
||||
"larders": {
|
||||
"type": "array",
|
||||
"items": { "$ref": "#/definitions/Larder" }
|
||||
},
|
||||
"system": { "const": "ward" }
|
||||
},
|
||||
"required": ["name", "slug", "title"]
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user