{ "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "required": ["experiment-id", "subject", "arm-id", "model-id", "request-sha256", "first-result-only", "revision-count-at-capture", "output-ref", "output-sha256", "screenshots", "evaluator-blinded", "metrics"], "properties": { "experiment-id": {"type": "string", "minLength": 1}, "subject": {"type": "string", "minLength": 1}, "arm-id": {"enum": ["A", "B"]}, "model-id": {"type": "string", "minLength": 1}, "request-sha256": {"type": "string", "pattern": "^[0-9a-f]{64}$"}, "first-result-only": {"const": true}, "revision-count-at-capture": {"const": 0}, "output-ref": {"type": "string", "minLength": 1}, "output-sha256": {"type": "string", "pattern": "^[0-9a-f]{64}$"}, "screenshots": { "type": "object", "required": ["desktop", "mobile"], "properties": { "desktop": {"$ref": "#/definitions/fileEvidence"}, "mobile": {"$ref": "#/definitions/fileEvidence"} } }, "evaluator-blinded": {"const": true}, "metrics": { "type": "object", "required": ["product-purpose-understood-in-5s", "primary-action-found", "information-hierarchy", "category-quality-parity", "visual-craft", "mobile-clarity", "design-system-consistency", "human-preference", "revision-count-to-acceptance", "tokens-to-acceptance"], "properties": { "product-purpose-understood-in-5s": {"type": "integer", "minimum": 1, "maximum": 5}, "primary-action-found": {"type": "integer", "minimum": 1, "maximum": 5}, "information-hierarchy": {"type": "integer", "minimum": 1, "maximum": 5}, "category-quality-parity": {"type": "integer", "minimum": 1, "maximum": 5}, "visual-craft": {"type": "integer", "minimum": 1, "maximum": 5}, "mobile-clarity": {"type": "integer", "minimum": 1, "maximum": 5}, "design-system-consistency": {"type": "integer", "minimum": 1, "maximum": 5}, "human-preference": {"type": "integer", "minimum": 1, "maximum": 5}, "revision-count-to-acceptance": {"type": "integer", "minimum": 0}, "tokens-to-acceptance": {"type": "integer", "minimum": 0} }, "additionalProperties": false } }, "definitions": { "fileEvidence": { "type": "object", "required": ["path", "sha256"], "properties": { "path": {"type": "string", "minLength": 1}, "sha256": {"type": "string", "pattern": "^[0-9a-f]{64}$"} } } }, "additionalProperties": true }