@ccslabs/xtend 0.1.0-rc.1

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 (664) hide show
  1. package/CHANGELOG.md +65 -0
  2. package/LICENSE +201 -0
  3. package/README.md +184 -0
  4. package/a11y/motion-contrast-policy.d.ts +32 -0
  5. package/a11y/motion-contrast-policy.js +261 -0
  6. package/a11y/runtime-a11y-contract.d.ts +44 -0
  7. package/a11y/runtime-a11y-contract.js +385 -0
  8. package/a11y/screenreader-signals.d.ts +32 -0
  9. package/a11y/screenreader-signals.js +372 -0
  10. package/api.d.ts +168 -0
  11. package/api.js +864 -0
  12. package/catalog/catalog-public-types.d.ts +66 -0
  13. package/catalog/component-catalog-coverage.d.ts +20 -0
  14. package/catalog/component-catalog-coverage.js +377 -0
  15. package/catalog/component-long-tail-migration.d.ts +18 -0
  16. package/catalog/component-long-tail-migration.js +305 -0
  17. package/catalog/component-regression-priority.d.ts +20 -0
  18. package/catalog/component-regression-priority.js +305 -0
  19. package/catalog/enterprise-component-flex-release-handoff.d.ts +32 -0
  20. package/catalog/enterprise-component-flex-release-handoff.js +437 -0
  21. package/catalog/enterprise-component-style-audit.d.ts +22 -0
  22. package/catalog/enterprise-component-style-audit.js +353 -0
  23. package/catalog/enterprise-form-control-theme-a11y.d.ts +19 -0
  24. package/catalog/enterprise-form-control-theme-a11y.js +220 -0
  25. package/catalog/enterprise-icon-control-audit.d.ts +21 -0
  26. package/catalog/enterprise-icon-control-audit.js +258 -0
  27. package/catalog/enterprise-layout-display-media-tokenization.d.ts +20 -0
  28. package/catalog/enterprise-layout-display-media-tokenization.js +237 -0
  29. package/catalog/enterprise-navigation-routing-state-hardening.d.ts +20 -0
  30. package/catalog/enterprise-navigation-routing-state-hardening.js +255 -0
  31. package/catalog/enterprise-overlay-mode-token-parity.d.ts +15 -0
  32. package/catalog/enterprise-overlay-mode-token-parity.js +178 -0
  33. package/catalog/enterprise-third-party-authoring-guide.d.ts +23 -0
  34. package/catalog/enterprise-third-party-authoring-guide.js +310 -0
  35. package/catalog/enterprise-visual-dom-snapshot-matrix.d.ts +31 -0
  36. package/catalog/enterprise-visual-dom-snapshot-matrix.js +357 -0
  37. package/catalog/epic10-existing-component-metadata.d.ts +25 -0
  38. package/catalog/epic10-existing-component-metadata.js +534 -0
  39. package/catalog/epic10-p0-component-wave.d.ts +28 -0
  40. package/catalog/epic10-p0-component-wave.js +688 -0
  41. package/catalog/epic10-platform-gates.d.ts +31 -0
  42. package/catalog/epic10-platform-gates.js +425 -0
  43. package/catalog/epic10-release-handoff.d.ts +30 -0
  44. package/catalog/epic10-release-handoff.js +195 -0
  45. package/catalog/epic11-enterprise-ux-handoff.d.ts +29 -0
  46. package/catalog/epic11-enterprise-ux-handoff.js +403 -0
  47. package/catalog/epic12-docs-adoption.d.ts +29 -0
  48. package/catalog/epic12-docs-adoption.js +183 -0
  49. package/catalog/epic12-rc0-gate-matrix.d.ts +36 -0
  50. package/catalog/epic12-rc0-gate-matrix.js +439 -0
  51. package/catalog/epic12-rc0-handoff.d.ts +30 -0
  52. package/catalog/epic12-rc0-handoff.js +385 -0
  53. package/catalog/epic13-conditional-network-evidence-ci.d.ts +35 -0
  54. package/catalog/epic13-conditional-network-evidence-ci.js +278 -0
  55. package/catalog/epic13-conditional-network-evidence.d.ts +34 -0
  56. package/catalog/epic13-conditional-network-evidence.js +280 -0
  57. package/catalog/epic13-docs-rmt-production-hardening.d.ts +39 -0
  58. package/catalog/epic13-docs-rmt-production-hardening.js +286 -0
  59. package/catalog/epic13-hydration-performance-closure.d.ts +33 -0
  60. package/catalog/epic13-hydration-performance-closure.js +234 -0
  61. package/catalog/epic13-known-residual-triage.d.ts +32 -0
  62. package/catalog/epic13-known-residual-triage.js +339 -0
  63. package/catalog/epic13-package-export-lock.d.ts +41 -0
  64. package/catalog/epic13-package-export-lock.js +604 -0
  65. package/catalog/epic13-prod-browser-csp-smoke.d.ts +35 -0
  66. package/catalog/epic13-prod-browser-csp-smoke.js +218 -0
  67. package/catalog/epic13-rc1-gate-matrix-ci-handoff.d.ts +36 -0
  68. package/catalog/epic13-rc1-gate-matrix-ci-handoff.js +418 -0
  69. package/catalog/epic13-rc1-migration-notes.d.ts +36 -0
  70. package/catalog/epic13-rc1-migration-notes.js +271 -0
  71. package/catalog/epic13-rc1-readiness.d.ts +33 -0
  72. package/catalog/epic13-rc1-readiness.js +487 -0
  73. package/catalog/epic13-release-owner-acceptance.d.ts +33 -0
  74. package/catalog/epic13-release-owner-acceptance.js +354 -0
  75. package/catalog/epic13-release-report-pack-dry-run-evidence.d.ts +36 -0
  76. package/catalog/epic13-release-report-pack-dry-run-evidence.js +253 -0
  77. package/catalog/epic13-rmt-production-readiness.d.ts +35 -0
  78. package/catalog/epic13-rmt-production-readiness.js +314 -0
  79. package/catalog/epic13-trusted-dom-boundary.d.ts +36 -0
  80. package/catalog/epic13-trusted-dom-boundary.js +230 -0
  81. package/catalog/epic13-visual-owner-artifact.d.ts +35 -0
  82. package/catalog/epic13-visual-owner-artifact.js +233 -0
  83. package/catalog/epic14-lsp-handoff.d.ts +28 -0
  84. package/catalog/epic14-lsp-handoff.js +312 -0
  85. package/catalog/epic14-rmt-tooling.d.ts +33 -0
  86. package/catalog/epic14-rmt-tooling.js +282 -0
  87. package/catalog/surface-manager-adapter-runtime.d.ts +37 -0
  88. package/catalog/surface-manager-adapter-runtime.js +203 -0
  89. package/catalog/surface-manager-browser-lab.d.ts +39 -0
  90. package/catalog/surface-manager-browser-lab.js +225 -0
  91. package/catalog/surface-manager-controller.d.ts +43 -0
  92. package/catalog/surface-manager-controller.js +290 -0
  93. package/catalog/surface-manager-layout-engines.d.ts +32 -0
  94. package/catalog/surface-manager-layout-engines.js +161 -0
  95. package/catalog/surface-manager-lazy-loading.d.ts +35 -0
  96. package/catalog/surface-manager-lazy-loading.js +173 -0
  97. package/catalog/surface-manager-materialization.d.ts +37 -0
  98. package/catalog/surface-manager-materialization.js +202 -0
  99. package/catalog/surface-manager-native-rmt-surfaces.d.ts +48 -0
  100. package/catalog/surface-manager-native-rmt-surfaces.js +325 -0
  101. package/catalog/surface-manager-overlay-bridge.d.ts +42 -0
  102. package/catalog/surface-manager-overlay-bridge.js +247 -0
  103. package/catalog/surface-manager-persistence.d.ts +37 -0
  104. package/catalog/surface-manager-persistence.js +178 -0
  105. package/catalog/surface-manager-quality-gates.d.ts +48 -0
  106. package/catalog/surface-manager-quality-gates.js +324 -0
  107. package/catalog/surface-manager-release-handoff.d.ts +47 -0
  108. package/catalog/surface-manager-release-handoff.js +274 -0
  109. package/catalog/surface-manager-remote-policy.d.ts +34 -0
  110. package/catalog/surface-manager-remote-policy.js +199 -0
  111. package/catalog/surface-manager-rmt-authoring.d.ts +44 -0
  112. package/catalog/surface-manager-rmt-authoring.js +368 -0
  113. package/catalog/surface-manager-route-lifecycle.d.ts +32 -0
  114. package/catalog/surface-manager-route-lifecycle.js +162 -0
  115. package/catalog/surface-manager-runtime-release-handoff.d.ts +36 -0
  116. package/catalog/surface-manager-runtime-release-handoff.js +245 -0
  117. package/catalog/surface-manager-side-panel-runtime.d.ts +46 -0
  118. package/catalog/surface-manager-side-panel-runtime.js +307 -0
  119. package/catalog/surface-manager-stack-policy.d.ts +32 -0
  120. package/catalog/surface-manager-stack-policy.js +169 -0
  121. package/catalog/surface-manager-window-runtime.d.ts +45 -0
  122. package/catalog/surface-manager-window-runtime.js +285 -0
  123. package/catalog/surface-manager-workbench-fixture.d.ts +50 -0
  124. package/catalog/surface-manager-workbench-fixture.js +315 -0
  125. package/catalog/type-exports-api.js +236 -0
  126. package/catalog/type-exports-builder.js +405 -0
  127. package/catalog/type-exports-catalog.js +394 -0
  128. package/catalog/type-exports-loader.js +266 -0
  129. package/catalog/type-exports-policy.js +461 -0
  130. package/catalog/type-exports-rmt.js +407 -0
  131. package/catalog/type-exports-vendor.js +365 -0
  132. package/catalog/type-exports.js +574 -0
  133. package/components/icon-packs/core.js +154 -0
  134. package/components/icon-packs/lucide.js +136 -0
  135. package/components/manifest.json +44 -0
  136. package/components/prism.d.ts +73 -0
  137. package/components/prism.js +300 -0
  138. package/components/turndown.d.ts +34 -0
  139. package/components/turndown.js +107 -0
  140. package/components/x-rmt-lifecycle-demo-build.d.ts +78 -0
  141. package/components/x-rmt-lifecycle-demo-build.js +1175 -0
  142. package/components/x-rmt-lifecycle-demo.d.ts +83 -0
  143. package/components/x-rmt-lifecycle-demo.js +1175 -0
  144. package/components/xalert.d.ts +42 -0
  145. package/components/xalert.js +538 -0
  146. package/components/xbutton.d.ts +127 -0
  147. package/components/xbutton.js +612 -0
  148. package/components/xcalendar.d.ts +39 -0
  149. package/components/xcalendar.js +338 -0
  150. package/components/xcards.d.ts +34 -0
  151. package/components/xcards.js +253 -0
  152. package/components/xcheckbox.d.ts +48 -0
  153. package/components/xcheckbox.js +448 -0
  154. package/components/xcode.d.ts +35 -0
  155. package/components/xcode.js +370 -0
  156. package/components/xdialog.d.ts +48 -0
  157. package/components/xdialog.js +763 -0
  158. package/components/xdrawer.d.ts +61 -0
  159. package/components/xdrawer.js +654 -0
  160. package/components/xfooter.d.ts +41 -0
  161. package/components/xfooter.js +351 -0
  162. package/components/xform.d.ts +43 -0
  163. package/components/xform.js +456 -0
  164. package/components/xheader.d.ts +68 -0
  165. package/components/xheader.js +1253 -0
  166. package/components/xhero.d.ts +42 -0
  167. package/components/xhero.js +475 -0
  168. package/components/xicon.d.ts +146 -0
  169. package/components/xicon.js +688 -0
  170. package/components/xinput.d.ts +37 -0
  171. package/components/xinput.js +444 -0
  172. package/components/xlightbox.d.ts +48 -0
  173. package/components/xlightbox.js +571 -0
  174. package/components/xlink.d.ts +63 -0
  175. package/components/xlink.js +565 -0
  176. package/components/xmasonry.d.ts +35 -0
  177. package/components/xmasonry.js +666 -0
  178. package/components/xmenu.d.ts +118 -0
  179. package/components/xmenu.js +1005 -0
  180. package/components/xmodal.d.ts +64 -0
  181. package/components/xmodal.js +831 -0
  182. package/components/xplayer.d.ts +57 -0
  183. package/components/xplayer.js +1748 -0
  184. package/components/xpopover.d.ts +54 -0
  185. package/components/xpopover.js +466 -0
  186. package/components/xprogress.d.ts +40 -0
  187. package/components/xprogress.js +345 -0
  188. package/components/xradio.d.ts +50 -0
  189. package/components/xradio.js +474 -0
  190. package/components/xrouter.d.ts +244 -0
  191. package/components/xrouter.js +1841 -0
  192. package/components/xsection.d.ts +34 -0
  193. package/components/xsection.js +253 -0
  194. package/components/xselect.d.ts +46 -0
  195. package/components/xselect.js +463 -0
  196. package/components/xsidepanel.d.ts +56 -0
  197. package/components/xsidepanel.js +728 -0
  198. package/components/xspinner.d.ts +38 -0
  199. package/components/xspinner.js +388 -0
  200. package/components/xstate.d.ts +137 -0
  201. package/components/xstate.js +493 -0
  202. package/components/xstatus.d.ts +41 -0
  203. package/components/xstatus.js +381 -0
  204. package/components/xsummary.d.ts +43 -0
  205. package/components/xsummary.js +293 -0
  206. package/components/xsurfacemanager-controller.d.ts +130 -0
  207. package/components/xsurfacemanager-controller.js +699 -0
  208. package/components/xsurfacemanager.d.ts +452 -0
  209. package/components/xsurfacemanager.js +3775 -0
  210. package/components/xsurfaceoverlay-bridge.d.ts +43 -0
  211. package/components/xsurfaceoverlay-bridge.js +238 -0
  212. package/components/xsurfacewindow.d.ts +50 -0
  213. package/components/xsurfacewindow.js +576 -0
  214. package/components/xtabs.d.ts +73 -0
  215. package/components/xtabs.js +611 -0
  216. package/components/xtend-public-types.d.ts +208 -0
  217. package/components/xtextarea.d.ts +46 -0
  218. package/components/xtextarea.js +451 -0
  219. package/components/xtheme.d.ts +253 -0
  220. package/components/xtheme.js +1438 -0
  221. package/components/xtoast.d.ts +39 -0
  222. package/components/xtoast.js +389 -0
  223. package/components/xtooltip.d.ts +53 -0
  224. package/components/xtooltip.js +432 -0
  225. package/components/xtype.d.ts +42 -0
  226. package/components/xtype.js +244 -0
  227. package/components/xutils.d.ts +164 -0
  228. package/components/xutils.js +496 -0
  229. package/components/xwriter.d.ts +67 -0
  230. package/components/xwriter.js +854 -0
  231. package/design-tokens/themes/enterprise-light.json +40 -0
  232. package/design-tokens/themes/xtend-signature.json +126 -0
  233. package/design-tokens/xtend-design-tokens.d.ts +95 -0
  234. package/design-tokens/xtend-design-tokens.js +395 -0
  235. package/design-tokens/xtheme-token-alias-layer.d.ts +84 -0
  236. package/design-tokens/xtheme-token-alias-layer.js +423 -0
  237. package/docs/.htaccess +51 -0
  238. package/docs/README.md +340 -0
  239. package/docs/XTend-ADR.md +221 -0
  240. package/docs/a11y-keyboard-smokes.md +62 -0
  241. package/docs/about.md +18 -0
  242. package/docs/api.md +157 -0
  243. package/docs/best-practices.md +76 -0
  244. package/docs/component-catalog-coverage.md +58 -0
  245. package/docs/component-lab.md +103 -0
  246. package/docs/component-long-tail-migration.md +41 -0
  247. package/docs/component-platform.md +159 -0
  248. package/docs/component-ux-app-authoring.md +130 -0
  249. package/docs/component-ux-authoring.md +96 -0
  250. package/docs/component-ux-gates.md +45 -0
  251. package/docs/components/x-rmt-lifecycle-demo-build.md +60 -0
  252. package/docs/components/xalert.md +81 -0
  253. package/docs/components/xbutton.md +103 -0
  254. package/docs/components/xcalendar.md +82 -0
  255. package/docs/components/xcards.md +128 -0
  256. package/docs/components/xcheckbox.md +102 -0
  257. package/docs/components/xcode.md +126 -0
  258. package/docs/components/xdialog.md +92 -0
  259. package/docs/components/xdrawer.md +84 -0
  260. package/docs/components/xfooter.md +126 -0
  261. package/docs/components/xform.md +128 -0
  262. package/docs/components/xheader.md +308 -0
  263. package/docs/components/xhero.md +142 -0
  264. package/docs/components/xicon.md +125 -0
  265. package/docs/components/xinput.md +129 -0
  266. package/docs/components/xlightbox.md +98 -0
  267. package/docs/components/xlink.md +109 -0
  268. package/docs/components/xmasonry.md +124 -0
  269. package/docs/components/xmenu.md +158 -0
  270. package/docs/components/xmodal.md +82 -0
  271. package/docs/components/xplayer.md +104 -0
  272. package/docs/components/xpopover.md +67 -0
  273. package/docs/components/xprogress.md +56 -0
  274. package/docs/components/xradio.md +103 -0
  275. package/docs/components/xrouter.md +260 -0
  276. package/docs/components/xsection.md +125 -0
  277. package/docs/components/xselect.md +105 -0
  278. package/docs/components/xsidepanel.md +30 -0
  279. package/docs/components/xspinner.md +102 -0
  280. package/docs/components/xstate.md +148 -0
  281. package/docs/components/xstatus.md +55 -0
  282. package/docs/components/xsummary.md +78 -0
  283. package/docs/components/xsurfacemanager.md +27 -0
  284. package/docs/components/xsurfacewindow.md +21 -0
  285. package/docs/components/xtabs.md +160 -0
  286. package/docs/components/xtextarea.md +98 -0
  287. package/docs/components/xtheme.md +167 -0
  288. package/docs/components/xtoast.md +62 -0
  289. package/docs/components/xtooltip.md +66 -0
  290. package/docs/components/xtype.md +82 -0
  291. package/docs/components/xutils.md +144 -0
  292. package/docs/components/xwriter.md +94 -0
  293. package/docs/components.md +117 -0
  294. package/docs/conditional-network-evidence-ci.md +38 -0
  295. package/docs/conditional-network-evidence.md +50 -0
  296. package/docs/core-migration-guide.md +110 -0
  297. package/docs/design-tokens.md +116 -0
  298. package/docs/docs-rmt-production-hardening.md +31 -0
  299. package/docs/enterprise-adoption.md +411 -0
  300. package/docs/enterprise-component-flex-release-handoff.md +129 -0
  301. package/docs/epic10-platform-gates.md +62 -0
  302. package/docs/epic10-release-handoff.md +81 -0
  303. package/docs/epic11-enterprise-ux-handoff.md +70 -0
  304. package/docs/epic12-rc0-handoff.md +61 -0
  305. package/docs/existing-component-metadata.md +67 -0
  306. package/docs/hydration-performance-closure.md +34 -0
  307. package/docs/hydration-policies.md +71 -0
  308. package/docs/index.php +1625 -0
  309. package/docs/known-residual-triage.md +22 -0
  310. package/docs/manifest-import-policy.md +79 -0
  311. package/docs/manifest.md +106 -0
  312. package/docs/menu.json +1190 -0
  313. package/docs/motion-contrast.md +67 -0
  314. package/docs/package-export-lock.md +44 -0
  315. package/docs/performance-measurements.md +106 -0
  316. package/docs/performance-regression.md +89 -0
  317. package/docs/performance.md +94 -0
  318. package/docs/previews/README.md +17 -0
  319. package/docs/prod-browser-csp-smokes.md +40 -0
  320. package/docs/public-component-types.md +79 -0
  321. package/docs/quick-start-guide.md +152 -0
  322. package/docs/rc0-adoption-guide.md +102 -0
  323. package/docs/rc0-gate-matrix.md +58 -0
  324. package/docs/rc1-gate-matrix-ci-handoff.md +56 -0
  325. package/docs/rc1-migration-notes.md +69 -0
  326. package/docs/rc1-readiness.md +46 -0
  327. package/docs/release-owner-acceptance.md +56 -0
  328. package/docs/release-report-pack-dry-run-evidence.md +39 -0
  329. package/docs/rmt-dsl-authoring-polish.md +122 -0
  330. package/docs/rmt-first-demo-app.md +77 -0
  331. package/docs/rmt-first-xtend-apps.md +105 -0
  332. package/docs/rmt-kernel-panic-recovery-incident-handoff.md +61 -0
  333. package/docs/rmt-kernel-security-hardening-migration.md +50 -0
  334. package/docs/rmt-kernel-trusted-output-authoring.md +69 -0
  335. package/docs/rmt-language-server.md +177 -0
  336. package/docs/rmt-lifecycle-demo.md +25 -0
  337. package/docs/rmt-linter.md +140 -0
  338. package/docs/rmt-production-readiness.md +63 -0
  339. package/docs/rmt-tooling-release-gates.md +77 -0
  340. package/docs/rmt-vnext-authoring.md +60 -0
  341. package/docs/rmt-vnext-cross-surface-events.md +68 -0
  342. package/docs/rmt-vnext-enterprise-mfe-handoff.md +70 -0
  343. package/docs/rmt-vnext-migration-notes.md +62 -0
  344. package/docs/rmt-vnext-release-handoff.md +69 -0
  345. package/docs/rmt-vnext-remote-surfaces.md +90 -0
  346. package/docs/rmt-vnext-surface-registry-enterprise.md +76 -0
  347. package/docs/screenreader-signals.md +56 -0
  348. package/docs/supply-chain-gates.md +100 -0
  349. package/docs/surface-manager-authoring-guide.md +94 -0
  350. package/docs/surface-manager-browser-lab.md +45 -0
  351. package/docs/surface-manager-component-lab.md +43 -0
  352. package/docs/surface-manager-controller.md +66 -0
  353. package/docs/surface-manager-layout-engines.md +32 -0
  354. package/docs/surface-manager-lazy-hydration.md +63 -0
  355. package/docs/surface-manager-migration-guide.md +94 -0
  356. package/docs/surface-manager-native-rmt-surfaces.md +38 -0
  357. package/docs/surface-manager-overlay-bridge.md +53 -0
  358. package/docs/surface-manager-persistence.md +30 -0
  359. package/docs/surface-manager-quality-gates.md +51 -0
  360. package/docs/surface-manager-release-handoff.md +68 -0
  361. package/docs/surface-manager-remote-policy.md +54 -0
  362. package/docs/surface-manager-rmt-authoring.md +86 -0
  363. package/docs/surface-manager-route-lifecycle.md +59 -0
  364. package/docs/surface-manager-runtime-release-handoff.md +69 -0
  365. package/docs/surface-manager-side-panel-runtime.md +36 -0
  366. package/docs/surface-manager-stack-policy.md +39 -0
  367. package/docs/surface-manager-window-runtime.md +47 -0
  368. package/docs/surface-manager-workbench-fixture.md +43 -0
  369. package/docs/third-party-design-authoring.md +406 -0
  370. package/docs/trusted-dom-boundary-browser-proof.md +32 -0
  371. package/docs/trusted-dom-sanitizing.md +110 -0
  372. package/docs/type-exports.md +61 -0
  373. package/docs/typescript-components.md +63 -0
  374. package/docs/utils/fabric-runtime.js +650 -0
  375. package/docs/utils/pageloader.js +2823 -0
  376. package/docs/utils/parsedown.php +298 -0
  377. package/docs/visual-browser-regression.md +83 -0
  378. package/docs/visual-owner-artifacts.md +46 -0
  379. package/docs/visual-snapshot-automation.md +87 -0
  380. package/docs/xtend-api-types.md +55 -0
  381. package/docs/xtend-builder-types.md +55 -0
  382. package/docs/xtend-catalog-types.md +44 -0
  383. package/docs/xtend-fabric-rmt-lane-mapping.md +143 -0
  384. package/docs/xtend-fabric.md +474 -0
  385. package/docs/xtend-loader-types.md +58 -0
  386. package/docs/xtend-loader.md +265 -0
  387. package/docs/xtend-policy-types.md +38 -0
  388. package/docs/xtend-rmt-types.md +39 -0
  389. package/docs/xtend-vendor-types.md +36 -0
  390. package/docs/xtendrmt-app-dsl.md +269 -0
  391. package/docs/xtendrmt-migration-guide.md +235 -0
  392. package/docs/xtendrmt-native-authoring.md +337 -0
  393. package/docs/xtendrmt-overview.md +89 -0
  394. package/docs/xtendrmt-parsedown-docs.rmt +956 -0
  395. package/docs/xtendrmt-parsedown-scheduling.md +301 -0
  396. package/docs/xtendrmt-runtime-bridge.md +155 -0
  397. package/fabric/hydration-policy.d.ts +27 -0
  398. package/fabric/hydration-policy.js +306 -0
  399. package/fabric/package.json +58 -0
  400. package/fabric/rmt-lane-mapping.d.ts +47 -0
  401. package/fabric/rmt-lane-mapping.js +504 -0
  402. package/fabric/xtend-fabric.d.ts +81 -0
  403. package/fabric/xtend-fabric.js +2669 -0
  404. package/fabric/xtend-policy-public-types.d.ts +135 -0
  405. package/package.json +8225 -0
  406. package/security/README.md +54 -0
  407. package/security/manifest-import-policy.d.ts +43 -0
  408. package/security/manifest-import-policy.js +260 -0
  409. package/security/supply-chain-gate-policy.d.ts +45 -0
  410. package/security/supply-chain-gate-policy.js +249 -0
  411. package/security/trusted-dom-policy.d.ts +36 -0
  412. package/security/trusted-dom-policy.js +316 -0
  413. package/tools/package.json +77 -0
  414. package/tools/rmt-editor/vscode/README.md +33 -0
  415. package/tools/rmt-editor/vscode/extension.d.ts +9 -0
  416. package/tools/rmt-editor/vscode/extension.js +55 -0
  417. package/tools/rmt-editor/vscode/language-configuration.json +28 -0
  418. package/tools/rmt-editor/vscode/package.json +83 -0
  419. package/tools/rmt-editor/vscode/snippets/rmt.code-snippets +243 -0
  420. package/tools/rmt-editor/vscode/syntaxes/rmt.tmLanguage.json +13 -0
  421. package/tools/rmt-editor/vscode/xtend-rmt-language-0.0.0-enterprise-readiness.vsix +0 -0
  422. package/tools/rmt-language/code-actions.d.ts +15 -0
  423. package/tools/rmt-language/code-actions.js +566 -0
  424. package/tools/rmt-language/completions.d.ts +22 -0
  425. package/tools/rmt-language/completions.js +475 -0
  426. package/tools/rmt-language/definitions.d.ts +13 -0
  427. package/tools/rmt-language/definitions.js +212 -0
  428. package/tools/rmt-language/diagnostics.d.ts +23 -0
  429. package/tools/rmt-language/diagnostics.js +486 -0
  430. package/tools/rmt-language/format-adapter.d.ts +16 -0
  431. package/tools/rmt-language/format-adapter.js +270 -0
  432. package/tools/rmt-language/hover.d.ts +12 -0
  433. package/tools/rmt-language/hover.js +326 -0
  434. package/tools/rmt-language/kernel-escalation.d.ts +122 -0
  435. package/tools/rmt-language/kernel-escalation.js +427 -0
  436. package/tools/rmt-language/kernel-panic-monitor.d.ts +176 -0
  437. package/tools/rmt-language/kernel-panic-monitor.js +674 -0
  438. package/tools/rmt-language/kernel-policy-parity.d.ts +142 -0
  439. package/tools/rmt-language/kernel-policy-parity.js +629 -0
  440. package/tools/rmt-language/kernel-recovery.d.ts +173 -0
  441. package/tools/rmt-language/kernel-recovery.js +666 -0
  442. package/tools/rmt-language/kernel-scheduler-failure.d.ts +136 -0
  443. package/tools/rmt-language/kernel-scheduler-failure.js +486 -0
  444. package/tools/rmt-language/kernel-security-regression.d.ts +154 -0
  445. package/tools/rmt-language/kernel-security-regression.js +465 -0
  446. package/tools/rmt-language/kernel-trust-authority.d.ts +120 -0
  447. package/tools/rmt-language/kernel-trust-authority.js +549 -0
  448. package/tools/rmt-language/parser.d.ts +14 -0
  449. package/tools/rmt-language/parser.js +111 -0
  450. package/tools/rmt-language/rmt-tooling-public-types.d.ts +179 -0
  451. package/tools/rmt-language/rules/boundary-policy.js +81 -0
  452. package/tools/rmt-language/rules/document-policy.js +65 -0
  453. package/tools/rmt-language/rules/index.js +29 -0
  454. package/tools/rmt-language/rules/route-policy.js +81 -0
  455. package/tools/rmt-language/rules/scheduler-policy.js +66 -0
  456. package/tools/rmt-language/rules/template-policy.js +130 -0
  457. package/tools/rmt-language/semantic-graph.d.ts +18 -0
  458. package/tools/rmt-language/semantic-graph.js +827 -0
  459. package/tools/rmt-language/snippets/README.md +17 -0
  460. package/tools/rmt-language/snippets/index.d.ts +17 -0
  461. package/tools/rmt-language/snippets/index.js +417 -0
  462. package/tools/rmt-language/snippets/rmt.code-snippets +243 -0
  463. package/tools/rmt-language/source-model.d.ts +14 -0
  464. package/tools/rmt-language/source-model.js +731 -0
  465. package/tools/rmt-language/symbols.d.ts +13 -0
  466. package/tools/rmt-language/symbols.js +183 -0
  467. package/tools/rmt-language/vnext-compatibility.d.ts +28 -0
  468. package/tools/rmt-language/vnext-compatibility.js +675 -0
  469. package/tools/rmt-language/vnext-compiler.d.ts +17 -0
  470. package/tools/rmt-language/vnext-compiler.js +716 -0
  471. package/tools/rmt-language/vnext-composition.d.ts +30 -0
  472. package/tools/rmt-language/vnext-composition.js +595 -0
  473. package/tools/rmt-language/vnext-conditions.d.ts +25 -0
  474. package/tools/rmt-language/vnext-conditions.js +474 -0
  475. package/tools/rmt-language/vnext-cross-surface-events.d.ts +30 -0
  476. package/tools/rmt-language/vnext-cross-surface-events.js +607 -0
  477. package/tools/rmt-language/vnext-degradation.d.ts +23 -0
  478. package/tools/rmt-language/vnext-degradation.js +428 -0
  479. package/tools/rmt-language/vnext-enterprise-fixtures.d.ts +28 -0
  480. package/tools/rmt-language/vnext-enterprise-fixtures.js +487 -0
  481. package/tools/rmt-language/vnext-enterprise-registry.d.ts +21 -0
  482. package/tools/rmt-language/vnext-enterprise-registry.js +495 -0
  483. package/tools/rmt-language/vnext-enterprise-release.d.ts +44 -0
  484. package/tools/rmt-language/vnext-enterprise-release.js +472 -0
  485. package/tools/rmt-language/vnext-event-governance.d.ts +29 -0
  486. package/tools/rmt-language/vnext-event-governance.js +488 -0
  487. package/tools/rmt-language/vnext-events.d.ts +44 -0
  488. package/tools/rmt-language/vnext-events.js +680 -0
  489. package/tools/rmt-language/vnext-import-resolver.d.ts +28 -0
  490. package/tools/rmt-language/vnext-import-resolver.js +642 -0
  491. package/tools/rmt-language/vnext-lifecycle.d.ts +22 -0
  492. package/tools/rmt-language/vnext-lifecycle.js +404 -0
  493. package/tools/rmt-language/vnext-parser.d.ts +21 -0
  494. package/tools/rmt-language/vnext-parser.js +1391 -0
  495. package/tools/rmt-language/vnext-regression.d.ts +25 -0
  496. package/tools/rmt-language/vnext-regression.js +394 -0
  497. package/tools/rmt-language/vnext-release.d.ts +29 -0
  498. package/tools/rmt-language/vnext-release.js +293 -0
  499. package/tools/rmt-language/vnext-remote-compatibility.d.ts +33 -0
  500. package/tools/rmt-language/vnext-remote-compatibility.js +892 -0
  501. package/tools/rmt-language/vnext-remote-compiler.d.ts +14 -0
  502. package/tools/rmt-language/vnext-remote-compiler.js +520 -0
  503. package/tools/rmt-language/vnext-remote-manifest.d.ts +33 -0
  504. package/tools/rmt-language/vnext-remote-manifest.js +538 -0
  505. package/tools/rmt-language/vnext-remote-security.d.ts +27 -0
  506. package/tools/rmt-language/vnext-remote-security.js +380 -0
  507. package/tools/rmt-language/vnext-remote-tooling.d.ts +25 -0
  508. package/tools/rmt-language/vnext-remote-tooling.js +805 -0
  509. package/tools/rmt-language/vnext-scheduler.d.ts +24 -0
  510. package/tools/rmt-language/vnext-scheduler.js +469 -0
  511. package/tools/rmt-language/vnext-security.d.ts +28 -0
  512. package/tools/rmt-language/vnext-security.js +597 -0
  513. package/tools/rmt-language/vnext-streaming.d.ts +28 -0
  514. package/tools/rmt-language/vnext-streaming.js +593 -0
  515. package/tools/rmt-language/vnext-surfaces.d.ts +24 -0
  516. package/tools/rmt-language/vnext-surfaces.js +406 -0
  517. package/tools/rmt-language/vnext-tooling.d.ts +25 -0
  518. package/tools/rmt-language/vnext-tooling.js +728 -0
  519. package/tools/rmt-language-server/protocol.d.ts +22 -0
  520. package/tools/rmt-language-server/protocol.js +352 -0
  521. package/tools/rmt-language-server/server.d.ts +15 -0
  522. package/tools/rmt-language-server/server.js +622 -0
  523. package/tools/rmt-linter/cli.d.ts +14 -0
  524. package/tools/rmt-linter/cli.js +450 -0
  525. package/tools/rmt-linter/reporter.d.ts +16 -0
  526. package/tools/rmt-linter/reporter.js +472 -0
  527. package/xtend-builder/README.md +83 -0
  528. package/xtend-builder/a11y/README.md +42 -0
  529. package/xtend-builder/a11y/component-a11y-profile.d.ts +14 -0
  530. package/xtend-builder/a11y/component-a11y-profile.js +314 -0
  531. package/xtend-builder/blueprints/README.md +105 -0
  532. package/xtend-builder/blueprints/component-blueprint.contract.d.ts +16 -0
  533. package/xtend-builder/blueprints/component-blueprint.contract.js +343 -0
  534. package/xtend-builder/builder-public-types.d.ts +234 -0
  535. package/xtend-builder/extensions/README.md +26 -0
  536. package/xtend-builder/extensions/component-extension-points.d.ts +11 -0
  537. package/xtend-builder/extensions/component-extension-points.js +277 -0
  538. package/xtend-builder/generators/README.md +149 -0
  539. package/xtend-builder/generators/component-files.d.ts +5 -0
  540. package/xtend-builder/generators/component-files.js +769 -0
  541. package/xtend-builder/generators/component-plan.d.ts +4 -0
  542. package/xtend-builder/generators/component-plan.js +104 -0
  543. package/xtend-builder/generators/registry.d.ts +6 -0
  544. package/xtend-builder/generators/registry.js +118 -0
  545. package/xtend-builder/generators/rmt-build.js +738 -0
  546. package/xtend-builder/generators/rmt-lifecycle-demo.js +922 -0
  547. package/xtend-builder/lib/cli.d.ts +9 -0
  548. package/xtend-builder/lib/cli.js +543 -0
  549. package/xtend-builder/lib/layout.d.ts +6 -0
  550. package/xtend-builder/lib/layout.js +153 -0
  551. package/xtend-builder/lib/package-resolver.js +25 -0
  552. package/xtend-builder/package.json +90 -0
  553. package/xtend-builder/performance/README.md +31 -0
  554. package/xtend-builder/performance/component-performance-profile.d.ts +11 -0
  555. package/xtend-builder/performance/component-performance-profile.js +347 -0
  556. package/xtend-builder/performance/component-ux-performance-contract.d.ts +27 -0
  557. package/xtend-builder/performance/component-ux-performance-contract.js +424 -0
  558. package/xtend-builder/preview/README.md +61 -0
  559. package/xtend-builder/preview/component-lab-ux-inspector.d.ts +20 -0
  560. package/xtend-builder/preview/component-lab-ux-inspector.js +448 -0
  561. package/xtend-builder/preview/component-lab.d.ts +14 -0
  562. package/xtend-builder/preview/component-lab.js +278 -0
  563. package/xtend-builder/preview/component-preview.d.ts +5 -0
  564. package/xtend-builder/preview/component-preview.js +160 -0
  565. package/xtend-builder/scaffold.config.d.ts +4 -0
  566. package/xtend-builder/scaffold.config.js +2056 -0
  567. package/xtend-builder/scaffold.d.ts +3 -0
  568. package/xtend-builder/scaffold.js +11 -0
  569. package/xtend-builder/templates/README.md +33 -0
  570. package/xtend-builder/templates/component/a11y.template.ts +11 -0
  571. package/xtend-builder/templates/component/component-suite.template.d.ts +2 -0
  572. package/xtend-builder/templates/component/component-suite.template.js +108 -0
  573. package/xtend-builder/templates/component/contract.template.ts +10 -0
  574. package/xtend-builder/templates/component/demo-plan.template.md +73 -0
  575. package/xtend-builder/templates/component/docs.template.md +301 -0
  576. package/xtend-builder/templates/component/fixture-data.template.ts +28 -0
  577. package/xtend-builder/templates/component/fixture.template.html +37 -0
  578. package/xtend-builder/templates/component/manifest-plan.template.json +22 -0
  579. package/xtend-builder/templates/component/performance.template.ts +13 -0
  580. package/xtend-builder/templates/component/rmt.template.ts +12 -0
  581. package/xtend-builder/templates/component/source.template.d.ts +2 -0
  582. package/xtend-builder/templates/component/source.template.js +137 -0
  583. package/xtend-builder/templates/component/source.template.ts +110 -0
  584. package/xtend-builder/templates/component/types.template.d.ts +423 -0
  585. package/xtend-builder/templates/loader.d.ts +4 -0
  586. package/xtend-builder/templates/loader.js +51 -0
  587. package/xtend-builder/templates/registry.d.ts +6 -0
  588. package/xtend-builder/templates/registry.js +119 -0
  589. package/xtend-builder/typing/README.md +130 -0
  590. package/xtend-builder/typing/component-contract-v2.d.ts +15 -0
  591. package/xtend-builder/typing/component-contract-v2.js +248 -0
  592. package/xtend-builder/typing/component-network-contract.d.ts +22 -0
  593. package/xtend-builder/typing/component-network-contract.js +478 -0
  594. package/xtend-builder/typing/component-shell-contract.d.ts +21 -0
  595. package/xtend-builder/typing/component-shell-contract.js +312 -0
  596. package/xtend-builder/typing/component-styling-contract.d.ts +22 -0
  597. package/xtend-builder/typing/component-styling-contract.js +301 -0
  598. package/xtend-builder/typing/component-types.d.ts +10 -0
  599. package/xtend-builder/typing/component-types.js +551 -0
  600. package/xtend-builder/typing/enterprise-component-flex-hardening-contract.d.ts +20 -0
  601. package/xtend-builder/typing/enterprise-component-flex-hardening-contract.js +332 -0
  602. package/xtend-builder/typing/feedback-status-ux-contract.d.ts +25 -0
  603. package/xtend-builder/typing/feedback-status-ux-contract.js +347 -0
  604. package/xtend-builder/typing/form-controls-ux-contract.d.ts +25 -0
  605. package/xtend-builder/typing/form-controls-ux-contract.js +357 -0
  606. package/xtend-builder/typing/layout-display-media-ux-contract.d.ts +25 -0
  607. package/xtend-builder/typing/layout-display-media-ux-contract.js +420 -0
  608. package/xtend-builder/typing/navigation-routing-ux-contract.d.ts +17 -0
  609. package/xtend-builder/typing/navigation-routing-ux-contract.js +297 -0
  610. package/xtend-builder/typing/overlay-interaction-ux-contract.d.ts +25 -0
  611. package/xtend-builder/typing/overlay-interaction-ux-contract.js +383 -0
  612. package/xtend-builder/typing/rmt-dsl-authoring-polish.d.ts +27 -0
  613. package/xtend-builder/typing/rmt-dsl-authoring-polish.js +419 -0
  614. package/xtend-builder/typing/rmt-shell-authoring-contract.d.ts +26 -0
  615. package/xtend-builder/typing/rmt-shell-authoring-contract.js +315 -0
  616. package/xtend-builder/utils/README.md +8 -0
  617. package/xtend-builder/utils/naming.d.ts +7 -0
  618. package/xtend-builder/utils/naming.js +36 -0
  619. package/xtend-builder/utils/validation.d.ts +5 -0
  620. package/xtend-builder/utils/validation.js +95 -0
  621. package/xtend-builder/wiring/README.md +46 -0
  622. package/xtend-builder/wiring/features.d.ts +5 -0
  623. package/xtend-builder/wiring/features.js +165 -0
  624. package/xtend-builder/wiring/hydration.d.ts +4 -0
  625. package/xtend-builder/wiring/hydration.js +44 -0
  626. package/xtend-builder/wiring/manifest.d.ts +5 -0
  627. package/xtend-builder/wiring/manifest.js +48 -0
  628. package/xtend-builder/workflows/README.md +47 -0
  629. package/xtend-builder/workflows/developer-workflow.d.ts +6 -0
  630. package/xtend-builder/workflows/developer-workflow.js +125 -0
  631. package/xtend-builder/writing/manifest-patcher.d.ts +49 -0
  632. package/xtend-builder/writing/manifest-patcher.js +391 -0
  633. package/xtend-builder/writing/write-plan.d.ts +148 -0
  634. package/xtend-builder/writing/write-plan.js +646 -0
  635. package/xtend-dev.d.ts +23 -0
  636. package/xtend-dev.js +4 -0
  637. package/xtend-loader.d.ts +201 -0
  638. package/xtend-loader.js +1704 -0
  639. package/xtend.css +402 -0
  640. package/xtendrmt/package.json +64 -0
  641. package/xtendrmt/rmt-core.d.ts +4452 -0
  642. package/xtendrmt/rmt-core.esm.js +25793 -0
  643. package/xtendrmt/rmt-first-demo-app.js +265 -0
  644. package/xtendrmt/rmt-first-demo-app.rmt +737 -0
  645. package/xtendrmt/rmt-lifecycle-demo.app.js +493 -0
  646. package/xtendrmt/rmt-lifecycle-demo.core.json +810 -0
  647. package/xtendrmt/rmt-lifecycle-demo.rmt +35 -0
  648. package/xtendrmt/rmt-lifecycle-demo.rmt-build.app.js +153 -0
  649. package/xtendrmt/rmt-lifecycle-demo.rmt-build.core.json +810 -0
  650. package/xtendrmt/rmt-lifecycle-demo.rmt-build.scaffold.json +202 -0
  651. package/xtendrmt/rmt-lifecycle-demo.scaffold.json +187 -0
  652. package/xtendrmt/rmt-manifest.json +548 -0
  653. package/xtendrmt/rmt-runtime.browser.js +26183 -0
  654. package/xtendrmt/rmt-runtime.esm.js +26214 -0
  655. package/xtendrmt/rmt-vnext-enterprise-mfe-demo.core.json +849 -0
  656. package/xtendrmt/rmt-vnext-enterprise-mfe-demo.rmt +50 -0
  657. package/xtendrmt/rmt-vnext-reference-demo.core.json +1069 -0
  658. package/xtendrmt/rmt-vnext-reference-demo.rmt +50 -0
  659. package/xtendrmt/rmt.schema.json +3145 -0
  660. package/xtendrmt/surface-workbench.js +316 -0
  661. package/xtendrmt/surface-workbench.rmt +762 -0
  662. package/xtendrmt/xtendrmt-bestcase-demo.core.json +1187 -0
  663. package/xtendrmt/xtendrmt-bestcase-demo.js +1728 -0
  664. package/xtendrmt/xtendrmt-bestcase-demo.rmt +57 -0
@@ -0,0 +1,3145 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://xtendrmt.dev/schemas/rmt.schema.json",
4
+ "title": "XTendRMT RMT Document",
5
+ "description": "Machine-readable schema for XTendRMT Template (RMT) documents.",
6
+ "x-xtendrmt": {
7
+ "preferredFileExtension": ".rmt",
8
+ "supportedFileExtensions": [
9
+ ".rmt",
10
+ ".rmt.json",
11
+ ".json"
12
+ ],
13
+ "jsonFallbackExtensions": [
14
+ ".rmt.json",
15
+ ".json"
16
+ ],
17
+ "recommendedFileMatch": [
18
+ "*.rmt"
19
+ ],
20
+ "contentType": "application/vnd.xtendrmt.rmt+json",
21
+ "jsonFallbackContentType": "application/json",
22
+ "jsonFallbackPolicy": ".rmt.json and .json remain supported for edge-case hosts that cannot serve custom MIME types, but new XTendRMT documents should use .rmt.",
23
+ "templateAuthoringModels": [
24
+ {
25
+ "id": "xtend.rmt.template-authoring.v1",
26
+ "adapter": "xtend.template",
27
+ "componentAdapter": "xtend.component",
28
+ "allowedTemplateModes": [
29
+ "html_fragment",
30
+ "dom_descriptor"
31
+ ],
32
+ "slotBindingMode": "named-slot-to-template-ref",
33
+ "eventBindingMode": "dom-event-to-rmt-command",
34
+ "dataBindingMode": "explicit-props-attributes-and-slots-only",
35
+ "kernelBoundary": "XTend component references remain adapter data and must not become RMT kernel imports.",
36
+ "upstreamDslNeeds": [
37
+ "native top-level components domain",
38
+ "component_ref node shorthand",
39
+ "named slot children syntax",
40
+ "event command shorthand",
41
+ "authoring diagnostics"
42
+ ]
43
+ }
44
+ ],
45
+ "rootLifecycleModels": [
46
+ {
47
+ "id": "xtend.rmt.root-handshake.v1",
48
+ "planner": "rmt-scheduler",
49
+ "executor": "xtend-host-adapter",
50
+ "phaseSequence": [
51
+ "create",
52
+ "mount",
53
+ "hydrate",
54
+ "activate",
55
+ "update",
56
+ "unmount",
57
+ "diagnostics"
58
+ ],
59
+ "schedulerEndpointHints": [
60
+ "component.visible.mount",
61
+ "component.idle.hydrate",
62
+ "route.visible.render",
63
+ "diagnostics.snapshot"
64
+ ],
65
+ "statePolicy": "digital-twin-ssot-xstate",
66
+ "kernelBoundary": "RMT scheduler plans root phases through endpoint hints; host adapters execute framework-specific lifecycle work."
67
+ }
68
+ ],
69
+ "hostCapabilityModels": [
70
+ {
71
+ "id": "xtend.rmt.host-capabilities.v1",
72
+ "adapterId": "xtend",
73
+ "adapterKind": "host_adapter",
74
+ "requiredCapabilities": [
75
+ "manifest",
76
+ "customElements",
77
+ "stateBridge",
78
+ "hydration",
79
+ "schedulerEndpoints"
80
+ ],
81
+ "optionalCapabilities": [
82
+ "theme",
83
+ "api",
84
+ "router",
85
+ "diagnostics"
86
+ ],
87
+ "capabilityRefs": [
88
+ "xtend.manifest",
89
+ "xtend.custom-elements",
90
+ "xtend.state-bridge.xstate",
91
+ "xtend.hydration",
92
+ "xtend.scheduler-endpoints",
93
+ "xtend.theme",
94
+ "xtend.api",
95
+ "xtend.xrouter",
96
+ "xtend.diagnostics"
97
+ ],
98
+ "negotiation": "RMT documents may require or prefer capability IDs, but the XTend Host Adapter resolves and executes them.",
99
+ "kernelBoundary": "RMT kernel negotiates host capability data only and must not import XTend runtime modules."
100
+ }
101
+ ],
102
+ "scaffoldCompatibilityBindings": [
103
+ {
104
+ "id": "xtend.scaffold.rmt-compatibility-binding.v1",
105
+ "surfaces": [
106
+ "typing",
107
+ "manifest-plan",
108
+ "preview-plan",
109
+ "extension-points",
110
+ "component-files"
111
+ ],
112
+ "requiredContracts": [
113
+ "xtend.rmt.component-contract.v1",
114
+ "xtend.rmt.template-authoring.v1",
115
+ "xtend.rmt.root-handshake.v1",
116
+ "xtend.rmt.host-capabilities.v1"
117
+ ],
118
+ "minimumGate": "node scripts/run_xtend_tests.js rmt-compatibility --json",
119
+ "boundary": "Scaffold compatibility bindings are dry-run metadata and must not implement the XTendRMT bridge."
120
+ }
121
+ ],
122
+ "templatePilotFlowModels": [
123
+ {
124
+ "id": "xtend.rmt.template-pilot-flow.v1",
125
+ "status": "reference-only",
126
+ "templateAdapter": "xtend.template",
127
+ "componentAdapter": "xtend.component",
128
+ "routeAdapter": "xtend.xrouter",
129
+ "requiredContracts": [
130
+ "xtend.rmt.component-contract.v1",
131
+ "xtend.rmt.template-authoring.v1",
132
+ "xtend.rmt.root-handshake.v1",
133
+ "xtend.rmt.host-capabilities.v1",
134
+ "xtend.scaffold.rmt-compatibility-binding.v1"
135
+ ],
136
+ "minimumGate": "node scripts/run_xtend_tests.js rmt-compatibility --json",
137
+ "bridgeRuntime": "reserved-for-Epic-05",
138
+ "kernelBoundary": "Template pilot flows are reference records; host adapters inspect and materialize XTend component attachments outside the RMT kernel."
139
+ }
140
+ ],
141
+ "hostAdapterLifecycleContracts": [
142
+ {
143
+ "id": "xtend.rmt.host-adapter-lifecycle.v1",
144
+ "status": "epic-05-wp-02-contract",
145
+ "sourceOfTruth": "development/WP-E05-02-Host-Adapter-Contract-und-Adapter-Lifecycle-definieren.md",
146
+ "adapterKinds": [
147
+ "host_adapter",
148
+ "component_adapter",
149
+ "router_adapter",
150
+ "state_adapter",
151
+ "scheduler_adapter"
152
+ ],
153
+ "lifecyclePhases": [
154
+ "register",
155
+ "negotiate",
156
+ "prepare",
157
+ "mount",
158
+ "hydrate",
159
+ "route",
160
+ "state",
161
+ "schedule",
162
+ "diagnose",
163
+ "dispose"
164
+ ],
165
+ "runtimeSurfaces": [
166
+ "esm",
167
+ "browser_classic",
168
+ "worker",
169
+ "server"
170
+ ],
171
+ "operations": [
172
+ {
173
+ "operation": "registerAdapter",
174
+ "phase": "register",
175
+ "requiredFor": [
176
+ "host_adapter",
177
+ "component_adapter",
178
+ "router_adapter",
179
+ "state_adapter",
180
+ "scheduler_adapter"
181
+ ]
182
+ },
183
+ {
184
+ "operation": "negotiateCapabilities",
185
+ "phase": "negotiate",
186
+ "requiredFor": [
187
+ "host_adapter",
188
+ "component_adapter",
189
+ "router_adapter",
190
+ "state_adapter",
191
+ "scheduler_adapter"
192
+ ]
193
+ },
194
+ {
195
+ "operation": "registerComponent",
196
+ "phase": "prepare",
197
+ "requiredFor": [
198
+ "component_adapter"
199
+ ]
200
+ },
201
+ {
202
+ "operation": "mountComponent",
203
+ "phase": "mount",
204
+ "requiredFor": [
205
+ "component_adapter"
206
+ ]
207
+ },
208
+ {
209
+ "operation": "hydrateComponent",
210
+ "phase": "hydrate",
211
+ "requiredFor": [
212
+ "component_adapter"
213
+ ]
214
+ },
215
+ {
216
+ "operation": "registerRoutes",
217
+ "phase": "route",
218
+ "requiredFor": [
219
+ "router_adapter"
220
+ ]
221
+ },
222
+ {
223
+ "operation": "navigate",
224
+ "phase": "route",
225
+ "requiredFor": [
226
+ "router_adapter"
227
+ ]
228
+ },
229
+ {
230
+ "operation": "createStateBridge",
231
+ "phase": "state",
232
+ "requiredFor": [
233
+ "host_adapter",
234
+ "state_adapter"
235
+ ]
236
+ },
237
+ {
238
+ "operation": "scheduleEndpoint",
239
+ "phase": "schedule",
240
+ "requiredFor": [
241
+ "host_adapter",
242
+ "scheduler_adapter"
243
+ ]
244
+ },
245
+ {
246
+ "operation": "emitDiagnostic",
247
+ "phase": "diagnose",
248
+ "requiredFor": [
249
+ "host_adapter",
250
+ "component_adapter",
251
+ "router_adapter",
252
+ "state_adapter",
253
+ "scheduler_adapter"
254
+ ]
255
+ },
256
+ {
257
+ "operation": "disposeAdapter",
258
+ "phase": "dispose",
259
+ "requiredFor": [
260
+ "host_adapter",
261
+ "component_adapter",
262
+ "router_adapter",
263
+ "state_adapter",
264
+ "scheduler_adapter"
265
+ ]
266
+ }
267
+ ],
268
+ "resultStatuses": [
269
+ "ok",
270
+ "degraded",
271
+ "skipped",
272
+ "failed"
273
+ ],
274
+ "minimumGates": [
275
+ "node scripts/run_xtend_tests.js rmt-compatibility --json",
276
+ "node scripts/run_xtend_tests.js references --json"
277
+ ],
278
+ "kernelBoundary": "RMT kernel may register adapter records and schedule abstract lifecycle operations, but host adapters execute framework-specific work. XTend, XRouter and xstate stay outside kernel imports.",
279
+ "nextWorkpackage": "development/WP-E05-03-Adapter-Registry-und-Capability-Negotiation-modellieren.md"
280
+ }
281
+ ],
282
+ "adapterRegistryContracts": [
283
+ {
284
+ "id": "xtend.rmt.adapter-registry.v1",
285
+ "status": "epic-05-wp-03-contract",
286
+ "sourceOfTruth": "development/WP-E05-03-Adapter-Registry-und-Capability-Negotiation-modellieren.md",
287
+ "registryRecordFields": [
288
+ "id",
289
+ "kind",
290
+ "version",
291
+ "package",
292
+ "moduleRef",
293
+ "runtimeSurface",
294
+ "providedCapabilities",
295
+ "requiredCapabilities",
296
+ "preferredCapabilities",
297
+ "lifecycleContract",
298
+ "kernelVisible",
299
+ "status",
300
+ "diagnostics",
301
+ "metadata"
302
+ ],
303
+ "capabilityRequestFields": [
304
+ "scope",
305
+ "adapterKind",
306
+ "adapterId",
307
+ "requiredCapabilities",
308
+ "preferredCapabilities",
309
+ "runtimeSurface",
310
+ "fallbackPolicy",
311
+ "metadata"
312
+ ],
313
+ "negotiationPhases": [
314
+ "collect",
315
+ "normalize",
316
+ "match",
317
+ "validate",
318
+ "select",
319
+ "degrade",
320
+ "diagnose",
321
+ "finalize"
322
+ ],
323
+ "registryStatuses": [
324
+ "registered",
325
+ "available",
326
+ "degraded",
327
+ "missing",
328
+ "failed"
329
+ ],
330
+ "negotiationStatuses": [
331
+ "accepted",
332
+ "degraded",
333
+ "failed",
334
+ "skipped"
335
+ ],
336
+ "fallbackPolicies": [
337
+ "fail",
338
+ "degrade",
339
+ "skip",
340
+ "diagnose_only"
341
+ ],
342
+ "diagnosticCodes": [
343
+ "rmt.adapter.missing",
344
+ "rmt.capability.required_missing",
345
+ "rmt.capability.preferred_missing",
346
+ "rmt.adapter.surface_mismatch",
347
+ "rmt.adapter.version_mismatch",
348
+ "rmt.adapter.conflict",
349
+ "rmt.adapter.degraded",
350
+ "rmt.adapter.negotiation.skipped"
351
+ ],
352
+ "stableAdapterIds": [
353
+ "xtend",
354
+ "xtend.component",
355
+ "xtend.template",
356
+ "xtend.xrouter",
357
+ "host-adapter-contract"
358
+ ],
359
+ "minimumGates": [
360
+ "node scripts/run_xtend_tests.js rmt-compatibility --json",
361
+ "node scripts/run_xtend_tests.js references --json"
362
+ ],
363
+ "kernelBoundary": "RMT kernel may compare adapter records and capability requests, but framework-specific fallback, manifest lookup, router setup and state writes stay in adapters.",
364
+ "templateOnlyCompatibility": "Documents without adapter requirements remain valid and negotiate to an empty or implicit-compatible request set.",
365
+ "nextWorkpackages": [
366
+ "development/WP-E05-04-Native-Adapters-Domain-im-RMT-Schema-entwerfen.md",
367
+ "development/WP-E05-05-Native-Components-Domain-im-RMT-Schema-entwerfen.md",
368
+ "development/WP-E05-06-Native-Routes-Domain-im-RMT-Schema-entwerfen.md"
369
+ ]
370
+ }
371
+ ],
372
+ "nativeDomainContracts": [
373
+ {
374
+ "id": "xtend.rmt.adapters-domain.v1",
375
+ "status": "epic-05-wp-04-contract",
376
+ "sourceOfTruth": "development/WP-E05-04-Native-Adapters-Domain-im-RMT-Schema-entwerfen.md",
377
+ "domain": "adapters",
378
+ "schemaRef": "#/$defs/adapter",
379
+ "topLevelProperty": "adapters",
380
+ "optional": true,
381
+ "default": [],
382
+ "allowedAdapterKinds": [
383
+ "host_adapter",
384
+ "component_adapter",
385
+ "router_adapter",
386
+ "state_adapter",
387
+ "scheduler_adapter"
388
+ ],
389
+ "stableAdapterIds": [
390
+ "xtend",
391
+ "xtend.component",
392
+ "xtend.template",
393
+ "xtend.xrouter",
394
+ "host-adapter-contract"
395
+ ],
396
+ "requiredFields": [
397
+ "id",
398
+ "kind"
399
+ ],
400
+ "capabilityFields": [
401
+ "providedCapabilities",
402
+ "requiredCapabilities",
403
+ "preferredCapabilities"
404
+ ],
405
+ "backwardCompatibility": "Template-only documents without adapters remain valid because adapters is optional and not part of required.",
406
+ "kernelBoundary": "Adapter records are declarative. RMT kernel may parse and negotiate them, but runtime imports, manifest lookup, router setup and state writes stay in adapters.",
407
+ "minimumGates": [
408
+ "node scripts/run_xtend_tests.js rmt-compatibility --json",
409
+ "node scripts/run_xtend_tests.js references --json"
410
+ ],
411
+ "nextWorkpackages": [
412
+ "development/WP-E05-05-Native-Components-Domain-im-RMT-Schema-entwerfen.md",
413
+ "development/WP-E05-06-Native-Routes-Domain-im-RMT-Schema-entwerfen.md",
414
+ "development/WP-E05-07-Schedules-Domain-als-referenzierbare-Policy-haerten.md"
415
+ ]
416
+ },
417
+ {
418
+ "id": "xtend.rmt.components-domain.v1",
419
+ "status": "epic-05-wp-05-contract",
420
+ "sourceOfTruth": "development/WP-E05-05-Native-Components-Domain-im-RMT-Schema-entwerfen.md",
421
+ "domain": "components",
422
+ "schemaRef": "#/$defs/component",
423
+ "topLevelProperty": "components",
424
+ "optional": true,
425
+ "default": [],
426
+ "requiredFields": [
427
+ "id",
428
+ "kind",
429
+ "adapter"
430
+ ],
431
+ "adapterRefField": "adapter",
432
+ "componentKinds": [
433
+ "custom_element",
434
+ "web_component",
435
+ "host_component",
436
+ "template_component",
437
+ "fragment"
438
+ ],
439
+ "capabilityFields": [
440
+ "requiredCapabilities",
441
+ "preferredCapabilities"
442
+ ],
443
+ "backwardCompatibility": "Template-only documents without components remain valid because components is optional and not part of required.",
444
+ "kernelBoundary": "Component records are declarative. RMT kernel may parse, normalize and schedule them, but XTend manifest lookup, Custom Element registration, DOM materialization and hydration stay in adapters.",
445
+ "minimumGates": [
446
+ "node scripts/run_xtend_tests.js rmt-compatibility --json",
447
+ "node scripts/run_xtend_tests.js references --json"
448
+ ],
449
+ "nextWorkpackages": [
450
+ "development/WP-E05-06-Native-Routes-Domain-im-RMT-Schema-entwerfen.md",
451
+ "development/WP-E05-09-Route-Registry-und-Component-Registry-im-RMT-Runtime-Modell-vorbereiten.md",
452
+ "development/WP-E05-11-XTend-Component-Adapter-produktfaehig-implementieren.md"
453
+ ]
454
+ },
455
+ {
456
+ "id": "xtend.rmt.routes-domain.v1",
457
+ "status": "epic-05-wp-06-contract",
458
+ "sourceOfTruth": "development/WP-E05-06-Native-Routes-Domain-im-RMT-Schema-entwerfen.md",
459
+ "domain": "routes",
460
+ "schemaRef": "#/$defs/route",
461
+ "topLevelProperty": "routes",
462
+ "optional": true,
463
+ "default": [],
464
+ "requiredFields": [
465
+ "id",
466
+ "path",
467
+ "router"
468
+ ],
469
+ "routerRefField": "router",
470
+ "componentRefField": "component",
471
+ "templateRefField": "template",
472
+ "scheduleRefField": "schedule",
473
+ "routeFields": [
474
+ "id",
475
+ "path",
476
+ "title",
477
+ "documentTitle",
478
+ "titleTemplate",
479
+ "metaDescription",
480
+ "metaKeywords",
481
+ "component",
482
+ "template",
483
+ "router",
484
+ "schedule",
485
+ "params",
486
+ "query",
487
+ "metadata",
488
+ "lifecycle"
489
+ ],
490
+ "routerAdapters": [
491
+ "xtend.xrouter",
492
+ "custom.router"
493
+ ],
494
+ "capabilityFields": [
495
+ "requiredCapabilities",
496
+ "preferredCapabilities"
497
+ ],
498
+ "backwardCompatibility": "Template-only documents without routes remain valid because routes is optional and not part of required.",
499
+ "kernelBoundary": "Route records are declarative. RMT kernel may parse, normalize and schedule them, but XRouter imports, x-route DOM generation, navigation side effects and URL state writes stay in router adapters.",
500
+ "minimumGates": [
501
+ "node scripts/run_xtend_tests.js rmt-compatibility --json",
502
+ "node scripts/run_xtend_tests.js references --json"
503
+ ],
504
+ "nextWorkpackages": [
505
+ "development/WP-E05-07-Schedules-Domain-als-referenzierbare-Policy-haerten.md",
506
+ "development/WP-E05-09-Route-Registry-und-Component-Registry-im-RMT-Runtime-Modell-vorbereiten.md",
507
+ "development/WP-E05-10-XRouter-Adapter-produktfaehig-implementieren.md"
508
+ ]
509
+ },
510
+ {
511
+ "id": "xtend.rmt.schedules-domain.v1",
512
+ "status": "epic-05-wp-07-contract",
513
+ "sourceOfTruth": "development/WP-E05-07-Schedules-Domain-als-referenzierbare-Policy-haerten.md",
514
+ "domain": "schedules",
515
+ "schemaRef": "#/$defs/schedule",
516
+ "topLevelProperty": "schedules",
517
+ "optional": true,
518
+ "default": [],
519
+ "requiredFields": [
520
+ "id",
521
+ "endpointName",
522
+ "scope"
523
+ ],
524
+ "scheduleRefFields": [
525
+ "routes[*].schedule",
526
+ "components[*].schedule",
527
+ "templates[*].hydration.metadata.endpointHint"
528
+ ],
529
+ "scheduleFields": [
530
+ "id",
531
+ "endpointName",
532
+ "scope",
533
+ "lane",
534
+ "priority",
535
+ "deadlineMs",
536
+ "preferIdle",
537
+ "coalesceKey",
538
+ "budgetClass"
539
+ ],
540
+ "lanes": [
541
+ "visible",
542
+ "idle",
543
+ "background",
544
+ "diagnostics",
545
+ "user-blocking",
546
+ "transition"
547
+ ],
548
+ "budgetClasses": [
549
+ "interactive",
550
+ "background",
551
+ "diagnostics",
552
+ "critical",
553
+ "best_effort"
554
+ ],
555
+ "backwardCompatibility": "Template-only documents without schedules remain valid because schedules is optional and schedule refs still accept string or inline policy hints.",
556
+ "kernelBoundary": "Schedule records are declarative. RMT kernel may parse, normalize and compare policies, but endpoint execution, DOM work, router side effects and host scheduling stay in adapters or scheduler endpoints.",
557
+ "minimumGates": [
558
+ "node scripts/run_xtend_tests.js rmt-compatibility --json",
559
+ "node scripts/run_xtend_tests.js references --json"
560
+ ],
561
+ "nextWorkpackages": [
562
+ "development/WP-E05-08-DSL-Normalisierung-und-Backward-Compatibility-sichern.md",
563
+ "development/WP-E05-09-Route-Registry-und-Component-Registry-vorbereiten.md",
564
+ "development/WP-E05-12-State-Scheduler-und-Diagnostics-Bridge-anbinden.md"
565
+ ]
566
+ },
567
+ {
568
+ "id": "xtend.rmt.surfaces-domain.v1",
569
+ "status": "wp-sm-08-contract",
570
+ "sourceOfTruth": "development/WP-SM-08-Native-RMT-surfaces-Domain-und-xtend-surface-Adapter-entwerfen.md",
571
+ "domain": "surfaces",
572
+ "schemaRef": "#/$defs/surface",
573
+ "topLevelProperty": "surfaces",
574
+ "optional": true,
575
+ "default": [],
576
+ "adapterId": "xtend.surface",
577
+ "adapterKind": "surface_adapter",
578
+ "requiredFields": [
579
+ "id",
580
+ "type",
581
+ "manager",
582
+ "component"
583
+ ],
584
+ "adapterRefField": "adapter",
585
+ "managerRefField": "manager",
586
+ "componentRefField": "component",
587
+ "routeRefField": "route",
588
+ "scheduleRefField": "schedule",
589
+ "surfaceFields": [
590
+ "id",
591
+ "schema",
592
+ "type",
593
+ "adapter",
594
+ "manager",
595
+ "component",
596
+ "route",
597
+ "schedule",
598
+ "stateKey",
599
+ "defaultOpen",
600
+ "active",
601
+ "bounds",
602
+ "placement",
603
+ "mode",
604
+ "layer",
605
+ "capabilities",
606
+ "a11y",
607
+ "persistence",
608
+ "metadata"
609
+ ],
610
+ "surfaceTypes": [
611
+ "window",
612
+ "side-panel",
613
+ "modal",
614
+ "dialog",
615
+ "drawer"
616
+ ],
617
+ "referenceChecks": [
618
+ "surfaces[*].adapter -> adapters[*].id",
619
+ "surfaces[*].manager -> components[*].id",
620
+ "surfaces[*].component -> components[*].id",
621
+ "surfaces[*].route -> routes[*].id",
622
+ "surfaces[*].schedule -> schedules[*].id|endpointName"
623
+ ],
624
+ "backwardCompatibility": "Component records with metadata.surface remain valid. During handoff, native surfaces records may coexist with component metadata and must preserve component, route, schedule and state keys.",
625
+ "kernelBoundary": "Surface records are declarative. RMT may parse, normalize and index them, but WindowManager execution, DOM materialization, xstate writes and Fabric diagnostics stay in the xtend.surface adapter and XTend components.",
626
+ "minimumGates": [
627
+ "node scripts/run_xtend_tests.js surface-native-rmt --json",
628
+ "node scripts/run_xtend_tests.js surface-manager-quality --json",
629
+ "node scripts/run_xtend_tests.js references --json"
630
+ ],
631
+ "nextWorkpackages": [
632
+ "development/WP-SM-09-Docs-Component-Lab-und-Migration-Guide-finalisieren.md"
633
+ ]
634
+ }
635
+ ],
636
+ "surfaceAdapterContracts": [
637
+ {
638
+ "id": "xtend.surface.adapter.v1",
639
+ "status": "wp-sm-08-adapter-handoff",
640
+ "sourceOfTruth": "development/XTend-SurfaceManager-Native-RMT-Surfaces-Domain-Contract.md",
641
+ "adapterId": "xtend.surface",
642
+ "adapterKind": "surface_adapter",
643
+ "inputContracts": [
644
+ "xtend.rmt.surfaces-domain.v1",
645
+ "xtend.surface.controller.v1",
646
+ "xtend.surface.snapshot.v1"
647
+ ],
648
+ "consumes": [
649
+ "surfaces[*]",
650
+ "components[*]",
651
+ "routes[*]",
652
+ "schedules[*]",
653
+ "components[*].metadata.surface"
654
+ ],
655
+ "operations": [
656
+ "registerSurface",
657
+ "openSurface",
658
+ "closeSurface",
659
+ "focusSurface",
660
+ "moveSurface",
661
+ "resizeSurface",
662
+ "dockSurface",
663
+ "undockSurface",
664
+ "snapshotSurfaces",
665
+ "emitDiagnostic"
666
+ ],
667
+ "runtimeImplemented": false,
668
+ "kernelVisible": false,
669
+ "componentCompatibility": "components[*].metadata.surface remains the migration source until productive adapter rollout.",
670
+ "kernelBoundary": "The xtend.surface adapter consumes normalized surface records and may call the SurfaceController, but the RMT kernel never imports XTend components, DOM APIs, xstate or Fabric.",
671
+ "minimumGates": [
672
+ "node scripts/run_xtend_tests.js surface-native-rmt --json",
673
+ "node scripts/run_xtend_tests.js surface-manager-quality --json"
674
+ ],
675
+ "nextWorkpackages": [
676
+ "development/WP-SM-09-Docs-Component-Lab-und-Migration-Guide-finalisieren.md"
677
+ ]
678
+ }
679
+ ],
680
+ "dslNormalizationContracts": [
681
+ {
682
+ "id": "xtend.rmt.dsl-normalization.v1",
683
+ "status": "epic-05-wp-08-contract",
684
+ "sourceOfTruth": "development/WP-E05-08-DSL-Normalisierung-und-Backward-Compatibility-sichern.md",
685
+ "inputModes": [
686
+ "template-only",
687
+ "native-app-dsl",
688
+ "legacy-manifest-metadata"
689
+ ],
690
+ "normalizedDomains": [
691
+ "adapters",
692
+ "components",
693
+ "routes",
694
+ "schedules",
695
+ "surfaces",
696
+ "templates"
697
+ ],
698
+ "legacyPromotionPaths": [
699
+ "manifest.metadata.adapters",
700
+ "manifest.metadata.components",
701
+ "manifest.metadata.routes",
702
+ "manifest.metadata.schedules",
703
+ "manifest.metadata.surfaces"
704
+ ],
705
+ "referenceChecks": [
706
+ "components[*].adapter -> adapters[*].id",
707
+ "components[*].schedule -> schedules[*].id|endpointName",
708
+ "routes[*].router -> adapters[*].id",
709
+ "routes[*].component -> components[*].id",
710
+ "routes[*].template -> templates[*].id|qualifiedId",
711
+ "routes[*].schedule -> schedules[*].id|endpointName",
712
+ "surfaces[*].adapter -> adapters[*].id",
713
+ "surfaces[*].manager -> components[*].id",
714
+ "surfaces[*].component -> components[*].id",
715
+ "surfaces[*].route -> routes[*].id",
716
+ "surfaces[*].schedule -> schedules[*].id|endpointName",
717
+ "templates[*].hydration.metadata.endpointHint -> schedules[*].id|endpointName"
718
+ ],
719
+ "diagnosticCodes": [
720
+ "rmt.dsl.legacy_metadata_promoted",
721
+ "rmt.dsl.reference.missing_adapter",
722
+ "rmt.dsl.reference.missing_component",
723
+ "rmt.dsl.reference.missing_template",
724
+ "rmt.dsl.reference.missing_schedule",
725
+ "rmt.dsl.reference.missing_route"
726
+ ],
727
+ "artifactSurfaces": [
728
+ "createRmtFormat().normalizeDocument",
729
+ "createRmtFormat().parseDocument",
730
+ "createRmtFormat().serializeDocument",
731
+ "RmtRmtDocument.normalization",
732
+ "RmtRmtDocument.diagnostics"
733
+ ],
734
+ "backwardCompatibility": "Template-only documents normalize with empty native domains, no required adapters/components/routes/schedules and templateOnlyCompatible=true.",
735
+ "kernelBoundary": "DSL normalization may build reference graphs and diagnostics, but adapter execution, router registration, component mounting, DOM work and xstate writes stay outside the RMT kernel.",
736
+ "minimumGates": [
737
+ "node scripts/run_xtend_tests.js rmt-compatibility --json",
738
+ "node scripts/run_xtend_tests.js references --json"
739
+ ],
740
+ "nextWorkpackages": [
741
+ "development/WP-E05-09-Route-Registry-und-Component-Registry-vorbereiten.md",
742
+ "development/WP-E05-13-Build-Pipeline-und-Artefakt-Paritaet-fuer-XTendRMT-absichern.md",
743
+ "development/WP-E05-15-Contract-Schema-und-Runtime-Tests-erweitern.md"
744
+ ]
745
+ }
746
+ ],
747
+ "runtimeRegistryContracts": [
748
+ {
749
+ "id": "xtend.rmt.runtime-registry.v1",
750
+ "status": "epic-05-wp-09-contract",
751
+ "sourceOfTruth": "development/WP-E05-09-Route-Registry-und-Component-Registry-vorbereiten.md",
752
+ "inputContract": "xtend.rmt.dsl-normalization.v1",
753
+ "registryKinds": [
754
+ "route",
755
+ "component"
756
+ ],
757
+ "indexes": [
758
+ "routeRegistry.byId",
759
+ "routeRegistry.byPath",
760
+ "routeRegistry.byRouter",
761
+ "routeRegistry.byComponent",
762
+ "componentRegistry.byId",
763
+ "componentRegistry.byTag",
764
+ "componentRegistry.byAdapter"
765
+ ],
766
+ "lifecycleEvents": [
767
+ "create",
768
+ "mount",
769
+ "hydrate",
770
+ "update",
771
+ "dispose"
772
+ ],
773
+ "diagnosticCodes": [
774
+ "rmt.runtime.registry.missing_route",
775
+ "rmt.runtime.registry.missing_component",
776
+ "rmt.runtime.registry.duplicate_route",
777
+ "rmt.runtime.registry.duplicate_component"
778
+ ],
779
+ "artifactSurfaces": [
780
+ "createRmtFormat().createRuntimeRegistries",
781
+ "createRmtFormat().listRuntimeRegistryDiagnosticCodes",
782
+ "RmtRuntimeRegistrySnapshot",
783
+ "RmtRouteRegistryEntry",
784
+ "RmtComponentRegistryEntry"
785
+ ],
786
+ "adapterConsumption": [
787
+ "router adapters consume routeRegistry.byRouter and routeRegistry.byPath",
788
+ "component adapters consume componentRegistry.byAdapter and componentRegistry.byTag",
789
+ "scheduler bridges consume scheduleRef on route and component entries"
790
+ ],
791
+ "kernelBoundary": "Runtime registries may index normalized records, expose lifecycle intents and emit missing route/component diagnostics, but route navigation, component mounting, DOM work, XTend, XRouter and xstate execution stay in adapters.",
792
+ "minimumGates": [
793
+ "node scripts/run_xtend_tests.js rmt-compatibility --json",
794
+ "node scripts/run_xtend_tests.js references --json"
795
+ ],
796
+ "nextWorkpackages": [
797
+ "development/WP-E05-10-XRouter-Adapter-produktfaehig-implementieren.md",
798
+ "development/WP-E05-11-XTend-Component-Adapter-produktfaehig-implementieren.md",
799
+ "development/WP-E05-15-Contract-Schema-und-Runtime-Tests-erweitern.md"
800
+ ]
801
+ }
802
+ ],
803
+ "xrouterAdapterContracts": [
804
+ {
805
+ "id": "xtend.rmt.xrouter-adapter.v1",
806
+ "status": "epic-05-wp-10-contract",
807
+ "sourceOfTruth": "development/WP-E05-10-XRouter-Adapter-produktfaehig-implementieren.md",
808
+ "adapterId": "xtend.xrouter",
809
+ "inputContract": "xtend.rmt.runtime-registry.v1",
810
+ "consumes": [
811
+ "routeRegistry.byRouter[\"xtend.xrouter\"]",
812
+ "routeRegistry.byPath",
813
+ "routeRegistry.byId",
814
+ "RmtRouteRegistryEntry"
815
+ ],
816
+ "operations": [
817
+ "registerRoutes",
818
+ "navigate",
819
+ "emitDiagnostic"
820
+ ],
821
+ "routeMappingFields": [
822
+ "id",
823
+ "path",
824
+ "router",
825
+ "component",
826
+ "title",
827
+ "documentTitle",
828
+ "template",
829
+ "redirect",
830
+ "scheduleRef",
831
+ "params",
832
+ "query",
833
+ "metadata",
834
+ "lifecycle"
835
+ ],
836
+ "navigationSync": [
837
+ "RMT navigate command -> XRouter navigate/_navigateTo",
838
+ "XRouter route-changed -> route model detail",
839
+ "XRouter routechange -> legacy route model detail",
840
+ "xrouter-after-navigate -> window navigation event"
841
+ ],
842
+ "modelFields": [
843
+ "routeId",
844
+ "path",
845
+ "component",
846
+ "params",
847
+ "query",
848
+ "template",
849
+ "scheduleRef",
850
+ "title",
851
+ "documentTitle",
852
+ "metadata"
853
+ ],
854
+ "diagnosticCodes": [
855
+ "rmt.xrouter.route.missing_path",
856
+ "rmt.xrouter.route.missing_component",
857
+ "rmt.xrouter.target.missing",
858
+ "rmt.xrouter.navigation.skipped"
859
+ ],
860
+ "artifactSurfaces": [
861
+ "createRmtXRouterAdapter",
862
+ "createRenderManXRouterAdapter",
863
+ "XRouter.registerRoutes",
864
+ "XRouter.navigate",
865
+ "RmtXRouterMappedRoute",
866
+ "RmtXRouterAdapter"
867
+ ],
868
+ "kernelBoundary": "The XRouter adapter consumes runtime registry snapshots and may register XRouter routes or navigate through an XRouter target, but the RMT kernel only sees adapter operations and never imports XRouter, DOM APIs or xstate.",
869
+ "minimumGates": [
870
+ "node scripts/run_xtend_tests.js rmt-compatibility --json",
871
+ "node scripts/run_xtend_tests.js references --json"
872
+ ],
873
+ "nextWorkpackages": [
874
+ "development/WP-E05-11-XTend-Component-Adapter-produktfaehig-implementieren.md",
875
+ "development/WP-E05-12-State-Scheduler-und-Diagnostics-Bridge-anbinden.md",
876
+ "development/WP-E05-14-Bestcase-Demo-auf-native-Routes-und-Components-migrieren.md"
877
+ ]
878
+ }
879
+ ],
880
+ "xtendComponentAdapterContracts": [
881
+ {
882
+ "id": "xtend.rmt.xtend-component-adapter.v1",
883
+ "status": "epic-05-wp-11-contract",
884
+ "sourceOfTruth": "development/WP-E05-11-XTend-Component-Adapter-produktfaehig-implementieren.md",
885
+ "adapterId": "xtend.component",
886
+ "inputContract": "xtend.rmt.runtime-registry.v1",
887
+ "consumes": [
888
+ "componentRegistry.byAdapter[\"xtend.component\"]",
889
+ "componentRegistry.byTag",
890
+ "componentRegistry.byId",
891
+ "RmtComponentRegistryEntry"
892
+ ],
893
+ "operations": [
894
+ "registerComponent",
895
+ "mountComponent",
896
+ "hydrateComponent",
897
+ "resolveFabricContext",
898
+ "recordComponentTelemetry",
899
+ "emitDiagnostic"
900
+ ],
901
+ "componentMappingFields": [
902
+ "id",
903
+ "kind",
904
+ "adapter",
905
+ "tag",
906
+ "props",
907
+ "attributes",
908
+ "slots",
909
+ "events",
910
+ "hydration",
911
+ "scheduleRef",
912
+ "metadata"
913
+ ],
914
+ "mountHydrationModel": [
915
+ "manifest lookup stays adapter-owned",
916
+ "Custom Element registration is checked by the adapter",
917
+ "props and attributes are applied by the adapter",
918
+ "slots and event bridges are attached by the adapter",
919
+ "hydration sets data-xtend-hydrated and may call element.hydrate"
920
+ ],
921
+ "modelFields": [
922
+ "componentId",
923
+ "tag",
924
+ "props",
925
+ "attributes",
926
+ "slots",
927
+ "events",
928
+ "hydration",
929
+ "scheduleRef",
930
+ "metadata",
931
+ "fabricContext",
932
+ "telemetry"
933
+ ],
934
+ "fabricLaneIngestion": {
935
+ "schema": "xtend.component.fabric-lane-ingestion.v2",
936
+ "workpackage": "WP-E10-05",
937
+ "precedence": [
938
+ "rmt.schedule-record",
939
+ "rmt.component-metadata",
940
+ "fabric.runtime-override",
941
+ "component.static-contract",
942
+ "scaffold.blueprint-default"
943
+ ],
944
+ "resultFields": [
945
+ "fabricLane",
946
+ "rmtLane",
947
+ "fiberKind",
948
+ "scheduleRef",
949
+ "endpointNameHint",
950
+ "source",
951
+ "diagnostics"
952
+ ]
953
+ },
954
+ "componentLifecycleTelemetry": {
955
+ "schema": "xtend.component.lifecycle-telemetry.v1",
956
+ "workpackage": "WP-E10-06",
957
+ "operations": [
958
+ "mount",
959
+ "hydrate",
960
+ "render",
961
+ "update",
962
+ "event",
963
+ "unmount",
964
+ "error"
965
+ ],
966
+ "resultPath": "result.metadata.telemetry",
967
+ "snapshotPath": "snapshot.componentTelemetry",
968
+ "snapshotInputs": [
969
+ "componentTelemetry",
970
+ "componentLifecycle",
971
+ "componentLifecycleTelemetry"
972
+ ],
973
+ "correlationFields": [
974
+ "componentId",
975
+ "rmtComponentId",
976
+ "routeRef",
977
+ "scheduleRef",
978
+ "fabricLane",
979
+ "rmtLane",
980
+ "fiberKind"
981
+ ]
982
+ },
983
+ "diagnosticCodes": [
984
+ "rmt.xtend.component.missing_tag",
985
+ "rmt.xtend.component.target.missing",
986
+ "rmt.xtend.component.manifest.missing",
987
+ "rmt.xtend.component.custom_element.unregistered",
988
+ "rmt.xtend.component.mount.skipped",
989
+ "rmt.xtend.component.hydration.skipped",
990
+ "rmt.xtend.component.fabric_lane.conflict",
991
+ "rmt.xtend.component.fabric_lane.defaulted",
992
+ "rmt.xtend.component.event.failed"
993
+ ],
994
+ "artifactSurfaces": [
995
+ "createRmtXtendComponentAdapter",
996
+ "createRenderManXtendComponentAdapter",
997
+ "RmtXtendMappedComponent",
998
+ "RmtXtendComponentMapping",
999
+ "RmtXtendComponentLifecycleTelemetry",
1000
+ "RmtXtendComponentAdapter"
1001
+ ],
1002
+ "kernelBoundary": "The XTend component adapter consumes component registry snapshots and may create, mount or hydrate Custom Elements through a host target, but the RMT kernel only sees adapter operations and never imports XTend components, the XTend manifest, Custom Elements, DOM APIs or xstate.",
1003
+ "minimumGates": [
1004
+ "node scripts/run_xtend_tests.js rmt-compatibility --json",
1005
+ "node scripts/run_xtend_tests.js rmt-component-lifecycle-telemetry --json",
1006
+ "node scripts/run_xtend_tests.js references --json"
1007
+ ],
1008
+ "nextWorkpackages": [
1009
+ "development/WP-E05-12-State-Scheduler-und-Diagnostics-Bridge-anbinden.md",
1010
+ "development/WP-E05-14-Bestcase-Demo-auf-native-Routes-und-Components-migrieren.md",
1011
+ "development/WP-E05-15-Contract-Schema-und-Runtime-Tests-erweitern.md"
1012
+ ]
1013
+ }
1014
+ ],
1015
+ "stateSchedulerDiagnosticsBridgeContracts": [
1016
+ {
1017
+ "id": "xtend.rmt.state-scheduler-diagnostics-bridge.v1",
1018
+ "status": "epic-05-wp-12-contract",
1019
+ "sourceOfTruth": "development/WP-E05-12-State-Scheduler-und-Diagnostics-Bridge-anbinden.md",
1020
+ "adapterId": "rmt.state-scheduler-diagnostics",
1021
+ "inputContracts": [
1022
+ "xtend.rmt.runtime-registry.v1",
1023
+ "xtend.rmt.xrouter-adapter.v1",
1024
+ "xtend.rmt.xtend-component-adapter.v1",
1025
+ "xtend.rmt.schedules-domain.v1",
1026
+ "xtend.fabric.telemetry-snapshot.v1",
1027
+ "xtend.fabric.backpressure-signal.v1"
1028
+ ],
1029
+ "consumes": [
1030
+ "RmtHostAdapterOperationResult",
1031
+ "RmtRouteRegistryEntry.scheduleRef",
1032
+ "RmtComponentRegistryEntry.scheduleRef",
1033
+ "schedules[*]",
1034
+ "adapter diagnostics",
1035
+ "optional xstate target",
1036
+ "optional diagnostics hub",
1037
+ "optional performance runtime scheduleEndpoint",
1038
+ "optional Fabric telemetry snapshot",
1039
+ "optional Fabric backpressure signal"
1040
+ ],
1041
+ "operations": [
1042
+ "createStateBridge",
1043
+ "scheduleEndpoint",
1044
+ "emitDiagnostic",
1045
+ "recordAdapterResult",
1046
+ "recordTelemetrySnapshot",
1047
+ "recordBackpressureSignal"
1048
+ ],
1049
+ "stateMirrors": [
1050
+ "rmt.bridge.ready",
1051
+ "rmt.adapter.lastResult",
1052
+ "rmt.adapter.{adapterId}.{operation}.status",
1053
+ "rmt.route.{routeId}.lastResult",
1054
+ "rmt.component.{componentId}.lastResult",
1055
+ "rmt.scheduler.lastEndpoint",
1056
+ "rmt.diagnostics.last",
1057
+ "rmt.telemetry.lastSnapshot",
1058
+ "rmt.backpressure.lastSignal",
1059
+ "rmt.backpressure.profile"
1060
+ ],
1061
+ "schedulerEndpoints": [
1062
+ "xtendrmt.route.render",
1063
+ "xtendrmt.component.mount",
1064
+ "xtendrmt.component.hydrate",
1065
+ "xtendrmt.diagnostics.snapshot"
1066
+ ],
1067
+ "diagnosticsEventMatrix": [
1068
+ "adapter result diagnostics -> bridge emitDiagnostic",
1069
+ "degraded adapter result -> rmt.bridge.adapter.result.degraded",
1070
+ "scheduled endpoint -> rmt.bridge.scheduler.endpoint.scheduled",
1071
+ "queued endpoint -> rmt.bridge.scheduler.endpoint.queued",
1072
+ "state bridge publish -> rmt.bridge.state.mirrored",
1073
+ "Fabric telemetry snapshot -> rmt.bridge.telemetry.snapshot.recorded",
1074
+ "Fabric high/critical backpressure -> rmt.bridge.backpressure.high/rmt.bridge.backpressure.critical"
1075
+ ],
1076
+ "performanceBudgetFields": [
1077
+ "lane",
1078
+ "priority",
1079
+ "deadlineMs",
1080
+ "preferIdle",
1081
+ "coalesceKey",
1082
+ "budgetClass",
1083
+ "maxRetries",
1084
+ "timeoutMs"
1085
+ ],
1086
+ "diagnosticCodes": [
1087
+ "rmt.bridge.state.mirrored",
1088
+ "rmt.bridge.state.unavailable",
1089
+ "rmt.bridge.scheduler.endpoint.scheduled",
1090
+ "rmt.bridge.scheduler.endpoint.queued",
1091
+ "rmt.bridge.diagnostics.emitted",
1092
+ "rmt.bridge.adapter.result.degraded",
1093
+ "rmt.bridge.telemetry.snapshot.recorded",
1094
+ "rmt.bridge.backpressure.signal.recorded",
1095
+ "rmt.bridge.backpressure.high",
1096
+ "rmt.bridge.backpressure.critical"
1097
+ ],
1098
+ "artifactSurfaces": [
1099
+ "createRmtStateSchedulerDiagnosticsBridge",
1100
+ "createRenderManStateSchedulerDiagnosticsBridge",
1101
+ "RmtStateSchedulerDiagnosticsBridge",
1102
+ "RmtStateBridgeHandle",
1103
+ "RmtBridgeSchedulePolicy"
1104
+ ],
1105
+ "kernelBoundary": "The State/Scheduler/Diagnostics bridge consumes adapter results and schedule refs, may mirror state to an optional xstate target and may call host scheduler endpoints, but the RMT kernel never imports xstate, XTend, XRouter, diagnostics hubs or performance runtimes.",
1106
+ "minimumGates": [
1107
+ "node scripts/run_xtend_tests.js rmt-compatibility --json",
1108
+ "node scripts/run_xtend_tests.js references --json"
1109
+ ],
1110
+ "nextWorkpackages": [
1111
+ "development/WP-E05-13-Build-Pipeline-und-Artefakt-Paritaet-fuer-XTendRMT-absichern.md",
1112
+ "development/WP-E05-14-Bestcase-Demo-auf-native-Routes-und-Components-migrieren.md",
1113
+ "development/WP-E05-15-Contract-Schema-und-Runtime-Tests-erweitern.md"
1114
+ ]
1115
+ }
1116
+ ],
1117
+ "artifactParityContracts": [
1118
+ {
1119
+ "id": "xtend.rmt.artifact-parity.v1",
1120
+ "status": "epic-05-wp-13-contract",
1121
+ "sourceOfTruth": "development/WP-E05-13-Build-Pipeline-und-Artefakt-Paritaet-fuer-XTendRMT-absichern.md",
1122
+ "gateCommand": "node scripts/verify_xtendrmt_artifact_parity.js --json",
1123
+ "artifactPaths": [
1124
+ "xtendrmt/rmt-core.esm.js",
1125
+ "xtendrmt/rmt-runtime.esm.js",
1126
+ "xtendrmt/rmt-runtime.browser.js",
1127
+ "xtendrmt/rmt-core.d.ts",
1128
+ "xtendrmt/rmt.schema.json",
1129
+ "xtendrmt/rmt-manifest.json"
1130
+ ],
1131
+ "entryPointTargets": [
1132
+ "rmt-core.esm",
1133
+ "rmt-runtime.esm",
1134
+ "rmt-runtime.browser"
1135
+ ],
1136
+ "requiredFactories": [
1137
+ "createRmtFormat",
1138
+ "createRmtXRouterAdapter",
1139
+ "createRmtXtendComponentAdapter",
1140
+ "createRmtSurfaceAdapter",
1141
+ "createRmtStateSchedulerDiagnosticsBridge",
1142
+ "createRmtKernelPolicyParity"
1143
+ ],
1144
+ "requiredContractIds": [
1145
+ "xtend.rmt.runtime-registry.v1",
1146
+ "xtend.rmt.xrouter-adapter.v1",
1147
+ "xtend.rmt.xtend-component-adapter.v1",
1148
+ "xtend.rmt.state-scheduler-diagnostics-bridge.v1",
1149
+ "xtend.rmt.artifact-parity.v1",
1150
+ "xtend.rmt.kernel-artifact-parity.v1",
1151
+ "xtend.rmt.kernel-trust-hardening.v1",
1152
+ "xtend.rmt.kernel-trust-authority.v1",
1153
+ "xtend.rmt.kernel-trust-verdict.v1",
1154
+ "xtend.rmt.kernel-trusted-dom-runtime.v1",
1155
+ "xtend.rmt.kernel-binding-security.v1",
1156
+ "xtend.rmt.kernel-panic-monitor.v1",
1157
+ "xtend.rmt.kernel-panic-state.v1",
1158
+ "xtend.rmt.kernel-panic-event.v1",
1159
+ "xtend.rmt.kernel-recovery.v1",
1160
+ "xtend.rmt.kernel-recovery-outcome.v1",
1161
+ "xtend.rmt.kernel-recovery-safe-snapshot.v1",
1162
+ "xtend.rmt.kernel-escalation.v1",
1163
+ "xtend.rmt.kernel-escalation-envelope.v1",
1164
+ "xtend.rmt.kernel-scheduler-failure.v1",
1165
+ "xtend.rmt.kernel-scheduler-failure-record.v1",
1166
+ "xtend.rmt.kernel-policy-parity.v1",
1167
+ "xtend.rmt.kernel-security-regression.v1"
1168
+ ],
1169
+ "artifactSurfaces": [
1170
+ "scripts/verify_xtendrmt_artifact_parity.js",
1171
+ "RmtArtifactParityContract",
1172
+ "artifactParityContracts",
1173
+ "createRmtProductManifest",
1174
+ "rmt-manifest.json entryPoints.appModulesFactories",
1175
+ "ESM namedExports",
1176
+ "RmtKernelRuntimeTrustVerdict",
1177
+ "RmtKernelRuntimePanicSnapshot",
1178
+ "RmtKernelRuntimeRecoveryOutcome",
1179
+ "createRmtKernelPolicyParity",
1180
+ "getPanicSnapshot",
1181
+ "recoverFromPanic"
1182
+ ],
1183
+ "driftChecks": [
1184
+ "schema-contract-present",
1185
+ "manifest-factories-match-runtime",
1186
+ "esm-named-exports-match-manifest",
1187
+ "types-cover-public-factories",
1188
+ "runtime-bundles-parse",
1189
+ "kernel-hardening-contracts-present",
1190
+ "kernel-hardening-types-cover-runtime",
1191
+ "runtime-trust-hooks-present",
1192
+ "panic-recovery-hooks-present",
1193
+ "browser-runtime-hardening-surfaces"
1194
+ ],
1195
+ "buildPolicy": "Upstream RMT source remains the source-of-truth; xtendrmt/ artifacts are synchronized regression references in this repository. RKSH-WP-10 keeps the Trust/Panic/Recovery hardening layer in schema, manifest, types and runtime artifacts.",
1196
+ "kernelBoundary": "Artifact parity checks drift only and must not introduce XTend, XRouter, xstate or DOM runtime imports into the RMT kernel.",
1197
+ "kernelHardeningSourceOfTruth": "development/WP-RKSH-10-Buildprozess-und-Artefakt-Paritaet-fuer-neue-Layer-absichern.md",
1198
+ "kernelHardeningContracts": [
1199
+ "xtend.rmt.kernel-artifact-parity.v1",
1200
+ "xtend.rmt.kernel-trust-hardening.v1",
1201
+ "xtend.rmt.kernel-trust-authority.v1",
1202
+ "xtend.rmt.kernel-trust-verdict.v1",
1203
+ "xtend.rmt.kernel-trusted-dom-runtime.v1",
1204
+ "xtend.rmt.kernel-binding-security.v1",
1205
+ "xtend.rmt.kernel-panic-monitor.v1",
1206
+ "xtend.rmt.kernel-panic-state.v1",
1207
+ "xtend.rmt.kernel-panic-event.v1",
1208
+ "xtend.rmt.kernel-recovery.v1",
1209
+ "xtend.rmt.kernel-recovery-outcome.v1",
1210
+ "xtend.rmt.kernel-recovery-safe-snapshot.v1",
1211
+ "xtend.rmt.kernel-escalation.v1",
1212
+ "xtend.rmt.kernel-escalation-envelope.v1",
1213
+ "xtend.rmt.kernel-scheduler-failure.v1",
1214
+ "xtend.rmt.kernel-scheduler-failure-record.v1",
1215
+ "xtend.rmt.kernel-policy-parity.v1",
1216
+ "xtend.rmt.kernel-security-regression.v1"
1217
+ ],
1218
+ "kernelHardeningRuntimeHooks": [
1219
+ "commitTrustedHtml",
1220
+ "commitTrustedAttribute",
1221
+ "commitTrustedProperty",
1222
+ "listTrustVerdicts",
1223
+ "getPanicSnapshot",
1224
+ "listPanicEvents",
1225
+ "recoverFromPanic",
1226
+ "listRecoveryOutcomes",
1227
+ "recordEscalation",
1228
+ "panicBlockScope",
1229
+ "createRmtKernelPolicyParity"
1230
+ ],
1231
+ "kernelHardeningTypeSurfaces": [
1232
+ "RmtKernelRuntimeTrustVerdict",
1233
+ "RmtKernelRuntimePanicEvent",
1234
+ "RmtKernelRuntimePanicSnapshot",
1235
+ "RmtKernelRuntimeRecoverySafeSnapshot",
1236
+ "RmtKernelRuntimeRecoveryOutcome",
1237
+ "RmtKernelRuntimeEscalationEnvelope",
1238
+ "RmtKernelRuntimeSchedulerFailureRecord",
1239
+ "RmtKernelRuntimePolicyParityReport",
1240
+ "createRmtKernelPolicyParity"
1241
+ ],
1242
+ "kernelHardeningToolingModules": [
1243
+ "tools/rmt-language/kernel-trust-authority.js",
1244
+ "tools/rmt-language/kernel-panic-monitor.js",
1245
+ "tools/rmt-language/kernel-recovery.js",
1246
+ "tools/rmt-language/kernel-escalation.js",
1247
+ "tools/rmt-language/kernel-scheduler-failure.js",
1248
+ "tools/rmt-language/kernel-policy-parity.js",
1249
+ "tools/rmt-language/kernel-security-regression.js"
1250
+ ],
1251
+ "kernelHardeningGates": [
1252
+ "node scripts/run_xtend_tests.js rmt-kernel-trust-authority --json",
1253
+ "node scripts/run_xtend_tests.js rmt-kernel-trusted-dom-runtime --json",
1254
+ "node scripts/run_xtend_tests.js rmt-kernel-binding-security --json",
1255
+ "node scripts/run_xtend_tests.js rmt-kernel-panic-monitor --json",
1256
+ "node scripts/run_xtend_tests.js rmt-kernel-recovery --json",
1257
+ "node scripts/run_xtend_tests.js rmt-kernel-escalation --json",
1258
+ "node scripts/run_xtend_tests.js rmt-kernel-scheduler-failure --json",
1259
+ "node scripts/run_xtend_tests.js rmt-kernel-policy-parity --json",
1260
+ "node scripts/run_xtend_tests.js rmt-kernel-security-regression --json",
1261
+ "node scripts/verify_xtendrmt_artifact_parity.js --json"
1262
+ ],
1263
+ "minimumGates": [
1264
+ "node scripts/verify_xtendrmt_artifact_parity.js --json",
1265
+ "node scripts/run_xtend_tests.js rmt-compatibility --json",
1266
+ "node scripts/run_xtend_tests.js references --json"
1267
+ ],
1268
+ "nextWorkpackages": [
1269
+ "development/WP-E05-14-Bestcase-Demo-auf-native-Routes-und-Components-migrieren.md",
1270
+ "development/WP-E05-15-Contract-Schema-und-Runtime-Tests-erweitern.md"
1271
+ ]
1272
+ }
1273
+ ],
1274
+ "upstreamHandoff": {
1275
+ "id": "xtend.rmt.upstream-handoff.v1",
1276
+ "status": "epic-04-handoff",
1277
+ "sourceOfTruth": "upstream-rmt-source",
1278
+ "buildArtifactsAreOutput": true,
1279
+ "handoffSpec": "development/XTendRMT-Upstream-Handoff-Spezifikation.md",
1280
+ "workpackage": "development/WP-E04-11-Upstream-Handoff-Spezifikation-fuer-XTendRMT-DSL-und-Bridge-vorbereiten.md",
1281
+ "epic": "development/EPIC-05-XTendRMT-Bridge-und-Natives-Routing.md",
1282
+ "requiredDomains": [
1283
+ "adapters",
1284
+ "components",
1285
+ "routes",
1286
+ "schedules",
1287
+ "templates"
1288
+ ],
1289
+ "requiredAdapters": [
1290
+ "host-adapter-contract",
1291
+ "xtend.component",
1292
+ "xtend.template",
1293
+ "xtend.xrouter"
1294
+ ],
1295
+ "requiredGates": [
1296
+ "node scripts/run_xtend_tests.js rmt-compatibility --json",
1297
+ "node scripts/run_xtend_tests.js references --json"
1298
+ ],
1299
+ "bridgeRuntime": "reserved-for-Epic-05",
1300
+ "kernelBoundary": "RMT kernel remains host-neutral and must not import XTend, XRouter or xstate runtime modules."
1301
+ }
1302
+ },
1303
+ "x-renderman": {
1304
+ "deprecatedAliasFor": "x-xtendrmt",
1305
+ "preferredFileExtension": ".rmt",
1306
+ "supportedFileExtensions": [
1307
+ ".rmt",
1308
+ ".rmt.json",
1309
+ ".json"
1310
+ ],
1311
+ "jsonFallbackExtensions": [
1312
+ ".rmt.json",
1313
+ ".json"
1314
+ ],
1315
+ "recommendedFileMatch": [
1316
+ "*.rmt"
1317
+ ],
1318
+ "contentType": "application/vnd.renderman.template+json",
1319
+ "jsonFallbackContentType": "application/json",
1320
+ "jsonFallbackPolicy": ".rmt.json and .json remain supported only as compatibility fallbacks; .rmt is the authoring path."
1321
+ },
1322
+ "type": "object",
1323
+ "additionalProperties": false,
1324
+ "required": [
1325
+ "kind",
1326
+ "version",
1327
+ "manifest",
1328
+ "templates"
1329
+ ],
1330
+ "properties": {
1331
+ "$schema": {
1332
+ "type": "string"
1333
+ },
1334
+ "kind": {
1335
+ "const": "rmt_document"
1336
+ },
1337
+ "version": {
1338
+ "type": "string",
1339
+ "default": "1.0"
1340
+ },
1341
+ "documentId": {
1342
+ "type": "string"
1343
+ },
1344
+ "namespace": {
1345
+ "type": "string"
1346
+ },
1347
+ "loaderHint": {
1348
+ "type": "string"
1349
+ },
1350
+ "sourceUrl": {
1351
+ "type": "string"
1352
+ },
1353
+ "manifest": {
1354
+ "$ref": "#/$defs/documentManifest"
1355
+ },
1356
+ "adapters": {
1357
+ "$ref": "#/$defs/adapters"
1358
+ },
1359
+ "components": {
1360
+ "$ref": "#/$defs/components"
1361
+ },
1362
+ "routes": {
1363
+ "$ref": "#/$defs/routes"
1364
+ },
1365
+ "schedules": {
1366
+ "$ref": "#/$defs/schedules"
1367
+ },
1368
+ "surfaces": {
1369
+ "$ref": "#/$defs/surfaces"
1370
+ },
1371
+ "templates": {
1372
+ "type": "array",
1373
+ "items": {
1374
+ "$ref": "#/$defs/template"
1375
+ },
1376
+ "default": []
1377
+ }
1378
+ },
1379
+ "$defs": {
1380
+ "metadata": {
1381
+ "type": "object",
1382
+ "additionalProperties": true,
1383
+ "default": {}
1384
+ },
1385
+ "templateMode": {
1386
+ "enum": [
1387
+ "html_fragment",
1388
+ "text",
1389
+ "dom_descriptor"
1390
+ ]
1391
+ },
1392
+ "bindingKind": {
1393
+ "enum": [
1394
+ "text",
1395
+ "attribute",
1396
+ "property",
1397
+ "class_toggle",
1398
+ "command",
1399
+ "root_event",
1400
+ "template_outlet",
1401
+ "template_repeat"
1402
+ ]
1403
+ },
1404
+ "slotKind": {
1405
+ "enum": [
1406
+ "text",
1407
+ "html_fragment",
1408
+ "template"
1409
+ ]
1410
+ },
1411
+ "hydrationMode": {
1412
+ "enum": [
1413
+ "runtime_render",
1414
+ "hydrate_prerendered",
1415
+ "worker_prerender_hydrate",
1416
+ "server_prerender_hydrate",
1417
+ "prerender_only"
1418
+ ]
1419
+ },
1420
+ "ownershipMode": {
1421
+ "enum": [
1422
+ "observe_only",
1423
+ "hydrate_existing",
1424
+ "replace_children",
1425
+ "managed_subtree"
1426
+ ]
1427
+ },
1428
+ "serializableValue": true,
1429
+ "adapterKind": {
1430
+ "enum": [
1431
+ "host_adapter",
1432
+ "component_adapter",
1433
+ "router_adapter",
1434
+ "state_adapter",
1435
+ "scheduler_adapter",
1436
+ "surface_adapter"
1437
+ ]
1438
+ },
1439
+ "runtimeSurface": {
1440
+ "enum": [
1441
+ "esm",
1442
+ "browser_classic",
1443
+ "worker",
1444
+ "server"
1445
+ ]
1446
+ },
1447
+ "adapterStatus": {
1448
+ "enum": [
1449
+ "registered",
1450
+ "available",
1451
+ "degraded",
1452
+ "missing",
1453
+ "failed"
1454
+ ]
1455
+ },
1456
+ "capabilityList": {
1457
+ "type": "array",
1458
+ "items": {
1459
+ "type": "string",
1460
+ "minLength": 1
1461
+ },
1462
+ "default": []
1463
+ },
1464
+ "diagnostic": {
1465
+ "type": "object",
1466
+ "additionalProperties": true,
1467
+ "properties": {
1468
+ "level": {
1469
+ "type": "string"
1470
+ },
1471
+ "code": {
1472
+ "type": "string"
1473
+ },
1474
+ "message": {
1475
+ "type": "string"
1476
+ },
1477
+ "adapterId": {
1478
+ "type": "string"
1479
+ },
1480
+ "operation": {
1481
+ "type": "string"
1482
+ },
1483
+ "phase": {
1484
+ "type": "string"
1485
+ },
1486
+ "metadata": {
1487
+ "$ref": "#/$defs/metadata"
1488
+ }
1489
+ }
1490
+ },
1491
+ "adapter": {
1492
+ "type": "object",
1493
+ "additionalProperties": false,
1494
+ "required": [
1495
+ "id",
1496
+ "kind"
1497
+ ],
1498
+ "properties": {
1499
+ "id": {
1500
+ "type": "string",
1501
+ "minLength": 1
1502
+ },
1503
+ "kind": {
1504
+ "$ref": "#/$defs/adapterKind"
1505
+ },
1506
+ "version": {
1507
+ "type": "string"
1508
+ },
1509
+ "package": {
1510
+ "type": "string"
1511
+ },
1512
+ "moduleRef": {
1513
+ "type": "string"
1514
+ },
1515
+ "runtimeSurface": {
1516
+ "type": "array",
1517
+ "items": {
1518
+ "$ref": "#/$defs/runtimeSurface"
1519
+ },
1520
+ "default": []
1521
+ },
1522
+ "providedCapabilities": {
1523
+ "$ref": "#/$defs/capabilityList"
1524
+ },
1525
+ "requiredCapabilities": {
1526
+ "$ref": "#/$defs/capabilityList"
1527
+ },
1528
+ "preferredCapabilities": {
1529
+ "$ref": "#/$defs/capabilityList"
1530
+ },
1531
+ "lifecycleContract": {
1532
+ "type": "string"
1533
+ },
1534
+ "kernelVisible": {
1535
+ "type": "boolean",
1536
+ "default": false
1537
+ },
1538
+ "status": {
1539
+ "$ref": "#/$defs/adapterStatus"
1540
+ },
1541
+ "diagnostics": {
1542
+ "type": "array",
1543
+ "items": {
1544
+ "$ref": "#/$defs/diagnostic"
1545
+ },
1546
+ "default": []
1547
+ },
1548
+ "metadata": {
1549
+ "$ref": "#/$defs/metadata"
1550
+ }
1551
+ }
1552
+ },
1553
+ "adapters": {
1554
+ "type": "array",
1555
+ "items": {
1556
+ "$ref": "#/$defs/adapter"
1557
+ },
1558
+ "default": []
1559
+ },
1560
+ "componentKind": {
1561
+ "enum": [
1562
+ "custom_element",
1563
+ "web_component",
1564
+ "host_component",
1565
+ "template_component",
1566
+ "fragment"
1567
+ ]
1568
+ },
1569
+ "attributes": {
1570
+ "type": "object",
1571
+ "additionalProperties": {
1572
+ "$ref": "#/$defs/serializableValue"
1573
+ },
1574
+ "default": {}
1575
+ },
1576
+ "scheduleLane": {
1577
+ "enum": [
1578
+ "visible",
1579
+ "idle",
1580
+ "background",
1581
+ "diagnostics",
1582
+ "user-blocking",
1583
+ "transition"
1584
+ ]
1585
+ },
1586
+ "scheduleBudgetClass": {
1587
+ "enum": [
1588
+ "interactive",
1589
+ "background",
1590
+ "diagnostics",
1591
+ "critical",
1592
+ "best_effort"
1593
+ ]
1594
+ },
1595
+ "scheduleInline": {
1596
+ "type": "object",
1597
+ "additionalProperties": false,
1598
+ "properties": {
1599
+ "endpointName": {
1600
+ "type": "string",
1601
+ "minLength": 1
1602
+ },
1603
+ "scope": {
1604
+ "type": "string",
1605
+ "minLength": 1
1606
+ },
1607
+ "lane": {
1608
+ "$ref": "#/$defs/scheduleLane"
1609
+ },
1610
+ "priority": {
1611
+ "anyOf": [
1612
+ {
1613
+ "type": "number"
1614
+ },
1615
+ {
1616
+ "type": "string",
1617
+ "minLength": 1
1618
+ }
1619
+ ]
1620
+ },
1621
+ "deadlineMs": {
1622
+ "type": "number",
1623
+ "minimum": 0
1624
+ },
1625
+ "preferIdle": {
1626
+ "type": "boolean"
1627
+ },
1628
+ "coalesceKey": {
1629
+ "type": "string",
1630
+ "minLength": 1
1631
+ },
1632
+ "budgetClass": {
1633
+ "$ref": "#/$defs/scheduleBudgetClass"
1634
+ },
1635
+ "metadata": {
1636
+ "$ref": "#/$defs/metadata"
1637
+ }
1638
+ }
1639
+ },
1640
+ "scheduleRefOrInline": {
1641
+ "anyOf": [
1642
+ {
1643
+ "type": "string",
1644
+ "minLength": 1
1645
+ },
1646
+ {
1647
+ "$ref": "#/$defs/scheduleInline"
1648
+ }
1649
+ ]
1650
+ },
1651
+ "componentSchedule": {
1652
+ "$ref": "#/$defs/scheduleRefOrInline"
1653
+ },
1654
+ "component": {
1655
+ "type": "object",
1656
+ "additionalProperties": false,
1657
+ "required": [
1658
+ "id",
1659
+ "kind",
1660
+ "adapter"
1661
+ ],
1662
+ "properties": {
1663
+ "id": {
1664
+ "type": "string",
1665
+ "minLength": 1
1666
+ },
1667
+ "kind": {
1668
+ "$ref": "#/$defs/componentKind"
1669
+ },
1670
+ "adapter": {
1671
+ "type": "string",
1672
+ "minLength": 1
1673
+ },
1674
+ "tag": {
1675
+ "type": "string",
1676
+ "minLength": 1
1677
+ },
1678
+ "renderer": {
1679
+ "type": "string",
1680
+ "minLength": 1
1681
+ },
1682
+ "props": {
1683
+ "$ref": "#/$defs/props"
1684
+ },
1685
+ "attributes": {
1686
+ "$ref": "#/$defs/attributes"
1687
+ },
1688
+ "slots": {
1689
+ "$ref": "#/$defs/slots"
1690
+ },
1691
+ "events": {
1692
+ "$ref": "#/$defs/bindings"
1693
+ },
1694
+ "hydration": {
1695
+ "$ref": "#/$defs/hydration"
1696
+ },
1697
+ "schedule": {
1698
+ "$ref": "#/$defs/componentSchedule"
1699
+ },
1700
+ "requiredCapabilities": {
1701
+ "$ref": "#/$defs/capabilityList"
1702
+ },
1703
+ "preferredCapabilities": {
1704
+ "$ref": "#/$defs/capabilityList"
1705
+ },
1706
+ "diagnostics": {
1707
+ "type": "array",
1708
+ "items": {
1709
+ "$ref": "#/$defs/diagnostic"
1710
+ },
1711
+ "default": []
1712
+ },
1713
+ "metadata": {
1714
+ "$ref": "#/$defs/metadata"
1715
+ }
1716
+ }
1717
+ },
1718
+ "components": {
1719
+ "type": "array",
1720
+ "items": {
1721
+ "$ref": "#/$defs/component"
1722
+ },
1723
+ "default": []
1724
+ },
1725
+ "routeParam": {
1726
+ "anyOf": [
1727
+ {
1728
+ "type": "string"
1729
+ },
1730
+ {
1731
+ "type": "object",
1732
+ "additionalProperties": false,
1733
+ "properties": {
1734
+ "name": {
1735
+ "type": "string"
1736
+ },
1737
+ "source": {
1738
+ "type": "string"
1739
+ },
1740
+ "type": {
1741
+ "type": "string"
1742
+ },
1743
+ "required": {
1744
+ "type": "boolean"
1745
+ },
1746
+ "default": {
1747
+ "$ref": "#/$defs/serializableValue"
1748
+ },
1749
+ "pattern": {
1750
+ "type": "string"
1751
+ },
1752
+ "metadata": {
1753
+ "$ref": "#/$defs/metadata"
1754
+ }
1755
+ }
1756
+ }
1757
+ ]
1758
+ },
1759
+ "routeParams": {
1760
+ "type": "object",
1761
+ "additionalProperties": {
1762
+ "$ref": "#/$defs/routeParam"
1763
+ },
1764
+ "default": {}
1765
+ },
1766
+ "routeLifecycle": {
1767
+ "type": "object",
1768
+ "additionalProperties": {
1769
+ "$ref": "#/$defs/binding"
1770
+ },
1771
+ "properties": {
1772
+ "beforeEnter": {
1773
+ "$ref": "#/$defs/binding"
1774
+ },
1775
+ "enter": {
1776
+ "$ref": "#/$defs/binding"
1777
+ },
1778
+ "beforeLeave": {
1779
+ "$ref": "#/$defs/binding"
1780
+ },
1781
+ "leave": {
1782
+ "$ref": "#/$defs/binding"
1783
+ },
1784
+ "error": {
1785
+ "$ref": "#/$defs/binding"
1786
+ },
1787
+ "metadata": {
1788
+ "$ref": "#/$defs/metadata"
1789
+ }
1790
+ },
1791
+ "default": {}
1792
+ },
1793
+ "route": {
1794
+ "type": "object",
1795
+ "additionalProperties": false,
1796
+ "required": [
1797
+ "id",
1798
+ "path",
1799
+ "router"
1800
+ ],
1801
+ "anyOf": [
1802
+ {
1803
+ "required": [
1804
+ "component"
1805
+ ]
1806
+ },
1807
+ {
1808
+ "required": [
1809
+ "template"
1810
+ ]
1811
+ },
1812
+ {
1813
+ "required": [
1814
+ "redirect"
1815
+ ]
1816
+ }
1817
+ ],
1818
+ "properties": {
1819
+ "id": {
1820
+ "type": "string",
1821
+ "minLength": 1
1822
+ },
1823
+ "path": {
1824
+ "type": "string",
1825
+ "minLength": 1
1826
+ },
1827
+ "title": {
1828
+ "type": "string"
1829
+ },
1830
+ "documentTitle": {
1831
+ "type": "string"
1832
+ },
1833
+ "titleTemplate": {
1834
+ "type": "string"
1835
+ },
1836
+ "metaDescription": {
1837
+ "type": "string"
1838
+ },
1839
+ "metaKeywords": {
1840
+ "oneOf": [
1841
+ {
1842
+ "type": "string"
1843
+ },
1844
+ {
1845
+ "type": "array",
1846
+ "items": {
1847
+ "type": "string"
1848
+ },
1849
+ "default": []
1850
+ }
1851
+ ]
1852
+ },
1853
+ "component": {
1854
+ "type": "string",
1855
+ "minLength": 1
1856
+ },
1857
+ "template": {
1858
+ "$ref": "#/$defs/templateRef"
1859
+ },
1860
+ "redirect": {
1861
+ "type": "string",
1862
+ "minLength": 1
1863
+ },
1864
+ "router": {
1865
+ "type": "string",
1866
+ "minLength": 1
1867
+ },
1868
+ "schedule": {
1869
+ "$ref": "#/$defs/componentSchedule"
1870
+ },
1871
+ "params": {
1872
+ "$ref": "#/$defs/routeParams"
1873
+ },
1874
+ "query": {
1875
+ "$ref": "#/$defs/routeParams"
1876
+ },
1877
+ "lifecycle": {
1878
+ "$ref": "#/$defs/routeLifecycle"
1879
+ },
1880
+ "requiredCapabilities": {
1881
+ "$ref": "#/$defs/capabilityList"
1882
+ },
1883
+ "preferredCapabilities": {
1884
+ "$ref": "#/$defs/capabilityList"
1885
+ },
1886
+ "diagnostics": {
1887
+ "type": "array",
1888
+ "items": {
1889
+ "$ref": "#/$defs/diagnostic"
1890
+ },
1891
+ "default": []
1892
+ },
1893
+ "metadata": {
1894
+ "$ref": "#/$defs/metadata"
1895
+ }
1896
+ }
1897
+ },
1898
+ "routes": {
1899
+ "type": "array",
1900
+ "items": {
1901
+ "$ref": "#/$defs/route"
1902
+ },
1903
+ "default": []
1904
+ },
1905
+ "surfaceType": {
1906
+ "enum": [
1907
+ "window",
1908
+ "side-panel",
1909
+ "modal",
1910
+ "dialog",
1911
+ "drawer",
1912
+ "popover",
1913
+ "tooltip"
1914
+ ]
1915
+ },
1916
+ "surfaceBounds": {
1917
+ "type": "object",
1918
+ "additionalProperties": false,
1919
+ "properties": {
1920
+ "x": {
1921
+ "type": "number"
1922
+ },
1923
+ "y": {
1924
+ "type": "number"
1925
+ },
1926
+ "width": {
1927
+ "type": "number",
1928
+ "minimum": 0
1929
+ },
1930
+ "height": {
1931
+ "type": "number",
1932
+ "minimum": 0
1933
+ },
1934
+ "minWidth": {
1935
+ "type": "number",
1936
+ "minimum": 0
1937
+ },
1938
+ "minHeight": {
1939
+ "type": "number",
1940
+ "minimum": 0
1941
+ },
1942
+ "maxWidth": {
1943
+ "type": "number",
1944
+ "minimum": 0
1945
+ },
1946
+ "maxHeight": {
1947
+ "type": "number",
1948
+ "minimum": 0
1949
+ }
1950
+ },
1951
+ "default": {}
1952
+ },
1953
+ "surfaceA11y": {
1954
+ "type": "object",
1955
+ "additionalProperties": true,
1956
+ "properties": {
1957
+ "role": {
1958
+ "type": "string"
1959
+ },
1960
+ "label": {
1961
+ "type": "string"
1962
+ },
1963
+ "modal": {
1964
+ "type": "boolean"
1965
+ },
1966
+ "focusRestore": {
1967
+ "type": "boolean"
1968
+ },
1969
+ "trapFocus": {
1970
+ "type": "boolean"
1971
+ }
1972
+ },
1973
+ "default": {}
1974
+ },
1975
+ "surface": {
1976
+ "type": "object",
1977
+ "additionalProperties": false,
1978
+ "required": [
1979
+ "id",
1980
+ "type",
1981
+ "manager",
1982
+ "component"
1983
+ ],
1984
+ "properties": {
1985
+ "id": {
1986
+ "type": "string",
1987
+ "minLength": 1
1988
+ },
1989
+ "schema": {
1990
+ "type": "string"
1991
+ },
1992
+ "type": {
1993
+ "$ref": "#/$defs/surfaceType"
1994
+ },
1995
+ "adapter": {
1996
+ "type": "string",
1997
+ "minLength": 1
1998
+ },
1999
+ "manager": {
2000
+ "type": "string",
2001
+ "minLength": 1
2002
+ },
2003
+ "component": {
2004
+ "type": "string",
2005
+ "minLength": 1
2006
+ },
2007
+ "route": {
2008
+ "type": "string",
2009
+ "minLength": 1
2010
+ },
2011
+ "schedule": {
2012
+ "$ref": "#/$defs/componentSchedule"
2013
+ },
2014
+ "stateKey": {
2015
+ "type": "string",
2016
+ "minLength": 1
2017
+ },
2018
+ "defaultOpen": {
2019
+ "type": "boolean"
2020
+ },
2021
+ "active": {
2022
+ "type": "boolean"
2023
+ },
2024
+ "bounds": {
2025
+ "$ref": "#/$defs/surfaceBounds"
2026
+ },
2027
+ "placement": {
2028
+ "type": "string"
2029
+ },
2030
+ "mode": {
2031
+ "type": "string"
2032
+ },
2033
+ "layer": {
2034
+ "type": "string"
2035
+ },
2036
+ "capabilities": {
2037
+ "$ref": "#/$defs/capabilityList"
2038
+ },
2039
+ "a11y": {
2040
+ "$ref": "#/$defs/surfaceA11y"
2041
+ },
2042
+ "persistence": {
2043
+ "$ref": "#/$defs/metadata"
2044
+ },
2045
+ "diagnostics": {
2046
+ "type": "array",
2047
+ "items": {
2048
+ "$ref": "#/$defs/diagnostic"
2049
+ },
2050
+ "default": []
2051
+ },
2052
+ "metadata": {
2053
+ "$ref": "#/$defs/metadata"
2054
+ }
2055
+ }
2056
+ },
2057
+ "surfaces": {
2058
+ "type": "array",
2059
+ "items": {
2060
+ "$ref": "#/$defs/surface"
2061
+ },
2062
+ "default": []
2063
+ },
2064
+ "schedule": {
2065
+ "type": "object",
2066
+ "additionalProperties": false,
2067
+ "required": [
2068
+ "id",
2069
+ "endpointName",
2070
+ "scope"
2071
+ ],
2072
+ "properties": {
2073
+ "id": {
2074
+ "type": "string",
2075
+ "minLength": 1
2076
+ },
2077
+ "endpointName": {
2078
+ "type": "string",
2079
+ "minLength": 1
2080
+ },
2081
+ "scope": {
2082
+ "type": "string",
2083
+ "minLength": 1
2084
+ },
2085
+ "lane": {
2086
+ "$ref": "#/$defs/scheduleLane"
2087
+ },
2088
+ "priority": {
2089
+ "type": "number"
2090
+ },
2091
+ "deadlineMs": {
2092
+ "type": "number",
2093
+ "minimum": 0
2094
+ },
2095
+ "preferIdle": {
2096
+ "type": "boolean"
2097
+ },
2098
+ "coalesceKey": {
2099
+ "type": "string",
2100
+ "minLength": 1
2101
+ },
2102
+ "budgetClass": {
2103
+ "$ref": "#/$defs/scheduleBudgetClass"
2104
+ },
2105
+ "maxRetries": {
2106
+ "type": "integer",
2107
+ "minimum": 0
2108
+ },
2109
+ "timeoutMs": {
2110
+ "type": "number",
2111
+ "minimum": 0
2112
+ },
2113
+ "diagnostics": {
2114
+ "type": "array",
2115
+ "items": {
2116
+ "$ref": "#/$defs/diagnostic"
2117
+ },
2118
+ "default": []
2119
+ },
2120
+ "metadata": {
2121
+ "$ref": "#/$defs/metadata"
2122
+ }
2123
+ }
2124
+ },
2125
+ "schedules": {
2126
+ "type": "array",
2127
+ "items": {
2128
+ "$ref": "#/$defs/schedule"
2129
+ },
2130
+ "default": []
2131
+ },
2132
+ "documentManifest": {
2133
+ "type": "object",
2134
+ "additionalProperties": false,
2135
+ "required": [
2136
+ "documentId"
2137
+ ],
2138
+ "properties": {
2139
+ "id": {
2140
+ "type": "string"
2141
+ },
2142
+ "documentId": {
2143
+ "type": "string",
2144
+ "minLength": 1
2145
+ },
2146
+ "namespace": {
2147
+ "type": "string",
2148
+ "default": ""
2149
+ },
2150
+ "contentType": {
2151
+ "type": "string",
2152
+ "default": "application/vnd.xtendrmt.rmt+json"
2153
+ },
2154
+ "loaderHint": {
2155
+ "type": "string",
2156
+ "default": ""
2157
+ },
2158
+ "sourceUrl": {
2159
+ "type": "string",
2160
+ "default": ""
2161
+ },
2162
+ "metadata": {
2163
+ "$ref": "#/$defs/metadata"
2164
+ },
2165
+ "reactivityHints": {
2166
+ "$ref": "#/$defs/metadata"
2167
+ }
2168
+ }
2169
+ },
2170
+ "templateRef": {
2171
+ "anyOf": [
2172
+ {
2173
+ "type": "string",
2174
+ "minLength": 1
2175
+ },
2176
+ {
2177
+ "type": "object",
2178
+ "additionalProperties": false,
2179
+ "properties": {
2180
+ "id": {
2181
+ "type": "string"
2182
+ },
2183
+ "templateId": {
2184
+ "type": "string"
2185
+ },
2186
+ "name": {
2187
+ "type": "string"
2188
+ },
2189
+ "qualifiedId": {
2190
+ "type": "string"
2191
+ },
2192
+ "namespace": {
2193
+ "type": "string"
2194
+ }
2195
+ },
2196
+ "anyOf": [
2197
+ {
2198
+ "required": [
2199
+ "id"
2200
+ ]
2201
+ },
2202
+ {
2203
+ "required": [
2204
+ "templateId"
2205
+ ]
2206
+ },
2207
+ {
2208
+ "required": [
2209
+ "name"
2210
+ ]
2211
+ },
2212
+ {
2213
+ "required": [
2214
+ "qualifiedId"
2215
+ ]
2216
+ }
2217
+ ]
2218
+ }
2219
+ ]
2220
+ },
2221
+ "prop": {
2222
+ "type": "object",
2223
+ "additionalProperties": false,
2224
+ "properties": {
2225
+ "name": {
2226
+ "type": "string"
2227
+ },
2228
+ "prop": {
2229
+ "type": "string"
2230
+ },
2231
+ "property": {
2232
+ "type": "string"
2233
+ },
2234
+ "source": {
2235
+ "type": "string"
2236
+ },
2237
+ "path": {
2238
+ "type": "string"
2239
+ },
2240
+ "modelPath": {
2241
+ "type": "string"
2242
+ },
2243
+ "valuePath": {
2244
+ "type": "string"
2245
+ },
2246
+ "type": {
2247
+ "type": "string"
2248
+ },
2249
+ "kind": {
2250
+ "type": "string"
2251
+ },
2252
+ "required": {
2253
+ "type": "boolean"
2254
+ },
2255
+ "hasDefault": {
2256
+ "type": "boolean"
2257
+ },
2258
+ "default": {
2259
+ "$ref": "#/$defs/serializableValue"
2260
+ },
2261
+ "defaultValue": {
2262
+ "$ref": "#/$defs/serializableValue"
2263
+ },
2264
+ "value": {
2265
+ "$ref": "#/$defs/serializableValue"
2266
+ },
2267
+ "attribute": {
2268
+ "type": "string"
2269
+ },
2270
+ "attributeName": {
2271
+ "type": "string"
2272
+ },
2273
+ "propertyName": {
2274
+ "type": "string"
2275
+ },
2276
+ "reflect": {
2277
+ "type": "boolean"
2278
+ },
2279
+ "metadata": {
2280
+ "$ref": "#/$defs/metadata"
2281
+ }
2282
+ }
2283
+ },
2284
+ "propEntry": {
2285
+ "anyOf": [
2286
+ {
2287
+ "$ref": "#/$defs/prop"
2288
+ },
2289
+ {
2290
+ "type": "string"
2291
+ },
2292
+ {
2293
+ "type": "number"
2294
+ },
2295
+ {
2296
+ "type": "boolean"
2297
+ },
2298
+ {
2299
+ "type": "null"
2300
+ }
2301
+ ]
2302
+ },
2303
+ "props": {
2304
+ "anyOf": [
2305
+ {
2306
+ "type": "array",
2307
+ "items": {
2308
+ "$ref": "#/$defs/propEntry"
2309
+ },
2310
+ "default": []
2311
+ },
2312
+ {
2313
+ "type": "object",
2314
+ "additionalProperties": {
2315
+ "$ref": "#/$defs/propEntry"
2316
+ },
2317
+ "default": {}
2318
+ }
2319
+ ]
2320
+ },
2321
+ "binding": {
2322
+ "type": "object",
2323
+ "additionalProperties": false,
2324
+ "properties": {
2325
+ "kind": {
2326
+ "$ref": "#/$defs/bindingKind"
2327
+ },
2328
+ "type": {
2329
+ "type": "string"
2330
+ },
2331
+ "target": {
2332
+ "type": "string"
2333
+ },
2334
+ "selector": {
2335
+ "type": "string"
2336
+ },
2337
+ "elementSelector": {
2338
+ "type": "string"
2339
+ },
2340
+ "source": {
2341
+ "type": "string"
2342
+ },
2343
+ "path": {
2344
+ "type": "string"
2345
+ },
2346
+ "modelPath": {
2347
+ "type": "string"
2348
+ },
2349
+ "valuePath": {
2350
+ "type": "string"
2351
+ },
2352
+ "sourceName": {
2353
+ "type": "string"
2354
+ },
2355
+ "reactivitySource": {
2356
+ "type": "string"
2357
+ },
2358
+ "channel": {
2359
+ "type": "string"
2360
+ },
2361
+ "attribute": {
2362
+ "type": "string"
2363
+ },
2364
+ "attributeName": {
2365
+ "type": "string"
2366
+ },
2367
+ "property": {
2368
+ "type": "string"
2369
+ },
2370
+ "propertyName": {
2371
+ "type": "string"
2372
+ },
2373
+ "class": {
2374
+ "type": "string"
2375
+ },
2376
+ "className": {
2377
+ "type": "string"
2378
+ },
2379
+ "token": {
2380
+ "type": "string"
2381
+ },
2382
+ "name": {
2383
+ "type": "string"
2384
+ },
2385
+ "event": {
2386
+ "type": "string"
2387
+ },
2388
+ "eventType": {
2389
+ "type": "string"
2390
+ },
2391
+ "command": {
2392
+ "type": "string"
2393
+ },
2394
+ "commandName": {
2395
+ "type": "string"
2396
+ },
2397
+ "commandRef": {
2398
+ "type": "string"
2399
+ },
2400
+ "emit": {
2401
+ "type": "string"
2402
+ },
2403
+ "eventName": {
2404
+ "type": "string"
2405
+ },
2406
+ "rootEventName": {
2407
+ "type": "string"
2408
+ },
2409
+ "action": {
2410
+ "type": "string"
2411
+ },
2412
+ "rmAction": {
2413
+ "type": "string"
2414
+ },
2415
+ "dataRmAction": {
2416
+ "type": "string"
2417
+ },
2418
+ "dataAction": {
2419
+ "type": "string"
2420
+ },
2421
+ "actionAttribute": {
2422
+ "type": "string",
2423
+ "default": "data-rm-action"
2424
+ },
2425
+ "dataActionAttribute": {
2426
+ "type": "string"
2427
+ },
2428
+ "setActionAttribute": {
2429
+ "type": "boolean"
2430
+ },
2431
+ "payloadSource": {
2432
+ "type": "string"
2433
+ },
2434
+ "detailSource": {
2435
+ "type": "string"
2436
+ },
2437
+ "payload": {
2438
+ "$ref": "#/$defs/serializableValue"
2439
+ },
2440
+ "detail": {
2441
+ "$ref": "#/$defs/serializableValue"
2442
+ },
2443
+ "fallback": {
2444
+ "$ref": "#/$defs/serializableValue"
2445
+ },
2446
+ "hasExplicitFallback": {
2447
+ "type": "boolean"
2448
+ },
2449
+ "invert": {
2450
+ "type": "boolean"
2451
+ },
2452
+ "preventDefault": {
2453
+ "type": "boolean"
2454
+ },
2455
+ "stopPropagation": {
2456
+ "type": "boolean"
2457
+ },
2458
+ "capture": {
2459
+ "type": "boolean"
2460
+ },
2461
+ "passive": {
2462
+ "type": "boolean"
2463
+ },
2464
+ "once": {
2465
+ "type": "boolean"
2466
+ },
2467
+ "includeInteractionMeta": {
2468
+ "type": "boolean"
2469
+ },
2470
+ "supersessionKey": {
2471
+ "type": "string"
2472
+ },
2473
+ "template": {
2474
+ "$ref": "#/$defs/templateRef"
2475
+ },
2476
+ "templateRef": {
2477
+ "$ref": "#/$defs/templateRef"
2478
+ },
2479
+ "templateId": {
2480
+ "type": "string"
2481
+ },
2482
+ "namespace": {
2483
+ "type": "string"
2484
+ },
2485
+ "templateSource": {
2486
+ "type": "string"
2487
+ },
2488
+ "templatePath": {
2489
+ "type": "string"
2490
+ },
2491
+ "templateRefSource": {
2492
+ "type": "string"
2493
+ },
2494
+ "modelSource": {
2495
+ "type": "string"
2496
+ },
2497
+ "outletModelSource": {
2498
+ "type": "string"
2499
+ },
2500
+ "subtreeModelSource": {
2501
+ "type": "string"
2502
+ },
2503
+ "itemsSource": {
2504
+ "type": "string"
2505
+ },
2506
+ "collectionSource": {
2507
+ "type": "string"
2508
+ },
2509
+ "listSource": {
2510
+ "type": "string"
2511
+ },
2512
+ "itemAlias": {
2513
+ "type": "string"
2514
+ },
2515
+ "alias": {
2516
+ "type": "string"
2517
+ },
2518
+ "as": {
2519
+ "type": "string"
2520
+ },
2521
+ "indexAlias": {
2522
+ "type": "string"
2523
+ },
2524
+ "positionAlias": {
2525
+ "type": "string"
2526
+ },
2527
+ "wrapperTag": {
2528
+ "type": "string"
2529
+ },
2530
+ "itemContainerTag": {
2531
+ "type": "string"
2532
+ },
2533
+ "clearWhenMissing": {
2534
+ "type": "boolean"
2535
+ },
2536
+ "removeWhenEmpty": {
2537
+ "type": "boolean"
2538
+ },
2539
+ "emptyMarkup": {
2540
+ "type": "string"
2541
+ },
2542
+ "emptyHtml": {
2543
+ "type": "string"
2544
+ },
2545
+ "metadata": {
2546
+ "$ref": "#/$defs/metadata"
2547
+ }
2548
+ }
2549
+ },
2550
+ "bindings": {
2551
+ "anyOf": [
2552
+ {
2553
+ "type": "array",
2554
+ "items": {
2555
+ "$ref": "#/$defs/binding"
2556
+ },
2557
+ "default": []
2558
+ },
2559
+ {
2560
+ "type": "object",
2561
+ "additionalProperties": {
2562
+ "$ref": "#/$defs/binding"
2563
+ },
2564
+ "default": {}
2565
+ }
2566
+ ]
2567
+ },
2568
+ "slot": {
2569
+ "anyOf": [
2570
+ {
2571
+ "type": "string"
2572
+ },
2573
+ {
2574
+ "type": "object",
2575
+ "additionalProperties": false,
2576
+ "properties": {
2577
+ "name": {
2578
+ "type": "string"
2579
+ },
2580
+ "slot": {
2581
+ "type": "string"
2582
+ },
2583
+ "kind": {
2584
+ "$ref": "#/$defs/slotKind"
2585
+ },
2586
+ "type": {
2587
+ "type": "string"
2588
+ },
2589
+ "target": {
2590
+ "type": "string"
2591
+ },
2592
+ "selector": {
2593
+ "type": "string"
2594
+ },
2595
+ "source": {
2596
+ "type": "string"
2597
+ },
2598
+ "path": {
2599
+ "type": "string"
2600
+ },
2601
+ "valuePath": {
2602
+ "type": "string"
2603
+ },
2604
+ "sourceName": {
2605
+ "type": "string"
2606
+ },
2607
+ "reactivitySource": {
2608
+ "type": "string"
2609
+ },
2610
+ "channel": {
2611
+ "type": "string"
2612
+ },
2613
+ "modelSource": {
2614
+ "type": "string"
2615
+ },
2616
+ "slotModelSource": {
2617
+ "type": "string"
2618
+ },
2619
+ "fallback": {
2620
+ "$ref": "#/$defs/serializableValue"
2621
+ },
2622
+ "hasExplicitFallback": {
2623
+ "type": "boolean"
2624
+ },
2625
+ "template": {
2626
+ "$ref": "#/$defs/templateRef"
2627
+ },
2628
+ "templateRef": {
2629
+ "$ref": "#/$defs/templateRef"
2630
+ },
2631
+ "templateId": {
2632
+ "type": "string"
2633
+ },
2634
+ "namespace": {
2635
+ "type": "string"
2636
+ },
2637
+ "markup": {
2638
+ "type": "string"
2639
+ },
2640
+ "html": {
2641
+ "type": "string"
2642
+ },
2643
+ "clearWhenMissing": {
2644
+ "type": "boolean"
2645
+ },
2646
+ "emptyMarkup": {
2647
+ "type": "string"
2648
+ },
2649
+ "emptyHtml": {
2650
+ "type": "string"
2651
+ },
2652
+ "metadata": {
2653
+ "$ref": "#/$defs/metadata"
2654
+ }
2655
+ }
2656
+ }
2657
+ ]
2658
+ },
2659
+ "slots": {
2660
+ "anyOf": [
2661
+ {
2662
+ "type": "array",
2663
+ "items": {
2664
+ "$ref": "#/$defs/slot"
2665
+ },
2666
+ "default": []
2667
+ },
2668
+ {
2669
+ "type": "object",
2670
+ "additionalProperties": {
2671
+ "$ref": "#/$defs/slot"
2672
+ },
2673
+ "default": {}
2674
+ }
2675
+ ]
2676
+ },
2677
+ "hydration": {
2678
+ "anyOf": [
2679
+ {
2680
+ "$ref": "#/$defs/hydrationMode"
2681
+ },
2682
+ {
2683
+ "type": "object",
2684
+ "additionalProperties": false,
2685
+ "properties": {
2686
+ "mode": {
2687
+ "$ref": "#/$defs/hydrationMode"
2688
+ },
2689
+ "executionMode": {
2690
+ "$ref": "#/$defs/hydrationMode"
2691
+ },
2692
+ "ownershipMode": {
2693
+ "$ref": "#/$defs/ownershipMode"
2694
+ },
2695
+ "ownership": {
2696
+ "$ref": "#/$defs/ownershipMode"
2697
+ },
2698
+ "autoHydrate": {
2699
+ "type": "boolean"
2700
+ },
2701
+ "preferInsularHydration": {
2702
+ "type": "boolean"
2703
+ },
2704
+ "insularHydration": {
2705
+ "type": "boolean"
2706
+ },
2707
+ "clearChildrenBeforeMount": {
2708
+ "type": "boolean"
2709
+ },
2710
+ "transport": {
2711
+ "type": "string"
2712
+ },
2713
+ "prerenderTransport": {
2714
+ "type": "string"
2715
+ },
2716
+ "metadata": {
2717
+ "$ref": "#/$defs/metadata"
2718
+ }
2719
+ }
2720
+ }
2721
+ ]
2722
+ },
2723
+ "errorBoundary": {
2724
+ "anyOf": [
2725
+ {
2726
+ "type": "string"
2727
+ },
2728
+ {
2729
+ "type": "object",
2730
+ "additionalProperties": false,
2731
+ "properties": {
2732
+ "enabled": {
2733
+ "type": "boolean"
2734
+ },
2735
+ "name": {
2736
+ "type": "string"
2737
+ },
2738
+ "id": {
2739
+ "type": "string"
2740
+ },
2741
+ "target": {
2742
+ "type": "string"
2743
+ },
2744
+ "selector": {
2745
+ "type": "string"
2746
+ },
2747
+ "fallbackMarkup": {
2748
+ "type": "string"
2749
+ },
2750
+ "fallbackHtml": {
2751
+ "type": "string"
2752
+ },
2753
+ "markup": {
2754
+ "type": "string"
2755
+ },
2756
+ "fallbackText": {
2757
+ "type": "string"
2758
+ },
2759
+ "fallbackTemplate": {
2760
+ "$ref": "#/$defs/templateRef"
2761
+ },
2762
+ "template": {
2763
+ "$ref": "#/$defs/templateRef"
2764
+ },
2765
+ "modelSource": {
2766
+ "type": "string"
2767
+ },
2768
+ "source": {
2769
+ "type": "string"
2770
+ },
2771
+ "path": {
2772
+ "type": "string"
2773
+ },
2774
+ "capture": {
2775
+ "type": "boolean"
2776
+ },
2777
+ "emitEvent": {
2778
+ "type": "string"
2779
+ },
2780
+ "eventName": {
2781
+ "type": "string"
2782
+ },
2783
+ "metadata": {
2784
+ "$ref": "#/$defs/metadata"
2785
+ }
2786
+ }
2787
+ }
2788
+ ]
2789
+ },
2790
+ "template": {
2791
+ "type": "object",
2792
+ "additionalProperties": false,
2793
+ "anyOf": [
2794
+ {
2795
+ "required": [
2796
+ "id"
2797
+ ]
2798
+ },
2799
+ {
2800
+ "required": [
2801
+ "templateId"
2802
+ ]
2803
+ }
2804
+ ],
2805
+ "properties": {
2806
+ "id": {
2807
+ "type": "string",
2808
+ "minLength": 1
2809
+ },
2810
+ "templateId": {
2811
+ "type": "string",
2812
+ "minLength": 1
2813
+ },
2814
+ "namespace": {
2815
+ "type": "string"
2816
+ },
2817
+ "mode": {
2818
+ "$ref": "#/$defs/templateMode"
2819
+ },
2820
+ "templateMode": {
2821
+ "$ref": "#/$defs/templateMode"
2822
+ },
2823
+ "markup": {
2824
+ "type": "string"
2825
+ },
2826
+ "html": {
2827
+ "type": "string"
2828
+ },
2829
+ "source": {
2830
+ "type": "string"
2831
+ },
2832
+ "props": {
2833
+ "$ref": "#/$defs/props"
2834
+ },
2835
+ "properties": {
2836
+ "$ref": "#/$defs/props"
2837
+ },
2838
+ "bindings": {
2839
+ "$ref": "#/$defs/bindings"
2840
+ },
2841
+ "actions": {
2842
+ "$ref": "#/$defs/bindings"
2843
+ },
2844
+ "events": {
2845
+ "$ref": "#/$defs/bindings"
2846
+ },
2847
+ "slots": {
2848
+ "$ref": "#/$defs/slots"
2849
+ },
2850
+ "hydration": {
2851
+ "$ref": "#/$defs/hydration"
2852
+ },
2853
+ "hydrate": {
2854
+ "$ref": "#/$defs/hydration"
2855
+ },
2856
+ "rendering": {
2857
+ "$ref": "#/$defs/hydration"
2858
+ },
2859
+ "errorBoundary": {
2860
+ "$ref": "#/$defs/errorBoundary"
2861
+ },
2862
+ "error": {
2863
+ "$ref": "#/$defs/errorBoundary"
2864
+ },
2865
+ "boundary": {
2866
+ "$ref": "#/$defs/errorBoundary"
2867
+ },
2868
+ "metadata": {
2869
+ "$ref": "#/$defs/metadata"
2870
+ },
2871
+ "reactivityHints": {
2872
+ "$ref": "#/$defs/metadata"
2873
+ },
2874
+ "documentId": {
2875
+ "type": "string"
2876
+ },
2877
+ "sourceUrl": {
2878
+ "type": "string"
2879
+ },
2880
+ "loaderHint": {
2881
+ "type": "string"
2882
+ }
2883
+ }
2884
+ }
2885
+ },
2886
+ "examples": [
2887
+ {
2888
+ "kind": "rmt_document",
2889
+ "version": "1.0",
2890
+ "manifest": {
2891
+ "documentId": "example.dashboard",
2892
+ "namespace": "example"
2893
+ },
2894
+ "adapters": [
2895
+ {
2896
+ "id": "xtend.component",
2897
+ "kind": "component_adapter",
2898
+ "version": "1.0.0",
2899
+ "moduleRef": "@xtend/rmt-adapter-xtend/component",
2900
+ "runtimeSurface": [
2901
+ "esm",
2902
+ "browser_classic"
2903
+ ],
2904
+ "providedCapabilities": [
2905
+ "customElements",
2906
+ "hydration",
2907
+ "slots",
2908
+ "events"
2909
+ ],
2910
+ "requiredCapabilities": [
2911
+ "manifest",
2912
+ "customElements"
2913
+ ],
2914
+ "preferredCapabilities": [
2915
+ "stateBridge",
2916
+ "diagnostics"
2917
+ ],
2918
+ "lifecycleContract": "xtend.rmt.host-adapter-lifecycle.v1",
2919
+ "kernelVisible": false
2920
+ },
2921
+ {
2922
+ "id": "custom.router",
2923
+ "kind": "router_adapter",
2924
+ "version": "1.0.0",
2925
+ "moduleRef": "./adapters/custom-router.js",
2926
+ "runtimeSurface": [
2927
+ "esm"
2928
+ ],
2929
+ "providedCapabilities": [
2930
+ "routes",
2931
+ "navigation",
2932
+ "params",
2933
+ "query"
2934
+ ],
2935
+ "preferredCapabilities": [
2936
+ "diagnostics"
2937
+ ],
2938
+ "lifecycleContract": "xtend.rmt.host-adapter-lifecycle.v1",
2939
+ "kernelVisible": false
2940
+ }
2941
+ ],
2942
+ "components": [
2943
+ {
2944
+ "id": "pages.overview",
2945
+ "kind": "custom_element",
2946
+ "adapter": "xtend.component",
2947
+ "tag": "x-section",
2948
+ "props": {
2949
+ "layout": "column",
2950
+ "label": "RMT Kernel Overview"
2951
+ },
2952
+ "attributes": {
2953
+ "data-route": "overview"
2954
+ },
2955
+ "slots": {
2956
+ "header": {
2957
+ "template": "pages.overview.header"
2958
+ },
2959
+ "default": {
2960
+ "template": "pages.overview.body"
2961
+ }
2962
+ },
2963
+ "events": {
2964
+ "section-ready": {
2965
+ "commandName": "demo.section.ready"
2966
+ }
2967
+ },
2968
+ "hydration": {
2969
+ "mode": "runtime_render",
2970
+ "ownershipMode": "managed_subtree",
2971
+ "metadata": {
2972
+ "endpointHint": "component.visible.mount"
2973
+ }
2974
+ },
2975
+ "schedule": "component.visible.mount",
2976
+ "requiredCapabilities": [
2977
+ "customElements",
2978
+ "hydration"
2979
+ ],
2980
+ "preferredCapabilities": [
2981
+ "slots",
2982
+ "events",
2983
+ "diagnostics"
2984
+ ]
2985
+ },
2986
+ {
2987
+ "id": "shared.badge",
2988
+ "kind": "web_component",
2989
+ "adapter": "custom.element",
2990
+ "tag": "status-badge",
2991
+ "attributes": {
2992
+ "tone": "neutral"
2993
+ },
2994
+ "props": {
2995
+ "label": "Ready"
2996
+ },
2997
+ "events": {
2998
+ "badge-click": {
2999
+ "commandName": "shared.badge.click"
3000
+ }
3001
+ },
3002
+ "schedule": {
3003
+ "endpointName": "component.idle.hydrate",
3004
+ "priority": "background"
3005
+ }
3006
+ }
3007
+ ],
3008
+ "routes": [
3009
+ {
3010
+ "id": "overview",
3011
+ "path": "/",
3012
+ "title": "Overview",
3013
+ "router": "xtend.xrouter",
3014
+ "component": "pages.overview",
3015
+ "template": "metric-card",
3016
+ "schedule": "route.visible.render",
3017
+ "params": {},
3018
+ "query": {},
3019
+ "lifecycle": {
3020
+ "enter": {
3021
+ "commandName": "route.overview.enter"
3022
+ },
3023
+ "leave": {
3024
+ "commandName": "route.overview.leave"
3025
+ }
3026
+ },
3027
+ "preferredCapabilities": [
3028
+ "navigation",
3029
+ "params",
3030
+ "query",
3031
+ "diagnostics"
3032
+ ]
3033
+ },
3034
+ {
3035
+ "id": "search",
3036
+ "path": "/search/:term",
3037
+ "title": "Search",
3038
+ "router": "custom.router",
3039
+ "component": "shared.badge",
3040
+ "schedule": {
3041
+ "endpointName": "route.visible.render",
3042
+ "priority": "visible"
3043
+ },
3044
+ "params": {
3045
+ "term": {
3046
+ "source": "path",
3047
+ "required": true
3048
+ }
3049
+ },
3050
+ "query": {
3051
+ "filter": {
3052
+ "source": "query",
3053
+ "default": "all"
3054
+ }
3055
+ },
3056
+ "lifecycle": {
3057
+ "beforeEnter": {
3058
+ "commandName": "search.beforeEnter"
3059
+ }
3060
+ }
3061
+ }
3062
+ ],
3063
+ "schedules": [
3064
+ {
3065
+ "id": "route.visible.render",
3066
+ "endpointName": "xtendrmt.route.render",
3067
+ "scope": "xtendrmt.router.current",
3068
+ "lane": "visible",
3069
+ "priority": 88,
3070
+ "deadlineMs": 120,
3071
+ "preferIdle": false,
3072
+ "coalesceKey": "route.current",
3073
+ "budgetClass": "interactive"
3074
+ },
3075
+ {
3076
+ "id": "component.visible.mount",
3077
+ "endpointName": "xtendrmt.component.mount",
3078
+ "scope": "xtendrmt.component.visible",
3079
+ "lane": "visible",
3080
+ "priority": 76,
3081
+ "deadlineMs": 160,
3082
+ "preferIdle": false,
3083
+ "coalesceKey": "component.mount",
3084
+ "budgetClass": "interactive"
3085
+ },
3086
+ {
3087
+ "id": "component.idle.hydrate",
3088
+ "endpointName": "xtendrmt.component.hydrate",
3089
+ "scope": "xtendrmt.component.idle",
3090
+ "lane": "idle",
3091
+ "priority": 42,
3092
+ "deadlineMs": 420,
3093
+ "preferIdle": true,
3094
+ "coalesceKey": "component.hydrate",
3095
+ "budgetClass": "background"
3096
+ },
3097
+ {
3098
+ "id": "diagnostics.snapshot",
3099
+ "endpointName": "xtendrmt.diagnostics.snapshot",
3100
+ "scope": "xtendrmt.diagnostics",
3101
+ "lane": "diagnostics",
3102
+ "priority": 34,
3103
+ "deadlineMs": 260,
3104
+ "preferIdle": true,
3105
+ "coalesceKey": "diagnostics.snapshot",
3106
+ "budgetClass": "diagnostics"
3107
+ }
3108
+ ],
3109
+ "templates": [
3110
+ {
3111
+ "id": "metric-card",
3112
+ "mode": "html_fragment",
3113
+ "markup": "<article><h2 data-slot=\"title\"></h2><button data-open></button></article>",
3114
+ "props": {
3115
+ "title": {
3116
+ "type": "string",
3117
+ "source": "vm.title",
3118
+ "defaultValue": "Untitled"
3119
+ }
3120
+ },
3121
+ "slots": {
3122
+ "title": {
3123
+ "source": "vm.title"
3124
+ }
3125
+ },
3126
+ "actions": {
3127
+ "example.metric.open": {
3128
+ "target": "[data-open]",
3129
+ "commandName": "example.metric.open",
3130
+ "payloadSource": "vm"
3131
+ }
3132
+ },
3133
+ "hydration": {
3134
+ "mode": "worker_prerender_hydrate",
3135
+ "ownershipMode": "hydrate_existing",
3136
+ "preferInsularHydration": true
3137
+ },
3138
+ "errorBoundary": {
3139
+ "fallbackMarkup": "<article role=\"alert\">Template failed.</article>"
3140
+ }
3141
+ }
3142
+ ]
3143
+ }
3144
+ ]
3145
+ }