@xmachines/docs 7.0.0 → 8.0.0-next.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 (542) hide show
  1. package/README.md +2 -2
  2. package/api/@xmachines/core/cache/functions/createLruCache.md +1 -1
  3. package/api/@xmachines/core/cache/interfaces/KeyValueCache.md +3 -3
  4. package/api/@xmachines/core/errors/classes/BaseError.md +11 -11
  5. package/api/@xmachines/core/errors/classes/DisposeConflictError.md +11 -11
  6. package/api/@xmachines/core/utils/functions/asDisposable.md +2 -2
  7. package/api/@xmachines/core/utils/functions/createNullRecord.md +1 -1
  8. package/api/@xmachines/core/utils/functions/createWarnOnce.md +1 -1
  9. package/api/@xmachines/core/utils/functions/describeValue.md +1 -1
  10. package/api/@xmachines/core/utils/functions/isError.md +1 -1
  11. package/api/@xmachines/core/utils/functions/isThenable.md +1 -1
  12. package/api/@xmachines/core/utils/functions/releaseQuietly.md +1 -1
  13. package/api/@xmachines/core/utils/functions/rethrowLater.md +1 -1
  14. package/api/@xmachines/core/utils/functions/safeString.md +1 -1
  15. package/api/@xmachines/core/utils/functions/shallowEqualExcept.md +1 -1
  16. package/api/@xmachines/core/utils/type-aliases/DisposeKey.md +1 -1
  17. package/api/@xmachines/core/utils/type-aliases/DisposeMember.md +1 -1
  18. package/api/@xmachines/core/utils/variables/DISPOSE.md +1 -1
  19. package/api/@xmachines/play/README.md +1 -1
  20. package/api/@xmachines/play/errors/classes/NonNullableError.md +11 -11
  21. package/api/@xmachines/play/errors/classes/PlayError.md +11 -11
  22. package/api/@xmachines/play/index/functions/assertNonNullable.md +1 -1
  23. package/api/@xmachines/play/index/type-aliases/PlayEvent.md +4 -4
  24. package/api/@xmachines/play-actor/README.md +3 -3
  25. package/api/@xmachines/play-actor/interfaces/ActorEvent.md +4 -4
  26. package/api/@xmachines/play-actor/interfaces/PlayActor.md +6 -6
  27. package/api/@xmachines/play-atom/README.md +6 -4
  28. package/api/@xmachines/play-atom/functions/watchAtom.md +1 -1
  29. package/api/@xmachines/play-atom/interfaces/AsyncAtomOptions.md +4 -4
  30. package/api/@xmachines/play-atom/interfaces/Atom.md +6 -6
  31. package/api/@xmachines/play-atom/interfaces/AtomObserver.md +6 -6
  32. package/api/@xmachines/play-atom/interfaces/AtomOptions.md +4 -4
  33. package/api/@xmachines/play-atom/interfaces/AtomSubscription.md +2 -2
  34. package/api/@xmachines/play-atom/interfaces/BaseAtom.md +4 -4
  35. package/api/@xmachines/play-atom/interfaces/CreateAtom.md +3 -3
  36. package/api/@xmachines/play-atom/interfaces/Readable.md +4 -4
  37. package/api/@xmachines/play-atom/interfaces/ReadonlyAtom.md +4 -4
  38. package/api/@xmachines/play-atom/type-aliases/AnyAtom.md +1 -1
  39. package/api/@xmachines/play-atom/type-aliases/AsyncAtomState.md +1 -1
  40. package/api/@xmachines/play-atom/variables/createAsyncAtom.md +1 -1
  41. package/api/@xmachines/play-atom/variables/createAtom.md +1 -1
  42. package/api/@xmachines/play-atom/variables/createWritableAtom.md +1 -1
  43. package/api/@xmachines/play-dom/README.md +8 -5
  44. package/api/@xmachines/play-dom/classes/PlayRenderer.md +4 -4
  45. package/api/@xmachines/play-dom/functions/createPlayUI.md +1 -1
  46. package/api/@xmachines/play-dom/functions/createRenderer.md +1 -1
  47. package/api/@xmachines/play-dom/interfaces/CreatePlayUIOptions.md +12 -12
  48. package/api/@xmachines/play-dom/interfaces/MountOptions.md +5 -5
  49. package/api/@xmachines/play-dom/interfaces/PlayDomOptions.md +15 -15
  50. package/api/@xmachines/play-dom/type-aliases/MountFn.md +1 -1
  51. package/api/@xmachines/play-dom-router/README.md +5 -3
  52. package/api/@xmachines/play-dom-router/classes/DomRouterBridge.md +7 -7
  53. package/api/@xmachines/play-dom-router/classes/RouteMap.md +4 -4
  54. package/api/@xmachines/play-dom-router/functions/connectRouter.md +1 -1
  55. package/api/@xmachines/play-dom-router/functions/createBrowserHistory.md +1 -1
  56. package/api/@xmachines/play-dom-router/functions/createRouter.md +1 -1
  57. package/api/@xmachines/play-dom-router/interfaces/BasePathOptions.md +5 -5
  58. package/api/@xmachines/play-dom-router/interfaces/BrowserHistory.md +16 -16
  59. package/api/@xmachines/play-dom-router/interfaces/BrowserWindow.md +16 -16
  60. package/api/@xmachines/play-dom-router/interfaces/ConnectRouterOptions.md +10 -10
  61. package/api/@xmachines/play-dom-router/interfaces/PlayRouteEvent.md +9 -9
  62. package/api/@xmachines/play-dom-router/interfaces/RoutableActor.md +6 -6
  63. package/api/@xmachines/play-dom-router/interfaces/RouteLookupContract.md +3 -3
  64. package/api/@xmachines/play-dom-router/interfaces/RouteMapOptions.md +6 -6
  65. package/api/@xmachines/play-dom-router/interfaces/RouteMapping.md +5 -5
  66. package/api/@xmachines/play-dom-router/interfaces/RouterBridge.md +3 -3
  67. package/api/@xmachines/play-dom-router/interfaces/RouterConnection.md +8 -8
  68. package/api/@xmachines/play-dom-router/interfaces/VanillaRouter.md +6 -6
  69. package/api/@xmachines/play-pattern/README.md +1 -1
  70. package/api/@xmachines/play-pattern/functions/buildPath.md +1 -1
  71. package/api/@xmachines/play-pattern/functions/createLruCache.md +1 -1
  72. package/api/@xmachines/play-pattern/functions/getIndexKey.md +1 -1
  73. package/api/@xmachines/play-pattern/functions/isDotSegment.md +1 -1
  74. package/api/@xmachines/play-pattern/functions/parsePattern.md +1 -1
  75. package/api/@xmachines/play-pattern/interfaces/GroupPart.md +6 -6
  76. package/api/@xmachines/play-pattern/interfaces/KeyValueCache.md +3 -3
  77. package/api/@xmachines/play-pattern/interfaces/LiteralPart.md +5 -5
  78. package/api/@xmachines/play-pattern/interfaces/ParamPart.md +9 -9
  79. package/api/@xmachines/play-pattern/interfaces/ParseOptions.md +4 -4
  80. package/api/@xmachines/play-pattern/interfaces/ParsedPattern.md +14 -14
  81. package/api/@xmachines/play-pattern/interfaces/PatternParam.md +6 -6
  82. package/api/@xmachines/play-pattern/type-aliases/PathBuildResult.md +1 -1
  83. package/api/@xmachines/play-pattern/type-aliases/PathParams.md +1 -1
  84. package/api/@xmachines/play-pattern/type-aliases/PatternModifier.md +1 -1
  85. package/api/@xmachines/play-pattern/type-aliases/PatternPart.md +1 -1
  86. package/api/@xmachines/play-react/README.md +5 -5
  87. package/api/@xmachines/play-react/classes/PlayErrorBoundary.md +6 -6
  88. package/api/@xmachines/play-react/functions/useActor.md +1 -1
  89. package/api/@xmachines/play-react/functions/useAtomEffect.md +1 -1
  90. package/api/@xmachines/play-react/functions/usePlayView.md +1 -1
  91. package/api/@xmachines/play-react/interfaces/ActorProviderProps.md +10 -10
  92. package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryProps.md +8 -8
  93. package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryState.md +6 -6
  94. package/api/@xmachines/play-react/interfaces/PlayUIProviderProps.md +13 -13
  95. package/api/@xmachines/play-react/interfaces/ViewContextValue.md +7 -7
  96. package/api/@xmachines/play-react/type-aliases/AnyPlayActor.md +1 -1
  97. package/api/@xmachines/play-react/variables/ActorProvider.md +1 -1
  98. package/api/@xmachines/play-react/variables/PlayRenderer.md +1 -1
  99. package/api/@xmachines/play-react/variables/PlayUIProvider.md +1 -1
  100. package/api/@xmachines/play-react-router/README.md +1 -1
  101. package/api/@xmachines/play-react-router/classes/ReactRouterBridge.md +7 -7
  102. package/api/@xmachines/play-react-router/classes/RouteMap.md +4 -4
  103. package/api/@xmachines/play-react-router/functions/createPlayRouterProvider.md +1 -1
  104. package/api/@xmachines/play-react-router/functions/createRouteMapFromTree.md +1 -1
  105. package/api/@xmachines/play-react-router/interfaces/PlayRouteEvent.md +9 -9
  106. package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderProps.md +11 -11
  107. package/api/@xmachines/play-react-router/interfaces/RoutableActor.md +6 -6
  108. package/api/@xmachines/play-react-router/interfaces/RouteMapOptions.md +6 -6
  109. package/api/@xmachines/play-react-router/interfaces/RouteMapping.md +5 -5
  110. package/api/@xmachines/play-react-router/interfaces/RouterBridge.md +3 -3
  111. package/api/@xmachines/play-react-router/type-aliases/PlayRouterBridgeConstructor.md +1 -1
  112. package/api/@xmachines/play-react-router/type-aliases/PlayRouterProviderBaseProps.md +1 -1
  113. package/api/@xmachines/play-react-router/variables/PlayRouterProvider.md +1 -1
  114. package/api/@xmachines/play-router/README.md +15 -14
  115. package/api/@xmachines/play-router/errors/classes/DuplicateBridgeError.md +11 -11
  116. package/api/@xmachines/play-router/errors/classes/DuplicateRoutePathError.md +12 -12
  117. package/api/@xmachines/play-router/errors/classes/EmptyRoutePathError.md +12 -12
  118. package/api/@xmachines/play-router/errors/classes/InvalidBasePathError.md +12 -12
  119. package/api/@xmachines/play-router/errors/classes/InvalidRoutePatternError.md +12 -12
  120. package/api/@xmachines/play-router/errors/classes/InvalidStateIdError.md +12 -12
  121. package/api/@xmachines/play-router/errors/classes/MissingBasePathParamError.md +13 -13
  122. package/api/@xmachines/play-router/errors/classes/RouterSyncError.md +11 -11
  123. package/api/@xmachines/play-router/errors/classes/UnknownStateTypeError.md +13 -13
  124. package/api/@xmachines/play-router/index/classes/RouteMap.md +4 -4
  125. package/api/@xmachines/play-router/index/classes/RouterBridgeBase.md +7 -7
  126. package/api/@xmachines/play-router/index/functions/buildPlayRouteEvent.md +1 -1
  127. package/api/@xmachines/play-router/index/functions/buildRouteTree.md +1 -1
  128. package/api/@xmachines/play-router/index/functions/cleanFrameworkParams.md +1 -1
  129. package/api/@xmachines/play-router/index/functions/createLruCache.md +1 -1
  130. package/api/@xmachines/play-router/index/functions/createRouteMapFromTree.md +1 -1
  131. package/api/@xmachines/play-router/index/functions/createRouterConnection.md +1 -1
  132. package/api/@xmachines/play-router/index/functions/detectDuplicateRoutes.md +1 -1
  133. package/api/@xmachines/play-router/index/functions/extractQuery.md +1 -1
  134. package/api/@xmachines/play-router/index/functions/extractRouteParams.md +1 -1
  135. package/api/@xmachines/play-router/index/functions/findRouteById.md +1 -1
  136. package/api/@xmachines/play-router/index/functions/findRouteByPath.md +1 -1
  137. package/api/@xmachines/play-router/index/functions/isMountableBridge.md +1 -1
  138. package/api/@xmachines/play-router/index/functions/joinBasePath.md +1 -1
  139. package/api/@xmachines/play-router/index/functions/mountKey.md +1 -1
  140. package/api/@xmachines/play-router/index/functions/normalizeBasePath.md +1 -1
  141. package/api/@xmachines/play-router/index/functions/openProviderBridge.md +5 -5
  142. package/api/@xmachines/play-router/index/functions/parsePattern.md +1 -1
  143. package/api/@xmachines/play-router/index/functions/pickOwnParams.md +1 -1
  144. package/api/@xmachines/play-router/index/functions/repointProviderBridge.md +1 -1
  145. package/api/@xmachines/play-router/index/functions/resolveBasePath.md +1 -1
  146. package/api/@xmachines/play-router/index/functions/resolveFrameworkParams.md +1 -1
  147. package/api/@xmachines/play-router/index/functions/sanitizePathname.md +1 -1
  148. package/api/@xmachines/play-router/index/functions/splitLocation.md +1 -1
  149. package/api/@xmachines/play-router/index/functions/stripBasePath.md +1 -1
  150. package/api/@xmachines/play-router/index/functions/validateRouteFormat.md +1 -1
  151. package/api/@xmachines/play-router/index/functions/validateStateExists.md +1 -1
  152. package/api/@xmachines/play-router/index/interfaces/BasePathOptions.md +5 -5
  153. package/api/@xmachines/play-router/index/interfaces/BuildPlayRouteEventOptions.md +6 -6
  154. package/api/@xmachines/play-router/index/interfaces/CompileOptions.md +5 -5
  155. package/api/@xmachines/play-router/index/interfaces/FrameworkParamsSource.md +9 -9
  156. package/api/@xmachines/play-router/index/interfaces/KeyValueCache.md +3 -3
  157. package/api/@xmachines/play-router/index/interfaces/LocationLike.md +5 -5
  158. package/api/@xmachines/play-router/index/interfaces/MountableRouterBridge.md +8 -8
  159. package/api/@xmachines/play-router/index/interfaces/OpenProviderBridgeArgs.md +10 -10
  160. package/api/@xmachines/play-router/index/interfaces/ParseOptions.md +4 -4
  161. package/api/@xmachines/play-router/index/interfaces/ParsedPattern.md +14 -14
  162. package/api/@xmachines/play-router/index/interfaces/PlayRouteEvent.md +9 -9
  163. package/api/@xmachines/play-router/index/interfaces/PlayRouterProviderBaseProps.md +11 -11
  164. package/api/@xmachines/play-router/index/interfaces/ResolvedBasePath.md +5 -5
  165. package/api/@xmachines/play-router/index/interfaces/ResolvedRoutePath.md +5 -5
  166. package/api/@xmachines/play-router/index/interfaces/Routable.md +5 -5
  167. package/api/@xmachines/play-router/index/interfaces/RoutableActor.md +6 -6
  168. package/api/@xmachines/play-router/index/interfaces/RouteInfo.md +10 -10
  169. package/api/@xmachines/play-router/index/interfaces/RouteMapOptions.md +6 -6
  170. package/api/@xmachines/play-router/index/interfaces/RouteMapping.md +5 -5
  171. package/api/@xmachines/play-router/index/interfaces/RouteMatch.md +5 -5
  172. package/api/@xmachines/play-router/index/interfaces/RouteNode.md +12 -12
  173. package/api/@xmachines/play-router/index/interfaces/RouteObject.md +7 -7
  174. package/api/@xmachines/play-router/index/interfaces/RouteTree.md +7 -7
  175. package/api/@xmachines/play-router/index/interfaces/RouteWatcherHandle.md +3 -3
  176. package/api/@xmachines/play-router/index/interfaces/RouterBridge.md +3 -3
  177. package/api/@xmachines/play-router/index/interfaces/RouterBridgeOptions.md +7 -7
  178. package/api/@xmachines/play-router/index/interfaces/RouterConnection.md +8 -8
  179. package/api/@xmachines/play-router/index/interfaces/SplitLocation.md +7 -7
  180. package/api/@xmachines/play-router/index/interfaces/WindowLike.md +3 -3
  181. package/api/@xmachines/play-router/index/type-aliases/PlayRouterBridgeConstructor.md +1 -1
  182. package/api/@xmachines/play-router/index/type-aliases/RouteData.md +1 -1
  183. package/api/@xmachines/play-router/index/type-aliases/RouteDataResolver.md +1 -1
  184. package/api/@xmachines/play-router/index/type-aliases/RouteMetadata.md +1 -1
  185. package/api/@xmachines/play-router/index/type-aliases/URLPatternLike.md +3 -3
  186. package/api/@xmachines/play-router/index/variables/NO_BASE_PATH.md +1 -1
  187. package/api/@xmachines/play-router/index/variables/ROOT_NODE_ID.md +1 -1
  188. package/api/@xmachines/play-router/xstate/README.md +5 -2
  189. package/api/@xmachines/play-router/xstate/functions/createRouteMap.md +2 -2
  190. package/api/@xmachines/play-router/xstate/functions/extractMachineRoutes.md +5 -5
  191. package/api/@xmachines/play-router/xstate/functions/getNavigableRoutes.md +1 -1
  192. package/api/@xmachines/play-router/xstate/functions/getRoutableRoutes.md +1 -1
  193. package/api/@xmachines/play-router/xstate/functions/getRouteMappings.md +1 -1
  194. package/api/@xmachines/play-router/xstate/functions/getTransitionReachableRoutes.md +7 -8
  195. package/api/@xmachines/play-router/xstate/functions/isRouteReachable.md +8 -9
  196. package/api/@xmachines/play-router/xstate/functions/machineToGraph.md +1 -1
  197. package/api/@xmachines/play-router/xstate/functions/routeExists.md +1 -1
  198. package/api/@xmachines/play-router/xstate/interfaces/Graph.md +26 -0
  199. package/api/@xmachines/play-router/xstate/interfaces/GraphEdge.md +22 -0
  200. package/api/@xmachines/play-router/xstate/interfaces/GraphNode.md +21 -0
  201. package/api/@xmachines/play-router/xstate/interfaces/MachineEdgeData.md +6 -6
  202. package/api/@xmachines/play-router/xstate/interfaces/MachineNodeData.md +7 -7
  203. package/api/@xmachines/play-router/xstate/type-aliases/MachineGraph.md +4 -6
  204. package/api/@xmachines/play-solid/README.md +3 -3
  205. package/api/@xmachines/play-solid/functions/useActor.md +1 -1
  206. package/api/@xmachines/play-solid/functions/usePlayView.md +1 -1
  207. package/api/@xmachines/play-solid/interfaces/ActorProviderProps.md +10 -10
  208. package/api/@xmachines/play-solid/interfaces/PlayUIProviderProps.md +13 -13
  209. package/api/@xmachines/play-solid/interfaces/ViewContextValue.md +7 -7
  210. package/api/@xmachines/play-solid/type-aliases/AnyPlayActor.md +1 -1
  211. package/api/@xmachines/play-solid/variables/ActorContext.md +1 -1
  212. package/api/@xmachines/play-solid/variables/ActorProvider.md +1 -1
  213. package/api/@xmachines/play-solid/variables/PlayRenderer.md +1 -1
  214. package/api/@xmachines/play-solid/variables/PlayUIProvider.md +1 -1
  215. package/api/@xmachines/play-solid-router/README.md +4 -6
  216. package/api/@xmachines/play-solid-router/classes/RouteMap.md +4 -4
  217. package/api/@xmachines/play-solid-router/classes/SolidRouterBridge.md +7 -7
  218. package/api/@xmachines/play-solid-router/functions/createPlayRouterProvider.md +1 -1
  219. package/api/@xmachines/play-solid-router/interfaces/PlayActor.md +6 -6
  220. package/api/@xmachines/play-solid-router/interfaces/PlayRouteEvent.md +9 -9
  221. package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderProps.md +11 -11
  222. package/api/@xmachines/play-solid-router/interfaces/RoutableActor.md +6 -6
  223. package/api/@xmachines/play-solid-router/interfaces/RouteMapOptions.md +6 -6
  224. package/api/@xmachines/play-solid-router/interfaces/RouteMapping.md +5 -5
  225. package/api/@xmachines/play-solid-router/interfaces/RouterBridge.md +3 -3
  226. package/api/@xmachines/play-solid-router/type-aliases/PlayRouterBridgeConstructor.md +1 -1
  227. package/api/@xmachines/play-solid-router/type-aliases/PlayRouterProviderBaseProps.md +1 -1
  228. package/api/@xmachines/play-solid-router/type-aliases/SolidRouterHooks.md +4 -4
  229. package/api/@xmachines/play-solid-router/variables/PlayRouterProvider.md +1 -1
  230. package/api/@xmachines/play-svelte/README.md +3 -3
  231. package/api/@xmachines/play-svelte/functions/defineRegistry.md +1 -1
  232. package/api/@xmachines/play-svelte/functions/getActorContext.md +1 -1
  233. package/api/@xmachines/play-svelte/functions/getPlayViewContext.md +1 -1
  234. package/api/@xmachines/play-svelte/functions/setActorContext.md +1 -1
  235. package/api/@xmachines/play-svelte/interfaces/ActorProviderProps.md +10 -10
  236. package/api/@xmachines/play-svelte/interfaces/DefineRegistryOptions.md +6 -6
  237. package/api/@xmachines/play-svelte/interfaces/PlayUIProviderProps.md +13 -13
  238. package/api/@xmachines/play-svelte/interfaces/ViewContextValue.md +7 -7
  239. package/api/@xmachines/play-svelte/type-aliases/AnyPlayActor.md +1 -1
  240. package/api/@xmachines/play-svelte-spa-router/README.md +6 -3
  241. package/api/@xmachines/play-svelte-spa-router/classes/RouteMap.md +4 -4
  242. package/api/@xmachines/play-svelte-spa-router/classes/SvelteSpaRouterBridge.md +7 -7
  243. package/api/@xmachines/play-svelte-spa-router/functions/connectRouter.md +1 -1
  244. package/api/@xmachines/play-svelte-spa-router/interfaces/BasePathOptions.md +5 -5
  245. package/api/@xmachines/play-svelte-spa-router/interfaces/ConnectRouterOptions.md +10 -10
  246. package/api/@xmachines/play-svelte-spa-router/interfaces/PlayRouteEvent.md +9 -9
  247. package/api/@xmachines/play-svelte-spa-router/interfaces/RoutableActor.md +6 -6
  248. package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapOptions.md +6 -6
  249. package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapping.md +5 -5
  250. package/api/@xmachines/play-svelte-spa-router/interfaces/RouterBridge.md +3 -3
  251. package/api/@xmachines/play-svelte-spa-router/interfaces/RouterConnection.md +8 -8
  252. package/api/@xmachines/play-svelte-spa-router/interfaces/WindowLike.md +3 -3
  253. package/api/@xmachines/play-sveltekit-router/README.md +3 -2
  254. package/api/@xmachines/play-sveltekit-router/classes/RouteMap.md +4 -4
  255. package/api/@xmachines/play-sveltekit-router/classes/SvelteKitRouterBridge.md +7 -7
  256. package/api/@xmachines/play-sveltekit-router/functions/connectRouter.md +1 -1
  257. package/api/@xmachines/play-sveltekit-router/interfaces/BasePathOptions.md +5 -5
  258. package/api/@xmachines/play-sveltekit-router/interfaces/ConnectRouterOptions.md +11 -11
  259. package/api/@xmachines/play-sveltekit-router/interfaces/LocationLike.md +5 -5
  260. package/api/@xmachines/play-sveltekit-router/interfaces/PlayRouteEvent.md +9 -9
  261. package/api/@xmachines/play-sveltekit-router/interfaces/RoutableActor.md +6 -6
  262. package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapOptions.md +6 -6
  263. package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapping.md +5 -5
  264. package/api/@xmachines/play-sveltekit-router/interfaces/RouterBridge.md +3 -3
  265. package/api/@xmachines/play-sveltekit-router/interfaces/RouterConnection.md +8 -8
  266. package/api/@xmachines/play-sveltekit-router/interfaces/SvelteKitRouterBridgeOptions.md +8 -8
  267. package/api/@xmachines/play-sveltekit-router/type-aliases/ShallowNavigation.md +1 -1
  268. package/api/@xmachines/play-tanstack-react-router/README.md +3 -2
  269. package/api/@xmachines/play-tanstack-react-router/classes/RouteMap.md +4 -4
  270. package/api/@xmachines/play-tanstack-react-router/classes/TanStackReactRouterBridge.md +7 -7
  271. package/api/@xmachines/play-tanstack-react-router/functions/createPlayRouterProvider.md +1 -1
  272. package/api/@xmachines/play-tanstack-react-router/functions/createRouteMapFromTree.md +1 -1
  273. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouteEvent.md +9 -9
  274. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderProps.md +11 -11
  275. package/api/@xmachines/play-tanstack-react-router/interfaces/RoutableActor.md +6 -6
  276. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapOptions.md +6 -6
  277. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapping.md +5 -5
  278. package/api/@xmachines/play-tanstack-react-router/interfaces/RouterBridge.md +3 -3
  279. package/api/@xmachines/play-tanstack-react-router/type-aliases/PlayRouterBridgeConstructor.md +1 -1
  280. package/api/@xmachines/play-tanstack-react-router/type-aliases/PlayRouterProviderBaseProps.md +1 -1
  281. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterInstance.md +1 -1
  282. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterLike.md +5 -5
  283. package/api/@xmachines/play-tanstack-react-router/variables/PlayRouterProvider.md +1 -1
  284. package/api/@xmachines/play-tanstack-router/README.md +3 -2
  285. package/api/@xmachines/play-tanstack-router/classes/TanStackRouterBridgeBase.md +7 -7
  286. package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouteMapLike.md +3 -3
  287. package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouterLike.md +5 -5
  288. package/api/@xmachines/play-tanstack-solid-router/README.md +6 -7
  289. package/api/@xmachines/play-tanstack-solid-router/classes/RouteMap.md +4 -4
  290. package/api/@xmachines/play-tanstack-solid-router/classes/TanStackSolidRouterBridge.md +7 -7
  291. package/api/@xmachines/play-tanstack-solid-router/functions/createPlayRouterProvider.md +1 -1
  292. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouteEvent.md +9 -9
  293. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderProps.md +11 -11
  294. package/api/@xmachines/play-tanstack-solid-router/interfaces/RoutableActor.md +6 -6
  295. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapOptions.md +6 -6
  296. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapping.md +5 -5
  297. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouterBridge.md +3 -3
  298. package/api/@xmachines/play-tanstack-solid-router/type-aliases/PlayRouterBridgeConstructor.md +1 -1
  299. package/api/@xmachines/play-tanstack-solid-router/type-aliases/PlayRouterProviderBaseProps.md +1 -1
  300. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterInstance.md +1 -1
  301. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterLike.md +5 -5
  302. package/api/@xmachines/play-tanstack-solid-router/variables/PlayRouterProvider.md +1 -1
  303. package/api/@xmachines/play-url/README.md +1 -1
  304. package/api/@xmachines/play-url/errors/classes/InvalidBasePathError.md +12 -12
  305. package/api/@xmachines/play-url/errors/classes/InvalidRoutePatternError.md +12 -12
  306. package/api/@xmachines/play-url/errors/classes/MissingBasePathParamError.md +13 -13
  307. package/api/@xmachines/play-url/index/functions/buildPath.md +1 -1
  308. package/api/@xmachines/play-url/index/functions/cleanFrameworkParams.md +1 -1
  309. package/api/@xmachines/play-url/index/functions/createLruCache.md +1 -1
  310. package/api/@xmachines/play-url/index/functions/getCandidates.md +1 -1
  311. package/api/@xmachines/play-url/index/functions/getCompiledPattern.md +1 -1
  312. package/api/@xmachines/play-url/index/functions/getIndexKey.md +1 -1
  313. package/api/@xmachines/play-url/index/functions/holdsUnsubstitutedParam.md +1 -1
  314. package/api/@xmachines/play-url/index/functions/isDotSegment.md +1 -1
  315. package/api/@xmachines/play-url/index/functions/joinBasePath.md +1 -1
  316. package/api/@xmachines/play-url/index/functions/normalizeBasePath.md +1 -1
  317. package/api/@xmachines/play-url/index/functions/parsePattern.md +1 -1
  318. package/api/@xmachines/play-url/index/functions/pickOwnParams.md +1 -1
  319. package/api/@xmachines/play-url/index/functions/resolveBasePath.md +1 -1
  320. package/api/@xmachines/play-url/index/functions/resolveFrameworkParams.md +1 -1
  321. package/api/@xmachines/play-url/index/functions/sanitizePathname.md +1 -1
  322. package/api/@xmachines/play-url/index/functions/splitLocation.md +1 -1
  323. package/api/@xmachines/play-url/index/functions/stripBasePath.md +1 -1
  324. package/api/@xmachines/play-url/index/interfaces/BasePathOptions.md +5 -5
  325. package/api/@xmachines/play-url/index/interfaces/CompileOptions.md +5 -5
  326. package/api/@xmachines/play-url/index/interfaces/FrameworkParamsSource.md +9 -9
  327. package/api/@xmachines/play-url/index/interfaces/GroupPart.md +6 -6
  328. package/api/@xmachines/play-url/index/interfaces/KeyValueCache.md +3 -3
  329. package/api/@xmachines/play-url/index/interfaces/LiteralPart.md +5 -5
  330. package/api/@xmachines/play-url/index/interfaces/ParamPart.md +9 -9
  331. package/api/@xmachines/play-url/index/interfaces/ParseOptions.md +4 -4
  332. package/api/@xmachines/play-url/index/interfaces/ParsedPattern.md +14 -14
  333. package/api/@xmachines/play-url/index/interfaces/PatternParam.md +6 -6
  334. package/api/@xmachines/play-url/index/interfaces/ResolvedBasePath.md +5 -5
  335. package/api/@xmachines/play-url/index/interfaces/SplitLocation.md +7 -7
  336. package/api/@xmachines/play-url/index/type-aliases/PathBuildResult.md +1 -1
  337. package/api/@xmachines/play-url/index/type-aliases/PathParams.md +1 -1
  338. package/api/@xmachines/play-url/index/type-aliases/PatternModifier.md +1 -1
  339. package/api/@xmachines/play-url/index/type-aliases/PatternPart.md +1 -1
  340. package/api/@xmachines/play-url/index/type-aliases/URLPatternCtor.md +1 -1
  341. package/api/@xmachines/play-url/index/type-aliases/URLPatternLike.md +3 -3
  342. package/api/@xmachines/play-url/index/variables/NO_BASE_PATH.md +1 -1
  343. package/api/@xmachines/play-url/index/variables/URLPattern.md +1 -1
  344. package/api/@xmachines/play-view/README.md +4 -4
  345. package/api/@xmachines/play-view/errors/classes/InvalidViewOutletError.md +13 -13
  346. package/api/@xmachines/play-view/errors/classes/ReadOnlyContextError.md +12 -12
  347. package/api/@xmachines/play-view/errors/classes/ViewElementKeyCollisionError.md +13 -13
  348. package/api/@xmachines/play-view/index/functions/attachRenderErrorHandler.md +1 -1
  349. package/api/@xmachines/play-view/index/functions/bindStoreHandlers.md +1 -1
  350. package/api/@xmachines/play-view/index/functions/composePlayState.md +1 -1
  351. package/api/@xmachines/play-view/index/functions/composeViews.md +1 -1
  352. package/api/@xmachines/play-view/index/functions/createActorProxy.md +1 -1
  353. package/api/@xmachines/play-view/index/functions/createRenderErrorBinding.md +1 -1
  354. package/api/@xmachines/play-view/index/functions/createReportGuard.md +1 -1
  355. package/api/@xmachines/play-view/index/functions/createViewSession.md +1 -1
  356. package/api/@xmachines/play-view/index/functions/createViewStoreLifecycle.md +1 -1
  357. package/api/@xmachines/play-view/index/functions/forwardRenderError.md +1 -1
  358. package/api/@xmachines/play-view/index/functions/guardContextWrites.md +1 -1
  359. package/api/@xmachines/play-view/index/functions/refreshContextSubtree.md +1 -1
  360. package/api/@xmachines/play-view/index/functions/reuseComposedState.md +1 -1
  361. package/api/@xmachines/play-view/index/functions/toAtomState.md +1 -1
  362. package/api/@xmachines/play-view/index/functions/typedSpec.md +1 -1
  363. package/api/@xmachines/play-view/index/interfaces/BaseActorProviderProps.md +7 -7
  364. package/api/@xmachines/play-view/index/interfaces/BaseViewContextValue.md +7 -7
  365. package/api/@xmachines/play-view/index/interfaces/ComposedView.md +7 -7
  366. package/api/@xmachines/play-view/index/interfaces/HandlerFactory.md +4 -4
  367. package/api/@xmachines/play-view/index/interfaces/PlaySpec.md +8 -8
  368. package/api/@xmachines/play-view/index/interfaces/ReportGuard.md +5 -5
  369. package/api/@xmachines/play-view/index/interfaces/ReportGuardMessages.md +5 -5
  370. package/api/@xmachines/play-view/index/interfaces/ResolveViewStoreOptions.md +4 -4
  371. package/api/@xmachines/play-view/index/interfaces/ViewMeta.md +7 -7
  372. package/api/@xmachines/play-view/index/interfaces/ViewOutlet.md +5 -5
  373. package/api/@xmachines/play-view/index/interfaces/ViewSession.md +7 -7
  374. package/api/@xmachines/play-view/index/interfaces/ViewSessionOptions.md +5 -5
  375. package/api/@xmachines/play-view/index/interfaces/ViewSessionSnapshot.md +8 -8
  376. package/api/@xmachines/play-view/index/interfaces/ViewStoreLifecycle.md +4 -4
  377. package/api/@xmachines/play-view/index/interfaces/ViewStoreResolution.md +7 -7
  378. package/api/@xmachines/play-view/index/interfaces/ViewTree.md +6 -6
  379. package/api/@xmachines/play-view/index/interfaces/ViewTreeChild.md +5 -5
  380. package/api/@xmachines/play-view/index/interfaces/Viewable.md +4 -4
  381. package/api/@xmachines/play-view/index/type-aliases/StateUpdater.md +1 -1
  382. package/api/@xmachines/play-view/index/type-aliases/ViewActor.md +1 -1
  383. package/api/@xmachines/play-view/index/variables/CONTEXT_STATE_KEY.md +1 -1
  384. package/api/@xmachines/play-vue/README.md +2 -2
  385. package/api/@xmachines/play-vue/functions/defineRegistry.md +1 -1
  386. package/api/@xmachines/play-vue/functions/useActor.md +1 -1
  387. package/api/@xmachines/play-vue/functions/usePlayView.md +1 -1
  388. package/api/@xmachines/play-vue/interfaces/ActorProviderProps.md +8 -8
  389. package/api/@xmachines/play-vue/interfaces/PlayUIProviderProps.md +11 -11
  390. package/api/@xmachines/play-vue/interfaces/ViewContextValue.md +7 -7
  391. package/api/@xmachines/play-vue/type-aliases/AnyPlayActor.md +1 -1
  392. package/api/@xmachines/play-vue/type-aliases/ComponentEntry.md +1 -1
  393. package/api/@xmachines/play-vue/type-aliases/ComponentsMap.md +1 -1
  394. package/api/@xmachines/play-vue/type-aliases/DefineRegistryOptions.md +4 -4
  395. package/api/@xmachines/play-vue/variables/PlayRenderer.md +1 -1
  396. package/api/@xmachines/play-vue-router/README.md +1 -1
  397. package/api/@xmachines/play-vue-router/errors/classes/VueRouterNavigationError.md +11 -11
  398. package/api/@xmachines/play-vue-router/errors/classes/VueRouterSendError.md +11 -11
  399. package/api/@xmachines/play-vue-router/index/classes/RouteMap.md +4 -4
  400. package/api/@xmachines/play-vue-router/index/classes/VueRouterBridge.md +7 -7
  401. package/api/@xmachines/play-vue-router/index/interfaces/PlayRouteEvent.md +9 -9
  402. package/api/@xmachines/play-vue-router/index/interfaces/RoutableActor.md +6 -6
  403. package/api/@xmachines/play-vue-router/index/interfaces/RouteMapOptions.md +6 -6
  404. package/api/@xmachines/play-vue-router/index/interfaces/RouteMapping.md +5 -5
  405. package/api/@xmachines/play-vue-router/index/interfaces/RouterBridge.md +3 -3
  406. package/api/@xmachines/play-vue-router/index/variables/PlayRouterProvider.md +1 -1
  407. package/api/@xmachines/play-xstate/README.md +63 -52
  408. package/api/@xmachines/play-xstate/errors/classes/ActorThrewNonErrorError.md +11 -11
  409. package/api/@xmachines/play-xstate/errors/classes/InvalidEventError.md +12 -12
  410. package/api/@xmachines/play-xstate/errors/classes/InvalidMachineError.md +11 -11
  411. package/api/@xmachines/play-xstate/errors/classes/InvalidRouteHandlerError.md +12 -12
  412. package/api/@xmachines/play-xstate/errors/classes/InvalidRouteMetadataError.md +12 -12
  413. package/api/@xmachines/play-xstate/errors/classes/InvalidRouteParamError.md +14 -14
  414. package/api/@xmachines/play-xstate/errors/classes/MissingRouteParamError.md +13 -13
  415. package/api/@xmachines/play-xstate/errors/classes/MissingStateIdError.md +15 -15
  416. package/api/@xmachines/play-xstate/index/README.md +1 -1
  417. package/api/@xmachines/play-xstate/index/classes/PlayerActor.md +201 -124
  418. package/api/@xmachines/play-xstate/index/functions/compose.md +4 -4
  419. package/api/@xmachines/play-xstate/index/functions/definePlayer.md +14 -10
  420. package/api/@xmachines/play-xstate/index/interfaces/PlayerConfig.md +6 -6
  421. package/api/@xmachines/play-xstate/index/interfaces/PlayerFactoryResumeOptions.md +4 -4
  422. package/api/@xmachines/play-xstate/index/interfaces/PlayerOptions.md +9 -9
  423. package/api/@xmachines/play-xstate/index/type-aliases/Capability.md +1 -1
  424. package/api/@xmachines/play-xstate/index/type-aliases/PlayerConstructor.md +1 -1
  425. package/api/@xmachines/play-xstate/index/type-aliases/PlayerFactory.md +1 -1
  426. package/api/@xmachines/play-xstate/with-routing/functions/buildRouteUrl.md +1 -1
  427. package/api/@xmachines/play-xstate/with-routing/functions/deriveRoute.md +13 -5
  428. package/api/@xmachines/play-xstate/with-routing/functions/formatPlayRouteTransitions.md +26 -13
  429. package/api/@xmachines/play-xstate/with-routing/functions/isAbsoluteRoute.md +1 -1
  430. package/api/@xmachines/play-xstate/with-routing/functions/withRouting.md +1 -1
  431. package/api/@xmachines/play-xstate/with-routing/interfaces/RouteContext.md +8 -8
  432. package/api/@xmachines/play-xstate/with-routing/interfaces/RouteObject.md +7 -7
  433. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteData.md +1 -1
  434. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteDataResolver.md +1 -1
  435. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteMachineConfig.md +4 -4
  436. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteMetadata.md +1 -1
  437. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteStateNode.md +5 -5
  438. package/api/@xmachines/play-xstate/with-view/functions/withView.md +1 -1
  439. package/api/@xmachines/shared/vite-aliases/functions/xmAliases.md +1 -1
  440. package/api/@xmachines/shared/vite-aliases/functions/xmBuildOutput.md +1 -1
  441. package/api/@xmachines/shared/vite-aliases/functions/xmBuildOutputFile.md +1 -1
  442. package/api/@xmachines/shared/vite-aliases/functions/xmCacheDir.md +1 -1
  443. package/api/@xmachines/shared/vite-aliases/functions/xmOptimizeDeps.md +1 -1
  444. package/api/@xmachines/shared/vite-aliases/functions/xmResolve.md +1 -1
  445. package/api/@xmachines/shared/vite-aliases/functions/xmSvelteRunes.md +4 -4
  446. package/api/@xmachines/shared/vite-aliases/functions/xmTestTarget.md +1 -1
  447. package/api/@xmachines/shared/vite-aliases/type-aliases/XmTestTarget.md +1 -1
  448. package/api/@xmachines/shared/vitest/functions/defineXmBrowserConfig.md +1 -1
  449. package/api/@xmachines/shared/vitest/functions/defineXmVitestConfig.md +1 -1
  450. package/api/@xmachines/shared/vitest/interfaces/XmBrowserConfigOptions.md +6 -6
  451. package/contributing/architecture.md +13 -9
  452. package/contributing/configuration.md +24 -50
  453. package/contributing/deployment.md +128 -158
  454. package/contributing/development.md +6 -6
  455. package/contributing/migrating-to-play-atom.md +13 -1
  456. package/examples/@xmachines/play-dom-demo/functions/createAuthActionHandlers.md +11 -11
  457. package/examples/@xmachines/play-dom-demo/functions/createConfirmDialog.md +1 -1
  458. package/examples/@xmachines/play-dom-demo/functions/createNavBar.md +1 -1
  459. package/examples/@xmachines/play-dom-demo/functions/initShell.md +1 -1
  460. package/examples/@xmachines/play-dom-demo/type-aliases/AuthCatalog.md +1 -1
  461. package/examples/@xmachines/play-dom-demo/variables/About.md +1 -1
  462. package/examples/@xmachines/play-dom-demo/variables/Button.md +1 -1
  463. package/examples/@xmachines/play-dom-demo/variables/Contact.md +1 -1
  464. package/examples/@xmachines/play-dom-demo/variables/Dashboard.md +1 -1
  465. package/examples/@xmachines/play-dom-demo/variables/Field.md +1 -1
  466. package/examples/@xmachines/play-dom-demo/variables/Home.md +1 -1
  467. package/examples/@xmachines/play-dom-demo/variables/Login.md +1 -1
  468. package/examples/@xmachines/play-dom-demo/variables/NavBarView.md +1 -1
  469. package/examples/@xmachines/play-dom-demo/variables/Navigation.md +1 -1
  470. package/examples/@xmachines/play-dom-demo/variables/Overview.md +1 -1
  471. package/examples/@xmachines/play-dom-demo/variables/Panel.md +1 -1
  472. package/examples/@xmachines/play-dom-demo/variables/Profile.md +1 -1
  473. package/examples/@xmachines/play-dom-demo/variables/Settings.md +1 -1
  474. package/examples/@xmachines/play-dom-demo/variables/Stats.md +1 -1
  475. package/examples/@xmachines/play-dom-demo/variables/authCatalog.md +1 -1
  476. package/examples/@xmachines/play-dom-demo/variables/demoComponents.md +17 -17
  477. package/examples/@xmachines/play-react-demo/functions/createAuthActionHandlers.md +11 -11
  478. package/examples/@xmachines/play-react-demo/type-aliases/AuthCatalog.md +1 -1
  479. package/examples/@xmachines/play-react-demo/variables/About.md +1 -1
  480. package/examples/@xmachines/play-react-demo/variables/Button.md +1 -1
  481. package/examples/@xmachines/play-react-demo/variables/Contact.md +1 -1
  482. package/examples/@xmachines/play-react-demo/variables/Dashboard.md +1 -1
  483. package/examples/@xmachines/play-react-demo/variables/DebugPanel.md +1 -1
  484. package/examples/@xmachines/play-react-demo/variables/Field.md +1 -1
  485. package/examples/@xmachines/play-react-demo/variables/Home.md +1 -1
  486. package/examples/@xmachines/play-react-demo/variables/Login.md +1 -1
  487. package/examples/@xmachines/play-react-demo/variables/NavBar.md +1 -1
  488. package/examples/@xmachines/play-react-demo/variables/NavBarView.md +1 -1
  489. package/examples/@xmachines/play-react-demo/variables/Navigation.md +1 -1
  490. package/examples/@xmachines/play-react-demo/variables/Overview.md +1 -1
  491. package/examples/@xmachines/play-react-demo/variables/Panel.md +1 -1
  492. package/examples/@xmachines/play-react-demo/variables/Profile.md +1 -1
  493. package/examples/@xmachines/play-react-demo/variables/Settings.md +1 -1
  494. package/examples/@xmachines/play-react-demo/variables/Shell.md +1 -1
  495. package/examples/@xmachines/play-react-demo/variables/Stats.md +1 -1
  496. package/examples/@xmachines/play-react-demo/variables/authCatalog.md +1 -1
  497. package/examples/@xmachines/play-react-demo/variables/demoComponents.md +17 -17
  498. package/examples/@xmachines/play-solid-demo/functions/createAuthActionHandlers.md +11 -11
  499. package/examples/@xmachines/play-solid-demo/type-aliases/AuthCatalog.md +1 -1
  500. package/examples/@xmachines/play-solid-demo/variables/About.md +1 -1
  501. package/examples/@xmachines/play-solid-demo/variables/Button.md +1 -1
  502. package/examples/@xmachines/play-solid-demo/variables/Contact.md +1 -1
  503. package/examples/@xmachines/play-solid-demo/variables/Dashboard.md +1 -1
  504. package/examples/@xmachines/play-solid-demo/variables/DebugPanel.md +1 -1
  505. package/examples/@xmachines/play-solid-demo/variables/Field.md +1 -1
  506. package/examples/@xmachines/play-solid-demo/variables/Home.md +1 -1
  507. package/examples/@xmachines/play-solid-demo/variables/Login.md +1 -1
  508. package/examples/@xmachines/play-solid-demo/variables/NavBar.md +1 -1
  509. package/examples/@xmachines/play-solid-demo/variables/NavBarView.md +1 -1
  510. package/examples/@xmachines/play-solid-demo/variables/Navigation.md +1 -1
  511. package/examples/@xmachines/play-solid-demo/variables/Overview.md +1 -1
  512. package/examples/@xmachines/play-solid-demo/variables/Panel.md +1 -1
  513. package/examples/@xmachines/play-solid-demo/variables/Profile.md +1 -1
  514. package/examples/@xmachines/play-solid-demo/variables/Settings.md +1 -1
  515. package/examples/@xmachines/play-solid-demo/variables/Shell.md +1 -1
  516. package/examples/@xmachines/play-solid-demo/variables/Stats.md +1 -1
  517. package/examples/@xmachines/play-solid-demo/variables/authCatalog.md +1 -1
  518. package/examples/@xmachines/play-solid-demo/variables/demoComponents.md +17 -17
  519. package/examples/@xmachines/play-svelte-demo/functions/createAuthActionHandlers.md +11 -11
  520. package/examples/@xmachines/play-svelte-demo/type-aliases/AuthCatalog.md +1 -1
  521. package/examples/@xmachines/play-svelte-demo/variables/authCatalog.md +1 -1
  522. package/examples/@xmachines/play-svelte-demo/variables/demoComponents.md +17 -17
  523. package/examples/@xmachines/play-vue-demo/functions/createAuthActionHandlers.md +11 -11
  524. package/examples/@xmachines/play-vue-demo/type-aliases/AuthCatalog.md +1 -1
  525. package/examples/@xmachines/play-vue-demo/variables/App.md +1 -1
  526. package/examples/@xmachines/play-vue-demo/variables/authCatalog.md +1 -1
  527. package/examples/@xmachines/play-vue-demo/variables/demoComponents.md +1 -1
  528. package/examples/README.md +1 -1
  529. package/examples/basic-state-machine.md +19 -23
  530. package/examples/form-validation.md +43 -48
  531. package/examples/routing-patterns.md +30 -35
  532. package/examples/traffic-light.md +19 -21
  533. package/guides/actor-model.md +5 -6
  534. package/guides/getting-started.md +45 -51
  535. package/guides/inspector.md +52 -46
  536. package/guides/routing.md +4 -2
  537. package/guides/state-machines.md +80 -64
  538. package/guides/views.md +6 -4
  539. package/package.json +1 -1
  540. package/rfc/git.md +13 -5
  541. package/rfc/play.md +22 -18
  542. package/rfc/run.md +7 -4
@@ -1,6 +1,6 @@
1
1
  # State Machines in XMachines
2
2
 
3
- XMachines uses XState v5 as its state machine engine. This page explains what finite state machines are, how XMachines extends them with routing and view metadata, and why this design eliminates an entire category of bugs common in traditional frontend architecture.
3
+ XMachines uses XState v6 as its state machine engine. This page explains what finite state machines are, how XMachines extends them with routing and view metadata, and why this design eliminates an entire category of bugs common in traditional frontend architecture.
4
4
 
5
5
  After reading this, you will understand what a machine definition actually encodes — and why state machines are a better unit of business logic than component-level state or ad-hoc if/else trees.
6
6
 
@@ -22,17 +22,20 @@ In traditional component-level state (e.g., boolean flags, `useState` combinatio
22
22
 
23
23
  ---
24
24
 
25
- ## How XMachines uses XState v5
25
+ ## How XMachines uses XState v6
26
26
 
27
- XMachines wraps XState v5 via [`@xmachines/play-xstate`](../api/@xmachines/play-xstate/README.md). You define machines using XState's `setup().createMachine()` API:
27
+ XMachines wraps XState v6 via [`@xmachines/play-xstate`](../api/@xmachines/play-xstate/README.md). You define machines using XState's `setup().createMachine()` API:
28
28
 
29
29
  ```typescript
30
- import { setup } from "xstate";
30
+ import { setup, types } from "xstate";
31
31
 
32
32
  const authSetup = setup({
33
- types: {
34
- context: {} as { username: string | null },
35
- events: {} as { type: "auth.login"; username: string } | { type: "auth.logout" },
33
+ schemas: {
34
+ context: types<{ username: string | null }>(),
35
+ events: {
36
+ "auth.login": types<{ username: string }>(),
37
+ "auth.logout": types<void>(),
38
+ },
36
39
  },
37
40
  });
38
41
 
@@ -43,21 +46,18 @@ const authMachine = authSetup.createMachine({
43
46
  states: {
44
47
  unauthenticated: {
45
48
  on: {
46
- "auth.login": {
49
+ "auth.login": ({ event }) => ({
47
50
  target: "authenticated",
48
- actions: authSetup.assign({
49
- username: ({ event }) =>
50
- event.type === "auth.login" ? event.username : null,
51
- }),
52
- },
51
+ context: { username: event.username },
52
+ }),
53
53
  },
54
54
  },
55
55
  authenticated: {
56
56
  on: {
57
- "auth.logout": {
57
+ "auth.logout": () => ({
58
58
  target: "unauthenticated",
59
- actions: authSetup.assign({ username: null }),
60
- },
59
+ context: { username: null },
60
+ }),
61
61
  },
62
62
  },
63
63
  },
@@ -66,8 +66,8 @@ const authMachine = authSetup.createMachine({
66
66
 
67
67
  Key patterns:
68
68
 
69
- - **Always use `setup({ types })`** before `createMachine`. The type declarations let TypeScript check that your events, context fields, and actions are consistent throughout the machine.
70
- - **Use `setup.assign()`**, not the bare `assign` from xstate. This keeps the type checker aware of which context fields the action touches.
69
+ - **Always use `setup({ schemas })`** before `createMachine`. `types<T>()` declares a schema for the type alone. The schemas let TypeScript check that your events, context fields, and transitions are consistent throughout the machine. `events` is a map from the type of each event to its payload.
70
+ - **Return a context patch** from a transition function: `{ context: { username: null } }`. XState 6 merges the patch into the context at the top level, and it has no `assign` action.
71
71
  - **Event names use lowercase dot-separated namespaces**: `"auth.login"`, `"play.route"`, `"form.submit"`. This convention makes the event log readable and avoids collisions.
72
72
 
73
73
  ---
@@ -77,10 +77,13 @@ Key patterns:
77
77
  XMachines extends XState's `meta` field on each state node. This is where routing intent and view structure live:
78
78
 
79
79
  ```typescript
80
- import { typedSpec } from "@xmachines/play-view";
81
- import { setup } from "xstate";
80
+ import { typedSpec, type ViewMeta } from "@xmachines/play-view";
81
+ import { setup, types } from "xstate";
82
82
 
83
- const appMachine = setup({/* ... */}).createMachine({
83
+ const appMachine = setup({
84
+ // XState 6 types the `meta` of each state from this schema.
85
+ schemas: { meta: types<{ route?: string; view?: ViewMeta }>() },
86
+ }).createMachine({
84
87
  id: "app",
85
88
  initial: "home",
86
89
  states: {
@@ -123,11 +126,11 @@ const appMachine = setup({/* ... */}).createMachine({
123
126
 
124
127
  `meta.route` is a string path. When the machine enters a state, `actor.currentRoute` (a `ReadonlyAtom`) derives this path and emits it. The router bridge reads it and updates the URL.
125
128
 
126
- `meta.view` is a [`ViewMeta`](../api/@xmachines/play-view/index/interfaces/ViewMeta.md) — a `@xmachines/json-render-core` spec object describing what to render. The actor derives a [`PlaySpec`](../api/@xmachines/play-view/index/interfaces/PlaySpec.md) from it, and that derived spec is what a renderer receives. Use `typedSpec(...)` from [`@xmachines/play-view`](../api/@xmachines/play-view/README.md) to type-check the spec literal at the definition site (XState's `meta` is untyped). When the machine enters a state, `actor.currentView` is updated with the derived spec. The renderer reads it and projects it through framework components.
129
+ `meta.view` is a [`ViewMeta`](../api/@xmachines/play-view/index/interfaces/ViewMeta.md) — a `@xmachines/json-render-core` spec object describing what to render. The actor derives a [`PlaySpec`](../api/@xmachines/play-view/index/interfaces/PlaySpec.md) from it, and that derived spec is what a renderer receives. Use `typedSpec(...)` from [`@xmachines/play-view`](../api/@xmachines/play-view/README.md) to type-check the spec literal at the definition site. XState 6 types `meta` from `schemas.meta` of the machine, and a state cannot declare a `meta` that the schema does not name. When the machine enters a state, `actor.currentView` is updated with the derived spec. The renderer reads it and projects it through framework components.
127
130
 
128
131
  The machine's whole context is available to every view through the **`/context` projection**: the derived spec's `state` carries `context: <machine context>`. Specs read it with ordinary state expressions — `{ $state: "/context/username" }` in props, `visible` conditions, or `repeat.statePath`. The subtree is **read-only**: context changes only through machine events, and a `$bindState`/`setState` write under `/context` throws. URL data lives at its own paths (`/context/params/…`, `/context/query/…`, written into context by `formatPlayRouteTransitions`), so a URL param can never shadow a machine-owned field. When validating specs with tools like `validateSpec`, validate the **derived** view (`actor.currentView.get()`) — its `state` honestly describes the store contents — not the raw `meta.view`. A context change re-emits the view with the same `viewKey`; providers respond by refreshing `/context` in the live store, not by remounting the UI.
129
132
 
130
- **Give each state its own id, and do not use an array index as an id.** XState does not check that the ids of the states are unique, and a repeated id makes a `#id` target name two states. XMachines keys the route, the view and its store on the id of a state, so two states that share an id share one route entry, one store, and one key. An array index is a whole number from 0 to 2³² − 2 with no leading zero, such as `"42"`. JavaScript lists such a key first in every object that is keyed on ids, so the route of its state loses its place in the branch. [`@xmachines/play-xstate`](../api/@xmachines/play-xstate/README.md) writes one warning for each machine that breaks these rules.
133
+ **Give each state its own id, and do not use an array index as an id.** XState 6 throws when two states declare the same explicit id, because a repeated id makes a `#id` target name two states. XMachines keys the route, the view and its store on the id of a state, so two states that share an id share one route entry, one store, and one key. An array index is a whole number from 0 to 2³² − 2 with no leading zero, such as `"42"`. JavaScript lists such a key first in every object that is keyed on ids, so the route of its state loses its place in the branch. [`@xmachines/play-xstate`](../api/@xmachines/play-xstate/README.md) writes one warning for each machine that breaks these rules.
131
134
 
132
135
  **The machine is the single source of truth for both routing and views.** There is no separate route configuration file. There is no switch statement in a component deciding what to render based on the URL. The state machine encodes all of that.
133
136
 
@@ -137,7 +140,7 @@ Without outlets, the deepest active state that declares a view wins, and a view
137
140
 
138
141
  ```typescript
139
142
  import { typedSpec, type ViewMeta } from "@xmachines/play-view";
140
- import { setup } from "xstate";
143
+ import { setup, types } from "xstate";
141
144
 
142
145
  declare const menuView: ViewMeta, homeView: ViewMeta, searchView: ViewMeta; // your views
143
146
 
@@ -154,7 +157,9 @@ const shell = typedSpec({
154
157
  },
155
158
  });
156
159
 
157
- const appMachine = setup({/* ... */}).createMachine({
160
+ const appMachine = setup({
161
+ schemas: { meta: types<{ route?: string; view?: ViewMeta }>() },
162
+ }).createMachine({
158
163
  id: "app",
159
164
  type: "parallel",
160
165
  meta: { view: shell },
@@ -198,7 +203,7 @@ CAUTION: a second routed region moves without its URL. Take a `page` region with
198
203
  - A deep link to `/drawer/settings` moves the drawer too, but the actor derives the URL `/` from the `page` region, so the address bar does not keep the path of the drawer.
199
204
  - The navigation to `#search` puts the drawer back to `closed`, because the default `handler: "root"` exits and enters every region. `handler: "local"` keeps it.
200
205
 
201
- A URL path has one hierarchy, and it cannot hold the branches of two regions. Keep the other regions unrouted. When the position of such a region must survive a reload or a shared link, write it as a query value of the routed region, for example `/search?drawer=settings`. The generated `play.route` transition assigns the query to `context.query`, the URL carries `context.query`, and your machine moves the region to match the value.
206
+ A URL path has one hierarchy, and it cannot hold the branches of two regions. Keep the other regions unrouted. When the position of such a region must survive a reload or a shared link, write it as a query value of the routed region, for example `/search?drawer=settings`. The generated `play.route` transition writes the query to `context.query`, the URL carries `context.query`, and your machine moves the region to match the value.
202
207
 
203
208
  ---
204
209
 
@@ -211,10 +216,10 @@ For routing to work, the machine must respond to `play.route` events (sent by ro
211
216
  states: {
212
217
  home: {
213
218
  on: {
214
- "play.route": [
215
- { guard: ({ event }) => event.to === "#login", target: "login" },
216
- { guard: ({ event }) => event.to === "#dashboard", target: "dashboard" },
217
- ],
219
+ "play.route": ({ event }) => {
220
+ if (event.to === "#login") return { target: "login" };
221
+ if (event.to === "#dashboard") return { target: "dashboard" };
222
+ },
218
223
  },
219
224
  meta: { route: "/" },
220
225
  },
@@ -226,9 +231,11 @@ states: {
226
231
 
227
232
  ```typescript
228
233
  import { formatPlayRouteTransitions } from "@xmachines/play-xstate/routing";
229
- import { setup } from "xstate";
234
+ import { setup, types } from "xstate";
230
235
 
231
- const appMachine = setup({/* ... */}).createMachine(
236
+ const appMachine = setup({
237
+ schemas: { meta: types<{ route?: string }>() },
238
+ }).createMachine(
232
239
  formatPlayRouteTransitions({
233
240
  id: "app",
234
241
  initial: "home",
@@ -241,16 +248,19 @@ const appMachine = setup({/* ... */}).createMachine(
241
248
  );
242
249
  ```
243
250
 
244
- [`formatPlayRouteTransitions`](../api/@xmachines/play-xstate/with-routing/functions/formatPlayRouteTransitions.md) inspects all state nodes with a `meta.route` and generates the corresponding `play.route` guard transitions. The machine's context must include `params` and `query` fields (populated by the router bridge when params or query strings are present):
251
+ [`formatPlayRouteTransitions`](../api/@xmachines/play-xstate/with-routing/functions/formatPlayRouteTransitions.md) inspects all state nodes with a `meta.route` and generates the corresponding `play.route` transitions. Each one is a config object: `matches: { to: "#<id>" }` selects the event, and a `context` mapper returns the patch with the `params` and the `query` of the event. The machine's context must include `params` and `query` fields (populated by the router bridge when params or query strings are present), and the event map must declare `play.route`:
245
252
 
246
253
  ```typescript fragment
247
- types: {
248
- context: {} as {
254
+ schemas: {
255
+ context: types<{
249
256
  params: Record<string, string>;
250
257
  query: Record<string, string>;
251
258
  // ... other context fields
259
+ }>(),
260
+ events: {
261
+ "play.route": types<Omit<PlayRouteEvent, "type">>(),
262
+ // ... other events
252
263
  },
253
- events: {} as PlayRouteEvent | OtherEvents,
254
264
  }
255
265
  ```
256
266
 
@@ -258,61 +268,67 @@ types: {
258
268
 
259
269
  ## Guards — the actor's authority
260
270
 
261
- Guards are the mechanism by which the actor controls whether a transition occurs. They are pure functions of `{ context, event }` that return a boolean.
271
+ Guards are the mechanism by which the actor controls whether a transition occurs. In XState 6 the transition function is the guard: it returns nothing to refuse the event. A named guard of `setup()` is a pure predicate, and a transition function calls it through its `guards` argument:
262
272
 
263
273
  ```typescript
264
- import { setup } from "xstate";
274
+ import { setup, types } from "xstate";
265
275
 
266
- const authSetup = setup({
267
- types: {
268
- context: {} as { isAuthenticated: boolean; role: "user" | "admin" },
276
+ const authMachine = setup({
277
+ schemas: {
278
+ context: types<{ isAuthenticated: boolean; role: "user" | "admin" }>(),
279
+ events: { "admin.open": types<void>() },
269
280
  },
270
281
  guards: {
271
- isAuthenticated: ({ context }) => context.isAuthenticated,
272
- isAdmin: ({ context }) => context.role === "admin",
282
+ isAdmin: (role: "user" | "admin") => role === "admin",
283
+ },
284
+ }).createMachine({
285
+ context: { isAuthenticated: false, role: "user" },
286
+ initial: "home",
287
+ states: {
288
+ home: {
289
+ on: {
290
+ "admin.open": ({ context, guards }) =>
291
+ context.isAuthenticated && guards.isAdmin(context.role)
292
+ ? { target: "admin" }
293
+ : undefined,
294
+ },
295
+ },
296
+ admin: {},
273
297
  },
274
298
  });
275
299
  ```
276
300
 
277
- Guards are evaluated by XState before a transition fires. If the guard returns `false`, the transition does not occur — the machine stays in its current state and the `play.route` event is discarded. The router bridge then sees that `actor.currentRoute` has not changed and corrects the URL back to the current valid route.
301
+ XState evaluates the transition function before a transition fires. If the function returns nothing, the transition does not occur — the machine stays in its current state and the `play.route` event is discarded. The router bridge then sees that `actor.currentRoute` has not changed and corrects the URL back to the current valid route.
278
302
 
279
303
  This is the **Actor Authority** invariant in practice: the machine decides, infrastructure adjusts.
280
304
 
281
- Compose a condition with the combinators of XState:
282
-
283
- | Function | What it does |
284
- | --------------- | --------------------------- |
285
- | `and([g1, g2])` | AND — every guard must pass |
286
- | `or([g1, g2])` | OR — one guard must pass |
287
- | `not(g)` | NOT — it inverts the guard |
288
-
289
- Each combinator resolves a guard NAME against the `guards` of `setup()`, so a name that the map does not hold fails to compile.
305
+ XState 6 has no guard combinators. Combine conditions with `&&`, `||` and `!` inside the transition function. A guard name that the `guards` map does not hold fails to compile.
290
306
 
291
307
  ---
292
308
 
293
309
  ## Context — persistent state across transitions
294
310
 
295
- Context is the machine's persistent data store. It survives transitions and can be read and updated by actions:
311
+ Context is the machine's persistent data store. It survives transitions. A transition function and an entry or exit function read it, and they change it with a returned patch:
296
312
 
297
313
  ```typescript fragment
298
- // Context is defined in setup({ types })
299
- types: {
300
- context: {} as {
314
+ // Context is declared in setup({ schemas })
315
+ schemas: {
316
+ context: types<{
301
317
  isAuthenticated: boolean;
302
318
  username: string | null;
303
319
  loginAttempts: number;
304
- },
320
+ }>(),
305
321
  },
306
322
 
307
- // Actions mutate context via assign
308
- actions: {
309
- recordLoginFailure: assign({
310
- loginAttempts: ({ context }) => context.loginAttempts + 1,
323
+ // A transition function changes the context with a patch
324
+ on: {
325
+ "auth.failed": ({ context }) => ({
326
+ context: { loginAttempts: context.loginAttempts + 1 },
311
327
  }),
312
328
  },
313
329
  ```
314
330
 
315
- Context is accessed in guards, actions, and when computing routes or views. It is not directly observable from outside the actor via atoms — only the derived atoms (`state`, `currentRoute`, `currentView`) are public. If you need to expose a context field reactively, add a computed atom to the actor that derives from `actor.state`.
331
+ Context is accessed in transition functions, and when computing routes or views. It is not directly observable from outside the actor via atoms — only the derived atoms (`state`, `currentRoute`, `currentView`) are public. If you need to expose a context field reactively, add a computed atom to the actor that derives from `actor.state`.
316
332
 
317
333
  ---
318
334
 
@@ -368,5 +384,5 @@ The factory that [`definePlayer`](../api/@xmachines/play-xstate/index/functions/
368
384
  - [Views](views.md) — which state supplies the view, how a layout holds its pages, and when a renderer keeps the UI
369
385
  - [Routing Patterns](../examples/routing-patterns.md) — worked examples of `meta.route` and guards
370
386
  - [@xmachines/play-xstate](../api/@xmachines/play-xstate/README.md) — full API reference for [`definePlayer`](../api/@xmachines/play-xstate/index/functions/definePlayer.md), [`PlayerActor`](../api/@xmachines/play-xstate/index/classes/PlayerActor.md), and the routing utilities
371
- - [XState v5 documentation](https://stately.ai/docs/xstate) — upstream state machine library documentation
387
+ - [XState documentation](https://stately.ai/docs/xstate) — upstream state machine library documentation. The migration guide of XState 6 ships in the `docs` folder of the `xstate` package
372
388
  - [Play RFC](../rfc/play.md) — complete architectural specification
package/guides/views.md CHANGED
@@ -37,10 +37,12 @@ A machine and its specs therefore change never when you change the framework. Yo
37
37
  A `meta.view` is a [`ViewMeta`](../api/@xmachines/play-view/index/interfaces/ViewMeta.md). `root` names the first element, and `elements` holds every element by its key:
38
38
 
39
39
  ```ts
40
- import { setup } from "xstate";
41
- import { typedSpec } from "@xmachines/play-view";
40
+ import { setup, types } from "xstate";
41
+ import { typedSpec, type ViewMeta } from "@xmachines/play-view";
42
42
 
43
- const machine = setup({}).createMachine({
43
+ const machine = setup({
44
+ schemas: { meta: types<{ view?: ViewMeta }>() },
45
+ }).createMachine({
44
46
  id: "app",
45
47
  initial: "home",
46
48
  states: {
@@ -59,7 +61,7 @@ const machine = setup({}).createMachine({
59
61
  });
60
62
  ```
61
63
 
62
- XState types `meta` as `Record<string, unknown>`, so TypeScript checks nothing that you write there. `typedSpec` of [`@xmachines/play-view`](../api/@xmachines/play-view/README.md) gives the literal the type `ViewMeta` where you write it, and it does nothing at run time. The check of an excess property works on an inline literal only. For a spec in a variable, write `satisfies ViewMeta` at the literal.
64
+ XState 6 types `meta` from `schemas.meta` of the machine, and a state cannot declare a `meta` that the schema does not name. Declare `view?: ViewMeta` there. `typedSpec` of [`@xmachines/play-view`](../api/@xmachines/play-view/README.md) gives the literal the type `ViewMeta` where you write it, and it does nothing at run time. The check of an excess property works on an inline literal only. For a spec in a variable, write `satisfies ViewMeta` at the literal.
63
65
 
64
66
  A `ViewMeta` is what you WRITE. A [`PlaySpec`](../api/@xmachines/play-view/index/interfaces/PlaySpec.md) is what the actor DERIVES from it, and what a renderer receives. The derivation consumes `outlets`, it adds the machine context, and it stamps `viewKey` and `viewParts`.
65
67
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xmachines/docs",
3
- "version": "7.0.0",
3
+ "version": "8.0.0-next.1",
4
4
  "description": "Documentation for XMachines",
5
5
  "keywords": [
6
6
  "documentation",
package/rfc/git.md CHANGED
@@ -25,10 +25,10 @@ Git is optional.
25
25
 
26
26
  ## 2. Model
27
27
 
28
- - machines = orphan branches
29
- - runs = forks
30
- - events = commits
31
- - snapshots = commits
28
+ - machines = orphan branches (the definition is `machine.json`)
29
+ - runs = forks (the fork commit adds `run.json`)
30
+ - event batches = commits (one commit per appended batch, as `events.ndjson`)
31
+ - snapshots = commits (`snapshot.json`)
32
32
 
33
33
  History is append-only.
34
34
 
@@ -37,7 +37,15 @@ History is append-only.
37
37
  ## 3. Identity
38
38
 
39
39
  - commit hashes are canonical IDs
40
- - same algorithm used with or without Git
40
+ - IDs are Git object IDs in the **SHA-1** object format; SHA-256 repositories are
41
+ out of scope
42
+ - IDs hash the **exact bytes** of each file: JSON is written as
43
+ `JSON.stringify(value, null, 2)` and a final newline, and `events.ndjson` has one
44
+ `JSON.stringify(event)` line per event
45
+ - key order is kept: it is part of a machine definition (the order of `states` is
46
+ XState's document order), so a definition with reordered keys is another machine
47
+ with another ID
48
+ - same algorithm used with or without Git: the same value gives the same ID
41
49
 
42
50
  ---
43
51
 
package/rfc/play.md CHANGED
@@ -11,7 +11,7 @@
11
11
 
12
12
  This RFC defines the **Universal Player Architecture** and its reference implementation. The architecture establishes a design pattern that strictly separates **Business Logic (The Actor)** from **Infrastructure (The Runtime Adapter and View)**.
13
13
 
14
- The reference implementation provides a modular monorepo that satisfies the architectural constraints of **Runtime Agnosticism** and **Logic-Driven Guarding**. It leverages **atoms** to glue a specific **State Engine (XState v5)** to multiple **Runtime Adapters** (TanStack Router, React Router, Vue Router, SolidJS Router) and **View Layers** (React, Vue, SolidJS, Vanilla DOM — all via JSON-Render), while ensuring that **business logic remains the single source of truth** for navigation, state, and UI structure.
14
+ The reference implementation provides a modular monorepo that satisfies the architectural constraints of **Runtime Agnosticism** and **Logic-Driven Guarding**. It leverages **atoms** to glue a specific **State Engine (XState v6)** to multiple **Runtime Adapters** (TanStack Router, React Router, Vue Router, SolidJS Router) and **View Layers** (React, Vue, SolidJS, Vanilla DOM — all via JSON-Render), while ensuring that **business logic remains the single source of truth** for navigation, state, and UI structure.
15
15
 
16
16
  ---
17
17
 
@@ -162,7 +162,6 @@ The base class requires only two abstract members: **reactive state** and **type
162
162
  **Design Rationale:** The RFC declared an abstract `AbstractActor` CLASS that extended `Actor` of `xstate`, and it declared both capability interfaces in this package. The implementation made the contract an INTERFACE, `PlayActor`, because the class carried no implementation: both of its members were abstract, and its whole effect was to force the inheritance of XState on every consumer of the contract. [`@xmachines/play-actor`](../api/@xmachines/play-actor/README.md) names `xstate` nowhere now. The implementation also moved each capability interface to the package that holds its shared machinery: `Routable` is in [`@xmachines/play-router`](../api/@xmachines/play-router/README.md), beside the bridge that reads it, and `Viewable` and `PlaySpec` are in [`@xmachines/play-view`](../api/@xmachines/play-view/README.md), beside the view store lifecycle. A consumer who needs no routing and no view therefore installs neither package, and [`@xmachines/play-actor`](../api/@xmachines/play-actor/README.md) names the capability packages nowhere. The shape of each interface is unchanged.
163
163
 
164
164
  ```ts
165
- import { Actor, type AnyActorLogic, type EventObject } from "xstate";
166
165
  import type {
167
166
  AnyAtom,
168
167
  Atom,
@@ -215,16 +214,18 @@ export interface Viewable {
215
214
  readonly currentView: ReadonlyAtom<PlaySpec | null>;
216
215
  }
217
216
 
218
- // The Base Protocol — minimal contract
219
- export abstract class PlayActor<
220
- TLogic extends AnyActorLogic,
221
- TEvent extends EventObject = EventObject,
222
- > extends Actor<TLogic> {
217
+ // The Base Protocol — minimal contract. An INTERFACE, which names no state machine
218
+ // library. The RFC declared an abstract class that extended `Actor` of XState.
219
+ export interface ActorEvent {
220
+ readonly type: string;
221
+ }
222
+
223
+ export interface PlayActor<TSnapshot = unknown, TEvent extends ActorEvent = ActorEvent> {
223
224
  // Reactive Output (Snapshot)
224
- public abstract state: Atom<unknown>;
225
+ readonly state: Atom<TSnapshot>;
225
226
 
226
227
  // Input Channel (typed for specific event shapes)
227
- public abstract override send(event: TEvent): void;
228
+ send(event: TEvent): void;
228
229
  }
229
230
  ```
230
231
 
@@ -238,9 +239,9 @@ export abstract class PlayActor<
238
239
 
239
240
  #### 5.2.1 `@xmachines/play-xstate`
240
241
 
241
- **Role:** Concrete Logic Adapter (XState v5)
242
+ **Role:** Concrete Logic Adapter (XState v6)
242
243
 
243
- Wraps XState v5 to satisfy the `PlayActor` contract. Provides the primary API for creating actors from state machine definitions.
244
+ Wraps XState v6 to satisfy the `PlayActor` contract. Provides the primary API for creating actors from state machine definitions.
244
245
 
245
246
  **Primary Exports:**
246
247
 
@@ -258,7 +259,7 @@ Wraps XState v5 to satisfy the `PlayActor` contract. Provides the primary API fo
258
259
  - Compose the view of a parent state that declares `outlets` with the views of its active substates, so the state tree decides the layout
259
260
  - Manage atom lifecycle (create on start, dispose on stop)
260
261
  - Support snapshot restore for resumable sessions
261
- - Provide XState DevTools compatibility
262
+ - Keep the inspection of XState: the `inspect` option of the factory goes to `createActor` without a change
262
263
 
263
264
  ```ts fragment
264
265
  import type { AnyStateMachine, InputFrom } from "xstate";
@@ -278,8 +279,8 @@ const definePlayer = <TMachine extends AnyStateMachine>(
278
279
  // PlayerActor carries the core protocol alone. It extends the actor class of XState
279
280
  // directly, and `PlayActor` is a contract that it implements.
280
281
  class PlayerActor<TMachine extends AnyStateMachine>
281
- extends Actor<AnyActorLogic>
282
- implements PlayActor<SnapshotFrom<TMachine>, EventFromLogic<TMachine>>
282
+ extends Actor<TMachine>
283
+ implements PlayActor<SnapshotFrom<TMachine>, SendableEventFromLogic<TMachine>>
283
284
  {
284
285
  public state: Atom<SnapshotFrom<TMachine>>;
285
286
  }
@@ -303,7 +304,7 @@ Provides the complete routing infrastructure: route extraction from state machin
303
304
 
304
305
  **Design Rationale:** The RFC put the whole of the routing in one package. The implementation split it at two boundaries, because a consumer paid for both halves and used one:
305
306
 
306
- - [`@xmachines/play-router/xstate`](../api/@xmachines/play-router/README.md) holds the machine half — `extractMachineRoutes`, `createRouteMap`, `machineToGraph`, and the queries over a route tree. That half alone needs `xstate` and `@statelyai/graph`.
307
+ - [`@xmachines/play-router/xstate`](../api/@xmachines/play-router/README.md) holds the machine half — `extractMachineRoutes`, `createRouteMap`, `machineToGraph`, and the queries over a route tree. That half alone needs `xstate`.
307
308
  - [`@xmachines/play-pattern`](../api/@xmachines/play-pattern/README.md) holds the pattern LANGUAGE — one parse of the URLPattern pathname grammar, and the path that `buildPath` writes back from it. A parse is string work, so the package carries no URLPattern API and no polyfill. BOTH directions of the routing read it: the match of [`@xmachines/play-router`](../api/@xmachines/play-router/README.md) reads the parse, and the routing capability of [`@xmachines/play-xstate`](../api/@xmachines/play-xstate/README.md) reads the same parse to build a URL, so that package installs no matching machinery.
308
309
  - [`@xmachines/play-url`](../api/@xmachines/play-url/README.md) holds the URL LAYER — the URLPattern API with its polyfill, a base path, a location splitter, and the params of a framework router. It reads [`@xmachines/play-pattern`](../api/@xmachines/play-pattern/README.md) for the language and re-exports it whole. It knows no machine and no bridge.
309
310
  - [`@xmachines/play-router`](../api/@xmachines/play-router/README.md) keeps the route map, the match of a location, `RouterBridgeBase`, the provider lifecycle, and the `Routable` capability. It names no state machine.
@@ -458,13 +459,16 @@ export const catalog = defineCatalog(schema, {
458
459
  Defines **Logic**. No framework code. No routing library imports.
459
460
 
460
461
  ```ts
461
- import { setup } from "xstate";
462
+ import { setup, types } from "xstate";
462
463
  import { compose, definePlayer, PlayerActor } from "@xmachines/play-xstate";
463
464
  import { withRouting } from "@xmachines/play-xstate/routing";
464
465
  import { withView } from "@xmachines/play-xstate/view";
465
- import { typedSpec } from "@xmachines/play-view";
466
+ import { typedSpec, type ViewMeta } from "@xmachines/play-view";
466
467
 
467
- export const machine = setup({/* types, guards, actions */}).createMachine({
468
+ export const machine = setup({
469
+ // the schemas of the context and the events, guards, actions
470
+ schemas: { meta: types<{ route?: string; view?: ViewMeta }>() },
471
+ }).createMachine({
468
472
  id: "dashboard",
469
473
  initial: "overview",
470
474
  states: {
package/rfc/run.md CHANGED
@@ -42,9 +42,12 @@ Properties:
42
42
  ### 2.3 Run Identity
43
43
 
44
44
  - Run IDs are **opaque and hash-like**
45
- - The algorithm is **Git OID–compatible**
46
- - With Git enabled: run ID **is** a commit hash
47
- - Without Git: the same algorithm is used
45
+ - The algorithm is **Git's object ID**, in the **SHA-1** object format
46
+ - A run ID is the hash of the run's **fork commit**: its parent is the machine's
47
+ commit, its tree holds `machine.json` and `run.json` (the run's name and input),
48
+ and its author time is the time of the fork (see [Git](git.md), Identity)
49
+ - With Git enabled: run ID **is** that commit hash
50
+ - Without Git: the same algorithm is used, so the ID is the same
48
51
 
49
52
  Run IDs never change and never require migration.
50
53
 
@@ -152,7 +155,7 @@ a run is deterministic.
152
155
  1. Events are the only mutation mechanism
153
156
  2. Snapshots are read-only externally
154
157
  3. History is immutable
155
- 4. IDs are Git OID–compatible
158
+ 4. IDs are Git object IDs (SHA-1)
156
159
 
157
160
  ---
158
161