Schemas · releases
Schemas
changelog.
Changes to the versioned JSON Schema contracts for design-system manifests.
Back to Schemas · Browse references · View releases on GitHub
0.4.6 — 2026-10-15
Changed
- v0.4 token platform mappings (
tokens.jsonanddtcg-extensions.json) accept fields beyondreference, so a design system can add its own per-platform data.referencestays required. This only relaxes validation; validators older than this release reject extra fields. Seedocs/decisions/0003-open-platform-mapping.md, which supersedes 0002.
Documentation
docs/openness.mdnow says tools ignore fields they don't support and at most note them in their logs, instead of warning about them. Authors validate against a version when they choose to.
0.4.5 — 2026-10-14
Changed
- v0.4 utility
variantsaccept variant kinds beyondstatesandresponsive, such ascolorSchemeorprint, so a utility can declare support for every kind its design system defines invariantPatterns.statesandresponsivekeep their types. This only relaxes validation. - v0.4 token
PlatformMappingdescribes why it stays closed. - v0.4
StrictDeprecatedreusesDeprecated, and CEMAttributeExtensionsreusesLifecycleFields, instead of repeating their fields. Both validate exactly as before; new fixtures inexamples/lifecycle/schema-cases.jsonpin the behaviour. Documentation tools must read fields inherited throughallOf. - v0.4 token
cssVariableand utilitypropertiesare markeddeprecated: trueand described as legacy fields that are still accepted, instead of "DEPRECATED in v0.3".
Documentation
- Recorded why
usagewas removed from platform mappings indocs/decisions/0001-remove-platform-mapping-usage.md, recorded keeping the mapping closed indocs/decisions/0002-keep-platform-mapping-closed.md, and added the open-schemas policy indocs/openness.md.
0.4.4 — 2026-10-13
Added
- v0.4
resolvedaccepts a non-empty array of strings, one per layer, for multi-layer shadows and gradient stops. Validators older than 0.4.4 reject these values.
0.4.3 — 2026-10-13
Fixed
- v0.4 icon platforms accept any combination of
import,usageandcomponent, as long as at least one is present. - v0.4 token and DTCG docs again say a
replacementmust name an existing token. Consumers enforce this; the schema can't.
Changed
- v0.4 utility manifests use either root
utilitiesor rootcategories, never both. Now documented and tested. - v0.4 accepts any
schemaVersionstring on purpose. Now documented and tested. - Token manifest fixtures are validated against both v0.3 and v0.4.
- README and lifecycle docs describe v0.4 as published and note that the v0.2/v0.3
$ids moved in 0.4.0. README examples use v0.4. docs/dtcg-mapping.mdnotes that a future contract will reserverecipes.designlasagna.metadata.extensions. v0.4 is unchanged.
0.4.2 — 2026-10-06
Changed
- Added the 0.4.1 entry and reworded a 0.3.3 entry in this changelog.
0.4.1 — 2026-10-06
Changed
- The package now ships
CHANGELOG.md, with release history from 0.3.0.
0.4.0 — 2026-09-24
Adds the v0.4 contracts under v0.4/, built on a shared lifecycle fragment. v0.3 documents stay valid against the v0.3 contracts. See docs/lifecycle-migration.md before upgrading.
Breaking
- Native lifecycle payloads accept an explicit
deprecated: false, and canonical deprecation messages must be non-empty. Consumers must not apply these semantics to v0.2 or v0.3 documents. - DTCG lifecycle uses the standard
$deprecatedboolean/string mirror plus therecipes.designlasagnaextension, with whole-record inheritance and explicitfalsecancellation. CEM keeps standard boolean/stringdeprecatedwith sibling metadata. - The
$idof every contract moves tohttps://designlasagna.recipes/schemas/<version>/<file>. This also applies to the existing v0.2 and v0.3 files, which previously usedhttps://designlasagna.recipes/<version>/<file>. - The v0.3 token and DTCG platform mappings are closed and no longer accept
usage(see Removed). This change is shipped in thev0.3/directory, so it first appears in this release.
Added
- v0.4 lifecycle contract and exports:
lifecycle.json,tokens.json,utilities.json,icons.json,cem-extensions.jsonanddtcg-extensions.json. docs/lifecycle.mdanddocs/lifecycle-migration.md, published in the package.- Lifecycle format examples, schema fixtures and downstream consumer vectors under
examples/lifecycle/.
Removed
- The redundant
usageproperty from platform mappings inv0.3/tokens.jsonandv0.3/dtcg-extensions.json. The platform key plusreferencealready say how to use a token, so consumers derive usage syntax instead (seedocs/decisions/0001-remove-platform-mapping-usage.md). Each mapping now contains only its requiredreference, and mappings reject other properties. This was committed after 0.3.4, so published 0.3.x releases still acceptusage; 0.4.0 is the first release with it removed.
All contracts
- Breaking:
$idis nowhttps://designlasagna.recipes/schemas/v0.4/<file>; documents point$schemaat the new URL. - Breaking: deprecation
messagemust be a non-empty string. statusis canonical and references the sharedStatus; any string is accepted, onlydeprecatedandremovedcarry meaning.- Deprecation records alias the shared lifecycle definitions.
- Native only:
deprecatedaccepts an explicitfalse.
tokens.json
- New optional
Token.status. - Breaking: platform mappings are closed and
usageis removed.
utilities.json
UtilityClass.statusnow references the sharedStatus.
icons.json
- New optional
Icon.status.
cem-extensions.json
- Breaking:
DeprecatedValue.messagemust be non-empty. - New
LifecycleFields.deprecated(boolean or string). - Removal targets are documented as ISO date, semver or quarter, and replacement as scoped to the same entity kind and owner (described in the schema, not enforced by a pattern).
- New
DeclarationExtensions,MemberExtensions,CssPartExtensionsandEventExtensions, each referencingLifecycleFields. SlotExtensionsandCssPropertyExtensionsnow referenceLifecycleFields, gainingstatus.AttributeExtensionsgainsdeprecatedandstatus.
dtcg-extensions.json
- Breaking: platform mappings are closed and
usageis removed. - New optional
statusonTokenExtensionsandGroupExtensions. - Group deprecation: the nearest declaration replaces the whole inherited record;
$deprecated: falseclears it. Deprecatedaliases the sharedStrictDeprecated.
lifecycle.json
- New definitions-only fragment shared by the other contracts.
0.3.4 — 2026-08-30
Changed
- CI workflows run on Node 24. No schema changes.
0.3.3 — 2026-08-28
Added
- DTCG format schema (
dtcg/2025.10/format.json) and its license, included in the package.
Changed
- Publishing uses npm trusted publishing.
- Removed a legacy reference from the internal design notes.
0.3.2 — 2026-08-27
Changed
- CI publishes with the organization npm token. No schema changes.
0.3.1 — 2026-08-27
Fixed
- Publish the scoped package with public access. No schema changes.
0.3.0 — 2026-08-27
First tagged release. Introduces the v0.3 contracts and the release validation and publishing workflow.
Added
- v0.3 contracts:
tokens.json,utilities.json,icons.json,cem-extensions.jsonanddtcg-extensions.json. - DTCG authoring extensions (
v0.3/dtcg-extensions.json), a DTCG mapping spec, and example fixtures, published underexamples/. - Release validation and publishing workflow.