{"$schema":"https://movahedi.ca/agents/drift-desk/register-template.json","example_rows":[{"consent_category":"analytics","decision":"gate","delivery_vector":"client_dom","expiry_date":"2027-05-01","host":"googletagmanager.com","legal_recipient":"Google LLC","owner":"site-operator"},{"consent_category":"analytics","decision":"gate","delivery_vector":"client_dom","expiry_date":"2027-05-01","host":"clarity.ms","legal_recipient":"Microsoft Corporation","owner":"site-operator"},{"consent_category":"security","decision":"approve","delivery_vector":"client_dom","expiry_date":"2027-05-01","host":"challenges.cloudflare.com","legal_recipient":"Cloudflare Inc.","owner":"site-operator"},{"consent_category":"strictly_necessary","decision":"approve","delivery_vector":"client_dom","expiry_date":"2027-05-01","host":"movahedi.ca","legal_recipient":"first-party (site operator)","owner":"site-operator"}],"register_schema":{"consent_category":{"description":"Law 25 s. 8.1: only strictly_necessary (and security where demonstrably needed) may be active by default.","enum":["strictly_necessary","security","functional","analytics","marketing_profiling"],"type":"string"},"decision":{"description":"approve: known host, runs under the recorded consent category. gate: runs only behind the consent gate; any scope widening needs a fresh v0.1 stamp. remove: scheduled for removal; the monthly file must show it gone.","enum":["approve","gate","remove"],"type":"string"},"delivery_vector":{"description":"How the data leaves the page. client_dom: script, pixel, or beacon in the DOM. server_webhook: first-party server forwards to this destination.","enum":["client_dom","server_webhook"],"type":"string"},"expiry_date":{"description":"The register row expires here. A host with no fresh row after expiry counts as unexplained in the next cycle.","format":"date","type":"string"},"host":{"description":"The hostname observed in the DOM crawl (client_dom) or the webhook destination (server_webhook). Bare hostname, no scheme.","type":"string"},"legal_recipient":{"description":"The organisation that receives and uses the data for its own purposes. Often different from the domain that set the cookie. Use 'first-party (site operator)' for first-party storage.","type":"string"},"owner":{"description":"Who inside the client organisation owns this register row (e.g. site-operator, marketing, product, privacy-officer).","type":"string"}},"template_version":"0.1.0"}