Files
2026-07-13 12:36:35 +08:00

81 lines
1.6 KiB
JSON

{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://veritasacta.com/schemas/receipt-v2.json",
"title": "Veritas Acta Decision Receipt (v2 envelope)",
"description": "Expected shape of a protect-mcp@0.7.4 receipt. Mirrors draft-farley-acta-signed-receipts; the decision facts live in payload, signed as a unit.",
"type": "object",
"required": [
"v",
"type",
"algorithm",
"kid",
"issuer",
"issued_at",
"payload",
"signature"
],
"properties": {
"v": {
"type": "integer",
"const": 2
},
"type": {
"type": "string",
"enum": [
"decision_receipt",
"gateway_restraint"
]
},
"algorithm": {
"type": "string",
"const": "ed25519"
},
"kid": {
"type": "string"
},
"issuer": {
"type": "string"
},
"issued_at": {
"type": "string",
"format": "date-time"
},
"payload": {
"type": "object",
"required": [
"tool",
"decision"
],
"properties": {
"tool": {
"type": "string"
},
"decision": {
"type": "string",
"enum": [
"allow",
"deny"
]
},
"reason_code": {
"type": "string"
},
"policy_digest": {
"type": "string"
},
"request_id": {
"type": "string"
},
"spec": {
"type": "string"
}
},
"additionalProperties": true
},
"signature": {
"type": "string",
"minLength": 32
}
},
"additionalProperties": true
}