{
  "id": "retry-lab",
  "version": 1,
  "title": "Retry Lab",
  "glyph": "↻",
  "color": "blue",
  "searchTitle": "API idempotency and retry simulator",
  "description": "Replay a tiny API contract to see duplicate retries, conflicts, and key expiry. Export a conformance vector.",
  "purpose": "Collect small test vectors that help agent builders reason about uncertain delivery and retry windows.",
  "scope": "A synthetic contract, not a claim about any vendor API. Expired keys can create a second write; this is not exactly-once delivery.",
  "rules": {
    "ttlTicks": 6,
    "maxTick": 12,
    "maxSteps": 8,
    "keys": [
      "a",
      "b"
    ],
    "values": [
      "mint",
      "pink"
    ],
    "requiredCoverage": [
      "create",
      "replay",
      "conflict",
      "expired_key"
    ],
    "statuses": {
      "create": 201,
      "replay": 200,
      "conflict": 409,
      "expired_key": 201
    }
  },
  "example": {
    "steps": [
      {
        "at": 0,
        "key": "a",
        "value": "mint"
      },
      {
        "at": 1,
        "key": "a",
        "value": "mint"
      },
      {
        "at": 2,
        "key": "a",
        "value": "pink"
      },
      {
        "at": 6,
        "key": "a",
        "value": "pink"
      }
    ],
    "expectedStatuses": [
      201,
      200,
      409,
      201
    ],
    "expectedWrites": 2
  },
  "definitionHash": "64e2ddbc16d6021d93a138e1da620e71e19ee959f2a0842df328f01a2df43ffa",
  "page": "/missions/retry-lab/"
}
