{"openapi":"3.1.0","jsonSchemaDialect":"https://json-schema.org/draft/2020-12/schema","info":{"title":"ALNOP public research API","version":"2.2.0","description":"Read-only published snapshot, immutable releases and documentary coverage. Incomplete corpus; technical metrics do not imply historical war coverage."},"servers":[{"url":"https://alnop.vercel.app"}],"paths":{"/api/v2":{"get":{"operationId":"_index","summary":"Index","parameters":[],"responses":{"200":{"description":"Published snapshot response","headers":{"ETag":{"schema":{"type":"string"},"description":"SHA-256 of this response representation."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Index"}}}},"304":{"description":"Representation unchanged"},"400":{"description":"Invalid query or path","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource absent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"405":{"description":"Read-only resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Response exceeds 4 MiB; reduce limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Published snapshot unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v2/operations":{"get":{"operationId":"_operations","summary":"OperationCollection","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":1000},"description":"Case and diacritic insensitive substring; no automatic translation."},{"name":"source_id","in":"query","required":false,"schema":{"type":"string"},"description":"Comma-separated source IDs (OR)."},{"name":"status","in":"query","required":false,"schema":{"const":"published"},"description":"Only the published snapshot is public."},{"name":"sort","in":"query","required":false,"schema":{"type":"string","enum":["id","-id","start_date","-start_date"],"default":"id"},"description":"Deterministic ordering."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1},"description":"Page starts at 1."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200,"default":20},"description":"Maximum records per page."},{"name":"from","in":"query","required":false,"schema":{"type":"string"},"description":"YYYY[-MM[-DD]]; interval overlap, unknown starts excluded."},{"name":"to","in":"query","required":false,"schema":{"type":"string"},"description":"Inclusive bound; partial dates expanded only for filtering."},{"name":"date_precision","in":"query","required":false,"schema":{"type":"string"},"description":"Comma-separated values, OR within this family; AND between families."},{"name":"territory","in":"query","required":false,"schema":{"type":"string"},"description":"Comma-separated values, OR within this family; AND between families."},{"name":"territory_role","in":"query","required":false,"schema":{"type":"string"},"description":"Comma-separated values, OR within this family; AND between families."},{"name":"type","in":"query","required":false,"schema":{"type":"string"},"description":"Comma-separated values, OR within this family; AND between families."},{"name":"has_geometry","in":"query","required":false,"schema":{"type":"boolean"},"description":"Any documented geometry, including representative points; not a precision guarantee."},{"name":"min_sources","in":"query","required":false,"schema":{"type":"integer","minimum":0},"description":"Minimum number of operation-level source IDs."},{"name":"bbox","in":"query","required":false,"schema":{"type":"string"},"description":"west,south,east,north in WGS84; west > east crosses the antimeridian. Any point intersects."},{"name":"format","in":"query","required":false,"schema":{"enum":["json","geojson"],"default":"json"},"description":"Pagination applies to both formats; null geometry is retained."}],"responses":{"200":{"description":"Published snapshot response","headers":{"ETag":{"schema":{"type":"string"},"description":"SHA-256 of this response representation."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OperationCollection"}},"application/geo+json":{"schema":{"$ref":"#/components/schemas/GeoJSON"}}}},"304":{"description":"Representation unchanged"},"400":{"description":"Invalid query or path","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource absent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"405":{"description":"Read-only resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Response exceeds 4 MiB; reduce limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Published snapshot unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v2/operations/{id}":{"get":{"operationId":"_operations__id_","summary":"OperationResponse","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^[A-Za-z0-9_-]+$"}}],"responses":{"200":{"description":"Published snapshot response","headers":{"ETag":{"schema":{"type":"string"},"description":"SHA-256 of this response representation."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OperationResponse"}}}},"304":{"description":"Representation unchanged"},"400":{"description":"Invalid query or path","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource absent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"405":{"description":"Read-only resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Response exceeds 4 MiB; reduce limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Published snapshot unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v2/sources":{"get":{"operationId":"_sources","summary":"SourceCollection","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":1000},"description":"Case and diacritic insensitive substring; no automatic translation."},{"name":"source_id","in":"query","required":false,"schema":{"type":"string"},"description":"Comma-separated source IDs (OR)."},{"name":"status","in":"query","required":false,"schema":{"const":"published"},"description":"Only the published snapshot is public."},{"name":"sort","in":"query","required":false,"schema":{"type":"string","enum":["id","-id"],"default":"id"},"description":"Deterministic ordering."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1},"description":"Page starts at 1."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200,"default":20},"description":"Maximum records per page."}],"responses":{"200":{"description":"Published snapshot response","headers":{"ETag":{"schema":{"type":"string"},"description":"SHA-256 of this response representation."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourceCollection"}}}},"304":{"description":"Representation unchanged"},"400":{"description":"Invalid query or path","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource absent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"405":{"description":"Read-only resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Response exceeds 4 MiB; reduce limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Published snapshot unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v2/sources/{id}":{"get":{"operationId":"_sources__id_","summary":"SourceResponse","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^[A-Za-z0-9_-]+$"}}],"responses":{"200":{"description":"Published snapshot response","headers":{"ETag":{"schema":{"type":"string"},"description":"SHA-256 of this response representation."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourceResponse"}}}},"304":{"description":"Representation unchanged"},"400":{"description":"Invalid query or path","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource absent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"405":{"description":"Read-only resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Response exceeds 4 MiB; reduce limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Published snapshot unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v2/places":{"get":{"operationId":"_places","summary":"EntityCollection","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":1000},"description":"Case and diacritic insensitive substring; no automatic translation."},{"name":"source_id","in":"query","required":false,"schema":{"type":"string"},"description":"Comma-separated source IDs (OR)."},{"name":"status","in":"query","required":false,"schema":{"const":"published"},"description":"Only the published snapshot is public."},{"name":"sort","in":"query","required":false,"schema":{"type":"string","enum":["id","-id"],"default":"id"},"description":"Deterministic ordering."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1},"description":"Page starts at 1."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200,"default":20},"description":"Maximum records per page."}],"responses":{"200":{"description":"Published snapshot response","headers":{"ETag":{"schema":{"type":"string"},"description":"SHA-256 of this response representation."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityCollection"}}}},"304":{"description":"Representation unchanged"},"400":{"description":"Invalid query or path","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource absent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"405":{"description":"Read-only resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Response exceeds 4 MiB; reduce limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Published snapshot unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v2/places/{id}":{"get":{"operationId":"_places__id_","summary":"EntityResponse","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^[A-Za-z0-9_-]+$"}}],"responses":{"200":{"description":"Published snapshot response","headers":{"ETag":{"schema":{"type":"string"},"description":"SHA-256 of this response representation."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityResponse"}}}},"304":{"description":"Representation unchanged"},"400":{"description":"Invalid query or path","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource absent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"405":{"description":"Read-only resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Response exceeds 4 MiB; reduce limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Published snapshot unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v2/persons":{"get":{"operationId":"_persons","summary":"EntityCollection","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":1000},"description":"Case and diacritic insensitive substring; no automatic translation."},{"name":"source_id","in":"query","required":false,"schema":{"type":"string"},"description":"Comma-separated source IDs (OR)."},{"name":"status","in":"query","required":false,"schema":{"const":"published"},"description":"Only the published snapshot is public."},{"name":"sort","in":"query","required":false,"schema":{"type":"string","enum":["id","-id"],"default":"id"},"description":"Deterministic ordering."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1},"description":"Page starts at 1."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200,"default":20},"description":"Maximum records per page."}],"responses":{"200":{"description":"Published snapshot response","headers":{"ETag":{"schema":{"type":"string"},"description":"SHA-256 of this response representation."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityCollection"}}}},"304":{"description":"Representation unchanged"},"400":{"description":"Invalid query or path","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource absent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"405":{"description":"Read-only resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Response exceeds 4 MiB; reduce limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Published snapshot unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v2/persons/{id}":{"get":{"operationId":"_persons__id_","summary":"EntityResponse","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^[A-Za-z0-9_-]+$"}}],"responses":{"200":{"description":"Published snapshot response","headers":{"ETag":{"schema":{"type":"string"},"description":"SHA-256 of this response representation."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityResponse"}}}},"304":{"description":"Representation unchanged"},"400":{"description":"Invalid query or path","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource absent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"405":{"description":"Read-only resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Response exceeds 4 MiB; reduce limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Published snapshot unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v2/organizations":{"get":{"operationId":"_organizations","summary":"EntityCollection","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":1000},"description":"Case and diacritic insensitive substring; no automatic translation."},{"name":"source_id","in":"query","required":false,"schema":{"type":"string"},"description":"Comma-separated source IDs (OR)."},{"name":"status","in":"query","required":false,"schema":{"const":"published"},"description":"Only the published snapshot is public."},{"name":"sort","in":"query","required":false,"schema":{"type":"string","enum":["id","-id"],"default":"id"},"description":"Deterministic ordering."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1},"description":"Page starts at 1."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200,"default":20},"description":"Maximum records per page."}],"responses":{"200":{"description":"Published snapshot response","headers":{"ETag":{"schema":{"type":"string"},"description":"SHA-256 of this response representation."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityCollection"}}}},"304":{"description":"Representation unchanged"},"400":{"description":"Invalid query or path","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource absent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"405":{"description":"Read-only resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Response exceeds 4 MiB; reduce limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Published snapshot unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v2/organizations/{id}":{"get":{"operationId":"_organizations__id_","summary":"EntityResponse","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^[A-Za-z0-9_-]+$"}}],"responses":{"200":{"description":"Published snapshot response","headers":{"ETag":{"schema":{"type":"string"},"description":"SHA-256 of this response representation."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityResponse"}}}},"304":{"description":"Representation unchanged"},"400":{"description":"Invalid query or path","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource absent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"405":{"description":"Read-only resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Response exceeds 4 MiB; reduce limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Published snapshot unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v2/territorial-units":{"get":{"operationId":"_territorial_units","summary":"TerritoryCollection","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":1000},"description":"Case and diacritic insensitive substring; no automatic translation."},{"name":"source_id","in":"query","required":false,"schema":{"type":"string"},"description":"Comma-separated source IDs (OR)."},{"name":"status","in":"query","required":false,"schema":{"const":"published"},"description":"Only the published snapshot is public."},{"name":"sort","in":"query","required":false,"schema":{"type":"string","enum":["id","-id"],"default":"id"},"description":"Deterministic ordering."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1},"description":"Page starts at 1."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200,"default":20},"description":"Maximum records per page."}],"responses":{"200":{"description":"Published snapshot response","headers":{"ETag":{"schema":{"type":"string"},"description":"SHA-256 of this response representation."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TerritoryCollection"}}}},"304":{"description":"Representation unchanged"},"400":{"description":"Invalid query or path","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource absent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"405":{"description":"Read-only resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Response exceeds 4 MiB; reduce limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Published snapshot unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v2/territorial-units/{id}":{"get":{"operationId":"_territorial_units__id_","summary":"TerritoryResponse","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^[A-Za-z0-9_-]+$"}}],"responses":{"200":{"description":"Published snapshot response","headers":{"ETag":{"schema":{"type":"string"},"description":"SHA-256 of this response representation."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TerritoryResponse"}}}},"304":{"description":"Representation unchanged"},"400":{"description":"Invalid query or path","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource absent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"405":{"description":"Read-only resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Response exceeds 4 MiB; reduce limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Published snapshot unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v2/claims":{"get":{"operationId":"_claims","summary":"ClaimCollection","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":1000},"description":"Case and diacritic insensitive substring; no automatic translation."},{"name":"source_id","in":"query","required":false,"schema":{"type":"string"},"description":"Comma-separated source IDs (OR)."},{"name":"status","in":"query","required":false,"schema":{"const":"published"},"description":"Only the published snapshot is public."},{"name":"sort","in":"query","required":false,"schema":{"type":"string","enum":["id","-id"],"default":"id"},"description":"Deterministic ordering."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1},"description":"Page starts at 1."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200,"default":20},"description":"Maximum records per page."},{"name":"subject","in":"query","required":false,"schema":{"type":"string"},"description":"Operation ID."},{"name":"claim_status","in":"query","required":false,"schema":{"enum":["supported","contested","unverified"]},"description":"Documentary status, distinct from publication."}],"responses":{"200":{"description":"Published snapshot response","headers":{"ETag":{"schema":{"type":"string"},"description":"SHA-256 of this response representation."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClaimCollection"}}}},"304":{"description":"Representation unchanged"},"400":{"description":"Invalid query or path","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource absent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"405":{"description":"Read-only resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Response exceeds 4 MiB; reduce limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Published snapshot unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v2/claims/{id}":{"get":{"operationId":"_claims__id_","summary":"ClaimResponse","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^[A-Za-z0-9_-]+$"}}],"responses":{"200":{"description":"Published snapshot response","headers":{"ETag":{"schema":{"type":"string"},"description":"SHA-256 of this response representation."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClaimResponse"}}}},"304":{"description":"Representation unchanged"},"400":{"description":"Invalid query or path","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource absent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"405":{"description":"Read-only resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Response exceeds 4 MiB; reduce limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Published snapshot unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v2/operations/{id}/evidence":{"get":{"operationId":"_operations__id__evidence","summary":"Evidence","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^[A-Za-z0-9_-]+$"}}],"responses":{"200":{"description":"Published snapshot response","headers":{"ETag":{"schema":{"type":"string"},"description":"SHA-256 of this response representation."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Evidence"}}}},"304":{"description":"Representation unchanged"},"400":{"description":"Invalid query or path","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource absent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"405":{"description":"Read-only resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Response exceeds 4 MiB; reduce limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Published snapshot unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v2/stats":{"get":{"operationId":"_stats","summary":"Stats","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":1000},"description":"Case and diacritic insensitive substring; no automatic translation."},{"name":"source_id","in":"query","required":false,"schema":{"type":"string"},"description":"Comma-separated source IDs (OR)."},{"name":"status","in":"query","required":false,"schema":{"const":"published"},"description":"Only the published snapshot is public."},{"name":"from","in":"query","required":false,"schema":{"type":"string"},"description":"YYYY[-MM[-DD]]; interval overlap, unknown starts excluded."},{"name":"to","in":"query","required":false,"schema":{"type":"string"},"description":"Inclusive bound; partial dates expanded only for filtering."},{"name":"date_precision","in":"query","required":false,"schema":{"type":"string"},"description":"Comma-separated values, OR within this family; AND between families."},{"name":"territory","in":"query","required":false,"schema":{"type":"string"},"description":"Comma-separated values, OR within this family; AND between families."},{"name":"territory_role","in":"query","required":false,"schema":{"type":"string"},"description":"Comma-separated values, OR within this family; AND between families."},{"name":"type","in":"query","required":false,"schema":{"type":"string"},"description":"Comma-separated values, OR within this family; AND between families."},{"name":"has_geometry","in":"query","required":false,"schema":{"type":"boolean"},"description":"Any documented geometry, including representative points; not a precision guarantee."},{"name":"min_sources","in":"query","required":false,"schema":{"type":"integer","minimum":0},"description":"Minimum number of operation-level source IDs."},{"name":"bbox","in":"query","required":false,"schema":{"type":"string"},"description":"west,south,east,north in WGS84; west > east crosses the antimeridian. Any point intersects."}],"responses":{"200":{"description":"Published snapshot response","headers":{"ETag":{"schema":{"type":"string"},"description":"SHA-256 of this response representation."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Stats"}}}},"304":{"description":"Representation unchanged"},"400":{"description":"Invalid query or path","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource absent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"405":{"description":"Read-only resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Response exceeds 4 MiB; reduce limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Published snapshot unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v2/coverage":{"get":{"operationId":"_coverage","summary":"Coverage","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":1000},"description":"Case and diacritic insensitive substring; no automatic translation."},{"name":"source_id","in":"query","required":false,"schema":{"type":"string"},"description":"Comma-separated source IDs (OR)."},{"name":"status","in":"query","required":false,"schema":{"const":"published"},"description":"Only the published snapshot is public."},{"name":"from","in":"query","required":false,"schema":{"type":"string"},"description":"YYYY[-MM[-DD]]; interval overlap, unknown starts excluded."},{"name":"to","in":"query","required":false,"schema":{"type":"string"},"description":"Inclusive bound; partial dates expanded only for filtering."},{"name":"date_precision","in":"query","required":false,"schema":{"type":"string"},"description":"Comma-separated values, OR within this family; AND between families."},{"name":"territory","in":"query","required":false,"schema":{"type":"string"},"description":"Comma-separated values, OR within this family; AND between families."},{"name":"territory_role","in":"query","required":false,"schema":{"type":"string"},"description":"Comma-separated values, OR within this family; AND between families."},{"name":"type","in":"query","required":false,"schema":{"type":"string"},"description":"Comma-separated values, OR within this family; AND between families."},{"name":"has_geometry","in":"query","required":false,"schema":{"type":"boolean"},"description":"Any documented geometry, including representative points; not a precision guarantee."},{"name":"min_sources","in":"query","required":false,"schema":{"type":"integer","minimum":0},"description":"Minimum number of operation-level source IDs."},{"name":"bbox","in":"query","required":false,"schema":{"type":"string"},"description":"west,south,east,north in WGS84; west > east crosses the antimeridian. Any point intersects."}],"responses":{"200":{"description":"Published snapshot response","headers":{"ETag":{"schema":{"type":"string"},"description":"SHA-256 of this response representation."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Coverage"}}}},"304":{"description":"Representation unchanged"},"400":{"description":"Invalid query or path","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource absent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"405":{"description":"Read-only resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Response exceeds 4 MiB; reduce limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Published snapshot unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v2/releases":{"get":{"operationId":"_releases","summary":"Releases","parameters":[],"responses":{"200":{"description":"Published snapshot response","headers":{"ETag":{"schema":{"type":"string"},"description":"SHA-256 of this response representation."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Releases"}}}},"304":{"description":"Representation unchanged"},"400":{"description":"Invalid query or path","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource absent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"405":{"description":"Read-only resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Response exceeds 4 MiB; reduce limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Published snapshot unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v2/releases/current":{"get":{"operationId":"_releases_current","summary":"Current","parameters":[],"responses":{"200":{"description":"Published snapshot response","headers":{"ETag":{"schema":{"type":"string"},"description":"SHA-256 of this response representation."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Current"}}}},"304":{"description":"Representation unchanged"},"400":{"description":"Invalid query or path","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource absent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"405":{"description":"Read-only resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Response exceeds 4 MiB; reduce limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Published snapshot unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v2/exports":{"get":{"operationId":"_exports","summary":"Exports","parameters":[],"responses":{"200":{"description":"Published snapshot response","headers":{"ETag":{"schema":{"type":"string"},"description":"SHA-256 of this response representation."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Exports"}}}},"304":{"description":"Representation unchanged"},"400":{"description":"Invalid query or path","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource absent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"405":{"description":"Read-only resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Response exceeds 4 MiB; reduce limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Published snapshot unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v2/releases/{id}":{"get":{"operationId":"_releases__id_","summary":"ReleaseResponse","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^data-[0-9]{4}\\.(0[1-9]|1[0-2])\\.[1-9][0-9]*$"}}],"responses":{"200":{"description":"Published snapshot response","headers":{"ETag":{"schema":{"type":"string"},"description":"SHA-256 of this response representation."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReleaseResponse"}}}},"304":{"description":"Representation unchanged"},"400":{"description":"Invalid query or path","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource absent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"405":{"description":"Read-only resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Response exceeds 4 MiB; reduce limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Published snapshot unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v2/openapi.json":{"get":{"operationId":"openapi","summary":"OpenAPI 3.1 contract","responses":{"200":{"description":"OpenAPI document","content":{"application/json":{"schema":{"type":"object","required":["openapi","info","paths","components"]}}}}}}}},"components":{"schemas":{"Meta":{"type":"object","additionalProperties":false,"required":["api_version","dataset_release","snapshot_sha256","corpus_is_incomplete"],"properties":{"api_version":{"const":"v2"},"dataset_release":{"type":["string","null"],"pattern":"^data-[0-9]{4}\\.(0[1-9]|1[0-2])\\.[1-9][0-9]*$"},"snapshot_sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"corpus_is_incomplete":{"const":true},"total":{"type":"integer","minimum":0},"count":{"type":"integer","minimum":0},"page":{"type":"integer","minimum":1},"limit":{"type":"integer","minimum":1,"maximum":200},"has_next":{"type":"boolean"},"sort":{"type":"string"},"release_workflow_enabled":{"type":"boolean"},"notice":{"type":"string"},"manifest_url":{"type":"string"},"calculation_version":{"const":"coverage-v1"},"model_sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"query_sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"}}},"CollectionMeta":{"type":"object","additionalProperties":false,"required":["api_version","dataset_release","snapshot_sha256","corpus_is_incomplete","total","count","page","limit","has_next","sort"],"properties":{"api_version":{"const":"v2"},"dataset_release":{"type":["string","null"],"pattern":"^data-[0-9]{4}\\.(0[1-9]|1[0-2])\\.[1-9][0-9]*$"},"snapshot_sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"corpus_is_incomplete":{"const":true},"total":{"type":"integer","minimum":0},"count":{"type":"integer","minimum":0},"page":{"type":"integer","minimum":1},"limit":{"type":"integer","minimum":1,"maximum":200},"has_next":{"type":"boolean"},"sort":{"type":"string"},"release_workflow_enabled":{"type":"boolean"},"notice":{"type":"string"},"manifest_url":{"type":"string"},"calculation_version":{"const":"coverage-v1"},"model_sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"query_sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"}}},"Error":{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}}},"Operation":{"type":"object","additionalProperties":false,"required":["id","schema_version","title","start_date","end_date","locations","territorial_assignments","source_ids","editorial_status","quality_flags","provenance","legacy_territorial_label"],"properties":{"id":{"type":"string","pattern":"^[A-Za-z0-9_-]+$"},"schema_version":{"const":"2.0.0"},"title":{"type":"object","additionalProperties":false,"required":["fr","ar"],"properties":{"fr":{"type":["string","null"],"minLength":1},"ar":{"type":["string","null"]}}},"start_date":{"$ref":"#/components/schemas/Operation/$defs/date"},"end_date":{"$ref":"#/components/schemas/Operation/$defs/date"},"locations":{"type":"array","minItems":1,"items":{"type":"object","additionalProperties":false,"required":["label","geometry","geometry_role","review_status"],"properties":{"place_id":{"type":"string","pattern":"^PLC_[A-Za-z0-9_-]+$"},"source_ids":{"type":"array","minItems":1,"uniqueItems":true,"items":{"type":"string","pattern":"^SRC_[a-f0-9]{24}$"}},"label":{"type":["string","null"]},"geometry":{"oneOf":[{"type":"null"},{"type":"object","additionalProperties":false,"required":["type","coordinates"],"properties":{"type":{"const":"Point"},"coordinates":{"type":"array","minItems":2,"maxItems":2,"items":{"type":"number"}}}}]},"geometry_role":{"enum":["representative_point","unknown","approximate_site","exact_site"]},"review_status":{"enum":["needs_review","reviewed"]}}}},"territorial_assignments":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["territory_id","role","source_ids"],"properties":{"territory_id":{"type":"string","pattern":"^[A-Za-z0-9_-]+$"},"role":{"enum":["primary","secondary","cross_territorial","uncertain"]},"source_ids":{"type":"array","minItems":1,"uniqueItems":true,"items":{"type":"string"}}}}},"legacy_territorial_label":{"type":["string","null"]},"source_ids":{"type":"array","uniqueItems":true,"items":{"type":"string","pattern":"^SRC_[a-f0-9]{24}$"}},"editorial_status":{"enum":["proposed","under_review","published","disputed","withdrawn"]},"quality_flags":{"type":"array","uniqueItems":true,"items":{"type":"string"}},"provenance":{"type":"object","additionalProperties":false,"required":["source_commit","publication_basis","human_review_recorded"],"properties":{"source_commit":{"type":"string","pattern":"^[a-f0-9]{40}$"},"publication_basis":{"enum":["previously_public_legacy_corpus","human_review"]},"human_review_recorded":{"type":"boolean"}}},"legacy":{"type":"object"},"description":{"$ref":"#/components/schemas/Operation/$defs/text"},"event_type":{"type":"array","minItems":0,"uniqueItems":true,"items":{"type":"string","minLength":1}},"aliases":{"type":"array","uniqueItems":true,"items":{"type":"object","additionalProperties":false,"required":["value","language","source_ids"],"properties":{"value":{"type":"string","minLength":1,"maxLength":1000},"language":{"enum":["fr","ar"]},"source_ids":{"type":"array","minItems":1,"uniqueItems":true,"items":{"type":"string","pattern":"^SRC_[a-f0-9]{24}$"}}}}},"participants":{"type":"array","uniqueItems":true,"items":{"type":"object","additionalProperties":false,"required":["entity_id","role","source_ids"],"properties":{"entity_id":{"type":"string","pattern":"^(PER|ORG)_[A-Za-z0-9_-]+$"},"role":{"type":"string","minLength":1},"source_ids":{"type":"array","minItems":1,"uniqueItems":true,"items":{"type":"string","pattern":"^SRC_[a-f0-9]{24}$"}}}}},"commanders":{"type":"array","items":{"type":"string","minLength":1}},"strategic_impact":{"$ref":"#/components/schemas/Operation/$defs/text"},"outcomes":{"type":"object","additionalProperties":false,"properties":{"aln":{"type":["string","null"]},"forces_francaises":{"type":["string","null"]},"civils":{"type":["string","null"]}}},"review_history":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["reviewer","decision","reference","reason","reviewed_at"],"properties":{"reviewer":{"type":"string","minLength":1},"decision":{"enum":["approved","rejected","needs_information"]},"reference":{"type":"string","format":"uri"},"reason":{"type":"string","minLength":1},"content_sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"reviewed_at":{"type":"string","format":"date-time"}}}},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"editorial_notes":{"type":"array","items":{"type":"string"}}},"$defs":{"date":{"type":"object","additionalProperties":false,"required":["earliest","latest","precision","certainty"],"properties":{"earliest":{"type":["string","null"],"format":"date"},"latest":{"type":["string","null"],"format":"date"},"precision":{"enum":["day","month","year","range","unknown"]},"certainty":{"enum":["documented","approximate","disputed","unknown"]}}},"text":{"type":"object","additionalProperties":false,"required":["fr","ar"],"properties":{"fr":{"type":["string","null"],"minLength":1},"ar":{"type":["string","null"]}}}},"allOf":[{"if":{"properties":{"provenance":{"properties":{"publication_basis":{"const":"previously_public_legacy_corpus"}},"type":"object"}}},"then":{"required":["legacy"],"properties":{"legacy":{}}}},{"if":{"properties":{"provenance":{"properties":{"publication_basis":{"const":"human_review"}},"type":"object"}}},"then":{"required":["description","event_type","review_history","created_at","updated_at"],"properties":{"description":{},"event_type":{},"review_history":{},"created_at":{},"updated_at":{}}}}]},"Source":{"type":"object","additionalProperties":false,"required":["source_id","title","review_status"],"properties":{"source_id":{"type":"string","pattern":"^SRC_[a-f0-9]{24}$"},"title":{"type":["string","null"]},"legacy":{"type":"object"},"review_status":{"enum":["needs_review","reviewed"]},"author":{"type":["string","null"]},"publication_date":{"type":["string","null"]},"document_type":{"type":["string","null"]},"url":{"type":["string","null"]},"locator":{"type":["string","null"]},"rights":{"type":["string","null"]},"source_classification":{"enum":["primary","secondary","unknown","not_recorded"]},"review_history":{"$ref":"#/components/schemas/Operation/properties/review_history"},"notes":{"type":["string","null"]}}},"Entity":{"type":"object","additionalProperties":false,"required":["id","kind","label","names","source_ids","editorial_status","review_history","created_at","updated_at","relations"],"properties":{"id":{"type":"string","pattern":"^(PER|ORG|PLC)_[A-Za-z0-9_-]+$","maxLength":128},"kind":{"enum":["person","organization","place"]},"label":{"type":"object","additionalProperties":false,"required":["fr","ar"],"properties":{"fr":{"type":["string","null"],"minLength":1},"ar":{"type":["string","null"],"minLength":1}}},"names":{"type":"array","minItems":1,"uniqueItems":true,"items":{"type":"object","additionalProperties":false,"required":["value","language","role","source_ids","valid_from","valid_to"],"properties":{"value":{"type":"string","minLength":1,"maxLength":500},"language":{"type":"string","pattern":"^[a-z]{2,3}(-[A-Za-z0-9]+)*$"},"script":{"type":["string","null"],"pattern":"^[A-Z][a-z]{3}$"},"role":{"enum":["preferred","alias","transliteration","historical_name"]},"source_ids":{"type":"array","uniqueItems":true,"items":{"type":"string","pattern":"^SRC_[a-f0-9]{24}$"}},"valid_from":{"type":["string","null"],"format":"date"},"valid_to":{"type":["string","null"],"format":"date"}}}},"source_ids":{"type":"array","uniqueItems":true,"items":{"type":"string","pattern":"^SRC_[a-f0-9]{24}$"}},"editorial_status":{"enum":["proposed","under_review","published","withdrawn"]},"review_history":{"$ref":"#/components/schemas/Operation/properties/review_history"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"geometry":{"oneOf":[{"type":"null"},{"type":"object","additionalProperties":false,"required":["type","coordinates"],"properties":{"type":{"const":"Point"},"coordinates":{"type":"array","minItems":2,"maxItems":2,"prefixItems":[{"type":"number","minimum":-180,"maximum":180},{"type":"number","minimum":-90,"maximum":90}],"items":false}}}]},"geometry_role":{"enum":["unknown","exact_site","approximate_site","representative_point"]},"geometry_source_ids":{"type":"array","uniqueItems":true,"items":{"type":"string"}},"relations":{"type":"array","uniqueItems":true,"items":{"type":"object","additionalProperties":false,"required":["type","target_id","source_ids","review_history"],"properties":{"type":{"enum":["same_as_candidate","same_as"]},"target_id":{"type":"string","pattern":"^(PER|ORG|PLC)_[A-Za-z0-9_-]+$"},"source_ids":{"type":"array","uniqueItems":true,"items":{"type":"string"}},"review_history":{"$ref":"#/components/schemas/Operation/properties/review_history"}}}}}},"Claim":{"type":"object","additionalProperties":false,"required":["id","subject","predicate","value","status","editorial_status","evidence","contradicts","review_history","created_at","updated_at"],"properties":{"id":{"type":"string","pattern":"^CLM_[A-Za-z0-9_-]+$","maxLength":128},"subject":{"type":"string","pattern":"^[A-Za-z0-9_-]+$","maxLength":128},"predicate":{"type":"string","minLength":1,"maxLength":200},"value":{"oneOf":[{"type":"number"},{"type":"boolean"},{"type":"null"},{"type":"object","additionalProperties":false,"required":["type","lower","upper"],"properties":{"type":{"const":"interval"},"lower":{"type":"number"},"upper":{"type":"number"}}},{"type":"object","additionalProperties":false,"required":["fr","ar"],"properties":{"fr":{"type":["string","null"],"minLength":1,"maxLength":10000},"ar":{"type":["string","null"],"minLength":1,"maxLength":10000}}}]},"unit":{"type":"string","minLength":1,"maxLength":100},"context":{"type":"object","additionalProperties":false,"required":["scope","population","time_scope","valid_from","valid_to"],"properties":{"scope":{"type":"string","minLength":1,"maxLength":500},"population":{"type":"string","minLength":1,"maxLength":500},"time_scope":{"enum":["entire_event","specific_period","unknown"]},"valid_from":{"type":["string","null"],"format":"date"},"valid_to":{"type":["string","null"],"format":"date"}}},"status":{"enum":["supported","contested","unverified","withdrawn"]},"editorial_status":{"enum":["proposed","under_review","published","withdrawn"]},"evidence":{"type":"array","maxItems":100,"uniqueItems":true,"items":{"type":"object","additionalProperties":false,"required":["source_id","locator"],"properties":{"source_id":{"type":"string","pattern":"^SRC_[a-f0-9]{24}$"},"locator":{"type":"string","minLength":1,"maxLength":2000},"quotation":{"type":"string","minLength":1,"maxLength":500}}}},"contradicts":{"type":"array","uniqueItems":true,"maxItems":100,"items":{"type":"string","pattern":"^CLM_[A-Za-z0-9_-]+$"}},"review_history":{"$ref":"#/components/schemas/Operation/properties/review_history"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"Territory":{"type":"object","additionalProperties":false,"required":["id","names","type","valid_from","valid_to","source_ids","review_status"],"properties":{"id":{"type":"string","pattern":"^[A-Za-z0-9_-]+$"},"names":{"type":"object","additionalProperties":false,"required":["fr","ar"],"properties":{"fr":{"type":"string","minLength":1},"ar":{"type":["string","null"]}}},"type":{"enum":["editorial_category","historical_unit"]},"valid_from":{"type":["string","null"],"format":"date"},"valid_to":{"type":["string","null"],"format":"date"},"source_ids":{"type":"array","uniqueItems":true,"items":{"type":"string"}},"review_status":{"enum":["needs_review","reviewed"]},"review_history":{"$ref":"#/components/schemas/Operation/properties/review_history"}}},"CoverageReport":{"type":"object","additionalProperties":false,"required":["calculation_version","scope","corpus_is_incomplete","pending_contributions","summary","groups","methodology"],"properties":{"calculation_version":{"const":"coverage-v1"},"scope":{"type":"string"},"corpus_is_incomplete":{"const":true},"pending_contributions":{"type":"null"},"summary":{"type":"object","$ref":"#/components/schemas/CoverageReport/$defs/metrics","unevaluatedProperties":false},"groups":{"type":"object","additionalProperties":false,"required":["year","territory","type"],"properties":{"year":{"type":"array","items":{"$ref":"#/components/schemas/CoverageReport/$defs/row"}},"territory":{"type":"array","items":{"$ref":"#/components/schemas/CoverageReport/$defs/row"}},"type":{"type":"array","items":{"$ref":"#/components/schemas/CoverageReport/$defs/row"}}}},"methodology":{"type":"object","additionalProperties":false,"required":["year_domain","year_basis","group_totals_are_additive","primary_source_rule","pending_contributions_status"],"properties":{"year_domain":{"enum":["inclusive_calendar_years","observed_years_only"]},"year_basis":{"type":"string"},"group_totals_are_additive":{"type":"object","additionalProperties":false,"required":["year","territory","type"],"properties":{"year":{"const":true},"territory":{"const":false},"type":{"const":false}}},"primary_source_rule":{"type":"string"},"pending_contributions_status":{"const":"not_measured"}}}},"$defs":{"metrics":{"type":"object","required":["total_operations","unique_sources","without_sources","without_identified_primary_source","uncertain_start_dates","uncertain_locations","without_structured_territory","operations_with_contested_claims","without_recorded_review"],"properties":{"total_operations":{"type":"integer","minimum":0},"unique_sources":{"type":"integer","minimum":0},"without_sources":{"type":"integer","minimum":0},"without_identified_primary_source":{"type":"integer","minimum":0},"uncertain_start_dates":{"type":"integer","minimum":0},"uncertain_locations":{"type":"integer","minimum":0},"without_structured_territory":{"type":"integer","minimum":0},"operations_with_contested_claims":{"type":"integer","minimum":0},"without_recorded_review":{"type":"integer","minimum":0}}},"row":{"type":"object","allOf":[{"$ref":"#/components/schemas/CoverageReport/$defs/metrics"}],"required":["key","label","note"],"properties":{"key":{"type":"string"},"label":{"type":"object","additionalProperties":false,"required":["fr","ar"],"properties":{"fr":{"type":["string","null"]},"ar":{"type":["string","null"]}}},"note":{"enum":[null,"no_current_record"]}},"unevaluatedProperties":false}}},"OperationResponse":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/Operation"},"meta":{"$ref":"#/components/schemas/Meta"}}},"OperationCollection":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Operation"}},"meta":{"$ref":"#/components/schemas/CollectionMeta"}}},"SourceResponse":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/Source"},"meta":{"$ref":"#/components/schemas/Meta"}}},"SourceCollection":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Source"}},"meta":{"$ref":"#/components/schemas/CollectionMeta"}}},"EntityResponse":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/Entity"},"meta":{"$ref":"#/components/schemas/Meta"}}},"EntityCollection":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Entity"}},"meta":{"$ref":"#/components/schemas/CollectionMeta"}}},"ClaimResponse":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/Claim"},"meta":{"$ref":"#/components/schemas/Meta"}}},"ClaimCollection":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Claim"}},"meta":{"$ref":"#/components/schemas/CollectionMeta"}}},"TerritoryResponse":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/Territory"},"meta":{"$ref":"#/components/schemas/Meta"}}},"TerritoryCollection":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Territory"}},"meta":{"$ref":"#/components/schemas/CollectionMeta"}}},"GeoJSON":{"type":"object","additionalProperties":false,"required":["type","features","meta"],"properties":{"type":{"const":"FeatureCollection"},"meta":{"$ref":"#/components/schemas/CollectionMeta"},"features":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["type","id","geometry","properties"],"properties":{"type":{"const":"Feature"},"id":{"type":"string"},"geometry":{"oneOf":[{"type":"null"},{"type":"object","required":["type","coordinates"],"properties":{"type":{"enum":["Point","MultiPoint"]},"coordinates":{"type":"array"}}}]},"properties":{"$ref":"#/components/schemas/Operation"}}}}}},"Stats":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"type":"object","additionalProperties":false,"required":["total_operations","total_sources","total_claims","by_start_year","by_start_precision","by_type"],"properties":{"total_operations":{"type":"integer","minimum":0},"total_sources":{"type":"integer","minimum":0},"total_claims":{"type":"integer","minimum":0},"by_start_year":{"type":"object","additionalProperties":{"type":"integer","minimum":0}},"by_start_precision":{"type":"object","additionalProperties":{"type":"integer","minimum":0}},"by_type":{"type":"object","additionalProperties":{"type":"integer","minimum":0}}}},"meta":{"$ref":"#/components/schemas/Meta"}}},"Coverage":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"type":"object","additionalProperties":false,"required":["scope","total_operations","unknown_start_dates","without_geometry","without_structured_territory","without_sources","legacy_imports_needing_review","contested_claims","pending_contributions","by_start_year","empty_selection_message","documentary_report"],"properties":{"scope":{"type":"string"},"total_operations":{"type":"integer","minimum":0},"unknown_start_dates":{"type":"integer","minimum":0},"without_geometry":{"type":"integer","minimum":0},"without_structured_territory":{"type":"integer","minimum":0},"without_sources":{"type":"integer","minimum":0},"legacy_imports_needing_review":{"type":"integer","minimum":0},"contested_claims":{"type":"integer","minimum":0},"pending_contributions":{"type":"null"},"by_start_year":{"type":"object","additionalProperties":{"type":"integer","minimum":0}},"empty_selection_message":{"type":["string","null"]},"documentary_report":{"$ref":"#/components/schemas/CoverageReport"}}},"meta":{"$ref":"#/components/schemas/Meta"}}},"Manifest":{"type":"object","required":["schema_version","publication_status","canonical_sha256","corpus_is_incomplete","total","checksums"],"properties":{"schema_version":{"const":"2.0.0"},"publication_status":{"const":"validated_snapshot"},"canonical_sha256":{"type":"string"},"total":{"type":"integer","minimum":0},"corpus_is_incomplete":{"const":true},"checksums":{"type":"object","additionalProperties":{"type":"string","pattern":"^[a-f0-9]{64}$"}}}},"Current":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/Manifest"},"meta":{"$ref":"#/components/schemas/Meta"}}},"Release":{"type":"object","additionalProperties":false,"required":["id","published_at","source_commit","schema_version","total","canonical_sha256","snapshot_manifest_sha256","summary","changes","review_scope","corpus_is_incomplete","license_notice","archive_sha256","files"],"properties":{"id":{"type":"string","pattern":"^data-[0-9]{4}\\.(0[1-9]|1[0-2])\\.[1-9][0-9]*$"},"published_at":{"type":"string","format":"date-time","pattern":"Z$"},"source_commit":{"type":"string","pattern":"^[a-f0-9]{40}$"},"schema_version":{"const":"2.0.0"},"total":{"type":"integer","minimum":0},"canonical_sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"snapshot_manifest_sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"summary":{"type":"string","minLength":1,"maxLength":2000},"changes":{"type":"array","minItems":1,"items":{"type":"string","minLength":1,"maxLength":2000}},"review_scope":{"const":"technical_publication_of_existing_corpus"},"corpus_is_incomplete":{"const":true},"license_notice":{"type":"string","minLength":1},"archive_sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"files":{"type":"object","minProperties":1,"propertyNames":{"pattern":"^[A-Za-z0-9_./-]+$"},"additionalProperties":{"type":"string","pattern":"^[a-f0-9]{64}$"}},"archive_url":{"type":"string","pattern":"^/data/releases/"},"manifest_url":{"type":"string","pattern":"^/data/releases/"},"citation_url":{"type":"string","pattern":"^/data/releases/"},"changelog_url":{"type":"string","pattern":"^/data/releases/"},"checksum_url":{"type":"string","pattern":"^/data/releases/"}}},"Releases":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Release"}},"meta":{"$ref":"#/components/schemas/Meta"}}},"ReleaseResponse":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/Release"},"meta":{"$ref":"#/components/schemas/Meta"}}},"Exports":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["name","url","sha256"],"properties":{"name":{"type":"string"},"url":{"type":"string","pattern":"^/data/canonical/"},"sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"}}}},"meta":{"$ref":"#/components/schemas/Meta"}}},"Evidence":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"type":"object","additionalProperties":false,"required":["operation_id","claims","sources","legacy_evidence","notice"],"properties":{"operation_id":{"type":"string"},"claims":{"type":"array","items":{"$ref":"#/components/schemas/Claim"}},"sources":{"type":"array","items":{"$ref":"#/components/schemas/Source"}},"legacy_evidence":{"type":"boolean"},"notice":{"type":"string"}}},"meta":{"$ref":"#/components/schemas/Meta"}}},"Index":{"type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"type":"object","additionalProperties":false,"required":["resources","documentation"],"properties":{"resources":{"type":"array","items":{"type":"string"}},"documentation":{"type":"string"}}},"meta":{"$ref":"#/components/schemas/Meta"}}}}}}