{"$id":"https://context-guard.local/schemas/receipt-protection-decision-v1.json","$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"oneOf":[{"properties":{"action":{"const":"eligible"},"reason":{"const":"eligible"}},"required":["action","reason"]},{"properties":{"action":{"const":"pass_through"},"reason":{"enum":["exact_required","protected","unknown","ambiguous","security_sensitive"]}},"required":["action","reason"]},{"properties":{"action":{"const":"refuse"},"reason":{"enum":["refuse","secret"]}},"required":["action","reason"]}],"properties":{"action":{"enum":["eligible","pass_through","refuse"],"type":"string"},"byte_length":{"maximum":1048576,"minimum":0,"type":"integer"},"content_sha256":{"maxLength":64,"minLength":64,"pattern":"^[0-9a-f]{64}$","type":"string"},"evidence_boundary":{"additionalProperties":false,"properties":{"evidence_class":{"const":"companion_local_receipt_only"},"host_request_owned":{"const":false},"provider_claim_authority":{"const":false},"provider_join_status":{"const":"missing"},"runtime_observer_present":{"const":false},"schema_version":{"const":"contextguard-receipt-evidence-boundary/v1"},"selected_branch":{"const":"S2-UNSUPPORTED"},"selected_transport":{"const":"NONE"},"stage1_evidence":{"const":false},"stage2_evidence":{"const":false}},"required":["evidence_class","host_request_owned","provider_claim_authority","provider_join_status","runtime_observer_present","schema_version","selected_branch","selected_transport","stage1_evidence","stage2_evidence"],"type":"object"},"reason":{"enum":["eligible","exact_required","protected","unknown","ambiguous","security_sensitive","refuse","secret"],"type":"string"},"schema_version":{"const":"contextguard-receipt-protection-decision/v1"}},"required":["action","byte_length","content_sha256","evidence_boundary","reason","schema_version"],"title":"Context Guard Receipt protection decision","type":"object"}
