{
  "canonical_story": {
    "revision": 8,
    "source_sha256": "c5a481b475f8646cb6364fbc2b502327dca1a1d3a652ffb908518c578eafbc3e"
  },
  "example_flow": [
    "Create an SDK client with backend-held bearer token and tenant-context token.",
    "Verify API health.",
    "List admitted tenants before tenant-scoped calls.",
    "List parties, policies, and retained claim-family compatibility data using the generated SDK surface.",
    "Open one selected record from each list when an identifier is available.",
    "Record unavailable fields as explicit application gaps rather than inventing data."
  ],
  "financial_facts": {
    "after_event_assertion": {
      "basket_discount": "-680.00",
      "gross_monthly_premium": "6800.00",
      "net_monthly_premium": "6120.00",
      "total_commission": "833.63"
    },
    "before_event_assertion": {
      "basket_discount": "-655.50",
      "gross_monthly_premium": "6555.00",
      "net_monthly_premium": "5899.50",
      "total_commission": "806.06"
    },
    "currency": "ZAR",
    "event_free_rating_adjustment": {
      "after_event_assertion_monthly_adjustment": "0.00",
      "before_event_assertion_monthly_adjustment": "-245.00",
      "premium_delta": "245.00"
    }
  },
  "insurance_acts": [
    {
      "act": 1,
      "api_operations": [
        "GET /v1/parties",
        "GET /v1/parties/{id}"
      ],
      "developer_task": "List admitted parties and inspect the selected party context.",
      "title": "Parties and roles"
    },
    {
      "act": 2,
      "api_operations": [
        "GET /v1/catalogues",
        "GET /v1/catalogues/{catalogue-ref}/entries"
      ],
      "developer_task": "Treat cover and product setup as tenant configuration, not client code.",
      "title": "Products and covers"
    },
    {
      "act": 3,
      "api_operations": [
        "GET /v1/policies",
        "GET /v1/policies/{id}"
      ],
      "developer_task": "List policies and open the selected policy detail.",
      "title": "Policies and terms"
    },
    {
      "act": 4,
      "api_operations": [
        "GET /v1/premiums",
        "GET /v1/payments"
      ],
      "developer_task": "Display premium and payment context only where the contract exposes it.",
      "title": "Premiums and payments"
    },
    {
      "act": 5,
      "alpha_gap": "The claim-family public route is retained compatibility over events/assertions; display a named gap instead of inventing unpublished assertion audit fields.",
      "api_operations": [
        "GET /v1/claims",
        "GET /v1/claims/{id}",
        "GET /v1/claims/{id}/pdf"
      ],
      "developer_task": "Read retained claim-family compatibility data as events/assertions and inspect the available audit context.",
      "title": "Events and assertions"
    }
  ],
  "public_safety": {
    "notes": [
      "Scenario facts are derived from the canonical Five Acts demo story.",
      "Personal names, client names, private evidence names, and tenant realm examples are not published.",
      "Use only credentials and tenant context issued in an admitted alpha access pack."
    ],
    "posture": "tenant-neutral sanitized derivative"
  },
  "request_model": {
    "base_url": "https://api.afr-dev.axiom.express",
    "headers": {
      "Authorization": "Bearer <jwt>",
      "X-Correlation-ID": "five-acts-example-<timestamp>",
      "X-Tenant-Context": "<server-minted tenant context>"
    }
  },
  "scenario": "five-acts-developer-read-journey"
}
