{ "type": "object", "required": [ "format", "format_version", "builder_version", "case", "bug", "human_observations", "expected_behavior", "reproduction", "entities", "runtime_facts", "database_context", "source_context", "research", "data_quality", "inputs" ], "properties": { "format": { "const": "viano-case" }, "format_version": { "type": "integer", "const": 1 }, "builder_version": { "const": "1" }, "case": { "type": "object", "required": [ "case_id", "package_id", "analysis_revision", "source_generation", "project" ], "properties": { "case_id": { "type": "string", "minLength": 1, "pattern": "\\S" }, "package_id": { "type": "string", "minLength": 1, "pattern": "\\S" }, "analysis_revision": { "type": "integer", "minimum": 1 }, "source_generation": { "type": "integer", "minimum": 0 }, "project": { "type": "object" } } }, "bug": { "type": "object", "required": [ "reports" ], "properties": { "reports": { "type": "array", "items": { "type": "object", "required": [ "source_ref", "title", "summary" ], "properties": { "source_ref": { "type": "string", "minLength": 1 }, "title": { "anyOf": [ { "type": "string", "minLength": 1, "pattern": "\\S" }, { "type": "null" } ] }, "summary": { "anyOf": [ { "type": "string", "minLength": 1, "pattern": "\\S" }, { "type": "null" } ] }, "origin": { "$ref": "#/$defs/origin" } } } } } }, "human_observations": { "type": "object", "required": [ "observations", "comments", "tester_hypotheses" ], "properties": { "observations": { "type": "array", "items": { "$ref": "#/$defs/record" } }, "comments": { "type": "array", "items": { "$ref": "#/$defs/record" } }, "tester_hypotheses": { "type": "array", "items": { "$ref": "#/$defs/record" } } } }, "expected_behavior": { "type": "object", "required": [ "statements", "completeness", "provenance" ], "properties": { "statements": { "type": "array", "items": { "$ref": "#/$defs/record" } }, "completeness": { "enum": [ "missing", "unspecified", "reported_complete", "reported_partial", "conflicting" ] }, "provenance": { "enum": [ "tester", "none" ] } } }, "reproduction": { "type": "object", "required": [ "records" ], "properties": { "records": { "type": "array", "items": { "type": "object", "required": [ "id", "source_ref", "steps", "events_ref", "attachments" ], "properties": { "id": { "type": "string", "minLength": 1, "pattern": "\\S" }, "source_ref": { "type": "string", "minLength": 1 }, "steps": { "type": "array", "items": { "type": "string", "minLength": 1, "pattern": "\\S" } }, "events_ref": { "anyOf": [ { "type": "string", "minLength": 1 }, { "type": "null" } ] }, "attachments": { "type": "array", "items": { "type": "string", "minLength": 1 } }, "origin": { "$ref": "#/$defs/origin" } } } } } }, "entities": { "type": "array", "items": { "type": "object", "required": [ "type", "id", "roles", "provenance" ], "properties": { "type": { "type": "string", "minLength": 1, "pattern": "\\S" }, "id": { "type": "string", "minLength": 1, "pattern": "\\S" }, "roles": { "type": "array", "items": { "type": "string", "minLength": 1, "pattern": "\\S" } }, "provenance": { "type": "array", "items": { "$ref": "#/$defs/provenance" } } } } }, "runtime_facts": { "type": "object", "required": [ "facts", "raw_refs" ], "properties": { "facts": { "type": "array", "items": { "type": "object", "required": [ "id", "name", "provenance" ], "oneOf": [ { "required": [ "value" ], "not": { "required": [ "value_ref" ] } }, { "required": [ "value_ref" ], "not": { "required": [ "value" ] } } ], "properties": { "id": { "type": "string", "pattern": "^F[0-9]{4,}$" }, "name": { "type": "string", "minLength": 1, "pattern": "\\S" }, "value": {}, "value_ref": { "type": "object", "required": [ "source_ref", "json_pointer" ], "properties": { "source_ref": { "type": "string", "minLength": 1 }, "json_pointer": { "type": "string", "pattern": "^/" } } }, "provenance": { "$ref": "#/$defs/provenance" } } } }, "raw_refs": { "type": "array", "items": { "$ref": "#/$defs/raw" } } } }, "database_context": { "type": "object", "required": [ "refs" ], "properties": { "refs": { "type": "array", "items": { "$ref": "#/$defs/raw" } } } }, "source_context": { "type": "object", "required": [ "refs" ], "properties": { "refs": { "type": "array", "items": { "$ref": "#/$defs/raw" } } } }, "research": { "type": "object", "required": [ "refs", "performed" ], "properties": { "refs": { "type": "array", "items": { "$ref": "#/$defs/raw" } }, "performed": { "const": false } } }, "data_quality": { "type": "object", "required": [ "issues", "coverage" ], "properties": { "issues": { "type": "array", "items": { "type": "object", "required": [ "code", "message", "refs" ], "properties": { "code": { "type": "string", "minLength": 1, "pattern": "\\S" }, "message": { "type": "string", "minLength": 1, "pattern": "\\S" }, "refs": { "type": "array", "items": { "type": "object", "required": [ "source_ref", "json_pointer" ], "properties": { "source_ref": { "type": "string", "minLength": 1 }, "json_pointer": { "type": "string" } } } } } } }, "coverage": { "type": "object", "required": [ "reports", "reproductions", "observations" ], "properties": { "reports": { "type": "integer", "minimum": 0 }, "reproductions": { "type": "integer", "minimum": 0 }, "observations": { "type": "integer", "minimum": 0 } } } } }, "inputs": { "type": "object", "required": [ "index_ref", "records", "unclassified", "prior_cases", "request_hash" ], "properties": { "index_ref": { "anyOf": [ { "type": "string", "minLength": 1 }, { "type": "null" } ] }, "records": { "type": "array", "items": { "type": "object", "required": [ "path", "sha256", "size", "role" ], "properties": { "path": { "type": "string", "minLength": 1 }, "sha256": { "type": "string", "pattern": "^[0-9a-f]{64}$" }, "size": { "type": "integer", "minimum": 0 }, "role": { "enum": [ "index", "report", "reproduction", "runtime", "database", "source", "research", "attachment" ] } } } }, "unclassified": { "type": "array", "items": { "$ref": "#/$defs/raw" } }, "prior_cases": { "type": "array", "items": { "$ref": "#/$defs/raw" } }, "request_hash": { "type": "string", "pattern": "^[0-9a-f]{64}$" } } } }, "$schema": "https://json-schema.org/draft/2020-12/schema", "$defs": { "provenance": { "type": "object", "required": [ "kind", "source_ref", "json_pointer", "author", "observed_at" ], "properties": { "kind": { "enum": [ "tester", "reproduction_record", "report" ] }, "source_ref": { "type": "string", "minLength": 1 }, "json_pointer": { "type": "string", "pattern": "^(|/.*)$" }, "author": { "anyOf": [ { "type": "string", "minLength": 1, "pattern": "\\S" }, { "type": "null" } ] }, "observed_at": { "type": [ "string", "null" ], "format": "date-time" }, "origin": { "$ref": "#/$defs/origin" } } }, "claim": { "type": "object", "required": [ "key", "value" ], "properties": { "key": { "type": "string", "minLength": 1, "pattern": "\\S" }, "value": {} } }, "raw": { "type": "object", "required": [ "path", "sha256", "size" ], "properties": { "path": { "type": "string", "minLength": 1 }, "sha256": { "type": "string", "pattern": "^[0-9a-f]{64}$" }, "size": { "type": "integer", "minimum": 0 } } }, "record": { "type": "object", "required": [ "id", "text", "provenance" ], "properties": { "id": { "type": "string", "minLength": 1, "pattern": "\\S" }, "text": { "type": "string", "minLength": 1, "pattern": "\\S" }, "provenance": { "$ref": "#/$defs/provenance" }, "claim": { "$ref": "#/$defs/claim" } } }, "origin": { "type": "object", "required": [ "source_ref", "json_pointer" ], "properties": { "source_ref": { "type": "string", "minLength": 1 }, "json_pointer": { "type": "string", "pattern": "^(|/.*)$" }, "archive_ref": { "type": "string", "minLength": 1 }, "member_name": { "type": "string" }, "decoded_json_pointer": { "type": "string", "pattern": "^(|/.*)$" }, "source_timestamp": { "type": "string" } } } } }