Changelog
Every change to the field set, the enums and the declaration format. Dated, version-stamped, newest first.
How to rely on this
Additive only, with notice
New fields and new enum values may be added at any time. Existing fields are not removed or repurposed without 90 days' notice published here first. A changelog on its own records what changed; this is the promise that what you build against will keep working.
Pin to a version string if you need to. Each entry carries one.
2026-09-29 · v1.5.0
Declaration format and new files
- Each claimed record publishes its terms as an ODRL 2.2 policy at /{SPRK-ID}/odrl.json. There is one rule per declared scope: Allowed permits, Conditional permits with an obtainConsent duty, and Prohibited prohibits. A scope with no terms gets no rule. The Creator is its assigner.
- New: /.well-known/tdmrep.json. tdm-reservation is 0 only for a record whose six scopes are all Allowed, and 1 for everything else, including unclaimed records. A reserved record names our TDM policy, /tdm-policy.json, in tdm-policy. It permits tdm:mine with an obtainConsent duty, and Sparkonomy is its assigner, because we publish the page. A Creator's rights over their identity stay in their own odrl.json.
- Record pages carry <meta name="tdm-reservation"> and, when reserved, <meta name="tdm-policy">. The matching HTTP headers are not sent yet.
- The record's JSON-LD ProfilePage carries license (the declaration) and usageInfo (the ODRL policy). The Person's subjectOf names the declaration and the consent certificate.
- license.xml carries <sprk:certificate>, a child of <rsl> in the https://creatorgraph.sparkonomy.com/ns/certificate namespace, with the certificate's id, URL and verify link. The ODRL policy carries the same as sprk:certificate. Both are absent until a certificate is issued.
- Each row of the consent table carries data-scope and data-status (none, allowed, conditional or prohibited), so a parser does not need the CSS classes.
2026-09-29 · v1.4.2
Declaration format
- The record page's RSL 1.0 <content> element now has two outcomes. It permits ai-all when all six scopes are Allowed. Anything else, including a scope that is Prohibited or has no terms, gets the site default: it permits search, ai-input and ai-index and prohibits ai-train. It used to prohibit ai-all when any scope was Prohibited or had no terms.
- Prohibited rules out generating and training on the person. It does not restrict reading or citing the record. The per-scope <hcs:right> blocks are unchanged.
- Every <content> element, on the root /license.xml and on each record, now names Sparkonomy as the page's publisher: a <copyright> for Sparkonomy Pte. Ltd. with contactEmail and contactUrl, a <terms> at /license.txt, and mailto:creator.graph@sparkonomy.com as its contact. A record page's <content> used to point its terms and contact at the Creator's record.
- <terms> is now a sibling of <license>, as RSL 1.0 3.1 and HCS 3.1 require. It was inside <license>, both in <content> and in every Conditional <hcs:right>.
- Terms are files, not page anchors. Each claimed record now publishes /{SPRK-ID}/license.txt, its terms in words, generated from the same stances as its declaration. A Conditional right's <terms> and <payment><custom> point there instead of #licence on the record page. The root /license.txt carries our reuse terms in full, and every <content> element's <terms> points at it.
- No registration-id changes, because no Creator's terms changed.
2026-09-28 · v1.4.1
Declaration format
- issued is now when the Creator declared these terms, not when the record was last saved. Before, a declaration's registration-id could differ from the one its consent certificate names.
- subject-id stays the one the certificate was issued under, even after the record's addressing account changes.
- Where either differed, those registration-ids change once and the old lookup records are retired. No Creator's terms changed.
2026-09-28 · v1.4.0
Declaration format
- Conditional now permits, bound to its <payment> clearance route. HCS evaluates every term in a declaration together, so under v1.3.0 a conforming parser read the prohibition and the route granted nothing: Conditional was indistinguishable from Prohibited. The meaning is unchanged, "ask first". Allowed and Prohibited are unchanged.
- The record page's RSL 1.0 <content> element now has three outcomes. It permits ai-all when all six scopes are Allowed and prohibits it when any scope is Prohibited or has no terms. Otherwise, with Conditional alone or mixed with Allowed, it permits search, ai-input and ai-index and prohibits ai-train.
- The root /license.xml default, which is the only RSL signal an unclaimed record has, now permits search, ai-input and ai-index and prohibits ai-train. It prohibited ai-all, which also hid unclaimed Creators from AI answers and indexing, contrary to the reuse terms on /for-ai-and-search#reuse.
- max-age is now 30 days, down from 90, on every declaration and every registry lookup record (maxAge). Re-check anything you cache at least every 30 days. YouTube's API terms cap stored data at 30 days, and a consent window may not outlast the data it governs. The 90 days' notice for field changes is a separate clock and is unchanged.
- No registration-id changes, because no Creator's terms changed.
2026-09-05 · v1.3.0
Declaration format
- The identity declaration moved from RSL-MEDIA to HCS 1.0. RSL Media became the Human Consent Foundation in August 2026 and republished the same vocabulary under a new name, so <media:right> is now <hcs:right>, the namespace is https://humanconsent.org/hcs, and the tokens are hcs:ai-generate and hcs:ai-train. The six scopes, the four stances and the per-facet model are unchanged.
- registry-id is replaced by registration-id (this declaration) and subject-id (the person). Both are issued by our own registry and resolve under /registry/. Key on subject-id: it survives a handle change, and a new registration-id is minted whenever the terms are edited. The SPRK-ID is unchanged and still on the page and in the declaration's <schema>.
- scope is now subject-scope.
- Conditional now prohibits and carries a <payment> route, where it previously permitted and carried the same route. The meaning documented on /for-ai-and-search has not changed — "ask first" — but a parser that ignored <payment> used to read it as an unconditional grant.
- issued is now the time this declaration was issued, and the date the terms began to apply moved to valid-from. A Creator who reverses their stance no longer publishes the reversal under the date the permission it reverses was granted. Both are RFC 3339.
- status="active" is now stated rather than left to the default.
- Each declaration also carries a plain RSL 1.0 <content> element about the record page, permitting ai-all only when all six scopes are Allowed. HCS voids a declaration containing any usage token but its own two, so it could not live inside the right.
- The root /license.xml is a valid RSL document. It used an <index> element that RSL 1.0 does not define; the sitemap and changelog pointers it carried are in robots.txt, and it now states the site-level default.
- Every page's licence link is rel="license" type="application/rsl+xml", and a record page points at its own declaration rather than at the site index. Declarations are served as application/rsl+xml.
- A declaration whose terms are withdrawn is deleted from the bucket on the next publish, instead of being served until something swept it.
2026-08-11 · v1.2.0
Declaration format
- The identity declaration moved from RSL 1.0 <content> to RSL-MEDIA <media:right subject="identity">. RSL 1.0 describes a file at a URL; identity consent has to describe a person wherever they appear.
- AI consent is now declared per facet across six standard scopes: name, image, likeness, voice, movement, signature.
- The summary badge is lossy by design: Allowed only when all six are Allowed, Prohibited only when all six are Prohibited, Conditional for any mix. Read the per-facet blocks, never the badge.
- isrd is deliberately omitted while the Registration Authority is not operating.
- Unclaimed records emit no declaration at all. Absence is never permission.
2026-07-28 · v1.0.0
First public field set
- Record fields, provenance vocabulary (verified > sourced > stated) and the 25-slug content taxonomy published.
- Flat record URLs at /{SPRK-ID}. SPRK-IDs are permanent, and a handle never addresses a record.
- Removed records return HTTP 410.