{ "$schema": "http://json-schema.org/draft-07/schema#", "title": "ourdigital-estimate-engine scope input", "description": "Generic estimate request. Consuming skills map their context into this.", "type": "object", "required": ["service"], "properties": { "service": {"type": "string", "description": "catalog entry name, e.g. seo | education | digital_ads"}, "method": {"type": "string", "enum": ["effort", "coaching", "procurement"], "description": "optional; defaults to the catalog entry's method"}, "prospect": { "type": "object", "properties": { "name": {"type": "string"}, "domain": {"type": "string"}, "audit_date": {"type": "string"}, "account_code": {"type": "string"} } }, "seq": {"type": "integer", "default": 1}, "tier": {"type": "string", "description": "effort: smb|basic|treatment|auto (default auto)"}, "billing_rate": {"type": ["number", "null"], "description": "effort: override billing rate"}, "signals": { "type": "object", "description": "effort auto-tiering inputs", "properties": { "properties_total": {"type": "integer"}, "subbrands_total": {"type": "integer"}, "vertical": {"type": "string"}, "severity": {"type": "array", "items": {"type": "string"}} } }, "course": {"type": "string", "description": "coaching: named course in catalog (else use lessons)"}, "lessons": { "type": "array", "description": "coaching: explicit lesson plan", "items": { "type": "object", "required": ["type", "hours"], "properties": { "subject": {"type": "string"}, "title": {"type": "string"}, "type": {"type": "string", "enum": ["화상", "대면", "실습", "워크숍", "트리트먼트"]}, "hours": {"type": "number"} } } }, "students": {"type": "integer", "default": 1}, "pricing_mode": {"type": "string", "enum": ["base", "matrix"]}, "apply_student_discount": {"type": "boolean"}, "items": { "type": "array", "description": "procurement: non-labor line items", "items": { "type": "object", "required": ["label", "unit_cost"], "properties": { "label": {"type": "string"}, "unit_cost": {"type": "number"}, "qty": {"type": "number", "default": 1}, "currency": {"type": "string"} } } } } }