Data Contracts
Contracts are versioned and explicit. Inferred fields are not treated as supported behavior.
Sorter candidate fields
| Field | Type | Required | Notes |
|---|---|---|---|
locality_id |
string | yes | canonical locality scope |
material_key |
string | yes | normalized material identity |
outcome |
enum | yes | allow / deny / conditional |
source_ref |
string | yes | authority trace pointer |
evidence_hash |
string | yes | source integrity hash |
Publish envelope fields
| Field | Type | Required | Notes |
|---|---|---|---|
pack_version |
string | yes | monotonic version token |
manifest_url |
string | yes | manifest endpoint |
pack_url |
string | yes | downloadable pack URL |
sha256 |
string | yes | integrity hash for client check |
generated_at |
ISO timestamp | yes | event chronology anchor |
Example payload
{
"locality_id": "us-dc-washington",
"material_key": "battery-lithium-ion",
"outcome": "deny",
"source_ref": "authority:dc-dpw:2026-02-11",
"evidence_hash": "sha256:c5ee8f3f9f8d2bbf..."
}