stylegallery 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (346) hide show
  1. package/AGENTS.md +156 -0
  2. package/CATALOG.md +69 -0
  3. package/DOMAINS.md +65 -0
  4. package/GOVERNANCE.md +222 -0
  5. package/GUIDE.md +59 -0
  6. package/README.md +313 -0
  7. package/consumer-reference/adapters/style-dictionary.config.mjs +36 -0
  8. package/consumer-reference/agent-native/README.md +157 -0
  9. package/consumer-reference/agent-native/registry.json +640 -0
  10. package/consumer-reference/agent-native/schema/agent-native.schema.json +848 -0
  11. package/consumer-reference/agent-native/schema/epistemic.schema.json +14 -0
  12. package/consumer-reference/agent-native/schema/execution.schema.json +12 -0
  13. package/consumer-reference/agent-native/schema/identity.schema.json +10 -0
  14. package/consumer-reference/agent-native/schema/learning.schema.json +12 -0
  15. package/consumer-reference/agent-native/schema/manifest.schema.json +6 -0
  16. package/consumer-reference/agent-native/schema/operation.schema.json +12 -0
  17. package/consumer-reference/agent-native/schema/protocol-binding.schema.json +9 -0
  18. package/consumer-reference/agent-native/schema/retrieval.schema.json +10 -0
  19. package/consumer-reference/baselines/calibration.json +260 -0
  20. package/consumer-reference/baselines/manifest.json +21 -0
  21. package/consumer-reference/contract.md +83 -0
  22. package/consumer-reference/fixtures/consumer-conformance/e2e-fixture.mjs +282 -0
  23. package/consumer-reference/fixtures/consumer-conformance/manifest.json +102 -0
  24. package/consumer-reference/fixtures/consumer-conformance/runtime-proof.mjs +32 -0
  25. package/consumer-reference/fixtures/consumer-conformance/valid-migration-result.json +18 -0
  26. package/consumer-reference/fixtures/consumer-conformance/valid-migration.json +142 -0
  27. package/consumer-reference/fixtures/invalid-stable-ended-support.json +19 -0
  28. package/consumer-reference/fixtures/promotion/invalid-blocking-evidence.json +26 -0
  29. package/consumer-reference/fixtures/promotion/invalid-count-only.json +29 -0
  30. package/consumer-reference/fixtures/promotion/invalid-missing-owner-migration.json +25 -0
  31. package/consumer-reference/fixtures/promotion/invalid-normative-bypass-no-regression.json +25 -0
  32. package/consumer-reference/fixtures/promotion/invalid-related-counted-independent.json +45 -0
  33. package/consumer-reference/fixtures/promotion/invalid-stable-ended-support.json +26 -0
  34. package/consumer-reference/fixtures/promotion/manifest.json +15 -0
  35. package/consumer-reference/fixtures/promotion/valid-deferred-example.json +67 -0
  36. package/consumer-reference/fixtures/promotion/valid-normative-bypass.json +67 -0
  37. package/consumer-reference/fixtures/token-portability/invalid-cycle.json +7 -0
  38. package/consumer-reference/fixtures/token-portability/invalid-dangling-alias.json +6 -0
  39. package/consumer-reference/fixtures/token-portability/invalid-extends.json +4 -0
  40. package/consumer-reference/fixtures/token-portability/invalid-json-pointer.json +7 -0
  41. package/consumer-reference/fixtures/token-portability/invalid-resolver.json +9 -0
  42. package/consumer-reference/fixtures/token-portability/invalid-type-mismatch.json +10 -0
  43. package/consumer-reference/fixtures/token-portability/invalid-unknown-reserved.json +6 -0
  44. package/consumer-reference/fixtures/token-portability/invalid-untested-type.json +6 -0
  45. package/consumer-reference/fixtures/token-portability/valid-border.json +14 -0
  46. package/consumer-reference/fixtures/token-portability/valid-reference.json +32 -0
  47. package/consumer-reference/fixtures/token-portability/valid-whole-alias.json +7 -0
  48. package/consumer-reference/fixtures/valid-deprecated.json +21 -0
  49. package/consumer-reference/fixtures/valid-experimental.json +19 -0
  50. package/consumer-reference/generated/manifest.json +40 -0
  51. package/consumer-reference/generated/tokens.css +12 -0
  52. package/consumer-reference/index.md +32 -0
  53. package/consumer-reference/policies/shared-experimental.json +37 -0
  54. package/consumer-reference/schema/ax-evidence.schema.json +30 -0
  55. package/consumer-reference/schema/baseline-manifest.schema.json +55 -0
  56. package/consumer-reference/schema/calibration-record.schema.json +190 -0
  57. package/consumer-reference/schema/capture-session.schema.json +161 -0
  58. package/consumer-reference/schema/component-state.schema.json +150 -0
  59. package/consumer-reference/schema/consumer-conformance-record.schema.json +365 -0
  60. package/consumer-reference/schema/dom-evidence.schema.json +38 -0
  61. package/consumer-reference/schema/evidence-record.schema.json +81 -0
  62. package/consumer-reference/schema/fixture-manifest.schema.json +32 -0
  63. package/consumer-reference/schema/item.schema.json +188 -0
  64. package/consumer-reference/schema/page-evidence-manifest.schema.json +216 -0
  65. package/consumer-reference/schema/page-evidence-session.schema.json +119 -0
  66. package/consumer-reference/schema/portable-tokens.schema.json +104 -0
  67. package/consumer-reference/schema/promotion-rfc.schema.json +219 -0
  68. package/consumer-reference/schema/runtime-evidence-manifest.schema.json +33 -0
  69. package/consumer-reference/schema/visual-evidence.schema.json +31 -0
  70. package/design-engineering/consumer-migration-readiness.md +124 -0
  71. package/design-engineering/index.md +28 -0
  72. package/design-engineering/interface-craft.md +107 -0
  73. package/design-engineering/reference-profiles/external-adaptation/index.md +12 -0
  74. package/design-engineering/reference-profiles/governed-local/editorial/components/button.component.json +125 -0
  75. package/design-engineering/reference-profiles/governed-local/editorial/evidence/button.evidence.json +3504 -0
  76. package/design-engineering/reference-profiles/governed-local/editorial/fixtures/button.fixture.json +65 -0
  77. package/design-engineering/reference-profiles/governed-local/editorial/generated/evidence-coverage.md +23 -0
  78. package/design-engineering/reference-profiles/governed-local/editorial/generated/keyboard-matrix.md +19 -0
  79. package/design-engineering/reference-profiles/governed-local/editorial/generated/state-matrix.md +21 -0
  80. package/design-engineering/reference-profiles/governed-local/editorial/local-foundations.json +12 -0
  81. package/design-engineering/reference-profiles/governed-local/editorial/profile.json +43 -0
  82. package/design-engineering/reference-profiles/governed-local/editorial/states/button.states.json +195 -0
  83. package/design-engineering/reference-profiles/governed-local/editorial/tokens.dtcg.json +17 -0
  84. package/design-engineering/reference-profiles/governed-local/index.md +26 -0
  85. package/design-engineering/reference-profiles/governed-local/terminal/components/button.component.json +125 -0
  86. package/design-engineering/reference-profiles/governed-local/terminal/evidence/button.evidence.json +3504 -0
  87. package/design-engineering/reference-profiles/governed-local/terminal/fixtures/button.fixture.json +65 -0
  88. package/design-engineering/reference-profiles/governed-local/terminal/generated/evidence-coverage.md +23 -0
  89. package/design-engineering/reference-profiles/governed-local/terminal/generated/keyboard-matrix.md +19 -0
  90. package/design-engineering/reference-profiles/governed-local/terminal/generated/state-matrix.md +21 -0
  91. package/design-engineering/reference-profiles/governed-local/terminal/local-foundations.json +12 -0
  92. package/design-engineering/reference-profiles/governed-local/terminal/profile.json +43 -0
  93. package/design-engineering/reference-profiles/governed-local/terminal/states/button.states.json +195 -0
  94. package/design-engineering/reference-profiles/governed-local/terminal/tokens.dtcg.json +17 -0
  95. package/design-engineering/reference-profiles/index.md +19 -0
  96. package/game-ui/classification.md +82 -0
  97. package/game-ui/index.md +35 -0
  98. package/game-ui/reference-record.md +62 -0
  99. package/game-ui/screen-hierarchy.md +107 -0
  100. package/game-ui/unity/architecture.md +166 -0
  101. package/game-ui/unity/cli-loop.md +84 -0
  102. package/game-ui/unity/data/unity-technologies-public-repositories.json +26654 -0
  103. package/game-ui/unity/org-wiki.md +146 -0
  104. package/game-ui/unity/repository-map.md +102 -0
  105. package/game-ui/unity/ui-systems.md +85 -0
  106. package/guides/decision-tree.md +149 -0
  107. package/guides/documentation-mode-taxonomy.md +157 -0
  108. package/guides/layout-brief.md +220 -0
  109. package/guides/vocabulary.md +148 -0
  110. package/guides/webpage-generation-workflow.md +185 -0
  111. package/index.md +36 -0
  112. package/layout/index.md +26 -0
  113. package/motion/index.md +24 -0
  114. package/motion/practice-reference.md +145 -0
  115. package/motion/review-workflow.md +86 -0
  116. package/motion/vocabulary.md +82 -0
  117. package/package.json +78 -0
  118. package/patterns/centering/center.md +87 -0
  119. package/patterns/centering/index.md +6 -0
  120. package/patterns/centering/super-center.md +89 -0
  121. package/patterns/containment/box.md +87 -0
  122. package/patterns/containment/clamped-card.md +86 -0
  123. package/patterns/containment/content-limiter.md +87 -0
  124. package/patterns/containment/fluid-styles.md +86 -0
  125. package/patterns/containment/index.md +8 -0
  126. package/patterns/grid-repetition/card-grid.md +88 -0
  127. package/patterns/grid-repetition/columns.md +87 -0
  128. package/patterns/grid-repetition/dense-grid.md +88 -0
  129. package/patterns/grid-repetition/grid-wrapper.md +89 -0
  130. package/patterns/grid-repetition/index.md +12 -0
  131. package/patterns/grid-repetition/masonry-approx.md +87 -0
  132. package/patterns/grid-repetition/page-grid.md +90 -0
  133. package/patterns/grid-repetition/ram-grid.md +88 -0
  134. package/patterns/grid-repetition/twelve-span-grid.md +92 -0
  135. package/patterns/in-line-grouping/badge-list.md +94 -0
  136. package/patterns/in-line-grouping/breadcrumb.md +89 -0
  137. package/patterns/in-line-grouping/cluster.md +89 -0
  138. package/patterns/in-line-grouping/deconstructed-pancake.md +92 -0
  139. package/patterns/in-line-grouping/index.md +13 -0
  140. package/patterns/in-line-grouping/pagination.md +89 -0
  141. package/patterns/in-line-grouping/reel.md +90 -0
  142. package/patterns/in-line-grouping/split-nav.md +97 -0
  143. package/patterns/in-line-grouping/tab-strip.md +88 -0
  144. package/patterns/in-line-grouping/wrap-row.md +89 -0
  145. package/patterns/index.md +13 -0
  146. package/patterns/media-fit/frame.md +95 -0
  147. package/patterns/media-fit/icon-frame.md +87 -0
  148. package/patterns/media-fit/index.md +6 -0
  149. package/patterns/overlay-exception/imposter.md +95 -0
  150. package/patterns/overlay-exception/index.md +6 -0
  151. package/patterns/overlay-exception/overlay-stack.md +89 -0
  152. package/patterns/split-sidebar/index.md +12 -0
  153. package/patterns/split-sidebar/list-detail.md +95 -0
  154. package/patterns/split-sidebar/main-with-rail.md +95 -0
  155. package/patterns/split-sidebar/media-object.md +102 -0
  156. package/patterns/split-sidebar/sidebar.md +101 -0
  157. package/patterns/split-sidebar/split-screen.md +92 -0
  158. package/patterns/split-sidebar/sticky-aside.md +97 -0
  159. package/patterns/split-sidebar/supporting-pane.md +95 -0
  160. package/patterns/split-sidebar/switcher.md +93 -0
  161. package/patterns/stacking/feed.md +88 -0
  162. package/patterns/stacking/index.md +8 -0
  163. package/patterns/stacking/line-up.md +95 -0
  164. package/patterns/stacking/stack.md +87 -0
  165. package/patterns/stacking/step-nav.md +88 -0
  166. package/patterns/viewport-shell/cover.md +90 -0
  167. package/patterns/viewport-shell/fixed-sidenav-shell.md +97 -0
  168. package/patterns/viewport-shell/holy-grail.md +112 -0
  169. package/patterns/viewport-shell/index.md +11 -0
  170. package/patterns/viewport-shell/panel-layout.md +95 -0
  171. package/patterns/viewport-shell/scroll-body-shell.md +93 -0
  172. package/patterns/viewport-shell/sticky-footer.md +92 -0
  173. package/patterns/viewport-shell/sticky-header.md +86 -0
  174. package/platform-guides/apple-interaction.md +89 -0
  175. package/platform-guides/index.md +26 -0
  176. package/quality/claim-records/index.md +3 -0
  177. package/quality/claim-records/samples.md +92 -0
  178. package/quality/claim-records/stylegallery-multidomain-scope.md +42 -0
  179. package/quality/claims.md +77 -0
  180. package/quality/evidence/accessibility.md +58 -0
  181. package/quality/evidence/consumer-migration.md +42 -0
  182. package/quality/evidence/design-rationale.md +34 -0
  183. package/quality/evidence/executable-evidence.md +79 -0
  184. package/quality/evidence/families.md +56 -0
  185. package/quality/evidence/hci-evaluation.md +36 -0
  186. package/quality/evidence/index.md +16 -0
  187. package/quality/evidence/pattern-contract-audit.md +96 -0
  188. package/quality/evidence/search-metadata-polyhierarchy.md +86 -0
  189. package/quality/evidence/sources.md +43 -0
  190. package/quality/evidence/tokens.md +33 -0
  191. package/quality/evidence/visual-qa.md +41 -0
  192. package/quality/gates/accessibility-evidence.md +60 -0
  193. package/quality/gates/consumer-migration-evidence.md +53 -0
  194. package/quality/gates/design-claim.md +56 -0
  195. package/quality/gates/harmony-evaluation.md +78 -0
  196. package/quality/gates/index.md +13 -0
  197. package/quality/gates/layout.md +52 -0
  198. package/quality/gates/rationale.md +53 -0
  199. package/quality/gates/visual-evidence.md +47 -0
  200. package/quality/index.md +55 -0
  201. package/quality/principles.md +58 -0
  202. package/recipes/article-page.md +52 -0
  203. package/recipes/command-surface.md +55 -0
  204. package/recipes/dashboard.md +56 -0
  205. package/recipes/form-flow.md +55 -0
  206. package/recipes/homepage.md +89 -0
  207. package/recipes/index.md +13 -0
  208. package/recipes/list-detail.md +55 -0
  209. package/recipes/primitive-to-recipe-matrix.md +83 -0
  210. package/recipes/saas-settings.md +52 -0
  211. package/scripts/agent-native/a2a-projection.mjs +248 -0
  212. package/scripts/agent-native/agui-projection.mjs +178 -0
  213. package/scripts/agent-native/canonical-json.mjs +109 -0
  214. package/scripts/agent-native/cli-adapter.mjs +68 -0
  215. package/scripts/agent-native/events.mjs +113 -0
  216. package/scripts/agent-native/execution.mjs +227 -0
  217. package/scripts/agent-native/fixture.mjs +159 -0
  218. package/scripts/agent-native/identity.mjs +184 -0
  219. package/scripts/agent-native/immutable-store.mjs +102 -0
  220. package/scripts/agent-native/knowledge.mjs +168 -0
  221. package/scripts/agent-native/learning-records.mjs +244 -0
  222. package/scripts/agent-native/learning.mjs +247 -0
  223. package/scripts/agent-native/mcp-adapter.mjs +173 -0
  224. package/scripts/agent-native/queries.mjs +173 -0
  225. package/scripts/agent-native/registry.mjs +154 -0
  226. package/scripts/agent-native/retrieval.mjs +171 -0
  227. package/scripts/agent-native/self-description.mjs +160 -0
  228. package/scripts/artifact-metadata.mjs +20 -0
  229. package/scripts/audit-evidence-freshness.mjs +308 -0
  230. package/scripts/baseline-contract.mjs +189 -0
  231. package/scripts/baseline-schema-parity.mjs +40 -0
  232. package/scripts/build-reference-artifacts.mjs +127 -0
  233. package/scripts/calibration-raw-contract.mjs +172 -0
  234. package/scripts/capture-session-contract.mjs +187 -0
  235. package/scripts/component-state-artifact-fixture.mjs +44 -0
  236. package/scripts/component-state-contract.mjs +99 -0
  237. package/scripts/component-state-semantics.mjs +128 -0
  238. package/scripts/component-state-workflow-contract.mjs +67 -0
  239. package/scripts/component-state-workflow-negative-cases.mjs +64 -0
  240. package/scripts/consumer-conformance-contract.mjs +198 -0
  241. package/scripts/consumer-evidence-governance-contract.mjs +210 -0
  242. package/scripts/consumer-reference-case-runner.mjs +93 -0
  243. package/scripts/consumer-reference-schema.mjs +155 -0
  244. package/scripts/create-component-state-session.mjs +100 -0
  245. package/scripts/create-page-evidence-session.mjs +139 -0
  246. package/scripts/domain-document-boundaries.mjs +40 -0
  247. package/scripts/domain-validation-checks.mjs +141 -0
  248. package/scripts/evidence-artifact-contract.mjs +191 -0
  249. package/scripts/finalize-component-state-evidence.mjs +165 -0
  250. package/scripts/finalize-page-evidence.mjs +197 -0
  251. package/scripts/generate-consumer-reference-evidence.mjs +154 -0
  252. package/scripts/generate-patterns.mjs +218 -0
  253. package/scripts/governance-matrix-contract.mjs +73 -0
  254. package/scripts/governance-matrix-negative-cases.mjs +114 -0
  255. package/scripts/governance-policy-contract.mjs +49 -0
  256. package/scripts/governance-test-fixture.mjs +321 -0
  257. package/scripts/governance-workflow-negative-cases.mjs +241 -0
  258. package/scripts/governed-profile-registry.mjs +125 -0
  259. package/scripts/json-schema-formats.mjs +31 -0
  260. package/scripts/markdown-structure.mjs +45 -0
  261. package/scripts/page-artifact-metadata.mjs +124 -0
  262. package/scripts/page-evidence-contract.mjs +297 -0
  263. package/scripts/page-evidence-fixture.mjs +271 -0
  264. package/scripts/pattern-data.mjs +325 -0
  265. package/scripts/profile-record-contract.mjs +140 -0
  266. package/scripts/promotion-attestation-contract.mjs +91 -0
  267. package/scripts/promotion-boundary-test-contract.mjs +92 -0
  268. package/scripts/promotion-fixture-inventory.mjs +109 -0
  269. package/scripts/promotion-governance-contract.mjs +28 -0
  270. package/scripts/reference-artifact-path-contract.mjs +28 -0
  271. package/scripts/reference-profile-contract.mjs +114 -0
  272. package/scripts/reference-token-contract.mjs +156 -0
  273. package/scripts/run-consumer-page-evidence-ci.mjs +170 -0
  274. package/scripts/sg-mcp.mjs +16 -0
  275. package/scripts/sg.mjs +27 -0
  276. package/scripts/strict-json.mjs +72 -0
  277. package/scripts/summarize-sentinel-calibration.mjs +98 -0
  278. package/scripts/test-agent-adapter-conformance.mjs +250 -0
  279. package/scripts/test-agent-conformance-receipt.mjs +106 -0
  280. package/scripts/test-agent-events.mjs +81 -0
  281. package/scripts/test-agent-execution-effects.mjs +114 -0
  282. package/scripts/test-agent-execution-fixtures.mjs +140 -0
  283. package/scripts/test-agent-execution-kernel.mjs +39 -0
  284. package/scripts/test-agent-execution-learning.mjs +130 -0
  285. package/scripts/test-agent-execution-lifecycle.mjs +143 -0
  286. package/scripts/test-agent-execution-safety.mjs +158 -0
  287. package/scripts/test-agent-execution-views.mjs +117 -0
  288. package/scripts/test-agent-identity-integrity-cases.mjs +160 -0
  289. package/scripts/test-agent-knowledge-kernel.mjs +183 -0
  290. package/scripts/test-agent-learning.mjs +246 -0
  291. package/scripts/test-agent-mcp.mjs +246 -0
  292. package/scripts/test-agent-native-schemas.mjs +215 -0
  293. package/scripts/test-agent-projections.mjs +249 -0
  294. package/scripts/test-agent-registry-mcp-integrity.mjs +215 -0
  295. package/scripts/test-agent-registry-mutations.mjs +110 -0
  296. package/scripts/test-audit-evidence-freshness.mjs +177 -0
  297. package/scripts/test-component-state-sentinel.mjs +35 -0
  298. package/scripts/test-component-state-source-contract.mjs +83 -0
  299. package/scripts/test-consumer-conformance-sentinel.mjs +165 -0
  300. package/scripts/test-consumer-reference-sentinel.mjs +31 -0
  301. package/scripts/test-generate-consumer-reference-evidence.mjs +124 -0
  302. package/scripts/test-json-cli-output.mjs +151 -0
  303. package/scripts/test-json-schema-formats.mjs +40 -0
  304. package/scripts/test-reference-adapters.mjs +199 -0
  305. package/scripts/test-renderer-purity.mjs +34 -0
  306. package/scripts/test-sg-cli.mjs +129 -0
  307. package/scripts/test-summarize-sentinel-calibration.mjs +226 -0
  308. package/scripts/test-validate-baseline-manifest.mjs +234 -0
  309. package/scripts/test-validate-component-state-artifacts.mjs +243 -0
  310. package/scripts/test-validate-component-state.mjs +106 -0
  311. package/scripts/test-validate-consumer-conformance.mjs +427 -0
  312. package/scripts/test-validate-consumer-reference-cli.mjs +69 -0
  313. package/scripts/test-validate-consumer-reference.mjs +263 -0
  314. package/scripts/test-validate-domains.mjs +357 -0
  315. package/scripts/test-validate-governance.mjs +292 -0
  316. package/scripts/test-validate-ia.mjs +262 -0
  317. package/scripts/test-validate-okf.mjs +73 -0
  318. package/scripts/test-validate-page-evidence.mjs +302 -0
  319. package/scripts/test-validate-patterns.mjs +157 -0
  320. package/scripts/test-validate-promotion-rfc.mjs +250 -0
  321. package/scripts/test-validate-reference-profiles.mjs +170 -0
  322. package/scripts/test-validate-unity-org-wiki.mjs +57 -0
  323. package/scripts/test-validate-unity-source-contracts.mjs +67 -0
  324. package/scripts/test-validate-vocabulary.mjs +174 -0
  325. package/scripts/test-validate-webpage-workflow.mjs +293 -0
  326. package/scripts/validate-baseline-manifest.mjs +44 -0
  327. package/scripts/validate-catalog.mjs +65 -0
  328. package/scripts/validate-component-state.mjs +141 -0
  329. package/scripts/validate-consumer-conformance.mjs +477 -0
  330. package/scripts/validate-consumer-reference.mjs +288 -0
  331. package/scripts/validate-domains.mjs +237 -0
  332. package/scripts/validate-governance.mjs +248 -0
  333. package/scripts/validate-ia.mjs +136 -0
  334. package/scripts/validate-links.mjs +66 -0
  335. package/scripts/validate-okf.mjs +104 -0
  336. package/scripts/validate-page-evidence.mjs +191 -0
  337. package/scripts/validate-patterns.mjs +246 -0
  338. package/scripts/validate-promotion-rfc.mjs +224 -0
  339. package/scripts/validate-reference-artifacts.mjs +125 -0
  340. package/scripts/validate-renderer-purity.mjs +56 -0
  341. package/scripts/validate-unity-org-wiki.mjs +146 -0
  342. package/scripts/validate-unity-source-contracts.mjs +107 -0
  343. package/scripts/validate-vocabulary.mjs +115 -0
  344. package/scripts/validate-webpage-workflow.mjs +254 -0
  345. package/scripts/visual-expectation-contract.mjs +20 -0
  346. package/scripts/workflow-action-contract.mjs +163 -0
@@ -0,0 +1,25 @@
1
+ {
2
+ "attestations": [],
3
+ "compatibility": { "breaking": true, "surface": "Synthetic breaking contract surface." },
4
+ "decision": "deferred",
5
+ "deprecation": { "plan": "A migration is required before deprecation.", "required": true },
6
+ "eligibility_basis": "full_contract",
7
+ "evidence": [
8
+ { "id": "claim", "kind": "claim_scoped", "reference": "synthetic-fixture:claim", "status": "passed" },
9
+ { "id": "regression", "kind": "regression", "reference": "synthetic-fixture:regression", "status": "passed" }
10
+ ],
11
+ "example_only": true,
12
+ "exceptions": [],
13
+ "id": "invalid-missing-owner-migration",
14
+ "known_issues": [],
15
+ "normative_bypass": "none",
16
+ "owner": { "enforcement": "placeholder", "rollback": "Synthetic rollback owner", "scope": "Repository governance owner", "support": "Synthetic support owner" },
17
+ "provenance": { "debt_resolved": false, "source": "Synthetic fixture only" },
18
+ "review_independence": "single_account",
19
+ "rollback": { "action": "Keep deferred.", "triggers": ["Migration duty is unowned."] },
20
+ "schema_version": "1.0",
21
+ "scope": { "aesthetic": false, "kind": "invariant", "summary": "Incorrectly omit migration plan and migration ownership." },
22
+ "stable_scope_decision": false,
23
+ "support": { "capacity": "committed", "status": "active" },
24
+ "transition": { "from": "consumer_local", "to": "shared_experimental" }
25
+ }
@@ -0,0 +1,25 @@
1
+ {
2
+ "attestations": [],
3
+ "compatibility": { "breaking": false, "surface": "Synthetic correctness contract surface." },
4
+ "decision": "deferred",
5
+ "deprecation": { "plan": "No deprecation while deferred.", "required": false },
6
+ "eligibility_basis": "full_contract",
7
+ "evidence": [
8
+ { "id": "claim", "kind": "claim_scoped", "reference": "synthetic-fixture:claim", "status": "passed" }
9
+ ],
10
+ "example_only": true,
11
+ "exceptions": [],
12
+ "id": "invalid-normative-bypass-no-regression",
13
+ "known_issues": [],
14
+ "migration": { "plan": "Apply only after compatibility review.", "required": false },
15
+ "normative_bypass": "normative_correctness",
16
+ "owner": { "enforcement": "placeholder", "migration": "Synthetic migration owner", "rollback": "Synthetic rollback owner", "scope": "Repository governance owner", "support": "Synthetic support owner" },
17
+ "provenance": { "debt_resolved": false, "source": "Synthetic fixture only" },
18
+ "review_independence": "single_account",
19
+ "rollback": { "action": "Keep deferred.", "triggers": ["Regression evidence is absent or fails."] },
20
+ "schema_version": "1.0",
21
+ "scope": { "aesthetic": false, "kind": "normative_correctness", "summary": "Incorrectly bypass adoption count without regression proof." },
22
+ "stable_scope_decision": false,
23
+ "support": { "capacity": "committed", "status": "active" },
24
+ "transition": { "from": "consumer_local", "to": "shared_experimental" }
25
+ }
@@ -0,0 +1,45 @@
1
+ {
2
+ "attestations": [
3
+ {
4
+ "attested_by": "Synthetic owner",
5
+ "context_id": "editorial",
6
+ "consumer_id": "editorial-reference-profile",
7
+ "count_toward_gate": true,
8
+ "organization_id": "stylegallery",
9
+ "profile_record": "design-engineering/reference-profiles/governed-local/editorial/profile.json",
10
+ "relationship": "independent"
11
+ },
12
+ {
13
+ "attested_by": "Synthetic owner",
14
+ "context_id": "terminal",
15
+ "consumer_id": "terminal-reference-profile",
16
+ "count_toward_gate": true,
17
+ "organization_id": "stylegallery",
18
+ "profile_record": "design-engineering/reference-profiles/governed-local/terminal/profile.json",
19
+ "relationship": "independent"
20
+ }
21
+ ],
22
+ "compatibility": { "breaking": false, "surface": "Synthetic invariant contract surface." },
23
+ "decision": "deferred",
24
+ "deprecation": { "plan": "No deprecation while deferred.", "required": false },
25
+ "eligibility_basis": "full_contract",
26
+ "evidence": [
27
+ { "id": "claim", "kind": "claim_scoped", "reference": "synthetic-fixture:claim", "status": "passed" },
28
+ { "id": "regression", "kind": "regression", "reference": "synthetic-fixture:regression", "status": "passed" }
29
+ ],
30
+ "example_only": true,
31
+ "exceptions": [],
32
+ "id": "invalid-related-counted-independent",
33
+ "known_issues": [],
34
+ "migration": { "plan": "No migration while deferred.", "required": false },
35
+ "normative_bypass": "none",
36
+ "owner": { "enforcement": "placeholder", "migration": "Synthetic migration owner", "rollback": "Synthetic rollback owner", "scope": "Repository governance owner", "support": "Synthetic support owner" },
37
+ "provenance": { "debt_resolved": false, "source": "Synthetic fixture only" },
38
+ "review_independence": "single_account",
39
+ "rollback": { "action": "Keep deferred.", "triggers": ["Independence is not proven."] },
40
+ "schema_version": "1.0",
41
+ "scope": { "aesthetic": false, "kind": "invariant", "summary": "Incorrectly count related local profiles as independent consumers." },
42
+ "stable_scope_decision": false,
43
+ "support": { "capacity": "committed", "status": "active" },
44
+ "transition": { "from": "consumer_local", "to": "shared_experimental" }
45
+ }
@@ -0,0 +1,26 @@
1
+ {
2
+ "attestations": [],
3
+ "compatibility": { "breaking": false, "surface": "Synthetic stable contract surface." },
4
+ "decision": "deferred",
5
+ "deprecation": { "plan": "A consumed stable contract requires a named migration before deprecation.", "required": true },
6
+ "eligibility_basis": "full_contract",
7
+ "evidence": [
8
+ { "id": "claim", "kind": "claim_scoped", "reference": "synthetic-fixture:claim", "status": "passed" },
9
+ { "id": "regression", "kind": "regression", "reference": "synthetic-fixture:regression", "status": "passed" }
10
+ ],
11
+ "example_only": true,
12
+ "exceptions": [],
13
+ "id": "invalid-stable-ended-support",
14
+ "known_issues": [],
15
+ "migration": { "plan": "Migrate every consumed surface before removal.", "required": true },
16
+ "normative_bypass": "none",
17
+ "owner": { "enforcement": "placeholder", "migration": "Synthetic migration owner", "rollback": "Synthetic rollback owner", "scope": "Repository governance owner", "support": "Synthetic support owner" },
18
+ "provenance": { "debt_resolved": true, "source": "Synthetic fixture only" },
19
+ "review_independence": "single_account",
20
+ "rollback": { "action": "Maintain or deprecate with migration.", "triggers": ["Stable support capacity ends."] },
21
+ "schema_version": "1.0",
22
+ "scope": { "aesthetic": false, "kind": "invariant", "summary": "Incorrectly propose stable status after support has ended." },
23
+ "stable_scope_decision": true,
24
+ "support": { "capacity": "No remaining support capacity", "status": "ended" },
25
+ "transition": { "from": "shared_experimental", "to": "stable" }
26
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "id": "promotion-fixture-inventory",
3
+ "invalid_records": [
4
+ { "expected_code": "promotion_blocking_evidence_failed", "file": "invalid-blocking-evidence.json" },
5
+ { "expected_code": "promotion_count_only_forbidden", "file": "invalid-count-only.json" },
6
+ { "expected_code": "promotion_owner_migration_required", "file": "invalid-missing-owner-migration.json" },
7
+ { "expected_code": "promotion_normative_regression_required", "file": "invalid-normative-bypass-no-regression.json" },
8
+ { "expected_code": "promotion_related_consumer_counted", "file": "invalid-related-counted-independent.json" },
9
+ { "expected_code": "stable_support_ended", "file": "invalid-stable-ended-support.json" }
10
+ ],
11
+ "policy_record": "consumer-reference/policies/shared-experimental.json",
12
+ "schema_record": "consumer-reference/schema/promotion-rfc.schema.json",
13
+ "schema_version": "1.0",
14
+ "valid_records": ["valid-deferred-example.json", "valid-normative-bypass.json"]
15
+ }
@@ -0,0 +1,67 @@
1
+ {
2
+ "attestations": [],
3
+ "compatibility": {
4
+ "breaking": false,
5
+ "surface": "Synthetic invariant contract surface."
6
+ },
7
+ "decision": "deferred",
8
+ "deprecation": {
9
+ "plan": "No deprecation is required while this synthetic proposal remains deferred.",
10
+ "required": false
11
+ },
12
+ "eligibility_basis": "full_contract",
13
+ "evidence": [
14
+ {
15
+ "id": "claim-scoped-example",
16
+ "kind": "claim_scoped",
17
+ "reference": "synthetic-fixture:claim-scoped-example",
18
+ "status": "passed"
19
+ },
20
+ {
21
+ "id": "regression-example",
22
+ "kind": "regression",
23
+ "reference": "synthetic-fixture:regression-example",
24
+ "status": "passed"
25
+ }
26
+ ],
27
+ "example_only": true,
28
+ "exceptions": [],
29
+ "id": "valid-deferred-example",
30
+ "known_issues": [],
31
+ "migration": {
32
+ "plan": "No migration begins unless a later separately reviewed decision changes the deferred status.",
33
+ "required": false
34
+ },
35
+ "normative_bypass": "none",
36
+ "owner": {
37
+ "enforcement": "placeholder",
38
+ "migration": "Synthetic migration owner",
39
+ "rollback": "Synthetic rollback owner",
40
+ "scope": "Repository governance owner",
41
+ "support": "Synthetic support owner"
42
+ },
43
+ "provenance": {
44
+ "debt_resolved": false,
45
+ "source": "Synthetic fixture only"
46
+ },
47
+ "review_independence": "single_account",
48
+ "rollback": {
49
+ "action": "Keep the proposal deferred and remove any unsupported shared routing.",
50
+ "triggers": ["Blocking evidence fails or the scope expands beyond the reviewed invariant."]
51
+ },
52
+ "schema_version": "1.0",
53
+ "scope": {
54
+ "aesthetic": false,
55
+ "kind": "invariant",
56
+ "summary": "Demonstrate a synthetic invariant promotion proposal without claiming adoption."
57
+ },
58
+ "stable_scope_decision": false,
59
+ "support": {
60
+ "capacity": "committed",
61
+ "status": "active"
62
+ },
63
+ "transition": {
64
+ "from": "consumer_local",
65
+ "to": "shared_experimental"
66
+ }
67
+ }
@@ -0,0 +1,67 @@
1
+ {
2
+ "attestations": [],
3
+ "compatibility": {
4
+ "breaking": false,
5
+ "surface": "Synthetic correctness contract surface."
6
+ },
7
+ "decision": "deferred",
8
+ "deprecation": {
9
+ "plan": "No deprecation is required for this deferred synthetic correction.",
10
+ "required": false
11
+ },
12
+ "eligibility_basis": "full_contract",
13
+ "evidence": [
14
+ {
15
+ "id": "claim-scoped-correctness",
16
+ "kind": "claim_scoped",
17
+ "reference": "synthetic-fixture:claim-scoped-correctness",
18
+ "status": "passed"
19
+ },
20
+ {
21
+ "id": "regression-correctness",
22
+ "kind": "regression",
23
+ "reference": "synthetic-fixture:regression-correctness",
24
+ "status": "passed"
25
+ }
26
+ ],
27
+ "example_only": true,
28
+ "exceptions": [],
29
+ "id": "valid-normative-bypass",
30
+ "known_issues": [],
31
+ "migration": {
32
+ "plan": "Apply only after compatibility review; keep a bounded rollback path.",
33
+ "required": false
34
+ },
35
+ "normative_bypass": "normative_correctness",
36
+ "owner": {
37
+ "enforcement": "placeholder",
38
+ "migration": "Synthetic migration owner",
39
+ "rollback": "Synthetic rollback owner",
40
+ "scope": "Repository governance owner",
41
+ "support": "Synthetic support owner"
42
+ },
43
+ "provenance": {
44
+ "debt_resolved": false,
45
+ "source": "Synthetic fixture only"
46
+ },
47
+ "review_independence": "single_account",
48
+ "rollback": {
49
+ "action": "Keep the correction deferred or revert it if regression evidence fails.",
50
+ "triggers": ["Regression evidence fails or compatibility review finds an unsupported impact."]
51
+ },
52
+ "schema_version": "1.0",
53
+ "scope": {
54
+ "aesthetic": false,
55
+ "kind": "normative_correctness",
56
+ "summary": "Demonstrate the adoption-count bypass without waiving regression or lifecycle duties."
57
+ },
58
+ "stable_scope_decision": false,
59
+ "support": {
60
+ "capacity": "committed",
61
+ "status": "active"
62
+ },
63
+ "transition": {
64
+ "from": "consumer_local",
65
+ "to": "shared_experimental"
66
+ }
67
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "space": {
3
+ "$type": "dimension",
4
+ "first": { "$value": "{space.second}" },
5
+ "second": { "$value": "{space.first}" }
6
+ }
7
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "space": {
3
+ "$type": "dimension",
4
+ "large": { "$value": "{space.missing}" }
5
+ }
6
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "base": { "$type": "dimension", "small": { "$value": { "value": 4, "unit": "px" } } },
3
+ "derived": { "$extends": "{base}", "large": { "$type": "dimension", "$value": { "value": 8, "unit": "px" } } }
4
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "color": {
3
+ "$type": "color",
4
+ "base": { "$value": { "colorSpace": "srgb", "components": [0, 0, 0] } },
5
+ "linked": { "$ref": "#/color/base" }
6
+ }
7
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "themes": {
3
+ "dark": { "resolver": { "mode": "dark" } }
4
+ },
5
+ "color": {
6
+ "$type": "color",
7
+ "base": { "$value": { "colorSpace": "srgb", "components": [0, 0, 0] }, "$extensions": { "modifier": "dark" } }
8
+ }
9
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "color": {
3
+ "$type": "color",
4
+ "base": { "$value": { "colorSpace": "srgb", "components": [0, 0, 0] } }
5
+ },
6
+ "space": {
7
+ "$type": "dimension",
8
+ "wrong": { "$value": "{color.base}" }
9
+ }
10
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "size": {
3
+ "$type": "dimension",
4
+ "small": { "$value": { "value": 4, "unit": "px" }, "$future": true }
5
+ }
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "font": {
3
+ "$type": "fontFamily",
4
+ "body": { "$value": ["Inter", "sans-serif"] }
5
+ }
6
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "color": {
3
+ "$type": "color",
4
+ "line": { "$value": { "colorSpace": "srgb", "components": [0.2, 0.2, 0.2] } }
5
+ },
6
+ "size": {
7
+ "$type": "dimension",
8
+ "line": { "$value": { "value": 1, "unit": "px" } }
9
+ },
10
+ "border": {
11
+ "$type": "border",
12
+ "default": { "$value": { "color": "{color.line}", "style": "solid", "width": "{size.line}" } }
13
+ }
14
+ }
@@ -0,0 +1,32 @@
1
+ {
2
+ "color": {
3
+ "$type": "color",
4
+ "accent": {
5
+ "$value": {
6
+ "colorSpace": "srgb",
7
+ "components": [0.125, 0.375, 0.875],
8
+ "alpha": 1
9
+ }
10
+ },
11
+ "action": { "$value": "{color.accent}" }
12
+ },
13
+ "duration": {
14
+ "$type": "duration",
15
+ "quick": { "$value": { "value": 120, "unit": "ms" } }
16
+ },
17
+ "space": {
18
+ "$type": "dimension",
19
+ "small": { "$value": { "value": 8, "unit": "px" } },
20
+ "control": { "$value": "{space.small}" }
21
+ },
22
+ "border": {
23
+ "$type": "border",
24
+ "focus": {
25
+ "$value": {
26
+ "color": "{color.action}",
27
+ "style": "solid",
28
+ "width": "{space.control}"
29
+ }
30
+ }
31
+ }
32
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "color": {
3
+ "$type": "color",
4
+ "base": { "$value": { "colorSpace": "srgb", "components": [0.1, 0.2, 0.3] } },
5
+ "linked": { "$value": "{color.base}" }
6
+ }
7
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "artifact_mode": "schema_only",
3
+ "fixture_independence": "related",
4
+ "handoff": {
5
+ "reason": "This deprecated fixture has no active consumer reference handoff.",
6
+ "status": "not_applicable"
7
+ },
8
+ "id": "valid-deprecated",
9
+ "maturity": "deprecated",
10
+ "owner": {
11
+ "enforcement": "placeholder",
12
+ "name": "Repository governance owner"
13
+ },
14
+ "removal_trigger": "Remove after every validator consumer uses the replacement fixture.",
15
+ "replacement": "consumer-reference/fixtures/valid-experimental.json",
16
+ "review_independence": "single_account",
17
+ "schema_version": "1.0",
18
+ "support": {
19
+ "status": "ended"
20
+ }
21
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "artifact_mode": "schema_only",
3
+ "fixture_independence": "related",
4
+ "handoff": {
5
+ "record": "consumer-reference/fixtures/valid-experimental.json",
6
+ "status": "declared"
7
+ },
8
+ "id": "valid-experimental",
9
+ "maturity": "experimental",
10
+ "owner": {
11
+ "enforcement": "placeholder",
12
+ "name": "Repository governance owner"
13
+ },
14
+ "review_independence": "single_account",
15
+ "schema_version": "1.0",
16
+ "support": {
17
+ "status": "active"
18
+ }
19
+ }
@@ -0,0 +1,40 @@
1
+ {
2
+ "adapter": {
3
+ "name": "style-dictionary",
4
+ "version": "5.5.0"
5
+ },
6
+ "declarations": [
7
+ {
8
+ "name": "--color-accent",
9
+ "value": "#2060df"
10
+ },
11
+ {
12
+ "name": "--duration-quick",
13
+ "value": "120ms"
14
+ },
15
+ {
16
+ "name": "--space-small",
17
+ "value": "8px"
18
+ },
19
+ {
20
+ "name": "--color-action",
21
+ "value": "var(--color-accent)"
22
+ },
23
+ {
24
+ "name": "--space-control",
25
+ "value": "var(--space-small)"
26
+ },
27
+ {
28
+ "name": "--border-focus",
29
+ "value": "var(--space-control) solid var(--color-action)"
30
+ }
31
+ ],
32
+ "inputHash": "sha256:660f1b752eccd4045af6ed0ae37f17f1eb436aec95302bf161687d9fa5e79a5f",
33
+ "outputCount": 6,
34
+ "outputFile": "tokens.css",
35
+ "outputHash": "sha256:a479ba780046bb5c1c393766ee47292049ca0515210c495081ef8cb3853f52a4",
36
+ "schemaVersion": "1.0",
37
+ "sourceCount": 6,
38
+ "sourceFile": "../fixtures/token-portability/valid-reference.json",
39
+ "warnings": []
40
+ }
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Do not edit directly, this file was auto-generated.
3
+ */
4
+
5
+ :root {
6
+ --color-accent: #2060df;
7
+ --duration-quick: 120ms;
8
+ --space-small: 8px;
9
+ --color-action: var(--color-accent);
10
+ --space-control: var(--space-small);
11
+ --border-focus: var(--space-control) solid var(--color-action);
12
+ }
@@ -0,0 +1,32 @@
1
+ # Consumer Reference
2
+
3
+ Primary role: shared non-domain infrastructure index.
4
+
5
+ `consumer-reference/` is shared infrastructure for schema, provenance, routing, and evidence metadata. It is not a fifth StyleGallery domain and owns no profile values, visual defaults, component implementation, state behavior, product CSS, or brand authority.
6
+
7
+ ## Scope Boundary
8
+
9
+ In scope: the receiver contract, JSON schema, validator fixtures, path-safety rules, ownership truth, evidence boundaries, and the agent-native read/query interface over governed records.
10
+
11
+ Out of scope: profiles, themes, components, browser runtime, decorative styling, automatic truth or promotion, and claims of independent adoption.
12
+
13
+ ## Documents
14
+
15
+ - [Receiver contract](contract.md) - Required handoff shape, record-path boundary, lifecycle fields, ownership truth, and dependency direction.
16
+ - [Agent-Native StyleGallery](agent-native/README.md) - StableRef/VersionID identity, immutable registry, CLI, read-only MCP, Task/Run/effect reconciliation, protocol projections, deterministic retrieval, and governed-learning boundaries.
17
+ - [Agent-native registry](agent-native/registry.json) - Canonical fixture and operation inventory consumed by both CLI and MCP adapters.
18
+ - [Agent-native schemas](agent-native/schema/agent-native.schema.json) - Closed Draft 2020-12 contracts for identity, knowledge, execution, protocol bindings, retrieval, and learning records.
19
+ - [Consumer migration conformance schema](schema/consumer-conformance-record.schema.json) - Closed consumer-local record with thirteen explicit migration dimensions, runtime scenarios, adoption mappings, and optional page evidence.
20
+ - [Page evidence session schema](schema/page-evidence-session.schema.json) and [manifest schema](schema/page-evidence-manifest.schema.json) - Source-bound capture lifecycle for an applicable migration page.
21
+ - [Consumer reference item schema](schema/item.schema.json) - Machine-readable shape for the current receiver item.
22
+ - [Promotion RFC schema](schema/promotion-rfc.schema.json) - Closed JSON shape for deferred or rejected invariant-promotion proposals.
23
+ - [Shared-experimental promotion policy](policies/shared-experimental.json) - Count scope, normative bypass, lifecycle, and zero-promotion claim boundary.
24
+ - [Chromium calibration schema](schema/calibration-record.schema.json) - Immutable environment, repetition, and evidence-cardinality contract for the proposed nonblocking sentinel.
25
+ - [Chromium baseline manifest schema](schema/baseline-manifest.schema.json) - Exact proposed source, baseline, platform, and calibration routing contract.
26
+ - `baselines/` - Proposed Chromium geometry baseline metadata and a pending committed-CI calibration record; these files do not constitute baseline-owner approval.
27
+ - `fixtures/` - Related validator fixtures; they are not adopters or product references.
28
+
29
+ ## IA Navigation
30
+
31
+ Parent: [StyleGallery](../index.md).
32
+ Next: [Consumer Migration Readiness](../design-engineering/consumer-migration-readiness.md).
@@ -0,0 +1,37 @@
1
+ {
2
+ "artifact_mode": "schema_only",
3
+ "boundaries": {
4
+ "excluded_content": ["component_skin", "imagery", "motion_character", "palette", "typography"],
5
+ "promoted_content": ["claim_scoped_evidence", "invariant_behavior", "invariant_semantics"]
6
+ },
7
+ "claims": {
8
+ "adopter_attestations": 0,
9
+ "promotion_occurred": false
10
+ },
11
+ "gateway": {
12
+ "applies_to": "invariant_eligibility_only",
13
+ "minimum_independent_consumers": 2,
14
+ "stable_numeric_threshold": null,
15
+ "transition": {
16
+ "from": "consumer_local",
17
+ "to": "shared_experimental"
18
+ }
19
+ },
20
+ "id": "shared-experimental-policy",
21
+ "lifecycle": {
22
+ "failure_actions": ["deprecate_with_migration", "maintain", "restrict", "rollback"],
23
+ "stable_relabel": "forbidden"
24
+ },
25
+ "normative_bypass": {
26
+ "categories": ["accessibility", "correctness", "security", "standards"],
27
+ "retains": ["compatibility", "deprecation", "migration", "owner_acceptance", "regression_proof", "rollback", "scope_control", "support_capacity"],
28
+ "waives": ["adoption_count"]
29
+ },
30
+ "owner": {
31
+ "enforcement": "placeholder",
32
+ "name": "Repository governance owner"
33
+ },
34
+ "review_independence": "single_account",
35
+ "schema_version": "1.0",
36
+ "status": "active"
37
+ }
@@ -0,0 +1,30 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://stylegallery.local/consumer-reference/schema/ax-evidence.schema.json",
4
+ "title": "Closed AX capture artifact",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["schema_version", "channel", "capture_session", "captured_at", "profile_id", "scenario_id", "semantic_mode", "name", "role", "properties"],
8
+ "properties": {
9
+ "schema_version": { "const": "1.0" },
10
+ "channel": { "const": "ax" },
11
+ "capture_session": { "$ref": "https://stylegallery.local/consumer-reference/schema/capture-session.schema.json#/$defs/session_link" },
12
+ "captured_at": { "type": "string", "format": "date-time" },
13
+ "profile_id": { "type": "string", "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$" },
14
+ "scenario_id": { "type": "string", "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$" },
15
+ "semantic_mode": { "enum": ["action", "toggle", "disclosure", "switch"] },
16
+ "name": { "type": "string", "minLength": 1 },
17
+ "role": { "enum": ["button", "link", "switch"] },
18
+ "properties": {
19
+ "type": "object",
20
+ "additionalProperties": false,
21
+ "properties": {
22
+ "busy": { "type": "boolean" },
23
+ "disabled": { "type": "boolean" },
24
+ "expanded": { "type": "boolean" },
25
+ "focused": { "type": "boolean" },
26
+ "pressed": { "type": "boolean" }
27
+ }
28
+ }
29
+ }
30
+ }