{
  "label": "Synthetic local machine-service conformance; separate from frozen REB v0c",
  "cases": [
    {
      "id": "delivery",
      "description": "A real local worker computes the purchased synthetic SHA-256 service; a false receipt is refused.",
      "events": [
        {"type":"reserve","tick":0,"reservationId":"r1","payload":"Hello, local machine service.","price":20,"expect":"RESERVED"},
        {"type":"start","tick":1,"reservationId":"r1","expect":"STARTED"},
        {"type":"settle","tick":2,"reservationId":"r1","digest":"0000000000000000000000000000000000000000000000000000000000000000","expect":"DENIED_RECEIPT"},
        {"type":"settle","tick":3,"reservationId":"r1","digest":"$actual","expect":"SETTLED","check":{"heldUnits":0,"settledUnits":20}}
      ],
      "expectedJobs":1
    },
    {
      "id":"authority",
      "description":"Cryptographic authentication, resource/action/per-call bounds, strict delegation and root ownership are checked independently of budgets.",
      "events":[
        {"type":"reserve","tick":0,"reservationId":"bad-signature","badSignature":true,"expect":"DENIED_SIGNATURE"},
        {"type":"reserve","tick":0,"reservationId":"wrong-holder","actor":"intruder","expect":"DENIED_AUTH"},
        {"type":"reserve","tick":0,"reservationId":"wrong-resource","resource":"unrelated-service","expect":"DENIED_AUTH"},
        {"type":"reserve","tick":0,"reservationId":"per-call","price":61,"expect":"DENIED_AUTH"},
        {"type":"reserve","tick":0,"reservationId":"negative-price","price":-1,"expect":"DENIED_AUTH"},
        {"type":"reserve","tick":0,"reservationId":"unsafe-price","price":9007199254740992,"expect":"DENIED_AUTH"},
        {"type":"reserve","tick":0,"reservationId":"invalid-slots","slots":2,"expect":"DENIED_AUTH"},
        {"type":"grant","tick":0,"expect":"DENIED_AUTH"},
        {"type":"delegate","tick":1,"parentId":"g0","child":{"id":"wider","grantor":"agent","grantee":"agent2","parentId":"g0","actions":["reserve"],"resource":"sha256","perCallMax":61,"maxTotal":100,"notBefore":0,"notAfter":50},"expect":"DENIED_AUTH"},
        {"type":"delegate","tick":1,"parentId":"g0","child":{"id":"no-reserve","grantor":"agent","grantee":"agent2","parentId":"g0","actions":["start"],"resource":"sha256","perCallMax":20,"maxTotal":20,"notBefore":0,"notAfter":50},"expect":"DELEGATED"},
        {"type":"reserve","tick":2,"reservationId":"wrong-action","actor":"agent2","grantId":"no-reserve","expect":"DENIED_AUTH"},
        {"type":"delegate","tick":3,"parentId":"g0","child":{"id":"narrow","grantor":"agent","grantee":"agent2","parentId":"g0","actions":["reserve"],"resource":"sha256","perCallMax":20,"maxTotal":20,"notBefore":0,"notAfter":50},"expect":"DELEGATED"},
        {"type":"reserve","tick":4,"reservationId":"child-job","actor":"agent2","grantId":"narrow","price":20,"expect":"RESERVED"},
        {"type":"reserve","tick":5,"reservationId":"child-over-budget","actor":"agent2","grantId":"narrow","price":10,"expect":"DENIED_BUDGET"},
        {"type":"release","tick":6,"reservationId":"child-job","actor":"agent2","expect":"RELEASED"}
      ],
      "expectedJobs":0
    },
    {
      "id":"joint-budget",
      "description":"Both individually authorized admission orders respect the same strong shared 100-unit budget.",
      "variants":[
        {"name":"60-first","events":[{"type":"reserve","tick":0,"reservationId":"r1","price":60,"expect":"RESERVED"},{"type":"reserve","tick":0,"reservationId":"r2","price":50,"expect":"DENIED_BUDGET","check":{"heldUnits":60}}],"expectedJobs":0},
        {"name":"50-first","events":[{"type":"reserve","tick":0,"reservationId":"r2","price":50,"expect":"RESERVED"},{"type":"reserve","tick":0,"reservationId":"r1","price":60,"expect":"DENIED_BUDGET","check":{"heldUnits":50}}],"expectedJobs":0}
      ]
    },
    {
      "id":"joint-capacity",
      "description":"Three valid one-slot commitments cannot jointly occupy two accounted slots; two workers execute actual jobs.",
      "events":[
        {"type":"reserve","tick":0,"reservationId":"r1","expect":"RESERVED"},
        {"type":"reserve","tick":0,"reservationId":"r2","expect":"RESERVED"},
        {"type":"reserve","tick":0,"reservationId":"r3","expect":"DENIED_CAPACITY"},
        {"type":"start","tick":1,"reservationId":"r1","expect":"STARTED"},
        {"type":"start","tick":1,"reservationId":"r2","expect":"STARTED","check":{"runningSlots":2}},
        {"type":"settle","tick":2,"reservationId":"r1","digest":"$actual","expect":"SETTLED"},
        {"type":"settle","tick":2,"reservationId":"r2","digest":"$actual","expect":"SETTLED"},
        {"type":"reserve","tick":3,"reservationId":"r3","expect":"RESERVED"},
        {"type":"release","tick":4,"reservationId":"r3","expect":"RELEASED","check":{"settledUnits":40,"heldSlots":0}}
      ],
      "expectedJobs":2
    },
    {
      "id":"idempotency",
      "description":"Later signed retries bind the whole semantic request and cause one reservation, execution and settlement.",
      "events":[
        {"type":"reserve","tick":0,"reservationId":"r1","key":"reserve-once","expect":"RESERVED"},
        {"retryOf":0,"tick":1,"expect":"RESERVED","expectReplay":true},
        {"retryOf":0,"tick":2,"price":21,"expect":"IDEMPOTENCY_CONFLICT"},
        {"type":"start","tick":3,"reservationId":"r1","key":"start-once","expect":"STARTED"},
        {"retryOf":3,"tick":4,"expect":"STARTED","expectReplay":true},
        {"type":"settle","tick":5,"reservationId":"r1","key":"settle-once","digest":"$actual","expect":"SETTLED"},
        {"retryOf":5,"tick":6,"expect":"SETTLED","expectReplay":true},
        {"type":"settle","tick":7,"reservationId":"r1","digest":"$actual","expect":"DENIED_STATE","check":{"settledUnits":20}},
        {"retryOf":0,"tick":8,"actor":"intruder","reservationId":"intruder-job","expect":"DENIED_AUTH"}
      ],
      "expectedJobs":1
    },
    {
      "id":"release-settle",
      "description":"Release and settlement cannot create two terminal effects; a valid digest alone does not prove that a job started.",
      "variants":[
        {"name":"release-before-start","events":[{"type":"reserve","tick":0,"reservationId":"r1","expect":"RESERVED"},{"type":"release","tick":1,"reservationId":"r1","expect":"RELEASED"},{"type":"start","tick":2,"reservationId":"r1","expect":"DENIED_STATE"},{"type":"settle","tick":3,"reservationId":"r1","digest":"$payload","expect":"DENIED_STATE"}],"expectedJobs":0},
        {"name":"release-before-settlement","events":[{"type":"reserve","tick":0,"reservationId":"r1","expect":"RESERVED"},{"type":"start","tick":1,"reservationId":"r1","expect":"STARTED"},{"type":"release","tick":2,"reservationId":"r1","expect":"DENIED_STATE"},{"type":"settle","tick":3,"reservationId":"r1","digest":"$actual","expect":"SETTLED"},{"type":"release","tick":4,"reservationId":"r1","expect":"DENIED_STATE"}],"expectedJobs":1},
        {"name":"settlement-before-release","events":[{"type":"reserve","tick":0,"reservationId":"r1","expect":"RESERVED"},{"type":"start","tick":1,"reservationId":"r1","expect":"STARTED"},{"type":"settle","tick":2,"reservationId":"r1","digest":"$actual","expect":"SETTLED"},{"type":"release","tick":3,"reservationId":"r1","expect":"DENIED_STATE"}],"expectedJobs":1}
      ]
    },
    {
      "id":"revocation",
      "description":"Immediate and delayed external revoke delivery are identical inputs to both controllers; child grants revoke atomically and accepted holds survive.",
      "variants":[
      {"name":"delayed-observation","events":[
        {"type":"delegate","tick":0,"parentId":"g0","child":{"id":"child","grantor":"agent","grantee":"agent2","parentId":"g0","actions":["reserve"],"resource":"sha256","perCallMax":20,"maxTotal":40,"notBefore":0,"notAfter":50},"expect":"DELEGATED"},
        {"type":"reserve","tick":0,"reservationId":"r1","actor":"agent2","grantId":"child","price":20,"expect":"RESERVED"},
        {"type":"issue_revoke","tick":1,"grantId":"g0","expect":"ISSUED"},
        {"type":"reserve","tick":2,"reservationId":"r2","price":30,"expect":"RESERVED"},
        {"type":"observe_revoke","tick":3,"grantId":"g0","expect":"REVOKED"},
        {"type":"reserve","tick":4,"reservationId":"r3","actor":"agent2","grantId":"child","expect":"DENIED_AUTH"},
        {"type":"start","tick":4,"reservationId":"r1","actor":"agent2","expect":"STARTED"},
        {"type":"start","tick":4,"reservationId":"r2","expect":"STARTED"},
        {"type":"settle","tick":5,"reservationId":"r1","digest":"$actual","expect":"SETTLED"},
        {"type":"settle","tick":5,"reservationId":"r2","digest":"$actual","expect":"SETTLED","check":{"settledUnits":50,"heldUnits":0}}
      ],
      "expectedJobs":2},
      {"name":"immediate-observation","events":[
        {"type":"reserve","tick":0,"reservationId":"r1","price":20,"expect":"RESERVED"},
        {"type":"issue_revoke","tick":1,"grantId":"g0","expect":"ISSUED"},
        {"type":"observe_revoke","tick":1,"grantId":"g0","expect":"REVOKED"},
        {"type":"reserve","tick":1,"reservationId":"r2","expect":"DENIED_AUTH"},
        {"type":"start","tick":2,"reservationId":"r1","expect":"STARTED"},
        {"type":"settle","tick":3,"reservationId":"r1","digest":"$actual","expect":"SETTLED","check":{"settledUnits":20,"heldUnits":0}}
      ],"expectedJobs":1}
      ]
    },
    {
      "id":"expiry",
      "description":"Grant expiry, unstarted hold expiry and running service liability have different rules, including exact-boundary orderings.",
      "variants":[
        {"name":"grant-before-hold","config":{"grantNotAfter":3},"events":[{"type":"reserve","tick":0,"reservationId":"r1","startBy":8,"expect":"RESERVED"},{"type":"expire_grant","tick":2,"grantId":"g0","expect":"DENIED_EXPIRY"},{"type":"expire_grant","tick":3,"grantId":"g0","expect":"GRANT_EXPIRED"},{"type":"reserve","tick":3,"reservationId":"r2","expect":"DENIED_EXPIRY"},{"type":"start","tick":4,"reservationId":"r1","expect":"STARTED"},{"type":"expire","tick":8,"reservationId":"r1","expect":"RUNNING_RETAINED","check":{"heldUnits":20}},{"type":"settle","tick":9,"reservationId":"r1","digest":"$actual","expect":"SETTLED"}],"expectedJobs":1},
        {"name":"unstarted-hold","events":[{"type":"reserve","tick":0,"reservationId":"r1","startBy":2,"expect":"RESERVED"},{"type":"expire","tick":1,"reservationId":"r1","expect":"DENIED_EXPIRY"},{"type":"start","tick":2,"reservationId":"r1","expect":"DENIED_EXPIRY"},{"type":"expire","tick":2,"reservationId":"r1","expect":"EXPIRED"},{"type":"settle","tick":3,"reservationId":"r1","digest":"$payload","expect":"DENIED_STATE"}],"expectedJobs":0},
        {"name":"expiry-before-completion","events":[{"type":"reserve","tick":0,"reservationId":"r1","startBy":2,"expect":"RESERVED"},{"type":"start","tick":1,"reservationId":"r1","expect":"STARTED"},{"type":"expire","tick":2,"reservationId":"r1","expect":"RUNNING_RETAINED"},{"type":"settle","tick":2,"reservationId":"r1","digest":"$actual","expect":"SETTLED"}],"expectedJobs":1},
        {"name":"completion-before-expiry","events":[{"type":"reserve","tick":0,"reservationId":"r1","startBy":2,"expect":"RESERVED"},{"type":"start","tick":1,"reservationId":"r1","expect":"STARTED"},{"type":"settle","tick":2,"reservationId":"r1","digest":"$actual","expect":"SETTLED"},{"type":"expire","tick":2,"reservationId":"r1","expect":"DENIED_STATE"}],"expectedJobs":1}
      ]
    },
    {
      "id":"local-refusal",
      "description":"Already valid remote reservations cannot force work past the supplier's local admission quota; running jobs are not preempted.",
      "events":[
        {"type":"reserve","tick":0,"reservationId":"r1","expect":"RESERVED"},
        {"type":"reserve","tick":0,"reservationId":"r2","expect":"RESERVED"},
        {"type":"local_limit","tick":0,"limit":1,"expect":"LOCAL_LIMIT"},
        {"type":"start","tick":1,"reservationId":"r1","expect":"STARTED"},
        {"type":"start","tick":1,"reservationId":"r2","expect":"DENIED_LOCAL"},
        {"type":"local_limit","tick":1,"limit":0,"expect":"DENIED_LOCAL"},
        {"type":"settle","tick":2,"reservationId":"r1","digest":"$actual","expect":"SETTLED"},
        {"type":"start","tick":3,"reservationId":"r2","expect":"STARTED"},
        {"type":"settle","tick":4,"reservationId":"r2","digest":"$actual","expect":"SETTLED"},
        {"type":"local_limit","tick":4,"limit":0,"expect":"LOCAL_LIMIT"},
        {"type":"reserve","tick":5,"reservationId":"r3","expect":"RESERVED"},
        {"type":"start","tick":6,"reservationId":"r3","expect":"DENIED_LOCAL"},
        {"type":"release","tick":7,"reservationId":"r3","expect":"RELEASED","check":{"settledUnits":40,"heldUnits":0}}
      ],
      "expectedJobs":2
    }
  ]
}
