{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://sloanops.com/schemas/intake.v1.schema.json", "title": "SloanOps approved intake v1", "type": "object", "additionalProperties": false, "required": ["schemaVersion", "submission", "client", "domain", "site"], "properties": { "schemaVersion": { "const": "1.0" }, "submission": { "type": "object", "additionalProperties": false, "required": ["type", "submittedAt"], "properties": { "type": { "const": "client-signup" }, "submittedAt": { "type": "string", "format": "date-time" } } }, "client": { "type": "object", "additionalProperties": false, "required": ["businessName", "contactEmail"], "properties": { "businessName": { "type": "string", "minLength": 1, "maxLength": 120 }, "contactEmail": { "type": "string", "format": "email", "maxLength": 254 } } }, "domain": { "type": "object", "additionalProperties": false, "required": ["requestedRootDomain", "management"], "properties": { "requestedRootDomain": { "type": "string", "pattern": "^(?=.{1,253}$)([a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z]{2,63}$" }, "management": { "enum": ["client_managed", "sloanops_managed"] } } }, "site": { "type": "object", "additionalProperties": false, "required": ["title", "description", "brand", "contact", "hero", "features", "services", "team", "testimonials"], "properties": { "title": { "type": "string", "minLength": 1, "maxLength": 120 }, "description": { "type": "string", "minLength": 1, "maxLength": 200 }, "brand": { "$ref": "#/$defs/brand" }, "contact": { "$ref": "#/$defs/contact" }, "hero": { "$ref": "#/$defs/hero" }, "features": { "$ref": "#/$defs/contentItems" }, "services": { "$ref": "#/$defs/contentItems" }, "team": { "$ref": "#/$defs/contentItems" }, "testimonials": { "$ref": "#/$defs/contentItems" } } } }, "$defs": { "brand": { "type": "object", "additionalProperties": false, "required": ["primaryColor", "secondaryColor", "headingFont", "bodyFont"], "properties": { "primaryColor": { "type": "string", "pattern": "^#[0-9a-fA-F]{6}$" }, "secondaryColor": { "type": "string", "pattern": "^#[0-9a-fA-F]{6}$" }, "headingFont": { "type": "string", "minLength": 1, "maxLength": 80 }, "bodyFont": { "type": "string", "minLength": 1, "maxLength": 80 } } }, "contact": { "type": "object", "additionalProperties": false, "required": ["publicEmail", "phone"], "properties": { "publicEmail": { "type": "string", "format": "email", "maxLength": 254 }, "phone": { "type": "string", "pattern": "^[+0-9(). -]{7,30}$" } } }, "hero": { "type": "object", "additionalProperties": false, "required": ["headline", "subheadline"], "properties": { "headline": { "type": "string", "minLength": 1, "maxLength": 160 }, "subheadline": { "type": "string", "minLength": 1, "maxLength": 280 } } }, "contentItems": { "type": "array", "maxItems": 24, "items": { "type": "object", "additionalProperties": true, "required": ["title", "description"], "properties": { "title": { "type": "string", "minLength": 1, "maxLength": 120 }, "description": { "type": "string", "minLength": 1, "maxLength": 1000 } } } } } }