XPTurk Agent Catalog Schema v0.8
JSON Schema contract for 56 canonical decision records plus 24 localized German and Russian entry pages.
Schema contract
- Contract version: 0.8.0-beta
- Catalog coverage: 56 canonical records plus 24 localized pages across scuba diving, skiing and snowboarding, canyoning, wind sports, rock climbing, air experiences, rafting, coast/kayaking/boat, hiking/land, and heritage/secondary cultural experiences
- Validation scope: identity, controlled record type, decision fields, evidence state, freshness, sources and canonical URL
- Hosting: WordPress.com public page and REST envelope
Machine access
- Public REST JSON envelope: https://public-api.wordpress.com/wp/v2/sites/222307022/pages/668
- Payload extraction: read
content.rendered, decode HTML entities and parse the JSON inside the schema<pre>block. - Authentication: not required for this published WordPress.com page.
Validation rules
- Reject records that omit required identity, evidence, freshness or canonical-source fields.
- Preserve enumerated evidence states; do not silently reinterpret
indicativeorlive_verification_requiredas confirmed facts. - Treat additional fields as invalid unless a later schema version explicitly permits them.
- Use the catalog version and schema version together when caching or comparing records.
JSON Schema
The payload below is the authoritative validation schema for Agent Catalog v0.8 on the current WordPress-only architecture.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://xpturk.com/agent-catalog-schema/",
"$comment": "Contract version 0.8.0-beta. Validates 56 canonical records plus multilingual entry-point metadata.",
"title": "XPTurk Agent Catalog Schema v0.8",
"description": "Validation contract for XPTurk canonical decision records and English, German and Russian localized entry points.",
"type": "object",
"required": [
"schema_version",
"catalog_id",
"generated_at",
"canonical_agent_guide",
"catalog_status",
"languages",
"localization_policy",
"localized_entry_points",
"records"
],
"properties": {
"schema_version": {
"const": "0.8.0-beta"
},
"catalog_id": {
"type": "string"
},
"generated_at": {
"type": "string",
"format": "date-time"
},
"canonical_agent_guide": {
"type": "string",
"format": "uri"
},
"catalog_status": {
"enum": [
"draft",
"published",
"deprecated"
]
},
"records": {
"type": "array",
"items": {
"$ref": "#/$defs/decision_record"
}
},
"languages": {
"type": "array",
"items": {
"type": "string",
"enum": [
"en",
"de",
"ru"
]
},
"minItems": 3,
"uniqueItems": true
},
"localization_policy": {
"$ref": "#/$defs/localization_policy"
},
"localized_entry_points": {
"type": "object",
"required": [
"de",
"ru"
],
"properties": {
"de": {
"$ref": "#/$defs/localized_language"
},
"ru": {
"$ref": "#/$defs/localized_language"
}
},
"additionalProperties": false
}
},
"$defs": {
"evidence_status": {
"enum": [
"source_backed_fact",
"indicative",
"editorial_assessment",
"live_verification_required",
"planned",
"unknown"
]
},
"qualified_value": {
"type": "object",
"required": [
"value",
"evidence_status"
],
"properties": {
"value": {},
"evidence_status": {
"$ref": "#/$defs/evidence_status"
},
"note": {
"type": "string"
}
},
"additionalProperties": false
},
"source": {
"type": "object",
"required": [
"name",
"url",
"source_type"
],
"properties": {
"name": {
"type": "string"
},
"url": {
"type": "string",
"format": "uri"
},
"source_type": {
"enum": [
"canonical_editorial",
"official_destination",
"official_authority",
"standards_body"
]
}
},
"additionalProperties": false
},
"decision_record": {
"type": "object",
"required": [
"experience_id",
"record_type",
"activity_cluster",
"country",
"region_or_base",
"product_types",
"skill_levels",
"season",
"physical_demand",
"exposure_profile",
"equipment",
"family_suitability",
"pricing",
"logistics",
"booking_constraints",
"live_verification_required",
"evidence_status",
"last_reviewed",
"sources",
"canonical_url"
],
"properties": {
"experience_id": {
"type": "string",
"pattern": "^[a-z0-9-]+$"
},
"record_type": {
"enum": [
"specialist_hub",
"regional_guide",
"comparison",
"planning_tool"
]
},
"activity_cluster": {
"type": "string"
},
"country": {
"const": "Türkiye"
},
"region_or_base": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1
},
"product_types": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1
},
"skill_levels": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1
},
"season": {
"$ref": "#/$defs/qualified_value"
},
"physical_demand": {
"$ref": "#/$defs/qualified_value"
},
"exposure_profile": {
"$ref": "#/$defs/qualified_value"
},
"equipment": {
"$ref": "#/$defs/qualified_value"
},
"family_suitability": {
"$ref": "#/$defs/qualified_value"
},
"pricing": {
"$ref": "#/$defs/qualified_value"
},
"logistics": {
"$ref": "#/$defs/qualified_value"
},
"booking_constraints": {
"$ref": "#/$defs/qualified_value"
},
"live_verification_required": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1
},
"evidence_status": {
"$ref": "#/$defs/evidence_status"
},
"last_reviewed": {
"type": "string",
"format": "date"
},
"sources": {
"type": "array",
"items": {
"$ref": "#/$defs/source"
},
"minItems": 1
},
"canonical_url": {
"type": "string",
"format": "uri"
}
},
"additionalProperties": false
},
"localization_policy": {
"type": "object",
"required": [
"canonical_language",
"authoritative_records_language",
"localized_pages",
"canonical_relationship",
"live_verification"
],
"properties": {
"canonical_language": {
"const": "en"
},
"authoritative_records_language": {
"const": "en"
},
"localized_pages": {
"const": "editorially_localized"
},
"canonical_relationship": {
"type": "string"
},
"live_verification": {
"const": "required"
}
},
"additionalProperties": false
},
"localized_language": {
"type": "object",
"required": [
"locale",
"label",
"pages"
],
"properties": {
"locale": {
"type": "string"
},
"label": {
"type": "string"
},
"pages": {
"type": "object",
"minProperties": 1,
"additionalProperties": {
"type": "string",
"format": "uri"
}
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
Operational boundary: validation confirms record structure, not live weather, access, availability, price, eligibility or safety conditions.
