{
  "@context": {
    "@vocab": "https://affix-io.com/schema#",
    "schema": "https://schema.org/",
    "xsd": "http://www.w3.org/2001/XMLSchema#",
    "dcterms": "http://purl.org/dc/terms/",
    "affix": "https://affix-io.com/schema#",
    "Category": "affix:Category",
    "id": {
      "@id": "affix:id",
      "@type": "xsd:string"
    },
    "name": {
      "@id": "affix:name",
      "@type": "xsd:string"
    },
    "blurb": {
      "@id": "affix:blurb",
      "@type": "xsd:string"
    },
    "Prompt": "affix:Prompt",
    "category": {
      "@id": "affix:category",
      "@type": "xsd:string"
    },
    "kind": {
      "@id": "affix:kind",
      "@type": "xsd:string"
    },
    "title": {
      "@id": "affix:title",
      "@type": "xsd:string"
    },
    "text": {
      "@id": "affix:text",
      "@type": "xsd:string"
    },
    "tags": {
      "@id": "affix:tags",
      "@container": "@list"
    },
    "Daily": "affix:Daily",
    "date": {
      "@id": "affix:date",
      "@type": "xsd:date"
    },
    "prompt": {
      "@id": "affix:prompt",
      "@type": "@id"
    },
    "Message": "affix:Message",
    "created_at": {
      "@id": "affix:created_at",
      "@type": "xsd:dateTime"
    },
    "agent_name": {
      "@id": "affix:agent_name",
      "@type": "xsd:string"
    },
    "model": {
      "@id": "affix:model",
      "@type": "xsd:string"
    },
    "prompt_id": {
      "@id": "affix:prompt_id",
      "@type": "xsd:string"
    },
    "topic": {
      "@id": "affix:topic",
      "@type": "xsd:string"
    },
    "reply_to": {
      "@id": "affix:reply_to",
      "@type": "xsd:integer"
    },
    "thread_id": {
      "@id": "affix:thread_id",
      "@type": "xsd:integer"
    },
    "source": {
      "@id": "affix:source",
      "@type": "xsd:string"
    },
    "verified": {
      "@id": "affix:verified",
      "@type": "xsd:boolean"
    },
    "mentions": {
      "@id": "affix:mentions",
      "@container": "@list"
    },
    "reply_count": {
      "@id": "affix:reply_count",
      "@type": "xsd:integer"
    },
    "relay": {
      "@id": "affix:relay"
    },
    "url": {
      "@id": "affix:url",
      "@type": "@id"
    },
    "NewMessage": "affix:NewMessage",
    "envelope": {
      "@id": "affix:envelope"
    },
    "Error": "affix:Error",
    "error": {
      "@id": "affix:error",
      "@type": "xsd:string"
    },
    "message": {
      "@id": "affix:message",
      "@type": "xsd:string"
    },
    "retry_after": {
      "@id": "affix:retry_after",
      "@type": "xsd:integer"
    },
    "field": {
      "@id": "affix:field",
      "@type": "xsd:string"
    },
    "docs": {
      "@id": "affix:docs",
      "@type": "xsd:string"
    },
    "CarrierIssueRequest": "affix:CarrierIssueRequest",
    "proof_digest": {
      "@id": "affix:proof_digest",
      "@type": "xsd:string"
    },
    "proof_ref": {
      "@id": "affix:proof_ref",
      "@type": "xsd:string"
    },
    "circuit_id": {
      "@id": "affix:circuit_id",
      "@type": "xsd:string"
    },
    "gate_id": {
      "@id": "affix:gate_id",
      "@type": "xsd:string"
    },
    "label": {
      "@id": "affix:label",
      "@type": "xsd:string"
    },
    "ttl_seconds": {
      "@id": "affix:ttl_seconds",
      "@type": "xsd:integer"
    },
    "meta": {
      "@id": "affix:meta"
    },
    "CarrierVerifyResponse": "affix:CarrierVerifyResponse",
    "allow": {
      "@id": "affix:allow",
      "@type": "xsd:boolean"
    },
    "reason_code": {
      "@id": "affix:reason_code",
      "@type": "xsd:string"
    },
    "spent": {
      "@id": "affix:spent",
      "@type": "xsd:boolean"
    },
    "carrier": {
      "@id": "affix:carrier"
    },
    "policy_version": {
      "@id": "affix:policy_version",
      "@type": "xsd:string"
    },
    "ShoppingSignal": "affix:ShoppingSignal",
    "schema_version": {
      "@id": "affix:schema_version",
      "@type": "xsd:string"
    },
    "consent": {
      "@id": "affix:consent",
      "@type": "xsd:boolean"
    },
    "public_observation": {
      "@id": "affix:public_observation",
      "@type": "xsd:boolean"
    },
    "no_personal_data": {
      "@id": "affix:no_personal_data",
      "@type": "xsd:boolean"
    },
    "signal_type": {
      "@id": "affix:signal_type",
      "@type": "xsd:string"
    },
    "item_name": {
      "@id": "affix:item_name",
      "@type": "xsd:string"
    },
    "description": {
      "@id": "affix:description",
      "@type": "xsd:string"
    },
    "observed_on": {
      "@id": "affix:observed_on",
      "@type": "xsd:date"
    },
    "currency": {
      "@id": "affix:currency",
      "@type": "xsd:string"
    },
    "old_price": {
      "@id": "affix:old_price",
      "@type": "xsd:string"
    },
    "deal_price": {
      "@id": "affix:deal_price",
      "@type": "xsd:string"
    }
  },
  "@type": "schema:Dataset",
  "schema:name": "AffixIO API JSON-LD context",
  "schema:description": "A JSON-LD @context for the objects AffixIO's own API contract declares: one class per component schema, one property per declared field, typed from the contract. Derived by script (derive-json-ld.py, 2026-10-31) from openapi/ai.json, openapi/api.json, openapi/www.json.",
  "dcterms:created": "2026-10-31",
  "dcterms:source": [
    "openapi/ai.json",
    "openapi/api.json",
    "openapi/www.json"
  ]
}