45 lines
1.7 KiB
JSON
45 lines
1.7 KiB
JSON
{
|
|
"title": "Dated current-source dossier",
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"status": {"type": "string", "enum": ["supported", "conflict", "blocked"]},
|
|
"question": {"type": "string", "minLength": 1},
|
|
"claims": {
|
|
"type": "array",
|
|
"maxItems": 50,
|
|
"items": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"claim": {"type": "string", "minLength": 1},
|
|
"source_url": {"type": "string", "format": "uri"},
|
|
"source_date": {"type": "string", "format": "date"},
|
|
"retrieved_at": {"type": "string", "format": "date-time"},
|
|
"authority": {"type": "string", "enum": ["primary", "supporting"]},
|
|
"evidence": {"type": "string", "minLength": 1},
|
|
"inference": {"type": "boolean"}
|
|
},
|
|
"required": ["claim", "source_url", "source_date", "retrieved_at", "authority", "evidence", "inference"]
|
|
}
|
|
},
|
|
"conflicts": {"type": "array", "items": {"type": "string"}, "maxItems": 30},
|
|
"limitations": {"type": "array", "items": {"type": "string"}, "maxItems": 30}
|
|
},
|
|
"required": ["status", "question", "claims", "conflicts", "limitations"],
|
|
"allOf": [
|
|
{
|
|
"if": {"properties": {"status": {"const": "supported"}}, "required": ["status"]},
|
|
"then": {"properties": {"claims": {"minItems": 1}, "conflicts": {"maxItems": 0}}}
|
|
},
|
|
{
|
|
"if": {"properties": {"status": {"const": "conflict"}}, "required": ["status"]},
|
|
"then": {"properties": {"conflicts": {"minItems": 1}}}
|
|
},
|
|
{
|
|
"if": {"properties": {"status": {"const": "blocked"}}, "required": ["status"]},
|
|
"then": {"properties": {"limitations": {"minItems": 1}}}
|
|
}
|
|
]
|
|
}
|