{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "vignette.pii_masking_eval_report.v1", "title": "Vignette PII masking evaluation report", "type": "object", "additionalProperties": false, "required": [ "schema_version", "input_schema_version", "run_mode", "data_source", "evidence_text_included", "passed", "cases_total", "cases_passed", "cases_failed", "expected_entity_recall", "forbidden_substring_removal", "unexpected_entity_violations", "by_source", "by_category", "by_severity", "results" ], "properties": { "schema_version": { "const": "vignette.pii_masking_eval_report.v1" }, "input_schema_version": { "const": "vignette.pii_masking_eval_input.v1" }, "run_mode": { "const": "technical_dry_run" }, "data_source": { "type": "string" }, "evidence_text_included": { "type": "boolean" }, "passed": { "type": "boolean" }, "cases_total": { "type": "integer", "minimum": 0 }, "cases_passed": { "type": "integer", "minimum": 0 }, "cases_failed": { "type": "integer", "minimum": 0 }, "expected_entity_recall": { "type": "number", "minimum": 0, "maximum": 1 }, "forbidden_substring_removal": { "type": "number", "minimum": 0, "maximum": 1 }, "unexpected_entity_violations": { "type": "integer", "minimum": 0 }, "by_source": { "$ref": "#/$defs/breakdown" }, "by_category": { "$ref": "#/$defs/breakdown" }, "by_severity": { "$ref": "#/$defs/breakdown" }, "results": { "type": "array", "items": { "type": "object", "additionalProperties": false, "required": [ "id", "locale", "source", "category", "severity", "passed", "entities", "missing_entities", "unexpected_entities", "forbidden_remaining_count", "required_missing" ], "properties": { "id": { "type": "string" }, "locale": { "type": "string" }, "source": { "type": "string" }, "category": { "type": "string" }, "severity": { "type": "string" }, "passed": { "type": "boolean" }, "entities": { "type": "array", "items": { "type": "string" } }, "masked_text": { "type": "string", "description": "Optional local synthetic debugging evidence. Do not include this field in operational reports." }, "forbidden_remaining_count": { "type": "integer", "minimum": 0 }, "missing_entities": { "type": "array", "items": { "type": "string" } }, "unexpected_entities": { "type": "array", "items": { "type": "string" } }, "forbidden_remaining": { "type": "array", "items": { "type": "string" }, "description": "Optional local synthetic debugging evidence. Do not include this field in operational reports." }, "required_missing": { "type": "array", "items": { "type": "string" } } } } } }, "$defs": { "breakdown": { "type": "object", "additionalProperties": { "type": "object", "additionalProperties": false, "required": ["cases_total", "cases_passed", "cases_failed"], "properties": { "cases_total": { "type": "integer", "minimum": 0 }, "cases_passed": { "type": "integer", "minimum": 0 }, "cases_failed": { "type": "integer", "minimum": 0 } } } } } }