{
  "schemaVersion": 1,
  "contractVersion": "1.1.0",
  "provenance": "original addition: synthetic examples for the reconstructed public reference",
  "fixtureClock": "2026-09-18T23:00:00Z",
  "privacy": "People and email addresses in these fixtures are fictional. Local feedback never leaves the document. Unsafe strings are inert test data, not executable examples.",
  "types": {
    "Extension": [
      {
        "id": "draft-notes",
        "slug": "draft-notes",
        "name": "Draft Notes",
        "summary": "Keep a small queue of tasks and open the right command from one place.",
        "publisher": {
          "displayName": "Ari Example",
          "handle": "ari-example"
        },
        "category": "productivity",
        "platforms": [
          "macos",
          "windows"
        ],
        "iconAssetId": "asset-store-icon",
        "publicUrl": "https://www.raycast.com/store",
        "commands": [
          {
            "id": "open-queue",
            "title": "Open Queue",
            "subtitle": "Review saved tasks"
          }
        ],
        "access": "public",
        "updatedAt": "2026-09-18T22:00:00Z",
        "locale": "en",
        "tags": [
          "tasks",
          "queue"
        ],
        "downloadCount": 12500,
        "revision": 1
      },
      {
        "id": "pr-queue",
        "slug": "pr-queue",
        "name": "Pull Request Queue",
        "summary": "Review pull requests and keep code-review work in a predictable list.",
        "publisher": {
          "displayName": "Ari Example",
          "handle": "ari-example"
        },
        "category": "developer-tools",
        "platforms": [
          "macos",
          "windows"
        ],
        "iconAssetId": "asset-store-icon",
        "publicUrl": "https://www.raycast.com/store",
        "commands": [
          {
            "id": "open-queue",
            "title": "Open Queue",
            "subtitle": "Review saved tasks"
          }
        ],
        "access": "public",
        "updatedAt": "2026-09-18T22:00:00Z",
        "locale": "en",
        "tags": [
          "code",
          "review"
        ],
        "downloadCount": 2480,
        "revision": 1
      },
      {
        "id": "cafe-tasks",
        "slug": "cafe-tasks",
        "name": "Café Tasks",
        "summary": "Capture a short thought before returning to work.",
        "publisher": {
          "displayName": "Ari Example",
          "handle": "ari-example"
        },
        "category": "productivity",
        "platforms": [
          "macos"
        ],
        "iconAssetId": "asset-store-icon",
        "publicUrl": "https://www.raycast.com/store",
        "commands": [
          {
            "id": "open-queue",
            "title": "Open Queue",
            "subtitle": "Review saved tasks"
          }
        ],
        "access": "public",
        "updatedAt": "2026-09-18T22:00:00Z",
        "locale": "en",
        "tags": [
          "cafe",
          "notes"
        ],
        "downloadCount": 12500,
        "revision": 1
      },
      {
        "id": "missing-metadata",
        "slug": "missing-metadata",
        "name": "Untitled Workspace Helper",
        "summary": null,
        "publisher": null,
        "category": "productivity",
        "platforms": [
          "macos",
          "windows"
        ],
        "iconAssetId": null,
        "publicUrl": "https://www.raycast.com/store",
        "commands": [],
        "access": "public",
        "updatedAt": "2026-09-18T22:00:00Z",
        "locale": "en",
        "tags": [
          "tasks",
          "queue"
        ],
        "downloadCount": null,
        "revision": 1
      },
      {
        "id": "long-title",
        "slug": "long-title",
        "name": "A deliberately long workspace shortcut collection for drafts, meeting notes, planning, reviews and the next thing to remember",
        "summary": "A long description tests wrapping and two-line card clamping. The full text remains available in the detail specimen. Keep the task understandable. Keep the task understandable. Keep the task understandable. Keep the task understandable. Keep the task understandable. Keep the task understandable. Keep the task understandable. ",
        "publisher": {
          "displayName": "Ari Example",
          "handle": "ari-example"
        },
        "category": "productivity",
        "platforms": [
          "macos",
          "windows"
        ],
        "iconAssetId": "asset-store-icon",
        "publicUrl": "https://www.raycast.com/store",
        "commands": [
          {
            "id": "open-queue",
            "title": "Open Queue",
            "subtitle": "Review saved tasks"
          }
        ],
        "access": "public",
        "updatedAt": "2026-09-18T22:00:00Z",
        "locale": "en",
        "tags": [
          "tasks",
          "queue"
        ],
        "downloadCount": 1200456,
        "revision": 1
      },
      {
        "id": "rtl-notes",
        "slug": "rtl-notes",
        "name": "ملاحظات المشروع",
        "summary": "افتح ملاحظات المشروع ثم اختر المهمة التالية من القائمة.",
        "publisher": {
          "displayName": "سمر مثال",
          "handle": "samar-example"
        },
        "category": "productivity",
        "platforms": [
          "macos",
          "windows"
        ],
        "iconAssetId": "asset-store-icon",
        "publicUrl": "https://www.raycast.com/store",
        "commands": [
          {
            "id": "open-queue",
            "title": "Open Queue",
            "subtitle": "Review saved tasks"
          }
        ],
        "access": "public",
        "updatedAt": "2026-09-18T22:00:00Z",
        "locale": "ar",
        "tags": [
          "notes",
          "مشروع"
        ],
        "downloadCount": 12500,
        "revision": 1
      },
      {
        "id": "private-collection",
        "slug": "private-collection",
        "name": "Team Reference Collection",
        "summary": "A local permission example. Sign in on the official website to manage a private collection.",
        "publisher": {
          "displayName": "Ari Example",
          "handle": "ari-example"
        },
        "category": "productivity",
        "platforms": [
          "macos",
          "windows"
        ],
        "iconAssetId": "asset-store-icon",
        "publicUrl": "https://www.raycast.com/store",
        "commands": [
          {
            "id": "open-queue",
            "title": "Open Queue",
            "subtitle": "Review saved tasks"
          }
        ],
        "access": "sign-in-required",
        "updatedAt": "2026-09-18T22:00:00Z",
        "locale": "en",
        "tags": [
          "tasks",
          "queue"
        ],
        "downloadCount": 12500,
        "revision": 1
      },
      {
        "id": "unavailable-tool",
        "slug": "unavailable-tool",
        "name": "Archived Sample Tool",
        "summary": "This local example is unavailable. Choose another public extension.",
        "publisher": {
          "displayName": "Ari Example",
          "handle": "ari-example"
        },
        "category": "productivity",
        "platforms": [
          "macos",
          "windows"
        ],
        "iconAssetId": "asset-store-icon",
        "publicUrl": "https://www.raycast.com/store",
        "commands": [
          {
            "id": "open-queue",
            "title": "Open Queue",
            "subtitle": "Review saved tasks"
          }
        ],
        "access": "unavailable",
        "updatedAt": "2026-09-18T22:00:00Z",
        "locale": "en",
        "tags": [
          "tasks",
          "queue"
        ],
        "downloadCount": 12500,
        "revision": 1
      },
      {
        "id": "literal-markup",
        "slug": "literal-markup",
        "name": "<img src=x onerror=alert(1)>",
        "summary": "Literal markup must be rendered as text, never as a DOM image.",
        "publisher": {
          "displayName": "Ari Example",
          "handle": "ari-example"
        },
        "category": "productivity",
        "platforms": [
          "macos",
          "windows"
        ],
        "iconAssetId": "asset-store-icon",
        "publicUrl": "https://www.raycast.com/store",
        "commands": [
          {
            "id": "open-queue",
            "title": "Open Queue",
            "subtitle": "Review saved tasks"
          }
        ],
        "access": "public",
        "updatedAt": "2026-09-18T22:00:00Z",
        "locale": "en",
        "tags": [
          "safety",
          "text"
        ],
        "downloadCount": 12500,
        "revision": 1
      }
    ],
    "Plan": [
      {
        "id": "plan-free",
        "name": "Free",
        "description": "A local zero-price layout fixture.",
        "audience": "individual",
        "pricingMode": "free",
        "currency": "USD",
        "monthlyUsdCents": 0,
        "annualMonthlyUsdCents": 0,
        "featureIds": [
          "feature-notes"
        ],
        "ctaLabel": "View the public product",
        "ctaHref": "https://www.raycast.com/",
        "updatedAt": "2026-09-18T22:00:00Z",
        "revision": 1
      },
      {
        "id": "plan-pro",
        "name": "Pro",
        "description": "A dated local pricing fixture for monthly and annual display.",
        "audience": "individual",
        "pricingMode": "fixed",
        "currency": "USD",
        "monthlyUsdCents": 1000,
        "annualMonthlyUsdCents": 800,
        "featureIds": [
          "feature-notes",
          "feature-ai"
        ],
        "ctaLabel": "View official pricing",
        "ctaHref": "https://www.raycast.com/pricing",
        "updatedAt": "2026-09-18T22:00:00Z",
        "revision": 1
      },
      {
        "id": "plan-team",
        "name": "Team example with an intentionally longer plan label",
        "description": "A fictional team plan fixture; no seats, invoices or subscriptions are created.",
        "audience": "team",
        "pricingMode": "fixed",
        "currency": "USD",
        "monthlyUsdCents": 2000,
        "annualMonthlyUsdCents": 1600,
        "featureIds": [
          "feature-notes"
        ],
        "ctaLabel": "View official Teams page",
        "ctaHref": "https://www.raycast.com/teams",
        "updatedAt": "2026-09-18T22:00:00Z",
        "revision": 1
      },
      {
        "id": "plan-contact",
        "name": "Enterprise example",
        "description": "A missing-price case uses contact language, never $0.",
        "audience": "enterprise",
        "pricingMode": "contact",
        "currency": "USD",
        "monthlyUsdCents": null,
        "annualMonthlyUsdCents": null,
        "featureIds": [],
        "ctaLabel": "Read the Enterprise overview",
        "ctaHref": "https://www.raycast.com/enterprise",
        "updatedAt": "2026-09-18T22:00:00Z",
        "revision": 1
      }
    ],
    "Article": [
      {
        "id": "article-first-command",
        "slug": "first-command",
        "kind": "article",
        "title": "A calmer way to choose the next command",
        "summary": "An original article fixture for the public editorial layout.",
        "author": {
          "displayName": "Sam Example",
          "handle": "sam-example"
        },
        "publishedAt": "2026-09-10T09:00:00Z",
        "updatedAt": "2026-09-18T22:00:00Z",
        "category": "engineering",
        "locale": "en",
        "coverAssetId": null,
        "publicUrl": "https://www.raycast.com/blog",
        "blocks": [
          {
            "kind": "paragraph",
            "text": "Start with one task and give its action a clear name.",
            "language": null
          },
          {
            "kind": "heading",
            "text": "Keep errors local",
            "language": null
          },
          {
            "kind": "code",
            "text": "const title = \"Draft Notes\";\nconsole.log(title);",
            "language": "javascript"
          }
        ],
        "revision": 1
      },
      {
        "id": "article-missing-byline",
        "slug": "missing-byline",
        "kind": "resource",
        "title": "A public guide with no byline or date",
        "summary": null,
        "author": null,
        "publishedAt": null,
        "updatedAt": "2026-09-18T22:00:00Z",
        "category": "guide",
        "locale": "en",
        "coverAssetId": null,
        "publicUrl": "https://www.raycast.com/resources",
        "blocks": [
          {
            "kind": "paragraph",
            "text": "The fallback omits missing metadata; it does not invent an author or date.",
            "language": null
          }
        ],
        "revision": 1
      },
      {
        "id": "article-rtl",
        "slug": "rtl-guide",
        "kind": "article",
        "title": "كيف تختار المهمة التالية دون أن تفقد سياق العمل الحالي",
        "summary": "مثال محلي لاختبار العناوين والروابط واتجاه النص.",
        "author": {
          "displayName": "سمر مثال",
          "handle": "samar-example"
        },
        "publishedAt": "2026-09-11T09:00:00Z",
        "updatedAt": "2026-09-18T22:00:00Z",
        "category": "guide",
        "locale": "ar",
        "coverAssetId": null,
        "publicUrl": "https://www.raycast.com/blog",
        "blocks": [
          {
            "kind": "paragraph",
            "text": "يمكن أن يجمع النص بين العربية واسم Draft Notes ورقم 2026 دون تغيير هوية الرابط.",
            "language": null
          }
        ],
        "revision": 1
      },
      {
        "id": "article-literal",
        "slug": "literal-code",
        "kind": "changelog",
        "title": "Literal HTML, missing media and a long unbroken token",
        "summary": "A text-safety and wrapping fixture.",
        "author": null,
        "publishedAt": "2026-09-18T22:00:00Z",
        "updatedAt": "2026-09-18T22:00:00Z",
        "category": "release",
        "locale": "en",
        "coverAssetId": null,
        "publicUrl": "https://www.raycast.com/changelog",
        "blocks": [
          {
            "kind": "code",
            "text": "<script>document.body.textContent=\"unsafe\"</script>",
            "language": "text"
          },
          {
            "kind": "paragraph",
            "text": "extension_zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz",
            "language": null
          }
        ],
        "revision": 1
      }
    ],
    "Feature": [
      {
        "id": "feature-notes",
        "title": "Notes for the next task",
        "summary": "A local feature record based on the shape of the public Notes page. It does not create, sync or recover notes.",
        "platforms": [
          "macos"
        ],
        "entitlementLabel": "unverified",
        "availabilityLabel": "See the dated public source for availability",
        "mediaAssetId": null,
        "publicUrl": "https://www.raycast.com/core-features/notes",
        "relatedFeatureIds": [
          "feature-ai"
        ],
        "updatedAt": "2026-09-18T22:00:00Z",
        "revision": 1
      },
      {
        "id": "feature-ai",
        "title": "Ask from the current workflow",
        "summary": "A local AI feature presentation. Prompts and model calls are outside this reference.",
        "platforms": [
          "macos",
          "windows"
        ],
        "entitlementLabel": "unverified",
        "availabilityLabel": "Public marketing evidence only",
        "mediaAssetId": null,
        "publicUrl": "https://www.raycast.com/core-features/ai",
        "relatedFeatureIds": [
          "feature-notes"
        ],
        "updatedAt": "2026-09-18T22:00:00Z",
        "revision": 1
      },
      {
        "id": "feature-browser",
        "title": "A browser shortcut with missing screenshot media",
        "summary": "Use a text fallback when media is unavailable. The page stays useful without an image.",
        "platforms": [
          "browser"
        ],
        "entitlementLabel": "unverified",
        "availabilityLabel": "Open the official overview to confirm compatibility",
        "mediaAssetId": null,
        "publicUrl": "https://www.raycast.com/browser-extension",
        "relatedFeatureIds": [],
        "updatedAt": "2026-09-18T22:00:00Z",
        "revision": 1
      }
    ],
    "PublicFeedback": [
      {
        "id": "feedback-draft",
        "category": "feature-request",
        "senderEmail": "ari.example@example.com",
        "appVersion": "fixture-1.0",
        "message": "Please make the keyboard shortcut visible next to this action.",
        "attachments": [],
        "submissionState": "draft",
        "createdAt": "2026-09-18T22:00:00Z",
        "bugType": null,
        "feature": "Notes"
      },
      {
        "id": "feedback-long",
        "category": "bug-report",
        "senderEmail": "sam.example+test@example.com",
        "appVersion": null,
        "message": "On a small screen the label should wrap while the action remains visible. This is a synthetic accessibility report. This is a synthetic accessibility report. This is a synthetic accessibility report. This is a synthetic accessibility report. This is a synthetic accessibility report. This is a synthetic accessibility report. This is a synthetic accessibility report. This is a synthetic accessibility report. This is a synthetic accessibility report. This is a synthetic accessibility report. This is a synthetic accessibility report. This is a synthetic accessibility report. This is a synthetic accessibility report. This is a synthetic accessibility report. This is a synthetic accessibility report. This is a synthetic accessibility report. This is a synthetic accessibility report. This is a synthetic accessibility report. This is a synthetic accessibility report. This is a synthetic accessibility report. This is a synthetic accessibility report. This is a synthetic accessibility report. This is a synthetic accessibility report. This is a synthetic accessibility report. This is a synthetic accessibility report. This is a synthetic accessibility report. This is a synthetic accessibility report. This is a synthetic accessibility report. This is a synthetic accessibility report. This is a synthetic accessibility report. This is a synthetic accessibility report. This is a synthetic accessibility report. This is a synthetic accessibility report. This is a synthetic accessibility report. This is a synthetic accessibility report. ",
        "attachments": [
          {
            "name": "layout-example.png",
            "byteLength": 153600,
            "mediaType": "image/png"
          }
        ],
        "submissionState": "error",
        "createdAt": "2026-09-18T22:00:00Z",
        "bugType": "not_working",
        "feature": "Notes"
      },
      {
        "id": "feedback-rtl",
        "category": "other",
        "senderEmail": "samar.example@example.com",
        "appVersion": null,
        "message": "أريد أن يبقى النص المكتوب هنا بعد انقطاع الاتصال.",
        "attachments": [],
        "submissionState": "offline",
        "createdAt": "2026-09-18T22:00:00Z",
        "bugType": null,
        "feature": null
      }
    ],
    "Asset": [
      {
        "id": "asset-store-icon",
        "kind": "icon",
        "mimeType": "image/svg+xml",
        "localPath": "assets/icons/store.svg",
        "sourceUrl": "https://registry.npmjs.org/@raycast/icons",
        "widthPx": 16,
        "heightPx": 16,
        "byteLength": 438,
        "sha256": "54f8fba01ba6110353d2619ce1e602b95fe6f99c3a06fa0e81bed413e70931b1",
        "alt": "",
        "decorative": true,
        "theme": "any",
        "loading": "lazy",
        "rights": {
          "status": "package-license",
          "notice": "Public @raycast/icons package evidence retained; do not infer a product branding redistribution grant.",
          "distribution": "private-reference-only"
        }
      },
      {
        "id": "asset-warning-icon",
        "kind": "icon",
        "mimeType": "image/svg+xml",
        "localPath": "assets/icons/warning.svg",
        "sourceUrl": "https://registry.npmjs.org/@raycast/icons",
        "widthPx": 16,
        "heightPx": 16,
        "byteLength": 581,
        "sha256": "72d4e2e9154e8d7f2cac7b69d47dcb1652e5769d0e97d8a241735ffdf7599c58",
        "alt": "",
        "decorative": true,
        "theme": "any",
        "loading": "lazy",
        "rights": {
          "status": "package-license",
          "notice": "Public @raycast/icons package evidence retained; do not infer a product branding redistribution grant.",
          "distribution": "private-reference-only"
        }
      },
      {
        "id": "asset-inter",
        "kind": "font",
        "mimeType": "font/woff2",
        "localPath": "assets/inter-latin.woff2",
        "sourceUrl": "https://github.com/rsms/inter",
        "widthPx": null,
        "heightPx": null,
        "byteLength": 48432,
        "sha256": "c940764593d0fe5d596be327ca7558855e018039fb78509aa21921fd3644c3e4",
        "alt": "",
        "decorative": true,
        "theme": "any",
        "loading": "eager",
        "rights": {
          "status": "open-font-license",
          "notice": "See retained Inter OFL notice in evidence/source-assets/public-source/inter-ofl.txt.",
          "distribution": "license-conditions"
        }
      }
    ]
  },
  "invalidRecords": [
    {
      "id": "extension-missing-name",
      "type": "Extension",
      "value": {
        "id": "draft-notes",
        "slug": "draft-notes",
        "name": null,
        "summary": "Keep a small queue of tasks and open the right command from one place.",
        "publisher": {
          "displayName": "Ari Example",
          "handle": "ari-example"
        },
        "category": "productivity",
        "platforms": [
          "macos",
          "windows"
        ],
        "iconAssetId": "asset-store-icon",
        "publicUrl": "https://www.raycast.com/store",
        "commands": [
          {
            "id": "open-queue",
            "title": "Open Queue",
            "subtitle": "Review saved tasks"
          }
        ],
        "access": "public",
        "updatedAt": "2026-09-18T22:00:00Z",
        "locale": "en",
        "tags": [
          "tasks",
          "queue"
        ],
        "downloadCount": 12500,
        "revision": 1
      },
      "mustRejectBecause": "Name is non-null text."
    },
    {
      "id": "extension-negative-count",
      "type": "Extension",
      "value": {
        "id": "draft-notes",
        "slug": "draft-notes",
        "name": "Draft Notes",
        "summary": "Keep a small queue of tasks and open the right command from one place.",
        "publisher": {
          "displayName": "Ari Example",
          "handle": "ari-example"
        },
        "category": "productivity",
        "platforms": [
          "macos",
          "windows"
        ],
        "iconAssetId": "asset-store-icon",
        "publicUrl": "https://www.raycast.com/store",
        "commands": [
          {
            "id": "open-queue",
            "title": "Open Queue",
            "subtitle": "Review saved tasks"
          }
        ],
        "access": "public",
        "updatedAt": "2026-09-18T22:00:00Z",
        "locale": "en",
        "tags": [
          "tasks",
          "queue"
        ],
        "downloadCount": -1,
        "revision": 1
      },
      "mustRejectBecause": "Counts cannot be negative."
    },
    {
      "id": "extension-wrong-platform",
      "type": "Extension",
      "value": {
        "id": "draft-notes",
        "slug": "draft-notes",
        "name": "Draft Notes",
        "summary": "Keep a small queue of tasks and open the right command from one place.",
        "publisher": {
          "displayName": "Ari Example",
          "handle": "ari-example"
        },
        "category": "productivity",
        "platforms": [
          "linux"
        ],
        "iconAssetId": "asset-store-icon",
        "publicUrl": "https://www.raycast.com/store",
        "commands": [
          {
            "id": "open-queue",
            "title": "Open Queue",
            "subtitle": "Review saved tasks"
          }
        ],
        "access": "public",
        "updatedAt": "2026-09-18T22:00:00Z",
        "locale": "en",
        "tags": [
          "tasks",
          "queue"
        ],
        "downloadCount": 12500,
        "revision": 1
      },
      "mustRejectBecause": "Unknown platform is not silently coerced."
    },
    {
      "id": "extension-duplicate-platform",
      "type": "Extension",
      "value": {
        "id": "draft-notes",
        "slug": "draft-notes",
        "name": "Draft Notes",
        "summary": "Keep a small queue of tasks and open the right command from one place.",
        "publisher": {
          "displayName": "Ari Example",
          "handle": "ari-example"
        },
        "category": "productivity",
        "platforms": [
          "macos",
          "macos"
        ],
        "iconAssetId": "asset-store-icon",
        "publicUrl": "https://www.raycast.com/store",
        "commands": [
          {
            "id": "open-queue",
            "title": "Open Queue",
            "subtitle": "Review saved tasks"
          }
        ],
        "access": "public",
        "updatedAt": "2026-09-18T22:00:00Z",
        "locale": "en",
        "tags": [
          "tasks",
          "queue"
        ],
        "downloadCount": 12500,
        "revision": 1
      },
      "mustRejectBecause": "Platform list is unique."
    },
    {
      "id": "extension-unsafe-link",
      "type": "Extension",
      "value": {
        "id": "draft-notes",
        "slug": "draft-notes",
        "name": "Draft Notes",
        "summary": "Keep a small queue of tasks and open the right command from one place.",
        "publisher": {
          "displayName": "Ari Example",
          "handle": "ari-example"
        },
        "category": "productivity",
        "platforms": [
          "macos",
          "windows"
        ],
        "iconAssetId": "asset-store-icon",
        "publicUrl": "javascript:alert(1)",
        "commands": [
          {
            "id": "open-queue",
            "title": "Open Queue",
            "subtitle": "Review saved tasks"
          }
        ],
        "access": "public",
        "updatedAt": "2026-09-18T22:00:00Z",
        "locale": "en",
        "tags": [
          "tasks",
          "queue"
        ],
        "downloadCount": 12500,
        "revision": 1
      },
      "mustRejectBecause": "Only official HTTPS product links are permitted."
    },
    {
      "id": "extension-credential-link",
      "type": "Extension",
      "value": {
        "id": "draft-notes",
        "slug": "draft-notes",
        "name": "Draft Notes",
        "summary": "Keep a small queue of tasks and open the right command from one place.",
        "publisher": {
          "displayName": "Ari Example",
          "handle": "ari-example"
        },
        "category": "productivity",
        "platforms": [
          "macos",
          "windows"
        ],
        "iconAssetId": "asset-store-icon",
        "publicUrl": "https://raycast.com@evil.example/store",
        "commands": [
          {
            "id": "open-queue",
            "title": "Open Queue",
            "subtitle": "Review saved tasks"
          }
        ],
        "access": "public",
        "updatedAt": "2026-09-18T22:00:00Z",
        "locale": "en",
        "tags": [
          "tasks",
          "queue"
        ],
        "downloadCount": 12500,
        "revision": 1
      },
      "mustRejectBecause": "A lookalike userinfo URL does not belong to the official host."
    },
    {
      "id": "extension-fractional-revision",
      "type": "Extension",
      "value": {
        "id": "draft-notes",
        "slug": "draft-notes",
        "name": "Draft Notes",
        "summary": "Keep a small queue of tasks and open the right command from one place.",
        "publisher": {
          "displayName": "Ari Example",
          "handle": "ari-example"
        },
        "category": "productivity",
        "platforms": [
          "macos",
          "windows"
        ],
        "iconAssetId": "asset-store-icon",
        "publicUrl": "https://www.raycast.com/store",
        "commands": [
          {
            "id": "open-queue",
            "title": "Open Queue",
            "subtitle": "Review saved tasks"
          }
        ],
        "access": "public",
        "updatedAt": "2026-09-18T22:00:00Z",
        "locale": "en",
        "tags": [
          "tasks",
          "queue"
        ],
        "downloadCount": 12500,
        "revision": 1.5
      },
      "mustRejectBecause": "Revisions are positive integers."
    },
    {
      "id": "extension-impossible-date",
      "type": "Extension",
      "value": {
        "id": "draft-notes",
        "slug": "draft-notes",
        "name": "Draft Notes",
        "summary": "Keep a small queue of tasks and open the right command from one place.",
        "publisher": {
          "displayName": "Ari Example",
          "handle": "ari-example"
        },
        "category": "productivity",
        "platforms": [
          "macos",
          "windows"
        ],
        "iconAssetId": "asset-store-icon",
        "publicUrl": "https://www.raycast.com/store",
        "commands": [
          {
            "id": "open-queue",
            "title": "Open Queue",
            "subtitle": "Review saved tasks"
          }
        ],
        "access": "public",
        "updatedAt": "2026-02-31T22:00:00Z",
        "locale": "en",
        "tags": [
          "tasks",
          "queue"
        ],
        "downloadCount": 12500,
        "revision": 1
      },
      "mustRejectBecause": "Timestamp must be a real UTC date."
    },
    {
      "id": "plan-fractional-cents",
      "type": "Plan",
      "value": {
        "id": "plan-pro",
        "name": "Pro",
        "description": "A dated local pricing fixture for monthly and annual display.",
        "audience": "individual",
        "pricingMode": "fixed",
        "currency": "USD",
        "monthlyUsdCents": 1000.5,
        "annualMonthlyUsdCents": 800,
        "featureIds": [
          "feature-notes",
          "feature-ai"
        ],
        "ctaLabel": "View official pricing",
        "ctaHref": "https://www.raycast.com/pricing",
        "updatedAt": "2026-09-18T22:00:00Z",
        "revision": 1
      },
      "mustRejectBecause": "Money uses integer cents."
    },
    {
      "id": "plan-contact-price",
      "type": "Plan",
      "value": {
        "id": "plan-contact",
        "name": "Enterprise example",
        "description": "A missing-price case uses contact language, never $0.",
        "audience": "enterprise",
        "pricingMode": "contact",
        "currency": "USD",
        "monthlyUsdCents": 0,
        "annualMonthlyUsdCents": null,
        "featureIds": [],
        "ctaLabel": "Read the Enterprise overview",
        "ctaHref": "https://www.raycast.com/enterprise",
        "updatedAt": "2026-09-18T22:00:00Z",
        "revision": 1
      },
      "mustRejectBecause": "Contact pricing cannot display a price."
    },
    {
      "id": "plan-annual-greater",
      "type": "Plan",
      "value": {
        "id": "plan-pro",
        "name": "Pro",
        "description": "A dated local pricing fixture for monthly and annual display.",
        "audience": "individual",
        "pricingMode": "fixed",
        "currency": "USD",
        "monthlyUsdCents": 1000,
        "annualMonthlyUsdCents": 1200,
        "featureIds": [
          "feature-notes",
          "feature-ai"
        ],
        "ctaLabel": "View official pricing",
        "ctaHref": "https://www.raycast.com/pricing",
        "updatedAt": "2026-09-18T22:00:00Z",
        "revision": 1
      },
      "mustRejectBecause": "Annual monthly equivalent cannot exceed monthly under this local contract."
    },
    {
      "id": "article-unsafe-link",
      "type": "Article",
      "value": {
        "id": "article-first-command",
        "slug": "first-command",
        "kind": "article",
        "title": "A calmer way to choose the next command",
        "summary": "An original article fixture for the public editorial layout.",
        "author": {
          "displayName": "Sam Example",
          "handle": "sam-example"
        },
        "publishedAt": "2026-09-10T09:00:00Z",
        "updatedAt": "2026-09-18T22:00:00Z",
        "category": "engineering",
        "locale": "en",
        "coverAssetId": null,
        "publicUrl": "data:text/html,<script>alert(1)</script>",
        "blocks": [
          {
            "kind": "paragraph",
            "text": "Start with one task and give its action a clear name.",
            "language": null
          },
          {
            "kind": "heading",
            "text": "Keep errors local",
            "language": null
          },
          {
            "kind": "code",
            "text": "const title = \"Draft Notes\";\nconsole.log(title);",
            "language": "javascript"
          }
        ],
        "revision": 1
      },
      "mustRejectBecause": "No executable or inline-document URL."
    },
    {
      "id": "article-extra-html",
      "type": "Article",
      "value": {
        "id": "article-first-command",
        "slug": "first-command",
        "kind": "article",
        "title": "A calmer way to choose the next command",
        "summary": "An original article fixture for the public editorial layout.",
        "author": {
          "displayName": "Sam Example",
          "handle": "sam-example"
        },
        "publishedAt": "2026-09-10T09:00:00Z",
        "updatedAt": "2026-09-18T22:00:00Z",
        "category": "engineering",
        "locale": "en",
        "coverAssetId": null,
        "publicUrl": "https://www.raycast.com/blog",
        "blocks": [
          {
            "kind": "paragraph",
            "text": "Start with one task and give its action a clear name.",
            "language": null
          },
          {
            "kind": "heading",
            "text": "Keep errors local",
            "language": null
          },
          {
            "kind": "code",
            "text": "const title = \"Draft Notes\";\nconsole.log(title);",
            "language": "javascript"
          }
        ],
        "revision": 1,
        "html": "<script>alert(1)</script>"
      },
      "mustRejectBecause": "No raw HTML field or unknown properties."
    },
    {
      "id": "article-empty-blocks",
      "type": "Article",
      "value": {
        "id": "article-first-command",
        "slug": "first-command",
        "kind": "article",
        "title": "A calmer way to choose the next command",
        "summary": "An original article fixture for the public editorial layout.",
        "author": {
          "displayName": "Sam Example",
          "handle": "sam-example"
        },
        "publishedAt": "2026-09-10T09:00:00Z",
        "updatedAt": "2026-09-18T22:00:00Z",
        "category": "engineering",
        "locale": "en",
        "coverAssetId": null,
        "publicUrl": "https://www.raycast.com/blog",
        "blocks": [],
        "revision": 1
      },
      "mustRejectBecause": "An article has at least one text block."
    },
    {
      "id": "feature-empty-platforms",
      "type": "Feature",
      "value": {
        "id": "feature-notes",
        "title": "Notes for the next task",
        "summary": "A local feature record based on the shape of the public Notes page. It does not create, sync or recover notes.",
        "platforms": [],
        "entitlementLabel": "unverified",
        "availabilityLabel": "See the dated public source for availability",
        "mediaAssetId": null,
        "publicUrl": "https://www.raycast.com/core-features/notes",
        "relatedFeatureIds": [
          "feature-ai"
        ],
        "updatedAt": "2026-09-18T22:00:00Z",
        "revision": 1
      },
      "mustRejectBecause": "At least one platform is named."
    },
    {
      "id": "feedback-invalid-email",
      "type": "PublicFeedback",
      "value": {
        "id": "feedback-draft",
        "category": "feature-request",
        "senderEmail": "ari example@example.com",
        "appVersion": "fixture-1.0",
        "message": "Please make the keyboard shortcut visible next to this action.",
        "attachments": [],
        "submissionState": "draft",
        "createdAt": "2026-09-18T22:00:00Z",
        "bugType": null,
        "feature": null
      },
      "mustRejectBecause": "Email cannot contain whitespace; synthetic email domain remains example.com."
    },
    {
      "id": "feedback-blank-message",
      "type": "PublicFeedback",
      "value": {
        "id": "feedback-draft",
        "category": "feature-request",
        "senderEmail": "ari.example@example.com",
        "appVersion": "fixture-1.0",
        "message": "   ",
        "attachments": [],
        "submissionState": "draft",
        "createdAt": "2026-09-18T22:00:00Z",
        "bugType": null,
        "feature": null
      },
      "mustRejectBecause": "Whitespace-only feedback is invalid."
    },
    {
      "id": "feedback-oversize-file",
      "type": "PublicFeedback",
      "value": {
        "id": "feedback-draft",
        "category": "feature-request",
        "senderEmail": "ari.example@example.com",
        "appVersion": "fixture-1.0",
        "message": "Please make the keyboard shortcut visible next to this action.",
        "attachments": [
          {
            "name": "large.png",
            "byteLength": 20971521,
            "mediaType": "image/png"
          }
        ],
        "submissionState": "draft",
        "createdAt": "2026-09-18T22:00:00Z",
        "bugType": null,
        "feature": null
      },
      "mustRejectBecause": "A file descriptor exceeds 20 MiB."
    },
    {
      "id": "feedback-six-files",
      "type": "PublicFeedback",
      "value": {
        "id": "feedback-draft",
        "category": "feature-request",
        "senderEmail": "ari.example@example.com",
        "appVersion": "fixture-1.0",
        "message": "Please make the keyboard shortcut visible next to this action.",
        "attachments": [
          {
            "name": "file-0.txt",
            "byteLength": 10,
            "mediaType": "text/plain"
          },
          {
            "name": "file-1.txt",
            "byteLength": 10,
            "mediaType": "text/plain"
          },
          {
            "name": "file-2.txt",
            "byteLength": 10,
            "mediaType": "text/plain"
          },
          {
            "name": "file-3.txt",
            "byteLength": 10,
            "mediaType": "text/plain"
          },
          {
            "name": "file-4.txt",
            "byteLength": 10,
            "mediaType": "text/plain"
          },
          {
            "name": "file-5.txt",
            "byteLength": 10,
            "mediaType": "text/plain"
          }
        ],
        "submissionState": "draft",
        "createdAt": "2026-09-18T22:00:00Z",
        "bugType": null,
        "feature": null
      },
      "mustRejectBecause": "At most five files are accepted."
    },
    {
      "id": "feedback-path-name",
      "type": "PublicFeedback",
      "value": {
        "id": "feedback-draft",
        "category": "feature-request",
        "senderEmail": "ari.example@example.com",
        "appVersion": "fixture-1.0",
        "message": "Please make the keyboard shortcut visible next to this action.",
        "attachments": [
          {
            "name": "/private/sample.txt",
            "byteLength": 10,
            "mediaType": "text/plain"
          }
        ],
        "submissionState": "draft",
        "createdAt": "2026-09-18T22:00:00Z",
        "bugType": null,
        "feature": null
      },
      "mustRejectBecause": "Fixture file names never contain a path."
    },
    {
      "id": "asset-traversal",
      "type": "Asset",
      "value": {
        "id": "asset-store-icon",
        "kind": "icon",
        "mimeType": "image/svg+xml",
        "localPath": "assets/../secret.svg",
        "sourceUrl": "https://registry.npmjs.org/@raycast/icons",
        "widthPx": 16,
        "heightPx": 16,
        "byteLength": 438,
        "sha256": "54f8fba01ba6110353d2619ce1e602b95fe6f99c3a06fa0e81bed413e70931b1",
        "alt": "",
        "decorative": true,
        "theme": "any",
        "loading": "lazy",
        "rights": {
          "status": "package-license",
          "notice": "Public @raycast/icons package evidence retained; do not infer a product branding redistribution grant.",
          "distribution": "private-reference-only"
        }
      },
      "mustRejectBecause": "Asset paths stay under site/assets."
    },
    {
      "id": "asset-script-path",
      "type": "Asset",
      "value": {
        "id": "asset-store-icon",
        "kind": "icon",
        "mimeType": "image/svg+xml",
        "localPath": "javascript:alert(1)",
        "sourceUrl": "https://registry.npmjs.org/@raycast/icons",
        "widthPx": 16,
        "heightPx": 16,
        "byteLength": 438,
        "sha256": "54f8fba01ba6110353d2619ce1e602b95fe6f99c3a06fa0e81bed413e70931b1",
        "alt": "",
        "decorative": true,
        "theme": "any",
        "loading": "lazy",
        "rights": {
          "status": "package-license",
          "notice": "Public @raycast/icons package evidence retained; do not infer a product branding redistribution grant.",
          "distribution": "private-reference-only"
        }
      },
      "mustRejectBecause": "Asset paths are relative approved file types."
    },
    {
      "id": "asset-informative-empty-alt",
      "type": "Asset",
      "value": {
        "id": "asset-store-icon",
        "kind": "icon",
        "mimeType": "image/svg+xml",
        "localPath": "assets/icons/store.svg",
        "sourceUrl": "https://registry.npmjs.org/@raycast/icons",
        "widthPx": 16,
        "heightPx": 16,
        "byteLength": 438,
        "sha256": "54f8fba01ba6110353d2619ce1e602b95fe6f99c3a06fa0e81bed413e70931b1",
        "alt": "",
        "decorative": false,
        "theme": "any",
        "loading": "lazy",
        "rights": {
          "status": "package-license",
          "notice": "Public @raycast/icons package evidence retained; do not infer a product branding redistribution grant.",
          "distribution": "private-reference-only"
        }
      },
      "mustRejectBecause": "Informative icons need a text alternative."
    },
    {
      "id": "feedback-stale-hidden-fields",
      "type": "PublicFeedback",
      "value": {
        "id": "feedback-draft",
        "category": "feature-request",
        "senderEmail": "ari.example@example.com",
        "appVersion": "fixture-1.0",
        "message": "Please make the keyboard shortcut visible next to this action.",
        "attachments": [],
        "submissionState": "draft",
        "createdAt": "2026-09-18T22:00:00Z",
        "bugType": "crashing",
        "feature": "AI"
      },
      "mustRejectBecause": "A Feature Request cannot retain a hidden bugType in its canonical record."
    },
    {
      "id": "feedback-bug-type-missing",
      "type": "PublicFeedback",
      "value": {
        "id": "feedback-draft",
        "category": "bug-report",
        "senderEmail": "ari.example@example.com",
        "appVersion": "fixture-1.0",
        "message": "Please make the keyboard shortcut visible next to this action.",
        "attachments": [],
        "submissionState": "draft",
        "createdAt": "2026-09-18T22:00:00Z",
        "bugType": null,
        "feature": null
      },
      "mustRejectBecause": "Bug Report requires the local bug-type default or a valid selection."
    },
    {
      "id": "feedback-unknown-feature",
      "type": "PublicFeedback",
      "value": {
        "id": "feedback-draft",
        "category": "bug-report",
        "senderEmail": "ari.example@example.com",
        "appVersion": "fixture-1.0",
        "message": "Please make the keyboard shortcut visible next to this action.",
        "attachments": [],
        "submissionState": "draft",
        "createdAt": "2026-09-18T22:00:00Z",
        "bugType": "crashing",
        "feature": "Unlisted product"
      },
      "mustRejectBecause": "Feature selection uses one of the23 captured choices or null."
    }
  ],
  "collectionScenarios": [
    {
      "id": "initial-loading",
      "axes": [
        "loading",
        "accessibility"
      ],
      "value": {
        "schemaVersion": 1,
        "requestId": 1,
        "state": "loading",
        "items": [],
        "receivedAt": null,
        "expiresAt": null,
        "hasMore": false,
        "message": null
      },
      "expectedState": "loading",
      "copy": "Loading extensions",
      "expectedIds": []
    },
    {
      "id": "ready",
      "axes": [
        "normal"
      ],
      "value": {
        "schemaVersion": 1,
        "requestId": 1,
        "state": "ready",
        "items": [
          {
            "id": "draft-notes",
            "slug": "draft-notes",
            "name": "Draft Notes",
            "summary": "Keep a small queue of tasks and open the right command from one place.",
            "publisher": {
              "displayName": "Ari Example",
              "handle": "ari-example"
            },
            "category": "productivity",
            "platforms": [
              "macos",
              "windows"
            ],
            "iconAssetId": "asset-store-icon",
            "publicUrl": "https://www.raycast.com/store",
            "commands": [
              {
                "id": "open-queue",
                "title": "Open Queue",
                "subtitle": "Review saved tasks"
              }
            ],
            "access": "public",
            "updatedAt": "2026-09-18T22:00:00Z",
            "locale": "en",
            "tags": [
              "tasks",
              "queue"
            ],
            "downloadCount": 12500,
            "revision": 1
          },
          {
            "id": "pr-queue",
            "slug": "pr-queue",
            "name": "Pull Request Queue",
            "summary": "Review pull requests and keep code-review work in a predictable list.",
            "publisher": {
              "displayName": "Ari Example",
              "handle": "ari-example"
            },
            "category": "developer-tools",
            "platforms": [
              "macos",
              "windows"
            ],
            "iconAssetId": "asset-store-icon",
            "publicUrl": "https://www.raycast.com/store",
            "commands": [
              {
                "id": "open-queue",
                "title": "Open Queue",
                "subtitle": "Review saved tasks"
              }
            ],
            "access": "public",
            "updatedAt": "2026-09-18T22:00:00Z",
            "locale": "en",
            "tags": [
              "code",
              "review"
            ],
            "downloadCount": 2480,
            "revision": 1
          },
          {
            "id": "cafe-tasks",
            "slug": "cafe-tasks",
            "name": "Café Tasks",
            "summary": "Capture a short thought before returning to work.",
            "publisher": {
              "displayName": "Ari Example",
              "handle": "ari-example"
            },
            "category": "productivity",
            "platforms": [
              "macos"
            ],
            "iconAssetId": "asset-store-icon",
            "publicUrl": "https://www.raycast.com/store",
            "commands": [
              {
                "id": "open-queue",
                "title": "Open Queue",
                "subtitle": "Review saved tasks"
              }
            ],
            "access": "public",
            "updatedAt": "2026-09-18T22:00:00Z",
            "locale": "en",
            "tags": [
              "cafe",
              "notes"
            ],
            "downloadCount": 12500,
            "revision": 1
          }
        ],
        "receivedAt": "2026-09-18T22:00:00Z",
        "expiresAt": "2026-09-19T22:00:00Z",
        "hasMore": false,
        "message": null
      },
      "expectedState": "ready",
      "copy": "Extensions ready",
      "expectedIds": [
        "draft-notes",
        "pr-queue",
        "cafe-tasks"
      ]
    },
    {
      "id": "empty-source",
      "axes": [
        "empty"
      ],
      "value": {
        "schemaVersion": 1,
        "requestId": 1,
        "state": "empty",
        "items": [],
        "receivedAt": "2026-09-18T22:00:00Z",
        "expiresAt": "2026-09-19T22:00:00Z",
        "hasMore": false,
        "message": null
      },
      "expectedState": "empty",
      "copy": "No extensions yet",
      "expectedIds": []
    },
    {
      "id": "partial-source",
      "axes": [
        "partial",
        "error"
      ],
      "value": {
        "schemaVersion": 1,
        "requestId": 1,
        "state": "partial",
        "items": [
          {
            "id": "draft-notes",
            "slug": "draft-notes",
            "name": "Draft Notes",
            "summary": "Keep a small queue of tasks and open the right command from one place.",
            "publisher": {
              "displayName": "Ari Example",
              "handle": "ari-example"
            },
            "category": "productivity",
            "platforms": [
              "macos",
              "windows"
            ],
            "iconAssetId": "asset-store-icon",
            "publicUrl": "https://www.raycast.com/store",
            "commands": [
              {
                "id": "open-queue",
                "title": "Open Queue",
                "subtitle": "Review saved tasks"
              }
            ],
            "access": "public",
            "updatedAt": "2026-09-18T22:00:00Z",
            "locale": "en",
            "tags": [
              "tasks",
              "queue"
            ],
            "downloadCount": 12500,
            "revision": 1
          }
        ],
        "receivedAt": "2026-09-18T22:00:00Z",
        "expiresAt": "2026-09-19T22:00:00Z",
        "hasMore": false,
        "message": "One fixture could not load."
      },
      "expectedState": "partial",
      "copy": "Some extensions are unavailable",
      "expectedIds": [
        "draft-notes"
      ]
    },
    {
      "id": "stale-source",
      "axes": [
        "stale",
        "offline"
      ],
      "value": {
        "schemaVersion": 1,
        "requestId": 1,
        "state": "ready",
        "items": [
          {
            "id": "draft-notes",
            "slug": "draft-notes",
            "name": "Draft Notes",
            "summary": "Keep a small queue of tasks and open the right command from one place.",
            "publisher": {
              "displayName": "Ari Example",
              "handle": "ari-example"
            },
            "category": "productivity",
            "platforms": [
              "macos",
              "windows"
            ],
            "iconAssetId": "asset-store-icon",
            "publicUrl": "https://www.raycast.com/store",
            "commands": [
              {
                "id": "open-queue",
                "title": "Open Queue",
                "subtitle": "Review saved tasks"
              }
            ],
            "access": "public",
            "updatedAt": "2026-09-18T22:00:00Z",
            "locale": "en",
            "tags": [
              "tasks",
              "queue"
            ],
            "downloadCount": 12500,
            "revision": 1
          },
          {
            "id": "pr-queue",
            "slug": "pr-queue",
            "name": "Pull Request Queue",
            "summary": "Review pull requests and keep code-review work in a predictable list.",
            "publisher": {
              "displayName": "Ari Example",
              "handle": "ari-example"
            },
            "category": "developer-tools",
            "platforms": [
              "macos",
              "windows"
            ],
            "iconAssetId": "asset-store-icon",
            "publicUrl": "https://www.raycast.com/store",
            "commands": [
              {
                "id": "open-queue",
                "title": "Open Queue",
                "subtitle": "Review saved tasks"
              }
            ],
            "access": "public",
            "updatedAt": "2026-09-18T22:00:00Z",
            "locale": "en",
            "tags": [
              "code",
              "review"
            ],
            "downloadCount": 2480,
            "revision": 1
          }
        ],
        "receivedAt": "2026-09-18T22:00:00Z",
        "expiresAt": "2026-09-18T22:30:00Z",
        "hasMore": false,
        "message": null
      },
      "expectedState": "stale",
      "copy": "Showing saved results",
      "expectedIds": [
        "draft-notes",
        "pr-queue"
      ]
    },
    {
      "id": "offline-with-snapshot",
      "axes": [
        "offline",
        "preserved-work"
      ],
      "value": {
        "schemaVersion": 1,
        "requestId": 1,
        "state": "offline",
        "items": [
          {
            "id": "draft-notes",
            "slug": "draft-notes",
            "name": "Draft Notes",
            "summary": "Keep a small queue of tasks and open the right command from one place.",
            "publisher": {
              "displayName": "Ari Example",
              "handle": "ari-example"
            },
            "category": "productivity",
            "platforms": [
              "macos",
              "windows"
            ],
            "iconAssetId": "asset-store-icon",
            "publicUrl": "https://www.raycast.com/store",
            "commands": [
              {
                "id": "open-queue",
                "title": "Open Queue",
                "subtitle": "Review saved tasks"
              }
            ],
            "access": "public",
            "updatedAt": "2026-09-18T22:00:00Z",
            "locale": "en",
            "tags": [
              "tasks",
              "queue"
            ],
            "downloadCount": 12500,
            "revision": 1
          },
          {
            "id": "pr-queue",
            "slug": "pr-queue",
            "name": "Pull Request Queue",
            "summary": "Review pull requests and keep code-review work in a predictable list.",
            "publisher": {
              "displayName": "Ari Example",
              "handle": "ari-example"
            },
            "category": "developer-tools",
            "platforms": [
              "macos",
              "windows"
            ],
            "iconAssetId": "asset-store-icon",
            "publicUrl": "https://www.raycast.com/store",
            "commands": [
              {
                "id": "open-queue",
                "title": "Open Queue",
                "subtitle": "Review saved tasks"
              }
            ],
            "access": "public",
            "updatedAt": "2026-09-18T22:00:00Z",
            "locale": "en",
            "tags": [
              "code",
              "review"
            ],
            "downloadCount": 2480,
            "revision": 1
          }
        ],
        "receivedAt": "2026-09-18T22:00:00Z",
        "expiresAt": "2026-09-19T22:00:00Z",
        "hasMore": false,
        "message": "Reconnect to refresh."
      },
      "expectedState": "offline",
      "copy": "You’re offline",
      "expectedIds": [
        "draft-notes",
        "pr-queue"
      ]
    },
    {
      "id": "error-with-snapshot",
      "axes": [
        "error",
        "preserved-work"
      ],
      "value": {
        "schemaVersion": 1,
        "requestId": 1,
        "state": "error",
        "items": [
          {
            "id": "draft-notes",
            "slug": "draft-notes",
            "name": "Draft Notes",
            "summary": "Keep a small queue of tasks and open the right command from one place.",
            "publisher": {
              "displayName": "Ari Example",
              "handle": "ari-example"
            },
            "category": "productivity",
            "platforms": [
              "macos",
              "windows"
            ],
            "iconAssetId": "asset-store-icon",
            "publicUrl": "https://www.raycast.com/store",
            "commands": [
              {
                "id": "open-queue",
                "title": "Open Queue",
                "subtitle": "Review saved tasks"
              }
            ],
            "access": "public",
            "updatedAt": "2026-09-18T22:00:00Z",
            "locale": "en",
            "tags": [
              "tasks",
              "queue"
            ],
            "downloadCount": 12500,
            "revision": 1
          }
        ],
        "receivedAt": "2026-09-18T22:00:00Z",
        "expiresAt": "2026-09-19T22:00:00Z",
        "hasMore": false,
        "message": "Retry the local request."
      },
      "expectedState": "error",
      "copy": "Couldn’t load extensions",
      "expectedIds": [
        "draft-notes"
      ]
    },
    {
      "id": "permission-boundary",
      "axes": [
        "permissions",
        "privacy"
      ],
      "value": {
        "schemaVersion": 1,
        "requestId": 1,
        "state": "permission",
        "items": [],
        "receivedAt": "2026-09-18T22:00:00Z",
        "expiresAt": "2026-09-19T22:00:00Z",
        "hasMore": false,
        "message": "Open the official sign-in page."
      },
      "expectedState": "permission",
      "copy": "Sign in to continue",
      "expectedIds": []
    },
    {
      "id": "rtl-narrow-offline",
      "axes": [
        "internationalization",
        "responsive",
        "offline",
        "accessibility"
      ],
      "value": {
        "schemaVersion": 1,
        "requestId": 1,
        "state": "offline",
        "items": [
          {
            "id": "rtl-notes",
            "slug": "rtl-notes",
            "name": "ملاحظات المشروع",
            "summary": "افتح ملاحظات المشروع ثم اختر المهمة التالية من القائمة.",
            "publisher": {
              "displayName": "سمر مثال",
              "handle": "samar-example"
            },
            "category": "productivity",
            "platforms": [
              "macos",
              "windows"
            ],
            "iconAssetId": "asset-store-icon",
            "publicUrl": "https://www.raycast.com/store",
            "commands": [
              {
                "id": "open-queue",
                "title": "Open Queue",
                "subtitle": "Review saved tasks"
              }
            ],
            "access": "public",
            "updatedAt": "2026-09-18T22:00:00Z",
            "locale": "ar",
            "tags": [
              "notes",
              "مشروع"
            ],
            "downloadCount": 12500,
            "revision": 1
          }
        ],
        "receivedAt": "2026-09-18T22:00:00Z",
        "expiresAt": "2026-09-19T22:00:00Z",
        "hasMore": false,
        "message": "Reconnect to refresh."
      },
      "expectedState": "offline",
      "copy": "You’re offline",
      "expectedIds": [
        "rtl-notes"
      ],
      "viewport": {
        "width": 390,
        "height": 844
      },
      "locale": "ar"
    }
  ],
  "urlCases": [
    {
      "input": "components.html#extension-card",
      "expectedLocal": true
    },
    {
      "input": "assets.html?q=arrow&category=direction",
      "expectedLocal": true
    },
    {
      "input": "#public-feedback",
      "expectedLocal": true
    },
    {
      "input": "javascript:alert(1)",
      "expectedLocal": false
    },
    {
      "input": "java\nscript:alert(1)",
      "expectedLocal": false
    },
    {
      "input": "data:text/html,hello",
      "expectedLocal": false
    },
    {
      "input": "//evil.example/",
      "expectedLocal": false
    },
    {
      "input": "https://evil.example/",
      "expectedLocal": false
    },
    {
      "input": "../secrets.html",
      "expectedLocal": false
    },
    {
      "input": "%2e%2e/secrets.html",
      "expectedLocal": false
    },
    {
      "input": "components.html#%3Cscript%3E",
      "expectedLocal": false
    },
    {
      "input": "components.html\\@evil.example",
      "expectedLocal": false
    }
  ],
  "filterCases": [
    {
      "id": "accent",
      "q": "cafe",
      "category": "all",
      "expectedIds": [
        "cafe-tasks"
      ]
    },
    {
      "id": "category",
      "q": "",
      "category": "developer-tools",
      "expectedIds": [
        "pr-queue"
      ]
    },
    {
      "id": "and",
      "q": "notes",
      "category": "developer-tools",
      "expectedIds": []
    },
    {
      "id": "no-results",
      "q": "zzzz-no-such-extension",
      "category": "all",
      "expectedIds": []
    },
    {
      "id": "rtl",
      "q": "ملاحظات",
      "category": "all",
      "expectedIds": [
        "rtl-notes"
      ]
    },
    {
      "id": "long-query",
      "q": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
      "category": "all",
      "expectedIds": []
    }
  ],
  "duplicateCases": [
    {
      "id": "identical",
      "records": [
        {
          "id": "draft-notes",
          "slug": "draft-notes",
          "name": "Draft Notes",
          "summary": "Keep a small queue of tasks and open the right command from one place.",
          "publisher": {
            "displayName": "Ari Example",
            "handle": "ari-example"
          },
          "category": "productivity",
          "platforms": [
            "macos",
            "windows"
          ],
          "iconAssetId": "asset-store-icon",
          "publicUrl": "https://www.raycast.com/store",
          "commands": [
            {
              "id": "open-queue",
              "title": "Open Queue",
              "subtitle": "Review saved tasks"
            }
          ],
          "access": "public",
          "updatedAt": "2026-09-18T22:00:00Z",
          "locale": "en",
          "tags": [
            "tasks",
            "queue"
          ],
          "downloadCount": 12500,
          "revision": 1
        },
        {
          "id": "draft-notes",
          "slug": "draft-notes",
          "name": "Draft Notes",
          "summary": "Keep a small queue of tasks and open the right command from one place.",
          "publisher": {
            "displayName": "Ari Example",
            "handle": "ari-example"
          },
          "category": "productivity",
          "platforms": [
            "macos",
            "windows"
          ],
          "iconAssetId": "asset-store-icon",
          "publicUrl": "https://www.raycast.com/store",
          "commands": [
            {
              "id": "open-queue",
              "title": "Open Queue",
              "subtitle": "Review saved tasks"
            }
          ],
          "access": "public",
          "updatedAt": "2026-09-18T22:00:00Z",
          "locale": "en",
          "tags": [
            "tasks",
            "queue"
          ],
          "downloadCount": 12500,
          "revision": 1
        }
      ],
      "expectedIds": [
        "draft-notes"
      ],
      "expectedState": "ready"
    },
    {
      "id": "newer-wins",
      "records": [
        {
          "id": "draft-notes",
          "slug": "draft-notes",
          "name": "Draft Notes",
          "summary": "Keep a small queue of tasks and open the right command from one place.",
          "publisher": {
            "displayName": "Ari Example",
            "handle": "ari-example"
          },
          "category": "productivity",
          "platforms": [
            "macos",
            "windows"
          ],
          "iconAssetId": "asset-store-icon",
          "publicUrl": "https://www.raycast.com/store",
          "commands": [
            {
              "id": "open-queue",
              "title": "Open Queue",
              "subtitle": "Review saved tasks"
            }
          ],
          "access": "public",
          "updatedAt": "2026-09-18T22:00:00Z",
          "locale": "en",
          "tags": [
            "tasks",
            "queue"
          ],
          "downloadCount": 12500,
          "revision": 1
        },
        {
          "id": "draft-notes",
          "slug": "draft-notes",
          "name": "Draft Notes Updated",
          "summary": "Keep a small queue of tasks and open the right command from one place.",
          "publisher": {
            "displayName": "Ari Example",
            "handle": "ari-example"
          },
          "category": "productivity",
          "platforms": [
            "macos",
            "windows"
          ],
          "iconAssetId": "asset-store-icon",
          "publicUrl": "https://www.raycast.com/store",
          "commands": [
            {
              "id": "open-queue",
              "title": "Open Queue",
              "subtitle": "Review saved tasks"
            }
          ],
          "access": "public",
          "updatedAt": "2026-09-18T22:00:00Z",
          "locale": "en",
          "tags": [
            "tasks",
            "queue"
          ],
          "downloadCount": 12500,
          "revision": 2
        }
      ],
      "expectedIds": [
        "draft-notes"
      ],
      "expectedName": "Draft Notes Updated",
      "expectedState": "ready"
    },
    {
      "id": "stale-does-not-win",
      "records": [
        {
          "id": "draft-notes",
          "slug": "draft-notes",
          "name": "Current Notes",
          "summary": "Keep a small queue of tasks and open the right command from one place.",
          "publisher": {
            "displayName": "Ari Example",
            "handle": "ari-example"
          },
          "category": "productivity",
          "platforms": [
            "macos",
            "windows"
          ],
          "iconAssetId": "asset-store-icon",
          "publicUrl": "https://www.raycast.com/store",
          "commands": [
            {
              "id": "open-queue",
              "title": "Open Queue",
              "subtitle": "Review saved tasks"
            }
          ],
          "access": "public",
          "updatedAt": "2026-09-18T22:00:00Z",
          "locale": "en",
          "tags": [
            "tasks",
            "queue"
          ],
          "downloadCount": 12500,
          "revision": 3
        },
        {
          "id": "draft-notes",
          "slug": "draft-notes",
          "name": "Draft Notes",
          "summary": "Keep a small queue of tasks and open the right command from one place.",
          "publisher": {
            "displayName": "Ari Example",
            "handle": "ari-example"
          },
          "category": "productivity",
          "platforms": [
            "macos",
            "windows"
          ],
          "iconAssetId": "asset-store-icon",
          "publicUrl": "https://www.raycast.com/store",
          "commands": [
            {
              "id": "open-queue",
              "title": "Open Queue",
              "subtitle": "Review saved tasks"
            }
          ],
          "access": "public",
          "updatedAt": "2026-09-18T22:00:00Z",
          "locale": "en",
          "tags": [
            "tasks",
            "queue"
          ],
          "downloadCount": 12500,
          "revision": 1
        }
      ],
      "expectedIds": [
        "draft-notes"
      ],
      "expectedName": "Current Notes",
      "expectedState": "ready"
    },
    {
      "id": "same-revision-conflict",
      "records": [
        {
          "id": "draft-notes",
          "slug": "draft-notes",
          "name": "Draft Notes",
          "summary": "Keep a small queue of tasks and open the right command from one place.",
          "publisher": {
            "displayName": "Ari Example",
            "handle": "ari-example"
          },
          "category": "productivity",
          "platforms": [
            "macos",
            "windows"
          ],
          "iconAssetId": "asset-store-icon",
          "publicUrl": "https://www.raycast.com/store",
          "commands": [
            {
              "id": "open-queue",
              "title": "Open Queue",
              "subtitle": "Review saved tasks"
            }
          ],
          "access": "public",
          "updatedAt": "2026-09-18T22:00:00Z",
          "locale": "en",
          "tags": [
            "tasks",
            "queue"
          ],
          "downloadCount": 12500,
          "revision": 1
        },
        {
          "id": "draft-notes",
          "slug": "draft-notes",
          "name": "Conflicting Notes",
          "summary": "Keep a small queue of tasks and open the right command from one place.",
          "publisher": {
            "displayName": "Ari Example",
            "handle": "ari-example"
          },
          "category": "productivity",
          "platforms": [
            "macos",
            "windows"
          ],
          "iconAssetId": "asset-store-icon",
          "publicUrl": "https://www.raycast.com/store",
          "commands": [
            {
              "id": "open-queue",
              "title": "Open Queue",
              "subtitle": "Review saved tasks"
            }
          ],
          "access": "public",
          "updatedAt": "2026-09-18T22:00:00Z",
          "locale": "en",
          "tags": [
            "tasks",
            "queue"
          ],
          "downloadCount": 12500,
          "revision": 1
        },
        {
          "id": "pr-queue",
          "slug": "pr-queue",
          "name": "Pull Request Queue",
          "summary": "Review pull requests and keep code-review work in a predictable list.",
          "publisher": {
            "displayName": "Ari Example",
            "handle": "ari-example"
          },
          "category": "developer-tools",
          "platforms": [
            "macos",
            "windows"
          ],
          "iconAssetId": "asset-store-icon",
          "publicUrl": "https://www.raycast.com/store",
          "commands": [
            {
              "id": "open-queue",
              "title": "Open Queue",
              "subtitle": "Review saved tasks"
            }
          ],
          "access": "public",
          "updatedAt": "2026-09-18T22:00:00Z",
          "locale": "en",
          "tags": [
            "code",
            "review"
          ],
          "downloadCount": 2480,
          "revision": 1
        }
      ],
      "expectedIds": [
        "pr-queue"
      ],
      "expectedState": "partial"
    }
  ],
  "requestRaces": [
    {
      "issued": 4,
      "arrived": 3,
      "accept": false
    },
    {
      "issued": 4,
      "arrived": 4,
      "accept": true
    },
    {
      "issued": 4,
      "arrived": 5,
      "accept": false
    }
  ],
  "displayRules": {
    "missingSummary": "No description is available in this fixture.",
    "missingPublisher": "Publisher unavailable",
    "missingCount": "Count unavailable",
    "missingAsset": "Use the named fallback icon or an empty reserved media area with visible text. Never keep a broken image glyph.",
    "missingArticleDate": "Omit date; never use today.",
    "missingPrice": "Contact",
    "longTitle": "Wrap without line clamp; only extension summaries clamp to two lines. The full summary remains in a detail/specimen disclosure.",
    "rtl": "Set lang and dir=auto on authored text; keep identifiers and code inside bdi dir=ltr. Use logical spacing; do not mirror logos or screenshots.",
    "unsafeText": "Set textContent. Code blocks remain literal pre/code. Do not use innerHTML, DOMParser, eval, or CSS interpolation with content."
  },
  "conditionalFeedbackCases": [
    {
      "id": "switch-to-bug",
      "category": "bug-report",
      "visibleBugType": true,
      "visibleFeature": true,
      "defaultBugType": "not_working",
      "defaultFeature": null
    },
    {
      "id": "switch-to-feature",
      "category": "feature-request",
      "visibleBugType": false,
      "visibleFeature": true,
      "canonicalBugType": null
    },
    {
      "id": "switch-to-billing",
      "category": "billing-issue",
      "visibleBugType": false,
      "visibleFeature": false,
      "canonicalBugType": null,
      "canonicalFeature": null
    }
  ]
}
