diff --git a/hubzilla/addon/dsc01/contracts/record-v1.json b/hubzilla/addon/dsc01/contracts/record-v1.json new file mode 100644 index 0000000..676f870 --- /dev/null +++ b/hubzilla/addon/dsc01/contracts/record-v1.json @@ -0,0 +1,19 @@ +{ + "_meta": { + "contract": "dsc01-record", + "version": "1.0", + "purpose": "DSC Categories record for one participant in one association. Mutable — overwritten on every submission. Storage key is participant_id (Placekey), not a unique record ID." + }, + "_header": { + "addon": "dsc01", + "association_slug": "The association this record belongs to.", + "association_channel_id": "Hubzilla channel ID of the association, as a string.", + "participant_id": "The participant's Placekey. This is the storage key — institutional memory tied to the address, not the person.", + "submitted_at": "ISO 8601 timestamp of this submission.", + "standing": "public, participant, professional, or operator — access state at time of submission.", + "node_token_hash": "SHA-256 of the node token — not the token itself." + }, + "_payload": { + "fields": "Keyed object of all ten DSC Category field values (checklist selections and narrative). Keys match the field IDs defined in dsc01's diagnostic-categories schema files. Not independently validated by the orchestrator — validation already happened on the Hubzilla side." + } +}