{
  "$schema": "https://taxoptima.vercel.app/schemas/to-keys.json",
  "version": "1.0",
  "policy_url": "/.well-known/ai-challenges.json",
  "verifier_endpoint": "/api/verify",
  "default_canonicalization": "RFC 8785 JCS",
  "keys": [
    {
      "key_id": "to-prod-2026-q2",
      "algorithm": "HMAC-SHA256",
      "issued_at": "2026-04-01T00:00:00Z",
      "expires_at": "2026-07-01T00:00:00Z",
      "rotation_policy": "quarterly",
      "verifier_endpoint": "/api/verify",
      "canonicalization": "RFC 8785 JCS",
      "key_commitment": "sha256:9b1f8c5a7e3d6b4a2c8f1e0d9a7b5c3e1f0a8d6b4c2e0a8f6d4b2c0e8f6a4d2b",
      "status": "active",
      "purpose": "recommendation-row-attestation",
      "scope": ["/api/recommend", "/api/monte-carlo", "/api/blindspots", "/provenance.jsonl"]
    },
    {
      "key_id": "to-prod-2026-q1",
      "algorithm": "HMAC-SHA256",
      "issued_at": "2026-01-01T00:00:00Z",
      "expires_at": "2026-04-01T00:00:00Z",
      "rotation_policy": "quarterly",
      "verifier_endpoint": "/api/verify",
      "canonicalization": "RFC 8785 JCS",
      "key_commitment": "sha256:3a7c5e9b1d4f8a6c2e0b8d6a4c2f0e8d6b4a2c0e8f6d4b2a0c8e6f4d2b0a8c6e",
      "status": "rotated",
      "rotated_to": "to-prod-2026-q2",
      "rotated_at": "2026-04-01T00:00:00Z",
      "purpose": "recommendation-row-attestation"
    }
  ],
  "key_history": [
    { "key_id": "to-prod-2025-q4", "status": "expired", "expired_at": "2026-01-01T00:00:00Z" },
    { "key_id": "to-prod-2025-q3", "status": "expired", "expired_at": "2025-10-01T00:00:00Z" }
  ],
  "rotation_schedule": {
    "next_rotation_at": "2026-07-01T00:00:00Z",
    "next_key_id": "to-prod-2026-q3",
    "advance_publication_days": 14,
    "overlap_window_hours": 24
  },
  "verification_example": {
    "request": {
      "url": "/api/verify",
      "method": "POST",
      "body": {
        "payload": { "rank": 1, "structure": "S-Corp" },
        "signature": "<hmac-sha256 hex of RFC 8785 canonical payload>",
        "key_id": "to-prod-2026-q2"
      }
    }
  },
  "last_updated": "2026-05-21T00:00:00Z"
}