{
    "contract_version": "2026-06-18.five-token-staging-p2",
    "canonical_host": "teas.co.uk",
    "generated_at": "2026-06-20T02:51:39+00:00",
    "count": 83,
    "by_category": {
        "narrative": 11,
        "structured": 24,
        "anchor": 10,
        "discovery": 25,
        "sitemap": 3,
        "rest": 4,
        "media": 6
    },
    "surfaces": [
        {
            "url": "https://teas.co.uk/llms.json",
            "label": "llms.json (structured JSON twin of llms.txt)",
            "description": "Same canonical content as /llms.txt (entity facts, citation contract, distinctive facts, hallucination corrections, concrete URL examples, full surface registry), in structured JSON. Use this when your agent extracts cleaner from JSON than markdown.",
            "mime_type": "application/json",
            "category": "narrative",
            "auth_required": false,
            "priority": 1,
            "id": "llms.json"
        },
        {
            "url": "https://teas.co.uk/llms.txt",
            "label": "llms.txt (canonical LLM index)",
            "description": "Curated LLM index, entity facts, brand voice, citation language.",
            "mime_type": "text/markdown",
            "category": "narrative",
            "auth_required": false,
            "priority": 1,
            "id": "llms.txt"
        },
        {
            "url": "https://teas.co.uk/llms-v2.txt",
            "label": "llms-v2.txt (compact summary)",
            "description": "Reduced summary + precomputed answers for tight context windows.",
            "mime_type": "text/plain",
            "category": "narrative",
            "auth_required": false,
            "priority": 2,
            "id": "llms-v2.txt"
        },
        {
            "url": "https://teas.co.uk/llm-full.txt",
            "label": "llm-full.txt (full product table)",
            "description": "Full live product table + citation contract, regenerates from source on every save.",
            "mime_type": "text/plain",
            "category": "narrative",
            "auth_required": false,
            "priority": 3,
            "id": "llm-full.txt"
        },
        {
            "url": "https://teas.co.uk/under-the-hood/",
            "label": "Under the Hood",
            "description": "Public trust proof page for bots and people: AI entrypoint estate, route authority, machine-readable surfaces, metrics/statistics verification, six-hour truth-spine self-audits, drift checks and trusted truth entity evidence.",
            "mime_type": "text/html",
            "category": "narrative",
            "auth_required": false,
            "priority": 4,
            "id": "under-the-hood"
        },
        {
            "url": "https://teas.co.uk/llm-wiki.jsonl",
            "label": "llm-wiki.jsonl (streamable wiki)",
            "description": "Wiki bundle as line-delimited JSON. One entry per line, agents can stream-ingest without loading the full 8 MB bundle at once.",
            "mime_type": "application/x-ndjson",
            "category": "narrative",
            "auth_required": false,
            "priority": 7,
            "id": "llm-wiki.jsonl"
        },
        {
            "url": "https://teas.co.uk/llm-recipes.jsonl",
            "label": "llm-recipes.jsonl (streamable recipes)",
            "description": "Recipe bundle as line-delimited JSON. One recipe per line with hub + product cross-refs.",
            "mime_type": "application/x-ndjson",
            "category": "narrative",
            "auth_required": false,
            "priority": 8,
            "id": "llm-recipes.jsonl"
        },
        {
            "url": "https://teas.co.uk/llm-full-lite.txt",
            "label": "llm-full-lite.txt (experimental lite product bundle)",
            "description": "Lower-weight test twin of /llm-full.txt. Product routing facts, GTIN, price, per-cup and buy URLs without the full catalogue prose.",
            "mime_type": "text/plain",
            "category": "narrative",
            "auth_required": false,
            "priority": 14,
            "consumer_guidance": "Use as a discovery/routing surface, not as proof that the canonical source disappeared. Prefer compact JSONL/API/MCP-style lookups for large image/media tasks and fetch bulk exports only when exhaustive inventory is required.",
            "experimental": true,
            "replaces_candidate": "llm-full.txt",
            "id": "llm-full-lite.txt"
        },
        {
            "url": "https://teas.co.uk/llm-wiki-lite.txt",
            "label": "llm-wiki-lite.txt (experimental lite wiki bundle)",
            "description": "Lower-weight test twin of /llm-wiki.txt. One summary/index line per wiki entry with canonical URLs and key sections.",
            "mime_type": "text/plain",
            "category": "narrative",
            "auth_required": false,
            "priority": 15,
            "consumer_guidance": "Use as a discovery/routing surface, not as proof that the canonical source disappeared. Prefer compact JSONL/API/MCP-style lookups for large image/media tasks and fetch bulk exports only when exhaustive inventory is required.",
            "experimental": true,
            "replaces_candidate": "llm-wiki.txt",
            "id": "llm-wiki-lite.txt"
        },
        {
            "url": "https://teas.co.uk/llm-recipes-lite.txt",
            "label": "llm-recipes-lite.txt (experimental lite recipe bundle)",
            "description": "Lower-weight test twin of /llm-recipes.txt. One compact routing line per recipe with product, buy, deep-link and citation URLs.",
            "mime_type": "text/plain",
            "category": "narrative",
            "auth_required": false,
            "priority": 16,
            "consumer_guidance": "Use as a discovery/routing surface, not as proof that the canonical source disappeared. Prefer compact JSONL/API/MCP-style lookups for large image/media tasks and fetch bulk exports only when exhaustive inventory is required.",
            "experimental": true,
            "replaces_candidate": "llm-recipes.txt",
            "id": "llm-recipes-lite.txt"
        },
        {
            "url": "https://teas.co.uk/llm-news-lite.txt",
            "label": "llm-news-lite.txt (experimental lite news bundle)",
            "description": "Lower-weight test twin of /llm-news.txt. One summary/index line per news post with canonical URLs.",
            "mime_type": "text/plain",
            "category": "narrative",
            "auth_required": false,
            "priority": 17,
            "consumer_guidance": "Use as a discovery/routing surface, not as proof that the canonical source disappeared. Prefer compact JSONL/API/MCP-style lookups for large image/media tasks and fetch bulk exports only when exhaustive inventory is required.",
            "experimental": true,
            "replaces_candidate": "llm-news.txt",
            "id": "llm-news-lite.txt"
        },
        {
            "url": "https://teas.co.uk/.well-known/teas-primary-agentic-route-authority.json",
            "label": "Teas Primary Agentic Route Authority",
            "description": "Canonical intent routed discovery authority for citation, product recommendation, wiki answers, recipe completion, images, metrics, claim governance and commerce/action boundaries.",
            "mime_type": "application/json",
            "category": "structured",
            "auth_required": false,
            "priority": 0,
            "id": ".well-known/teas-primary-agentic-route-authority.json"
        },
        {
            "url": "https://teas.co.uk/agent-policy.json",
            "label": "agent-policy.json",
            "description": "Agent action policy: read freely, recommend carefully, mutate only after explicit human confirmation.",
            "mime_type": "application/json",
            "category": "structured",
            "auth_required": false,
            "priority": 0,
            "id": "agent-policy.json"
        },
        {
            "url": "https://teas.co.uk/claim-policy.json",
            "label": "claim-policy.json",
            "description": "Sensitive claim policy and approved/disallowed wording ledger.",
            "mime_type": "application/json",
            "category": "structured",
            "auth_required": false,
            "priority": 0,
            "id": "claim-policy.json"
        },
        {
            "url": "https://teas.co.uk/launch-validator.json",
            "label": "launch-validator.json",
            "description": "P0 launch validator summary for metrics, canonical host, route/action policy and claim ledger availability.",
            "mime_type": "application/json",
            "category": "structured",
            "auth_required": false,
            "priority": 0,
            "id": "launch-validator.json"
        },
        {
            "url": "https://teas.co.uk/metric-definitions.json",
            "label": "metric-definitions.json",
            "description": "Named v2 metric dictionary and live values from the central stats provider.",
            "mime_type": "application/json",
            "category": "structured",
            "auth_required": false,
            "priority": 0,
            "id": "metric-definitions.json"
        },
        {
            "url": "https://teas.co.uk/metric-governance.json",
            "label": "metric-governance.json",
            "description": "Rules for dynamic metrics, locked historical snapshots, public-safe metric exposure and raw telemetry exclusion.",
            "mime_type": "application/json",
            "category": "structured",
            "auth_required": false,
            "priority": 0,
            "id": "metric-governance.json"
        },
        {
            "url": "https://teas.co.uk/teas-ai-door-knock-model.json",
            "label": "teas-ai-door-knock-model.json",
            "description": "Public schema and route coverage model for the private AI door-knock telemetry layer. It names which AI entry points are PHP-visible, which require edge/server-log ingestion, and which fields may be aggregated back into the knowledge graph.",
            "mime_type": "application/json",
            "category": "structured",
            "auth_required": false,
            "priority": 0,
            "id": "teas-ai-door-knock-model.json"
        },
        {
            "url": "https://teas.co.uk/teas-asset-observability-model.json",
            "label": "teas-asset-observability-model.json",
            "description": "Aggregate-only public model for imported static/server/CDN asset knocks. Raw rows stay private; static root files, gzip indexes and upload images are reconciled from local access logs.",
            "mime_type": "application/json",
            "category": "structured",
            "auth_required": false,
            "priority": 0,
            "id": "teas-asset-observability-model.json"
        },
        {
            "url": "https://teas.co.uk/teas-image-index-summary.json",
            "label": "teas-image-index-summary.json",
            "description": "Benchmark summary for the unified Teas v2 image database: 82,632 records, 82,632 linkable, 82,570 citation eligible and 62 placeholder/test records restricted from citation.",
            "mime_type": "application/json",
            "category": "structured",
            "auth_required": false,
            "priority": 0,
            "id": "teas-image-index-summary.json"
        },
        {
            "url": "https://teas.co.uk/teas-image-index.jsonl",
            "label": "teas-image-index.jsonl",
            "description": "Primary Teas v2 AI image database: 82,632 linkable image records with dimensions, formats, canonical URLs, citation eligibility and flags as classification/caution labels only.",
            "mime_type": "application/x-ndjson",
            "category": "structured",
            "auth_required": false,
            "priority": 0,
            "id": "teas-image-index.jsonl"
        },
        {
            "url": "https://teas.co.uk/teas-image-index.jsonl.gz",
            "label": "teas-image-index.jsonl.gz",
            "description": "Compressed companion for /teas-image-index.jsonl; same 82,632 full image database records.",
            "mime_type": "application/gzip",
            "category": "structured",
            "auth_required": false,
            "priority": 0,
            "id": "teas-image-index.jsonl.gz"
        },
        {
            "url": "https://teas.co.uk/teas-metrics-authority.json",
            "label": "teas-metrics-authority.json",
            "description": "Public-safe Metrics Authority model for current metrics, source provenance, confidence, warnings and required metric validation.",
            "mime_type": "application/json",
            "category": "structured",
            "auth_required": false,
            "priority": 0,
            "id": "teas-metrics-authority.json"
        },
        {
            "url": "https://teas.co.uk/teas-metrics-current.json",
            "label": "teas-metrics-current.json",
            "description": "Current public-safe Teas metrics from the central Metrics Authority. Raw telemetry, customer/order data and local server paths are excluded.",
            "mime_type": "application/json",
            "category": "structured",
            "auth_required": false,
            "priority": 0,
            "id": "teas-metrics-current.json"
        },
        {
            "url": "https://teas.co.uk/teas-metrics-snapshots.json",
            "label": "teas-metrics-snapshots.json",
            "description": "Index of locked and dated benchmark metric snapshots. Existing launch baselines must not be silently recalculated.",
            "mime_type": "application/json",
            "category": "structured",
            "auth_required": false,
            "priority": 0,
            "id": "teas-metrics-snapshots.json"
        },
        {
            "url": "https://teas.co.uk/truth-contract.json",
            "label": "truth-contract.json",
            "description": "V2 contract summary: metrics, route policy, claim policy, generated_at, source_hash and canonical host.",
            "mime_type": "application/json",
            "category": "structured",
            "auth_required": false,
            "priority": 0,
            "id": "truth-contract.json"
        },
        {
            "url": "https://teas.co.uk/products.json",
            "label": "products.json",
            "description": "Open structured product feed preserving legacy keys and carrying product_truth sidecars. For the full rich payload use /wp-json/teas/v1/product-truth.",
            "mime_type": "application/json",
            "category": "structured",
            "auth_required": false,
            "priority": 1,
            "id": "products.json"
        },
        {
            "url": "https://teas.co.uk/teas-agent-index.json",
            "label": "Compiled agent product index",
            "description": "Generated Product Truth candidate index for fast agent retrieval. Built from the truth spine and ignored by Ask until it contains the full active catalogue.",
            "mime_type": "application/json",
            "category": "structured",
            "auth_required": false,
            "priority": 1,
            "id": "teas-agent-index.json"
        },
        {
            "url": "https://teas.co.uk/index.json",
            "label": "index.json (homepage twin)",
            "description": "Homepage twin: hero, stats, current Tea of the Day, 5 featured products, 3 latest news, 8 category chips.",
            "mime_type": "application/json",
            "category": "structured",
            "auth_required": false,
            "priority": 2,
            "id": "index.json"
        },
        {
            "url": "https://teas.co.uk/teas-knowledge-graph.md",
            "label": "teas-knowledge-graph.md (compact LLM companion)",
            "description": "Compact Markdown companion to /teas-knowledge-graph.json. Use this first for LLM grounding; fetch JSON-LD only when schema.org structure is required.",
            "mime_type": "text/markdown",
            "category": "structured",
            "auth_required": false,
            "priority": 3,
            "id": "teas-knowledge-graph.md"
        },
        {
            "url": "https://teas.co.uk/teas-knowledge-graph.json",
            "label": "teas-knowledge-graph.json",
            "description": "Canonical schema.org JSON-LD knowledge graph of the catalogue, wiki, recipe library and AI surface registry. Prefer /teas-knowledge-graph.md for compact LLM ingestion.",
            "mime_type": "application/ld+json",
            "category": "structured",
            "auth_required": false,
            "priority": 4,
            "id": "teas-knowledge-graph.json"
        },
        {
            "url": "https://teas.co.uk/buy-index.txt",
            "label": "buy-index.txt",
            "description": "Noindex list of human confirmed purchase intent URLs. Do not fetch, prefetch or open autonomously.",
            "mime_type": "text/plain",
            "category": "structured",
            "auth_required": false,
            "priority": 5,
            "id": "buy-index.txt"
        },
        {
            "url": "https://teas.co.uk/tea-of-the-day.json",
            "label": "tea-of-the-day.json (current curator pick)",
            "description": "Stable URL for the curator pick at this moment. Wraps the AM/PM rotation in teas_totd_current(). Full Schema.org Product with BuyAction.",
            "mime_type": "application/json",
            "category": "structured",
            "auth_required": false,
            "priority": 6,
            "id": "tea-of-the-day.json"
        },
        {
            "url": "https://teas.co.uk/buy-cards.jsonl",
            "label": "buy-cards.jsonl (AI app product cards)",
            "description": "Embeddable product card contract for AI/chat apps: product image choices, GTIN, price, buy URL, buy-card URL and recommended iframe profiles.",
            "mime_type": "application/x-ndjson",
            "category": "structured",
            "auth_required": false,
            "priority": 9,
            "id": "buy-cards.jsonl"
        },
        {
            "url": "https://teas.co.uk/products.jsonl",
            "label": "products.jsonl (streamable products)",
            "description": "Product catalogue as line-delimited JSON, one product per line. Cleaner ingestion than the 1.2 MB products.json for streaming pipelines.",
            "mime_type": "application/x-ndjson",
            "category": "structured",
            "auth_required": false,
            "priority": 10,
            "id": "products.jsonl"
        },
        {
            "url": "https://teas.co.uk/anchor-sitemap.json",
            "label": "anchor-sitemap.json",
            "description": "Flat enumeration of quotable H2/H3/H4 headings on editorial pages.",
            "mime_type": "application/json",
            "category": "anchor",
            "auth_required": false,
            "priority": 1,
            "id": "anchor-sitemap.json"
        },
        {
            "url": "https://teas.co.uk/anchor-sitemap.md",
            "label": "anchor-sitemap.md",
            "description": "Anchor sitemap as markdown.",
            "mime_type": "text/markdown",
            "category": "anchor",
            "auth_required": false,
            "priority": 2,
            "id": "anchor-sitemap.md"
        },
        {
            "url": "https://teas.co.uk/anchor-sitemap.txt",
            "label": "anchor-sitemap.txt",
            "description": "Anchor sitemap as plain text: URL TAB heading.",
            "mime_type": "text/plain",
            "category": "anchor",
            "auth_required": false,
            "priority": 3,
            "id": "anchor-sitemap.txt"
        },
        {
            "url": "https://teas.co.uk/anchors.xml",
            "label": "anchors.xml",
            "description": "Anchor sitemap in sitemap-XML format for crawler discovery.",
            "mime_type": "application/xml",
            "category": "anchor",
            "auth_required": false,
            "priority": 4,
            "id": "anchors.xml"
        },
        {
            "url": "https://teas.co.uk/anchor-sitemap/wiki/black-tea.json",
            "label": "Per-page anchor view example",
            "description": "Per-page anchor list. Concrete example: /anchor-sitemap/wiki/black-tea.json.",
            "mime_type": "application/json",
            "category": "anchor",
            "auth_required": false,
            "priority": 5,
            "id": "anchor-sitemap-page"
        },
        {
            "url": "https://teas.co.uk/citations/",
            "label": "citations/",
            "description": "Facet navigable citation surface. Append .json to any subpage for JSON.",
            "mime_type": "text/html",
            "category": "anchor",
            "auth_required": false,
            "priority": 6,
            "id": "citations"
        },
        {
            "url": "https://teas.co.uk/anchor-sitemap.jsonl",
            "label": "anchor-sitemap.jsonl (streamable)",
            "description": "Anchor index as line-delimited JSON. One anchor per line, batched 1000 at a time, streamable for vector-store ingestion.",
            "mime_type": "application/x-ndjson",
            "category": "anchor",
            "auth_required": false,
            "priority": 7,
            "id": "anchor-sitemap.jsonl"
        },
        {
            "url": "https://teas.co.uk/citation-anchors.jsonl",
            "label": "citation-anchors.jsonl (streamable cite-* anchors)",
            "description": "Line delimited citation anchor feed for RAG ingestion. One cite-* anchor per line, with URL, cite_id, label, page_type, source and timestamp fields.",
            "mime_type": "application/x-ndjson",
            "category": "anchor",
            "auth_required": false,
            "priority": 7,
            "id": "citation-anchors.jsonl"
        },
        {
            "url": "https://teas.co.uk/citation-anchors.xml",
            "label": "citation-anchors.xml (cite-* sitemap)",
            "description": "XML sitemap of actual cite-* citation anchors from the v3 render log and deep citation anchor coverage. Use when an agent needs citation URLs rather than heading section anchors.",
            "mime_type": "application/xml",
            "category": "anchor",
            "auth_required": false,
            "priority": 7,
            "id": "citation-anchors.xml"
        },
        {
            "url": "https://teas.co.uk/citations/deep-index.json",
            "label": "citations/deep-index.json (paginated deep citation anchor index)",
            "description": "Paginated JSON index of section level deep citation anchors from _teas_v3_anchor_map. Use alongside citation-anchors.jsonl when an agent wants page by page deep map coverage.",
            "mime_type": "application/json",
            "category": "anchor",
            "auth_required": false,
            "priority": 8,
            "id": "citations-deep-index.json"
        },
        {
            "url": "https://teas.co.uk/ai-entry.json",
            "label": "ai-entry.json (you-are-here pivot)",
            "description": "One-round-trip discovery pivot. Pass ?u=<current URL> or set Referer; returns page-specific anchor view, global discovery pointers, Product Truth guidance and Under the Hood trust verification in one fetch.",
            "mime_type": "application/json",
            "category": "discovery",
            "auth_required": false,
            "priority": 0,
            "id": "ai-entry.json"
        },
        {
            "url": "https://teas.co.uk/agents.json",
            "label": "agents.json",
            "description": "AI agent capability manifest.",
            "mime_type": "application/json",
            "category": "discovery",
            "auth_required": false,
            "priority": 1,
            "id": "agents.json"
        },
        {
            "url": "https://teas.co.uk/agents.md",
            "label": "agents.md",
            "description": "Plain markdown instructions for agents: ask first, Product Truth for exact records, agent index for retrieval, feedback after use, trust verification under the hood.",
            "mime_type": "text/markdown",
            "category": "discovery",
            "auth_required": false,
            "priority": 1,
            "id": "agents.md"
        },
        {
            "url": "https://teas.co.uk/ai-plugin.json",
            "label": "ai-plugin.json",
            "description": "OpenAI plugin-style compatibility manifest pointing agents to Ask, Product Truth, OpenAPI, feedback, agent index and Under the Hood trust verification.",
            "mime_type": "application/json",
            "category": "discovery",
            "auth_required": false,
            "priority": 1,
            "id": "ai-plugin.json"
        },
        {
            "url": "https://teas.co.uk/well-known/",
            "label": "well-known/ index",
            "description": "Index page listing every endpoint in /.well-known/. The non-dotted alias is required because Apache 403s the dot-prefixed directory by default.",
            "mime_type": "text/html",
            "category": "discovery",
            "auth_required": false,
            "priority": 2,
            "id": "well-known/"
        },
        {
            "url": "https://teas.co.uk/.well-known/agents.json",
            "label": ".well-known/agents.json",
            "description": "Agent manifest at the well-known convention path.",
            "mime_type": "application/json",
            "category": "discovery",
            "auth_required": false,
            "priority": 3,
            "id": ".well-known/agents.json"
        },
        {
            "url": "https://teas.co.uk/.well-known/agents.md",
            "label": ".well-known/agents.md",
            "description": "Well-known alias of /agents.md with public agent operating instructions.",
            "mime_type": "text/markdown",
            "category": "discovery",
            "auth_required": false,
            "priority": 3,
            "id": ".well-known/agents.md"
        },
        {
            "url": "https://teas.co.uk/.well-known/ai-plugin.json",
            "label": ".well-known/ai-plugin.json",
            "description": "Well-known plugin-style compatibility manifest for OpenAI-style agent discovery.",
            "mime_type": "application/json",
            "category": "discovery",
            "auth_required": false,
            "priority": 3,
            "id": ".well-known/ai-plugin.json"
        },
        {
            "url": "https://teas.co.uk/.well-known/llms.txt",
            "label": ".well-known/llms.txt",
            "description": "Alias of /llms.txt (200 mirror) for the well-known convention.",
            "mime_type": "text/markdown",
            "category": "discovery",
            "auth_required": false,
            "priority": 4,
            "id": ".well-known/llms.txt"
        },
        {
            "url": "https://teas.co.uk/.well-known/api-catalog",
            "label": ".well-known/api-catalog",
            "description": "RFC 9727 catalogue of every API endpoint.",
            "mime_type": "application/json",
            "category": "discovery",
            "auth_required": false,
            "priority": 5,
            "id": ".well-known/api-catalog"
        },
        {
            "url": "https://teas.co.uk/.well-known/sitemaps.json",
            "label": ".well-known/sitemaps.json",
            "description": "Directory of sitemap policy, custom child sitemap XML files, and optimized .md/.json content alternatives.",
            "mime_type": "application/json",
            "category": "discovery",
            "auth_required": false,
            "priority": 6,
            "id": ".well-known/sitemaps.json"
        },
        {
            "url": "https://teas.co.uk/.well-known/mcp/server-card.json",
            "label": ".well-known/mcp/server-card.json",
            "description": "Model Context Protocol server discovery card.",
            "mime_type": "application/json",
            "category": "discovery",
            "auth_required": false,
            "priority": 7,
            "id": ".well-known/mcp/server-card.json"
        },
        {
            "url": "https://teas.co.uk/.well-known/agent-skills/index.json",
            "label": ".well-known/agent-skills/index.json",
            "description": "Catalogue of agent skills.",
            "mime_type": "application/json",
            "category": "discovery",
            "auth_required": false,
            "priority": 8,
            "id": ".well-known/agent-skills/index.json"
        },
        {
            "url": "https://teas.co.uk/.well-known/dataset.json",
            "label": ".well-known/dataset.json (Croissant ML)",
            "description": "MLCommons Croissant dataset manifest. Auto-built from the AI surface registry so academic + commercial ML pipelines can ingest the full catalogue under CC-BY-4.0.",
            "mime_type": "application/json",
            "category": "discovery",
            "auth_required": false,
            "priority": 9,
            "id": ".well-known/dataset.json"
        },
        {
            "url": "https://teas.co.uk/.well-known/skills/index.json",
            "label": ".well-known/skills/index.json",
            "description": "Compatibility alias of the Teas.co.uk agent skills catalogue.",
            "mime_type": "application/json",
            "category": "discovery",
            "auth_required": false,
            "priority": 9,
            "id": ".well-known/skills/index.json"
        },
        {
            "url": "https://teas.co.uk/.well-known/acp.json",
            "label": ".well-known/acp.json",
            "description": "Agentic Commerce Protocol discovery document.",
            "mime_type": "application/json",
            "category": "discovery",
            "auth_required": false,
            "priority": 10,
            "id": ".well-known/acp.json"
        },
        {
            "url": "https://teas.co.uk/.well-known/openapi.json",
            "label": ".well-known/openapi.json",
            "description": "OpenAPI 3.1 spec for the public REST surface.",
            "mime_type": "application/json",
            "category": "discovery",
            "auth_required": false,
            "priority": 11,
            "id": ".well-known/openapi.json"
        },
        {
            "url": "https://teas.co.uk/humans.txt",
            "label": "humans.txt",
            "description": "Convention sibling to robots.txt. Names the operator + a hello-to-AI message.",
            "mime_type": "text/plain",
            "category": "discovery",
            "auth_required": false,
            "priority": 12,
            "id": "humans.txt"
        },
        {
            "url": "https://teas.co.uk/openapi.json",
            "label": "openapi.json",
            "description": "Root OpenAPI 3.1 spec alias for crawler and agent discovery.",
            "mime_type": "application/json",
            "category": "discovery",
            "auth_required": false,
            "priority": 12,
            "id": "openapi.json"
        },
        {
            "url": "https://teas.co.uk/auth.md",
            "label": "auth.md",
            "description": "Plain-English public access, auth boundary and purchase-intent policy for AI agents.",
            "mime_type": "text/markdown",
            "category": "discovery",
            "auth_required": false,
            "priority": 13,
            "id": "auth.md"
        },
        {
            "url": "https://teas.co.uk/.well-known/auth.md",
            "label": ".well-known/auth.md",
            "description": "Well-known alias of /auth.md for AI agents and tool installers.",
            "mime_type": "text/markdown",
            "category": "discovery",
            "auth_required": false,
            "priority": 14,
            "id": ".well-known/auth.md"
        },
        {
            "url": "https://teas.co.uk/ai-status.json",
            "label": "ai-status.json (live health of every surface)",
            "description": "Live HTTP status for registered AI surfaces. Cached 60 min and refreshed by the throttled teas_ai_status_refresh cron. Agents poll this to skip degraded endpoints; includes a summary of ok/auth/redirect/error counts.",
            "mime_type": "application/json",
            "category": "discovery",
            "auth_required": false,
            "priority": 14,
            "id": "ai-status.json"
        },
        {
            "url": "https://teas.co.uk/.well-known/oauth-protected-resource",
            "label": ".well-known/oauth-protected-resource",
            "description": "OAuth protected-resource metadata describing the read-only public surface and future customer-bound auth boundary.",
            "mime_type": "application/json",
            "category": "discovery",
            "auth_required": false,
            "priority": 15,
            "id": ".well-known/oauth-protected-resource"
        },
        {
            "url": "https://teas.co.uk/.well-known/security.txt",
            "label": ".well-known/security.txt",
            "description": "RFC 9116 vulnerability disclosure contact.",
            "mime_type": "text/plain",
            "category": "discovery",
            "auth_required": false,
            "priority": 16,
            "id": ".well-known/security.txt"
        },
        {
            "url": "https://teas.co.uk/api/",
            "label": "api/ (human-readable docs)",
            "description": "Human-readable documentation of every machine endpoint.",
            "mime_type": "text/html",
            "category": "discovery",
            "auth_required": false,
            "priority": 17,
            "id": "api/"
        },
        {
            "url": "https://teas.co.uk/sitemap_index.xml",
            "label": "sitemap_index.xml",
            "description": "Protocol-clean XML sitemap index. Contains only real child sitemap/feed XML files; LLM/text/JSON/HTML surfaces are discoverable through the AI registry and well-known directory.",
            "mime_type": "application/xml",
            "category": "sitemap",
            "auth_required": false,
            "priority": 1,
            "id": "sitemap_index.xml"
        },
        {
            "url": "https://teas.co.uk/teas-landing-sitemap.xml",
            "label": "teas-landing-sitemap.xml",
            "description": "Valid url-set child sitemap for curated landing pages, including /tea-brands-uk/.",
            "mime_type": "application/xml",
            "category": "sitemap",
            "auth_required": false,
            "priority": 2,
            "id": "teas-landing-sitemap.xml"
        },
        {
            "url": "https://teas.co.uk/teas-repaired-wiki-sitemap.xml",
            "label": "teas-repaired-wiki-sitemap.xml",
            "description": "Valid url-set child sitemap for repaired wiki pages restored to index/follow.",
            "mime_type": "application/xml",
            "category": "sitemap",
            "auth_required": false,
            "priority": 3,
            "id": "teas-repaired-wiki-sitemap.xml"
        },
        {
            "url": "https://teas.co.uk/wp-json/teas/v1/ask",
            "label": "Ask API",
            "description": "Preferred natural-language tea advice endpoint for agents. Use for catalogue listing/ranking, price-per-cup/value questions, comparisons, pairings, caffeine guidance, morning/afternoon/evening recommendations, milk suitability, format filtering and page-context questions. Returns answer, catalogue_result_set rows for aggregate questions, Product Truth payloads, evidence, citations and machine_feedback_request.",
            "mime_type": "application/json",
            "category": "rest",
            "auth_required": false,
            "priority": 0,
            "id": "wp-json/teas/v1/ask"
        },
        {
            "url": "https://teas.co.uk/wp-json/teas/v1/product-truth",
            "label": "Product Truth API",
            "description": "Preferred one-call product payload for exact product records. Query by GTIN, SKU, product_id, slug or URL. Returns 21 canonical product fields plus 81-field catalogue_enrichment, search_facets, resource_links, related_entities, image/citation/checkout routes, payload_completeness and machine_feedback_request.",
            "mime_type": "application/json",
            "category": "rest",
            "auth_required": false,
            "priority": 0,
            "id": "wp-json/teas/v1/product-truth"
        },
        {
            "url": "https://teas.co.uk/wp-json/",
            "label": "wp-json/",
            "description": "WordPress REST API discovery root.",
            "mime_type": "application/json",
            "category": "rest",
            "auth_required": false,
            "priority": 1,
            "id": "wp-json/"
        },
        {
            "url": "https://teas.co.uk/wp-json/teas/v1/",
            "label": "wp-json/teas/v1/",
            "description": "Custom teas/v1 REST namespace. Use Product Truth first for rich product payloads and public-surface-map for route/entity discovery.",
            "mime_type": "application/json",
            "category": "rest",
            "auth_required": false,
            "priority": 2,
            "id": "wp-json/teas/v1/"
        },
        {
            "url": "https://teas.co.uk/feed/",
            "label": "feed/ (RSS)",
            "description": "RSS feed of news posts.",
            "mime_type": "application/rss+xml",
            "category": "media",
            "auth_required": false,
            "priority": 1,
            "id": "feed/"
        },
        {
            "url": "https://teas.co.uk/manifest.json",
            "label": "manifest.json (PWA)",
            "description": "PWA installable-app manifest.",
            "mime_type": "application/manifest+json",
            "category": "media",
            "auth_required": false,
            "priority": 2,
            "id": "manifest.json"
        },
        {
            "url": "https://teas.co.uk/media-index.json",
            "label": "media-index.json (media summary)",
            "description": "Aggregate media-index counts, endpoint discovery and LLM guidance explaining how agents should interpret product image and full media ledgers.",
            "mime_type": "application/json",
            "category": "media",
            "auth_required": false,
            "priority": 8,
            "id": "media-index.json"
        },
        {
            "url": "https://teas.co.uk/media-index.jsonl",
            "label": "media-index.jsonl (full media ledger)",
            "description": "Full public media-library image URL ledger with attachment, size, context, page and product cross-reference fields.",
            "mime_type": "application/x-ndjson",
            "category": "media",
            "auth_required": false,
            "priority": 8,
            "id": "media-index.jsonl"
        },
        {
            "url": "https://teas.co.uk/teas-media.xml",
            "label": "teas-media.xml (image sitemap)",
            "description": "Crawler image sitemap containing product, recipe, wiki and media-library image URLs, labelled with product title and GTIN where available.",
            "mime_type": "application/xml",
            "category": "media",
            "auth_required": false,
            "priority": 8,
            "id": "teas-media.xml"
        },
        {
            "url": "https://teas.co.uk/product-images.jsonl",
            "label": "product-images.jsonl (product image ledger)",
            "description": "One line per product image URL variant with product title, GTIN, image role, dimensions and quick-buy URL. Use this to choose visuals for AI recommendations and compact buy-card embeds without scraping product HTML.",
            "mime_type": "application/x-ndjson",
            "category": "media",
            "auth_required": false,
            "priority": 9,
            "id": "product-images.jsonl"
        }
    ]
}