@typeonce/ritmo 0.6.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. package/README.md +2 -0
  2. package/dist/Brand.d.ts +9 -4
  3. package/dist/Brand.d.ts.map +1 -1
  4. package/dist/Brand.js +9 -4
  5. package/dist/Brand.js.map +1 -1
  6. package/dist/Clock.d.ts +186 -0
  7. package/dist/Clock.d.ts.map +1 -0
  8. package/dist/Clock.js +111 -0
  9. package/dist/Clock.js.map +1 -0
  10. package/dist/Command.d.ts +250 -41
  11. package/dist/Command.d.ts.map +1 -1
  12. package/dist/Command.js +59 -23
  13. package/dist/Command.js.map +1 -1
  14. package/dist/Condition.d.ts +12 -1
  15. package/dist/Condition.d.ts.map +1 -1
  16. package/dist/Condition.js.map +1 -1
  17. package/dist/Debug.d.ts +163 -15
  18. package/dist/Debug.d.ts.map +1 -1
  19. package/dist/Debug.js.map +1 -1
  20. package/dist/Decode.d.ts +1 -1
  21. package/dist/Decode.js +1 -1
  22. package/dist/Descriptor.d.ts +67 -24
  23. package/dist/Descriptor.d.ts.map +1 -1
  24. package/dist/Descriptor.js +32 -15
  25. package/dist/Descriptor.js.map +1 -1
  26. package/dist/Entity.d.ts +22 -5
  27. package/dist/Entity.d.ts.map +1 -1
  28. package/dist/Entity.js +2 -2
  29. package/dist/Entity.js.map +1 -1
  30. package/dist/EntityScope.d.ts +26 -1
  31. package/dist/EntityScope.d.ts.map +1 -1
  32. package/dist/EntityScope.js +14 -2
  33. package/dist/EntityScope.js.map +1 -1
  34. package/dist/HostClock.d.ts +49 -0
  35. package/dist/HostClock.d.ts.map +1 -0
  36. package/dist/HostClock.js +46 -0
  37. package/dist/HostClock.js.map +1 -0
  38. package/dist/Inspector.d.ts +7 -1
  39. package/dist/Inspector.d.ts.map +1 -1
  40. package/dist/Inspector.js.map +1 -1
  41. package/dist/Machine.d.ts +67 -36
  42. package/dist/Machine.d.ts.map +1 -1
  43. package/dist/Machine.js +10 -3
  44. package/dist/Machine.js.map +1 -1
  45. package/dist/Query.d.ts +74 -26
  46. package/dist/Query.d.ts.map +1 -1
  47. package/dist/Query.js +32 -28
  48. package/dist/Query.js.map +1 -1
  49. package/dist/Runtime.d.ts +39 -16
  50. package/dist/Runtime.d.ts.map +1 -1
  51. package/dist/Runtime.js +556 -87
  52. package/dist/Runtime.js.map +1 -1
  53. package/dist/Schedule.d.ts +217 -10
  54. package/dist/Schedule.d.ts.map +1 -1
  55. package/dist/Schedule.js +5 -0
  56. package/dist/Schedule.js.map +1 -1
  57. package/dist/Schema.d.ts +196 -44
  58. package/dist/Schema.d.ts.map +1 -1
  59. package/dist/Schema.js +29 -11
  60. package/dist/Schema.js.map +1 -1
  61. package/dist/Snapshot.d.ts +14 -0
  62. package/dist/Snapshot.d.ts.map +1 -1
  63. package/dist/Snapshot.js.map +1 -1
  64. package/dist/System.d.ts +212 -58
  65. package/dist/System.d.ts.map +1 -1
  66. package/dist/System.js +84 -6
  67. package/dist/System.js.map +1 -1
  68. package/dist/index.d.ts +8 -7
  69. package/dist/index.d.ts.map +1 -1
  70. package/dist/index.js +8 -7
  71. package/dist/index.js.map +1 -1
  72. package/dist/internal/cells.d.ts +3 -3
  73. package/dist/internal/cells.d.ts.map +1 -1
  74. package/dist/internal/cells.js +9 -11
  75. package/dist/internal/cells.js.map +1 -1
  76. package/dist/internal/debug.d.ts +13 -0
  77. package/dist/internal/debug.d.ts.map +1 -1
  78. package/dist/internal/debug.js +192 -7
  79. package/dist/internal/debug.js.map +1 -1
  80. package/dist/internal/equal.d.ts +8 -0
  81. package/dist/internal/equal.d.ts.map +1 -0
  82. package/dist/internal/equal.js +38 -0
  83. package/dist/internal/equal.js.map +1 -0
  84. package/dist/internal/fragments.d.ts.map +1 -1
  85. package/dist/internal/fragments.js +11 -1
  86. package/dist/internal/fragments.js.map +1 -1
  87. package/dist/internal/game.d.ts.map +1 -1
  88. package/dist/internal/game.js +41 -6
  89. package/dist/internal/game.js.map +1 -1
  90. package/dist/internal/order.d.ts +10 -0
  91. package/dist/internal/order.d.ts.map +1 -0
  92. package/dist/internal/order.js +122 -0
  93. package/dist/internal/order.js.map +1 -0
  94. package/dist/internal/queries.d.ts.map +1 -1
  95. package/dist/internal/queries.js +32 -10
  96. package/dist/internal/queries.js.map +1 -1
  97. package/dist/internal/requirements.d.ts +26 -0
  98. package/dist/internal/requirements.d.ts.map +1 -0
  99. package/dist/internal/requirements.js +46 -0
  100. package/dist/internal/requirements.js.map +1 -0
  101. package/package.json +1 -1
  102. package/src/Brand.ts +9 -4
  103. package/src/Clock.ts +311 -0
  104. package/src/Command.ts +407 -89
  105. package/src/Condition.ts +17 -1
  106. package/src/Debug.ts +172 -14
  107. package/src/Decode.ts +1 -1
  108. package/src/Descriptor.ts +92 -37
  109. package/src/Entity.ts +24 -5
  110. package/src/EntityScope.ts +27 -2
  111. package/src/HostClock.ts +64 -0
  112. package/src/Inspector.ts +7 -2
  113. package/src/Machine.ts +81 -37
  114. package/src/Query.ts +110 -38
  115. package/src/Runtime.ts +607 -111
  116. package/src/Schedule.ts +380 -13
  117. package/src/Schema.ts +249 -63
  118. package/src/Snapshot.ts +4 -0
  119. package/src/System.ts +248 -93
  120. package/src/index.ts +8 -7
  121. package/src/internal/cells.ts +10 -12
  122. package/src/internal/debug.ts +208 -12
  123. package/src/internal/equal.ts +31 -0
  124. package/src/internal/fragments.ts +12 -2
  125. package/src/internal/game.ts +61 -7
  126. package/src/internal/order.ts +144 -0
  127. package/src/internal/queries.ts +37 -13
  128. package/src/internal/requirements.ts +71 -0
  129. package/dist/Definition.d.ts +0 -99
  130. package/dist/Definition.d.ts.map +0 -1
  131. package/dist/Definition.js +0 -68
  132. package/dist/Definition.js.map +0 -1
  133. package/dist/Feature.d.ts +0 -106
  134. package/dist/Feature.d.ts.map +0 -1
  135. package/dist/Feature.js +0 -87
  136. package/dist/Feature.js.map +0 -1
  137. package/dist/Fx.d.ts +0 -128
  138. package/dist/Fx.d.ts.map +0 -1
  139. package/dist/Fx.js +0 -112
  140. package/dist/Fx.js.map +0 -1
  141. package/dist/internal/definition.d.ts +0 -17
  142. package/dist/internal/definition.d.ts.map +0 -1
  143. package/dist/internal/definition.js +0 -25
  144. package/dist/internal/definition.js.map +0 -1
  145. package/src/Definition.ts +0 -106
  146. package/src/Feature.ts +0 -241
  147. package/src/Fx.ts +0 -176
  148. package/src/internal/definition.ts +0 -56
@@ -1 +1 @@
1
- {"version":3,"file":"Schedule.d.ts","sourceRoot":"","sources":["../src/Schedule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Schedule.d.ts","sourceRoot":"","sources":["../src/Schedule.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,4BAA4B,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AACzF,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,KAAK,EAAE,SAAS,IAAI,eAAe,EAAE,gBAAgB,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAE1G,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAA;CAC/B;AAED,MAAM,WAAW,yBAAyB,CACxC,GAAG,CAAC,MAAM,SAAS,0BAA0B,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS,GAAG,SAAS,EACnG,GAAG,CAAC,IAAI,GAAG,OAAO;IAElB,QAAQ,CAAC,IAAI,EAAE,uBAAuB,CAAA;IACtC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,YAAY,CAAC,EAAE,IAAI,GAAG,SAAS,CAAA;CACzC;AAED,MAAM,MAAM,kBAAkB,GAC1B,iBAAiB,GACjB,yBAAyB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;AAEvC,KAAK,SAAS,GAAG,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;AAE1D,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,kBAAkB,CAAA;AAEzD;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,aAAa,CAC5B,GAAG,CAAC,OAAO,SAAS,aAAa,CAAC,OAAO,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,EACnE,GAAG,CAAC,KAAK,SAAS,OAAO,GAAG,KAAK;IAEjC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;CACtB;AAED,6EAA6E;AAC7E,MAAM,MAAM,gBAAgB,GAAG,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAA;AAE7E;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,iBAAiB,CAAA;IAC/C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,wEAAwE;IACxE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,2BAA2B;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED,gFAAgF;AAChF,MAAM,MAAM,iBAAiB,GAC3B,iOAAiO,CAAA;AAEnO,8EAA8E;AAC9E,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,KAAK,CAAA;AAEjD,KAAK,gBAAgB,CAAC,IAAI,IACxB,IAAI,SAAS;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,SAAS,CAAA;CAAE,GAC/E,MAAM,CAAC,MAAM,MAAM,CAAC,GAAG,SAAS,CAAC,MAAM,SAAS,CAAC,GACjD,KAAK,CAAA;AAEX,KAAK,eAAe,CAAC,IAAI,IACvB,IAAI,SAAS;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,MAAM,OAAO,CAAC,GAAG,KAAK,CAAA;AAEnF,KAAK,YAAY,CAAC,KAAK,IACrB,SAAS,SAAS,MAAM,KAAK,GACzB,KAAK,SAAS;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,MAAM,KAAK,SAAS,gBAAgB,CAAA;CAAE,GAAG,KAAK,GAAG,KAAK,GACvG,KAAK,CAAA;AAEX,uGAAuG;AACvG,KAAK,OAAO,CAAC,KAAK,IAChB,KAAK,SAAS;IAAE,QAAQ,CAAC,IAAI,EAAE,uBAAuB,CAAC;IAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,MAAM,CAAA;CAAE,GACpF,YAAY,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,GACjC,YAAY,CAAC,KAAK,CAAC,CAAA;AAEzB;;;GAGG;AACH,KAAK,aAAa,CAAC,KAAK,IACtB,KAAK,SAAS,SAAS,GACnB,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,SAAS,IAAI,GAAG,IAAI,GACzC,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,KAAK,GACtH,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,SAAS,MAAM,KAAK,GACzC,OAAO,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,GAAG,IAAI,GACrE,IAAI,CAAA;AAEZ,oFAAoF;AACpF,KAAK,QAAQ,CAAC,OAAO,SAAS,aAAa,CAAC,OAAO,CAAC,IAClD,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,SAAS,MAAM,KAAK,GAC9C,SAAS,SAAS,KAAK,GAAG,OAAO,GAAG,KAAK,SAAS,KAAK,GAAG,IAAI,GAAG,KAAK,GACtE,KAAK,CAAA;AAEX,sDAAsD;AACtD,MAAM,MAAM,gBAAgB,CAAC,OAAO,SAAS,aAAa,CAAC,OAAO,CAAC,IAAI,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAA;AAQhH,iCAAiC;AACjC,UAAU,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM;IAClC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;IACnB,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAA;IACjB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB;AAED;;;;GAIG;AACH,UAAU,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM;IAC/C,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;IACnB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB;AAED,KAAK,cAAc,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,IAAI,CAAA;CAAE,GAAG,IAAI,GAAG,KAAK,CAAA;AAE/E,KAAK,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,IAAI,SAAS,MAAM,CAAA;CAAE,GAAG,IAAI,GAAG,KAAK,CAAA;AAErF,KAAK,aAAa,CAAC,MAAM,IAAI,MAAM,SAAS;IAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;CAAE,GAAG,CAAC,GAAG,KAAK,CAAA;AAExF,gGAAgG;AAChG,KAAK,SAAS,CAAC,KAAK,IAClB,KAAK,SAAS,SAAS,GAAG,KAAK,GAC7B,OAAO,CAAC,KAAK,CAAC,SAAS,MAAM,KAAK,SAAS,gBAAgB,GACzD,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,GACrE,KAAK,CAAA;AAEX,KAAK,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,IAC9B,CAAC,SAAS;IAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,SAAS,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,IAAI,SAAS,aAAa,CAAC,OAAO,CAAC,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,OAAO,SAAS,aAAa,CAAC,OAAO,CAAC,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,OAAO,SAAS,aAAa,CAAC,OAAO,CAAC,CAAA;CAAE,GACvO,SAAS,CACP,IAAI,EACJ,KAAK,CAAC;IAAE,QAAQ,EAAE,CAAC,IAAI,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,CAAC,GAAG,KAAK;CAAE,CAAC,MAAM,SAAS,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAC9K,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAClH,MAAM,CACP,GACD,KAAK,CAAA;AAEX,KAAK,WAAW,CAAC,GAAG,IAClB,GAAG,SAAS,SAAS,GACjB,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,SAAS,IAAI,GAAG,KAAK,GAEtC,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,SAAS,MAAM,MAAM,GACpE,MAAM,SAAS;IAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,SAAS;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAC/E,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,GACnD,KAAK,GACP,KAAK,CAAC,GACR,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,OAAO,CAAA;CAAE,GACtD;IAAE,QAAQ,EAAE,CAAC,IAAI,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,QAAQ,GAAG,WAAW,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK;CAAE,CAAC,MAAM,OAAO,CAAC,GAC/H,KAAK,CAAC,GACZ,KAAK,CAAA;AAEX,mFAAmF;AACnF,KAAK,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,IACvC,OAAO,SAAS,SAAS,GACrB,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,SAAS,IAAI,GAAG,KAAK,GAC5C,OAAO,CAAC,MAAM,CAAC,SAAS,MAAM,GAAG,KAAK,GACtC,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAA;KAAE,CAAA;CAAE,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GACxJ,KAAK,GACL,OAAO,CAAC,MAAM,CAAC,GACnB,KAAK,CAAA;AAEX;;;;GAIG;AACH,KAAK,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,IAC1C,YAAY,CAAC,QAAQ,CAAC,SAAS,SAAS,CAAC,MAAM,MAAM,EAAE,MAAM,OAAO,CAAC,GACjE,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GACvC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,KAAK,GAC9B,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,KAAK,GAC5D,IAAI,GACN,KAAK,CAAA;AAEX,wHAAwH;AACxH,KAAK,YAAY,CAAC,QAAQ,IACxB,QAAQ,SAAS;IAAE,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,SAAS,CAAC,MAAM,MAAM,EAAE,MAAM,OAAO,EAAE,MAAM,OAAO,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAA;CAAE,GAChI,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC,GAClD,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;AAE7B,0GAA0G;AAC1G,KAAK,gBAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,IACpD,OAAO,SAAS,SAAS,GACrB,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,SAAS,IAAI,GAAG,KAAK,GAC5C,OAAO,CAAC,MAAM,CAAC,SAAS,MAAM,GAAG,KAAK,GACtC,OAAO,CAAC,MAAM,CAAC,SAAS;IAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,QAAQ,CAAA;CAAE,GAC3D,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,KAAK,GAC/E,KAAK,GACT,KAAK,CAAA;AAEX,KAAK,UAAU,CAAC,OAAO,EAAE,CAAC,IACxB,CAAC,SAAS,SAAS,CAAC,GAAG,EAAE,MAAM,QAAQ,EAAE,MAAM,KAAK,EAAE,MAAM,MAAM,CAAC,GAAG,gBAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,GACtH,CAAC,SAAS,QAAQ,CAAC,MAAM,IAAI,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,CAAC,GAAG,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,GAC/F,KAAK,CAAA;AAET;;;;GAIG;AACH,KAAK,SAAS,CAAC,OAAO,SAAS,aAAa,CAAC,OAAO,CAAC,EAAE,OAAO,SAAS,OAAO,IAC5E,OAAO,SAAS,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,KAAK,CAAA;AAElE,KAAK,YAAY,CAAC,OAAO,SAAS,aAAa,CAAC,OAAO,CAAC,EAAE,OAAO,SAAS,OAAO,IAC/E,MAAM,SAAS,OAAO,CAAC,QAAQ,CAAC,GAC5B,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,iBAAiB,GACrD,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,SAAS,MAAM,KAAK,GAC/C,KAAK,SAAS,gBAAgB,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK,GACpF,KAAK,CAAA;AAEb,KAAK,YAAY,CAAC,KAAK,IAAI,KAAK,SAAS,SAAS,GAAG,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;AAE3E,KAAK,aAAa,CAAC,KAAK,IACtB,KAAK,SAAS,SAAS,GAAG,KAAK,GAC7B,OAAO,CAAC,KAAK,CAAC,SAAS,MAAM,KAAK,SAAS,gBAAgB,GACzD,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,GAClD,KAAK,CAAA;AAEX,KAAK,OAAO,CAAC,MAAM,SAAS,MAAM,EAAE,GAAG,SAAS,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,IACjE,GAAG,CAAC,QAAQ,CAAC,SAAS,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,OAAO,CAAC,CAAC,CAAA;AAEzE,2FAA2F;AAC3F,KAAK,OAAO,CAAC,KAAK,IAChB,SAAS,CAAC,KAAK,CAAC,SAAS,MAAM,GAAG,GAC9B,GAAG,SAAS,SAAS,GAAG,CAAC,MAAM,SAAS,GAAG,CAAC,MAAM,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,GAClF,KAAK,CAAA;AAEX,+DAA+D;AAC/D,KAAK,aAAa,CAAC,OAAO,SAAS,aAAa,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI;IACnE,QAAQ,EAAE,CAAC,IAAI,MAAM,OAAO,GAAG,MAAM,SAAS,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;CAC9E,CAAC,MAAM,CAAC,SAAS,MAAM,KAAK,GACzB,KAAK,SAAS,GAAG,MAAM,CAAC,SAAS,MAAM,EAAE,GAAG,CAAC,GAAG,KAAK,GACrD,KAAK,CAAA;AAET,KAAK,eAAe,CAAC,CAAC,EAAE,MAAM,IAC5B,MAAM,SAAS,MAAM,GACjB,CAAC,SAAS,SAAS,CAAC,MAAM,IAAI,SAAS,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,MAAM,SAAS,MAAM,CAAC,GACnF,GAAG,MAAM,yBAAyB,MAAM,6BAA6B,IAAI,wBAAwB,MAAM,UAAU,MAAM,6CAA6C,MAAM,qBAAqB,IAAI,mBAAmB,GACtN,CAAC,SAAS,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,MAAM,MAAM,SAAS,MAAM,CAAC,GAC5E,GAAG,MAAM,UAAU,GAAG,mCAAmC,MAAM,wBAAwB,MAAM,WAAW,MAAM,aAAa,GAAG,mBAAmB,GACjJ,KAAK,GACT,KAAK,CAAA;AAEX,KAAK,oBAAoB,CAAC,CAAC,EAAE,MAAM,IACjC,MAAM,SAAS,MAAM,GACjB,CAAC,SAAS,SAAS,CAAC,MAAM,IAAI,SAAS,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,MAAM,SAAS,MAAM,CAAC,GACnF,GAAG,MAAM,2CAA2C,IAAI,SAAS,MAAM,4FAA4F,MAAM,EAAE,GAC3K,KAAK,GACP,KAAK,CAAA;AAEX,6GAA6G;AAC7G,KAAK,WAAW,CAAC,OAAO,EAAE,CAAC,EAAE,MAAM,SAAS,MAAM,IAEhD,OAAO,SAAS,aAAa,CAAC,OAAO,CAAC,GAAG,aAAa,CAAC,OAAO,EAAE,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,GAAG,KAAK,CAAA;AAEpH,KAAK,aAAa,CAAC,OAAO,SAAS,aAAa,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,SAAS,MAAM,IACxF,KAAK,SAAS,MAAM,GAChB,OAAO,SAAS,SAAS,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,IAAI,CAAC,GACjE,eAAe,CAAC,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAC1D,WAAW,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,GAC3C,KAAK,GACP,KAAK,CAAA;AAEX;;;;GAIG;AACH,KAAK,OAAO,CAAC,OAAO,EAAE,MAAM,IAC1B,OAAO,SAAS,aAAa,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC,OAAO,EAAE,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,GAAG,KAAK,CAAA;AAE7G,KAAK,SAAS,CAAC,OAAO,SAAS,aAAa,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,IAClE,KAAK,SAAS,MAAM,GAChB,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,SAAS,SAAS,CAAC,MAAM,KAAK,EAAE,MAAM,OAAO,CAAC,GAChF,OAAO,SAAS,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,GAC3C,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,SAAS,SAAS,CAAC,MAAM,KAAK,EAAE,MAAM,YAAY,CAAC,GACpF,SAAS,CAAC,KAAK,GAAG,KAAK,EAAE,YAAY,CAAC,GACtC,KAAK,GACT,KAAK,GACP,KAAK,CAAA;AAEX;;;GAGG;AACH,KAAK,UAAU,CAAC,OAAO,SAAS,aAAa,CAAC,OAAO,CAAC,EAAE,KAAK,SAAS,aAAa,CAAC,OAAO,CAAC,EAAE,GAAG,GAAG,KAAK,IACvG,KAAK,SAAS,SAAS,CAAC,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,GAC3C,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,MAAM,IAAI,GACxC,IAAI,SAAS,iBAAiB,GAAG,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,GACnD,IAAI,SAAS,SAAS,GAAG,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC,GAC9D,IAAI,SAAS;IAAE,QAAQ,CAAC,IAAI,EAAE,uBAAuB,CAAA;CAAE,GACrD,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,SAAS,SAAS,CAAC,MAAM,KAAK,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,GAAG,KAAK,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,GAC1H,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,SAAS,SAAS,CAAC,MAAM,KAAK,EAAE,MAAM,OAAO,CAAC,GAC5E,OAAO,SAAS,IAAI,GAAG,SAAS,CAAC,GAAG,GAAG,KAAK,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,GAAG,KAAK,CAAC,GAC5F,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,GACpC,KAAK,GACP,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;AAE3B,sHAAsH;AACtH,KAAK,YAAY,CAAC,EAAE,EAAE,MAAM,IAC1B,EAAE,SAAS,SAAS,GAAG,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,GAC5C,EAAE,SAAS;IAAE,QAAQ,CAAC,IAAI,EAAE,uBAAuB,CAAA;CAAE,GACnD,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,SAAS,SAAS,CAAC,MAAM,KAAK,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,GACxH,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAA;AAExC,kHAAkH;AAClH,KAAK,WAAW,CAAC,OAAO,EAAE,GAAG,GAAG,KAAK,IACnC,OAAO,SAAS,SAAS,CAAC,GAAG,MAAM,IAAI,EAAE,MAAM,IAAI,CAAC,GAChD,IAAI,SAAS,iBAAiB,GAAG,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,GACnD,IAAI,SAAS,SAAS,GAAG,WAAW,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC,GACtD,IAAI,SAAS;IAAE,QAAQ,CAAC,IAAI,EAAE,uBAAuB,CAAA;CAAE,GAErD,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,SAAS,SAAS,CAAC,MAAM,KAAK,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,GAAG,KAAK,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,GAC1H,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,SAAS,SAAS,CAAC,MAAM,KAAK,EAAE,MAAM,OAAO,CAAC,GAC5E,OAAO,SAAS,IAAI,GAAG,SAAS,CAAC,GAAG,GAAG,KAAK,EAAE,IAAI,CAAC,GAAG,WAAW,CAAC,IAAI,EAAE,GAAG,GAAG,KAAK,CAAC,GACpF,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,GAC5B,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;AAE3B,KAAK,gBAAgB,CAAC,OAAO,EAAE,CAAC,EAAE,MAAM,SAAS,MAAM,IACrD,CAAC,SAAS,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GACnC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,MAAM,KAAK,GAC1C,KAAK,SAAS,SAAS,CAAC,MAAM,OAAO,EAAE,GAAG,CAAC,GAAG,oBAAoB,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GACrG,KAAK,GACP,KAAK,CAAA;AAEX,KAAK,UAAU,CAAC,OAAO,SAAS,aAAa,CAAC,OAAO,CAAC,EAAE,KAAK,IAC3D,KAAK,SAAS;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,MAAM,SAAS,MAAM,CAAA;CAAE,GAC1D,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,GAC9E,KAAK,CAAA;AAEX,KAAK,SAAS,CAAC,SAAS,SAAS,aAAa,CAAC,OAAO,CAAC,IACrD;IAAC,SAAS,CAAC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;CAAC,SAAS,CAAC,KAAK,CAAC,GACvD,UAAU,CAAC,SAAS,EAAE,WAAW,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAChE,iBAAiB,CAAA;AAEvB;;;;;GAKG;AACH,MAAM,MAAM,eAAe,CAAC,SAAS,SAAS,aAAa,CAAC,OAAO,CAAC,IAClE,QAAQ,CAAC,SAAS,CAAC,SAAS,KAAK,GAAG,KAAK,GAAG,SAAS,CAAC,SAAS,CAAC,CAAA;AAElE,MAAM,WAAW,0BAA0B,CACzC,CAAC,SAAS,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,EACjC,GAAG,CAAC,OAAO,SAAS,aAAa,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EACzI,GAAG,CAAC,KAAK,SAAS,WAAW,CAAC,WAAW,GAAG,WAAW,CAAC,WAAW,EACnE,GAAG,CAAC,IAAI,GAAG,OAAO,EAClB,GAAG,CAAC,YAAY,SAAS,WAAW,CAAC,WAAW,GAAG,KAAK,EACxD,GAAG,CAAC,OAAO,SAAS,aAAa,GAAG,KAAK,EACzC,GAAG,CAAC,KAAK,SAAS,gBAAgB,GAAG,gBAAgB;IAErD,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAA;IACjC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC,YAAY,CAAC,CAAA;IAClD,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,OAAO,CAAA;IAC1C;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,KAAK,CAAA;IACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,IAAI,GAAG,SAAS,CAAA;CACzC;AAED,MAAM,WAAW,4BAA4B,CAC3C,CAAC,SAAS,MAAM,CAAC,GAAG,EACpB,GAAG,CAAC,KAAK,SAAS,WAAW,CAAC,WAAW,GAAG,WAAW,CAAC,WAAW,EACnE,GAAG,CAAC,IAAI,GAAG,OAAO,EAClB,GAAG,CAAC,YAAY,SAAS,WAAW,CAAC,WAAW,GAAG,KAAK,EACxD,GAAG,CAAC,OAAO,SAAS,aAAa,GAAG,KAAK,EAEzC,GAAG,CAAC,KAAK,SAAS,gBAAgB,GAAG,gBAAgB;IAErD,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,YAAY,CAAC,CAAA;IAC3C,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC,CAAA;IAC1C,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;IAClB,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC,YAAY,CAAC,CAAA;IAClD,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,OAAO,CAAA;IAC1C,kFAAkF;IAClF,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,KAAK,CAAA;IACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,IAAI,GAAG,SAAS,CAAA;CACzC;AAED,MAAM,MAAM,kBAAkB,CAC5B,CAAC,SAAS,MAAM,CAAC,GAAG,EACpB,KAAK,SAAS,WAAW,CAAC,WAAW,GAAG,WAAW,CAAC,WAAW,EAC/D,IAAI,GAAG,OAAO,EACd,YAAY,SAAS,WAAW,CAAC,WAAW,GAAG,KAAK,EACpD,OAAO,SAAS,aAAa,GAAG,KAAK,EACrC,KAAK,SAAS,gBAAgB,GAAG,gBAAgB,IAC/C,4BAA4B,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;AAE9E,yBAAiB,QAAQ,CAAC;IACxB,KAAY,UAAU,CACpB,CAAC,SAAS,MAAM,CAAC,GAAG,EACpB,KAAK,SAAS,WAAW,CAAC,WAAW,GAAG,WAAW,CAAC,WAAW,EAC/D,IAAI,GAAG,OAAO,EACd,YAAY,SAAS,WAAW,CAAC,WAAW,GAAG,KAAK,EACpD,OAAO,SAAS,aAAa,GAAG,KAAK,IACnC,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC,CAAA;IAC7D,KAAY,IAAI,GAAG,YAAY,CAAA;IAC/B,KAAY,gBAAgB,CAC1B,CAAC,SAAS,MAAM,CAAC,GAAG,EACpB,OAAO,SAAS,aAAa,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EACrI,KAAK,SAAS,WAAW,CAAC,WAAW,GAAG,WAAW,CAAC,WAAW,EAC/D,IAAI,GAAG,OAAO,EACd,YAAY,SAAS,WAAW,CAAC,WAAW,GAAG,KAAK,EACpD,OAAO,SAAS,aAAa,GAAG,KAAK,IACnC,0BAA0B,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC,CAAA;CAC/E;AAED;;;GAGG;AACH,MAAM,MAAM,aAAa,GACrB,YAAY,GACZ,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,gBAAgB,CAAC,CAAA;AAEjE,KAAK,WAAW,CAAC,KAAK,IACpB,KAAK,SAAS;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,MAAM,CAAC,GAAG,CAAA;CAAE,GAAG,CAAC,GAC/D,KAAK,SAAS,gBAAgB,CAAC,MAAM,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAC/E,KAAK,CAAA;AAET,KAAK,WAAW,CAAC,IAAI,IACnB,IAAI,SAAS,yBAAyB,CAAC,MAAM,MAAM,EAAE,GAAG,CAAC,GACrD,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,GACnC,KAAK,CAAA;AAEX,KAAK,UAAU,CAAC,KAAK,IAAI,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,CAAA;AAEnE,KAAK,cAAc,CAAC,KAAK,IACvB,WAAW,SAAS,MAAM,KAAK,GAC3B,KAAK,SAAS;IAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,MAAM,OAAO,SAAS,aAAa,CAAA;CAAE,GACtF,OAAO,GACP,KAAK,GACP,KAAK,CAAA;AAEX,6EAA6E;AAC7E,MAAM,MAAM,SAAS,CAAC,KAAK,IAAI,cAAc,CAAC,KAAK,CAAC,CAAA;AAEpD,KAAK,aAAa,CAAC,IAAI,IACrB,IAAI,SAAS,yBAAyB,CAAC,MAAM,MAAM,EAAE,GAAG,CAAC,GACrD,cAAc,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,GACnC,KAAK,CAAA;AAEX,8EAA8E;AAC9E,MAAM,MAAM,YAAY,CAAC,KAAK,IAC5B,KAAK,SAAS,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC,GAC9C,aAAa,CAAC,KAAK,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,CAAA;AAEhD,oDAAoD;AACpD,MAAM,MAAM,kBAAkB,CAAC,OAAO,SAAS,aAAa,CAAC,aAAa,CAAC,IACzE,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;AAE/B,MAAM,MAAM,4BAA4B,CAAC,OAAO,SAAS,aAAa,CAAC,aAAa,CAAC,IACnF,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;AAE7B,MAAM,MAAM,yBAAyB,CACnC,CAAC,SAAS,MAAM,CAAC,GAAG,EACpB,OAAO,SAAS,aAAa,CAAC,aAAa,CAAC,EAC5C,IAAI,GAAG,OAAO,IACZ,kBAAkB,CACpB,CAAC,EACD,4BAA4B,CAAC,OAAO,CAAC,EACrC,IAAI,EACJ,4BAA4B,CAAC,OAAO,CAAC,EACrC,kBAAkB,CAAC,OAAO,CAAC,EAC3B,gBAAgB,CAAC,OAAO,CAAC,CAC1B,CAAA;AAED;;;GAGG;AACH,MAAM,MAAM,2BAA2B,CACrC,CAAC,SAAS,MAAM,CAAC,GAAG,EACpB,UAAU,SAAS,aAAa,CAAC,SAAS,CAAC,EAC3C,OAAO,SAAS,aAAa,CAAC,aAAa,CAAC,EAC5C,IAAI,GAAG,OAAO,IACZ,kBAAkB,CACpB,CAAC,EACD,4BAA4B,CAAC,OAAO,CAAC,GAAG,4BAA4B,CAAC,UAAU,CAAC,EAChF,IAAI,EACJ,4BAA4B,CAAC,OAAO,CAAC,GAAG,4BAA4B,CAAC,UAAU,CAAC,EAChF,kBAAkB,CAAC,OAAO,CAAC,EAC3B,gBAAgB,CAAC,OAAO,CAAC,CAC1B,CAAA;AAED,MAAM,MAAM,qBAAqB,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,IAAI,GAAG,OAAO,IAC/E,YAAY,CAAC,qBAAqB,CAAC,CAAC,EAAE,IAAI,CAAC,GAC3C,0BAA0B,CAAC,CAAC,EAAE,aAAa,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;AAElH,KAAK,sBAAsB,CAAC,KAAK,IAC/B,KAAK,SAAS,0BAA0B,CAAC,GAAG,EAAE,MAAM,YAAY,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GACjF,YAAY,CAAC,MAAM,CAAC,GACpB,OAAO,CAAC,KAAK,EAAE,YAAY,CAAC,qBAAqB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;AAElE,MAAM,MAAM,wBAAwB,CAClC,OAAO,SAAS,aAAa,CAAC,qBAAqB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,IAC5D,aAAa,CAAC,sBAAsB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;AAE1D,MAAM,MAAM,4BAA4B,CACtC,OAAO,SAAS,aAAa,CAAC,YAAY,CAAC,qBAAqB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,IACzE,WAAW,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;AAEnC,MAAM,MAAM,uBAAuB,CACjC,OAAO,SAAS,aAAa,CAAC,YAAY,CAAC,qBAAqB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,IACzE,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;AAGnC;;;GAGG;AACH,eAAO,MAAM,aAAa,QAAO,iBAAgD,CAAA;AAEjF,eAAO,MAAM,WAAW,GACtB,CAAC,SAAS,MAAM,CAAC,GAAG,EACpB,KAAK,CAAC,OAAO,SAAS,aAAa,CAAC,qBAAqB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,cACtD,OAAO,KAAG,0BAA0B,CAChD,CAAC,EACD,wBAAwB,CAAC,OAAO,CAAC,EACjC,4BAA4B,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,EAC/D,OAAO,EACP,4BAA4B,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,EAC/D,uBAAuB,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,EAC1D,gBAAgB,CAAC,OAAO,CAAC,CAmB1B,CAAA;AAED,eAAO,MAAM,qBAAqB,GAChC,KAAK,CAAC,MAAM,SAAS,0BAA0B,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS,GAAG,SAAS,WAC5F,MAAM,KAAG,yBAAyB,CAAC,MAAM,CAGb,CAAA;AAEvC;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,KAAK,CAAC,OAAO,SAAS,aAAa,CAAC,aAAa,CAAC,EACzE,GAAG,OAAO,EAAE,OAAO,GAClB,yBAAyB,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,CAGlE;AAED;;GAEG;AACH,eAAO,MAAM,IAAI,GAAI,CAAC,SAAS,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,SAAS,aAAa,CAAC,aAAa,CAAC,UACnF,CAAC,WACA,OAAO,KACf,yBAAyB,CAAC,CAAC,EAAE,OAAO,CAUtC,CAAA;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,IAAI,GACf,CAAC,SAAS,MAAM,CAAC,GAAG,EACpB,KAAK,CAAC,UAAU,SAAS,aAAa,CAAC,SAAS,CAAC,EACjD,KAAK,CAAC,OAAO,SAAS,aAAa,CAAC,aAAa,CAAC,UAE1C,CAAC,cACG,UAAU,WACb,OAAO,KACf,2BAA2B,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAUpD,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,SAAS,GACpB,CAAC,SAAS,MAAM,CAAC,GAAG,EACpB,KAAK,CAAC,UAAU,SAAS,aAAa,CAAC,SAAS,CAAC,EACjD,KAAK,CAAC,OAAO,SAAS,aAAa,CAAC,aAAa,CAAC,UAE1C,CAAC,cACG,UAAU,WACb,OAAO,KACf,2BAA2B,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAUpD,CAAA;AAUD,eAAO,MAAM,YAAY,SAAU,YAAY,GAAG,aAAa,KAAG,IAAI,IAAI,SACb,CAAA"}
package/dist/Schedule.js CHANGED
@@ -48,6 +48,11 @@ export const make = (schema, entries) => {
48
48
  * system's `when`, for gating many systems on one mode (playing, paused,
49
49
  * a hit-stop) without repeating it on each.
50
50
  *
51
+ * Use this when the gated systems should drop the events published while
52
+ * they were gated (a mode change makes them stale). Use `pauseWhen` instead
53
+ * when they must read that backlog on resume (hit-stop, pause menu). For one
54
+ * system, put the same conditions in its spec's `when` / `pauseWhen`.
55
+ *
51
56
  * Conditions gate every system in `entries`, nested schedules included.
52
57
  * Marker steps (`applyDeferred`, `applyStateTransitions`) in the group still
53
58
  * run. A gated system is the same system as far as the runtime is concerned:
@@ -1 +1 @@
1
- {"version":3,"file":"Schedule.js","sourceRoot":"","sources":["../src/Schedule.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAqL/C;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,GAAsB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAA;AAEjF,MAAM,CAAC,MAAM,WAAW,GAAG,CAGzB,GAAG,OAAgB,EAOnB,EAAE;IACF,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAC1C,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CACpC,CAAA;IAEjD,OAAO;QACL,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,SAAS;QAClB,YAAY,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;KAQpF,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAEnC,MAAe,EAAqC,EAAE,CAAC,CAAC;IACxD,IAAI,EAAE,uBAAuB;IAC7B,MAAM;CACP,CAAsC,CAAA;AAEvC;;;;;;;GAOG;AACH,MAAM,UAAU,QAAQ,CACtB,GAAG,OAAgB;IAEnB,eAAe,CAAC,OAAO,CAAC,CAAA;IACxB,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAA;AAC/C,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAClB,MAAS,EACT,OAAgB,EACuB,EAAE;IACzC,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAA;IACvC,yBAAyB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;IAC5C,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,MAAM;QACN,KAAK;QACL,OAAO,EAAE,oBAAoB,CAAC,KAAK,CAAC;QACpC,YAAY,EAAE,uBAAuB,CAAC,KAAK,CAAC;KACJ,CAAA;AAC5C,CAAC,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAKlB,MAAS,EACT,UAAsB,EACtB,OAAgB,EACqC,EAAE;IACvD,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IAC7G,yBAAyB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;IAC5C,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,MAAM;QACN,KAAK;QACL,OAAO,EAAE,oBAAoB,CAAC,KAAK,CAAC;QACpC,YAAY,EAAE,uBAAuB,CAAC,KAAK,CAAC;KACqB,CAAA;AACrE,CAAC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAKvB,MAAS,EACT,UAAsB,EACtB,OAAgB,EACqC,EAAE;IACvD,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IAC7G,yBAAyB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;IAC5C,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,MAAM;QACN,KAAK;QACL,OAAO,EAAE,oBAAoB,CAAC,KAAK,CAAC;QACpC,YAAY,EAAE,uBAAuB,CAAC,KAAK,CAAC;KACqB,CAAA;AACrE,CAAC,CAAA;AAED,6IAA6I;AAC7I,MAAM,IAAI,GAAG,CAAC,MAAiB,EAAE,IAA8B,EAAE,SAAmC,EAAa,EAAE,CAAC,CAAC;IACnH,GAAG,MAAM;IACT,IAAI,EAAE,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC,GAAG,SAAS,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;IACnH,YAAY,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,YAAY,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;IACtI,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,MAAM;CAC5B,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAkC,EAAqB,EAAE,CACpF,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,MAAM,IAAI,IAAI,CAAA;AAE7D,MAAM,eAAe,GAAG,CAAC,KAAoB,EAAwD,EAAE,CACrG,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,CAAA;AAE7F,MAAM,aAAa,GAAG,CAAC,KAAc,EAAU,EAAE,CAC/C,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM;IACvB,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE;QAChE,CAAC,CAAC,uBAAuB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,EAAE,CAAA;AAEtE;;;;;;GAMG;AACH,MAAM,eAAe,GAAG,CAAC,OAA+B,EAAQ,EAAE;IAChE,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC/B,MAAM,KAAK,GAAG,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAC3D,MAAM,IAAI,KAAK;YACf,CAAC,MAAM,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,IAAI,KAAK,CAAC,IAAI,KAAK,uBAAuB,CAAC,CAAC,CAC7H,CAAA;QACD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,kBAAkB,KAAK,uDAAuD,aAAa,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAA;QAChJ,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,MAAM,gBAAgB,GAAG,CAAC,OAAqC,EAA+B,EAAE;IAC9F,eAAe,CAAC,OAAO,CAAC,CAAA;IACxB,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAC/B,eAAe,CAAC,KAAK,CAAC;QACpB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QAClB,CAAC,CAAC,CAAC,KAAK,CAAC,CACZ,CAAA;AACH,CAAC,CAAA;AAED,MAAM,cAAc,GAAG,CACrB,OAAgB,EACc,EAAE;IAChC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,QAAQ,IAAI,KAAK,CAAC,CAAA;IAC/E,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,kIAAkI,CAAC,CAAA;IACrJ,CAAC;IACD,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAiC,CAAA;AACjG,CAAC,CAAA;AAED,MAAM,oBAAoB,GAAG,CAAC,KAAkC,EAA4B,EAAE;IAC5F,MAAM,MAAM,GAAG,IAAI,GAAG,EAAqB,CAAA;IAC3C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACzD,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QACrC,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAA;AAC7B,CAAC,CAAA;AAED,MAAM,uBAAuB,GAAG,CAC9B,KAAkC,EACM,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;IACtF,IAAI,YAAY,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,YAAY,CAAA;IAChD,IAAI,IAAI,CAAC,IAAI,KAAK,uBAAuB;QAAE,OAAO,IAAI,CAAC,MAAM,EAAE,YAAY,IAAI,EAAE,CAAA;IACjF,OAAO,EAAE,CAAA;AACX,CAAC,CAAC,CAA2C,CAAA;AAE7C,MAAM,yBAAyB,GAAG,CAChC,KAAkC,EAClC,OAAe,EACT,EAAE;IACR,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;IAC9B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;YAAE,SAAQ;QACjC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,4BAA4B,OAAO,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;QAC/E,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;IAC7B,CAAC;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"Schedule.js","sourceRoot":"","sources":["../src/Schedule.ts"],"names":[],"mappings":"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"}
package/dist/Schema.d.ts CHANGED
@@ -13,8 +13,11 @@
13
13
  * 3. bind one `Game` with `Schema.bind(...)`
14
14
  * 4. build a runtime from that bound `Game`
15
15
  *
16
- * `Schema.Feature` composes fragments and their schedules before binding; see
17
- * the `feature` module.
16
+ * There is no plugin or feature object. A reusable slice of a game is a
17
+ * fragment (its descriptors) plus plain functions `(Game, options) => System |
18
+ * Schedule` that build its systems from the bound `Game`, like
19
+ * `RenderSync.system(Game, ...)` and `InputCapture.system(Game, ...)`. List
20
+ * every fragment in one `Schema.bind(...)` call.
18
21
  *
19
22
  * @module Schema
20
23
  * @docGroup core
@@ -62,21 +65,67 @@ import type * as Debug from "./Debug.ts";
62
65
  import type * as Runtime from "./Runtime.ts";
63
66
  import type * as Schedule from "./Schedule.ts";
64
67
  import type * as System from "./System.ts";
65
- export { Feature } from "./Feature.ts";
66
68
  /**
67
69
  * A mapping from schema keys to nominal descriptors.
68
70
  */
69
71
  export type Registry = Record<string, Descriptor.Any>;
70
72
  /**
71
73
  * A closed schema: the components, resources, events, and relations a world
72
- * may contain.
74
+ * may contain, and the component requirements (`Schema.requires`) every
75
+ * entity of it keeps.
73
76
  */
74
- export interface SchemaDefinition<out Components extends Registry = {}, out Resources extends Registry = {}, out Events extends Registry = {}, out Relations extends Record<string, Relation.Relation.Any> = {}> {
77
+ export interface SchemaDefinition<out Components extends Registry = {}, out Resources extends Registry = {}, out Events extends Registry = {}, out Relations extends Record<string, Relation.Relation.Any> = {}, out Requires extends RequirementPair = never> {
75
78
  readonly components: Components;
76
79
  readonly resources: Resources;
77
80
  readonly events: Events;
78
81
  readonly relations: Relations;
82
+ /** Component requirements declared with `Schema.requires(...)`. */
83
+ readonly requires: ReadonlyArray<ComponentRequirement<Requires>>;
79
84
  }
85
+ /**
86
+ * One requirement carried in a schema type, by component name:
87
+ * `[requirer, required]`. One pair per required component, so lookups by
88
+ * either end stay exact.
89
+ */
90
+ export type RequirementPair = readonly [string, string];
91
+ /**
92
+ * One `Schema.requires(...)` declaration: every entity holding `component`
93
+ * also holds each of `required`.
94
+ */
95
+ export interface ComponentRequirement<out Pairs extends RequirementPair = RequirementPair> {
96
+ readonly kind: "requires";
97
+ readonly component: Descriptor<"component", string, any>;
98
+ readonly required: ReadonlyArray<Descriptor<"component", string, any>>;
99
+ readonly __pairs?: (_: never) => Pairs;
100
+ }
101
+ type AnyComponentDescriptor = Descriptor<"component", string, any>;
102
+ /** One `[from, to]` pair per required name. */
103
+ type RequirementPairs<From extends string, To extends string> = To extends string ? readonly [From, To] : never;
104
+ type PairsOf<R> = R extends ComponentRequirement<infer Pairs> ? Pairs : never;
105
+ /**
106
+ * Declares that every entity holding `component` also holds each of
107
+ * `required`. List it in a fragment's `requires`.
108
+ *
109
+ * The compiler then rejects every command that would break it:
110
+ * `commands.spawn` / `spawnIn` of a draft missing a required entry,
111
+ * `commands.insert` of `component` on an entity not proven to hold the
112
+ * rest, and `commands.remove` of a required component while a requirer may
113
+ * stay. `Game.System.spawns(component)` also allows spawning what it
114
+ * requires. Nothing is ever filled in with a default: the draft must carry
115
+ * every value.
116
+ *
117
+ * Requirements chain (`A` requires `B`, `B` requires `C`) and may name
118
+ * components of other fragments of the same `Schema.bind`.
119
+ *
120
+ * @example
121
+ * ```ts
122
+ * const Gameplay = Schema.fragment({
123
+ * components: { Player, Position, Velocity },
124
+ * requires: [Schema.requires(Player, Position, Velocity)]
125
+ * })
126
+ * ```
127
+ */
128
+ export declare const requires: <D extends AnyComponentDescriptor, const Required extends readonly [AnyComponentDescriptor, ...Array<AnyComponentDescriptor>]>(component: D, ...required: Required) => ComponentRequirement<RequirementPairs<D["name"], Required[number]["name"]>>;
80
129
  declare const schemaRootTypeId: "~ritmo/SchemaRoot";
81
130
  export type RootToken<Name extends string = string> = {
82
131
  readonly kind: "SchemaRoot";
@@ -85,7 +134,7 @@ export type RootToken<Name extends string = string> = {
85
134
  readonly _Name: (_: never) => Name;
86
135
  };
87
136
  };
88
- export type MergeSchemaDefinitions<A extends Schema.Any, B extends Schema.Any> = SchemaDefinition<Schema.Components<A> & Schema.Components<B>, Schema.Resources<A> & Schema.Resources<B>, Schema.Events<A> & Schema.Events<B>, Schema.Relations<A> & Schema.Relations<B>>;
137
+ export type MergeSchemaDefinitions<A extends Schema.Any, B extends Schema.Any> = SchemaDefinition<Schema.Components<A> & Schema.Components<B>, Schema.Resources<A> & Schema.Resources<B>, Schema.Events<A> & Schema.Events<B>, Schema.Relations<A> & Schema.Relations<B>, Schema.Requires<A> | Schema.Requires<B>>;
89
138
  /**
90
139
  * Type-level fold for fragment composition.
91
140
  */
@@ -133,6 +182,18 @@ export type ValidateFragments<Fragments extends ReadonlyArray<Schema.Any>> = [
133
182
  ] extends [never] ? unknown : {
134
183
  readonly __schemaConflicts__: FragmentConflicts<Fragments>;
135
184
  };
185
+ type UnregisteredRequirements<S extends Schema.Any> = Exclude<Schema.Requires<S>[0] | Schema.Requires<S>[1], Schema.ComponentDescriptor<S>["name"]>;
186
+ /**
187
+ * Rejects requirements naming a component the bound schema does not
188
+ * register. Checked at `bind`, so a fragment may require a component another
189
+ * fragment registers. Erased schemas (`Schema.Any`) are checked by `bind` at
190
+ * runtime instead.
191
+ */
192
+ export type ValidateRequires<S extends Schema.Any> = [
193
+ UnregisteredRequirements<S>
194
+ ] extends [never] ? unknown : string extends Schema.Requires<S>[1] ? unknown : {
195
+ readonly __schemaRequires__: `${UnregisteredRequirements<S>} is named in Schema.requires(...) but no fragment registers it: add it to a fragment's components`;
196
+ };
136
197
  /**
137
198
  * Creates one explicit root token for schema-bound long-lived references.
138
199
  *
@@ -163,24 +224,19 @@ export declare const empty: () => SchemaDefinition;
163
224
  * @example
164
225
  * ```ts
165
226
  * const Combat = Schema.fragment({
166
- * components: { Health, Damage },
167
- * events: { Hit }
227
+ * components: { Health, Damage, Enemy },
228
+ * events: { Hit },
229
+ * requires: [Schema.requires(Enemy, Health)]
168
230
  * })
169
231
  * ```
170
232
  */
171
- export declare const fragment: <const Components extends Registry = {}, const Resources extends Registry = {}, const Events extends Registry = {}, const Relations extends Record<string, Relation.Relation.Any> = {}>(definition: {
233
+ export declare const fragment: <const Components extends Registry = {}, const Resources extends Registry = {}, const Events extends Registry = {}, const Relations extends Record<string, Relation.Relation.Any> = {}, const Requires extends ReadonlyArray<ComponentRequirement> = readonly []>(definition: {
172
234
  readonly components?: Components;
173
235
  readonly resources?: Resources;
174
236
  readonly events?: Events;
175
237
  readonly relations?: Relations;
176
- } & ValidateFragments<[SchemaDefinition<Components, Resources, Events, Relations>]>) => SchemaDefinition<Components, Resources, Events, Relations>;
177
- /**
178
- * Merges two schema fragments into a larger closed schema.
179
- *
180
- * Duplicate keys and descriptor names are rejected at the type level and at
181
- * runtime.
182
- */
183
- export declare const merge: <A extends Schema.Any, B extends Schema.Any>(left: A, right: B & ValidateFragments<[A, B]>) => MergeSchemaDefinitions<A, B>;
238
+ readonly requires?: Requires;
239
+ } & ValidateFragments<[SchemaDefinition<Components, Resources, Events, Relations>]>) => SchemaDefinition<Components, Resources, Events, Relations, PairsOf<Requires[number]>>;
184
240
  /**
185
241
  * Composes one or more fragments and returns one bound `Game` surface.
186
242
  *
@@ -194,10 +250,10 @@ export declare const merge: <A extends Schema.Any, B extends Schema.Any>(left: A
194
250
  * const Game = Schema.bind(Core, Combat, Root)
195
251
  * ```
196
252
  */
197
- export declare function bind<S extends Schema.Any>(schema: S & ValidateFragments<[S]>): Schema.Game<S, S>;
198
- export declare function bind<S extends Schema.Any, const Name extends string>(schema: S & ValidateFragments<[S]>, root: RootToken<Name>): Schema.Game<S, RootToken<Name>>;
199
- export declare function bind<const Fragments extends readonly [Schema.Any, Schema.Any, ...Array<Schema.Any>]>(...fragments: Fragments & ValidateFragments<Fragments>): Schema.Game<BuildFragments<Fragments>, BuildFragments<Fragments>>;
200
- export declare function bind<const Fragments extends readonly [Schema.Any, Schema.Any, ...Array<Schema.Any>], const Name extends string>(...args: [...Fragments, RootToken<Name>] & ValidateFragments<Fragments>): Schema.Game<BuildFragments<Fragments>, RootToken<Name>>;
253
+ export declare function bind<S extends Schema.Any>(schema: S & ValidateFragments<[S]> & ValidateRequires<S>): Schema.Game<S, S>;
254
+ export declare function bind<S extends Schema.Any, const Name extends string>(schema: S & ValidateFragments<[S]> & ValidateRequires<S>, root: RootToken<Name>): Schema.Game<S, RootToken<Name>>;
255
+ export declare function bind<const Fragments extends readonly [Schema.Any, Schema.Any, ...Array<Schema.Any>]>(...fragments: Fragments & ValidateFragments<Fragments> & ValidateRequires<BuildFragments<Fragments>>): Schema.Game<BuildFragments<Fragments>, BuildFragments<Fragments>>;
256
+ export declare function bind<const Fragments extends readonly [Schema.Any, Schema.Any, ...Array<Schema.Any>], const Name extends string>(...args: [...Fragments, RootToken<Name>] & ValidateFragments<Fragments> & ValidateRequires<BuildFragments<Fragments>>): Schema.Game<BuildFragments<Fragments>, RootToken<Name>>;
201
257
  type RuntimeServicesOf<Provided extends Runtime.RuntimeServices<any>> = [
202
258
  Provided
203
259
  ] extends [Runtime.RuntimeServices<infer Services>] ? Services : never;
@@ -211,7 +267,7 @@ type RelationDescriptor<S extends Schema.Any> = Schema.RelationDescriptor<S>;
211
267
  type QuerySelectionAccess<S extends Schema.Any, Root> = QueryModule.Access<ComponentDescriptor<S>> | Relation.SelectionAccess<S, Root>;
212
268
  interface BoundSystemAccess<S extends Schema.Any, Root> extends System.SystemAccessInput {
213
269
  readonly queries?: Record<string, Query.Any<Root>>;
214
- readonly resources?: Record<string, System.ResourceRead<ResourceDescriptor<S>> | System.ResourceWrite<ResourceDescriptor<S>>>;
270
+ readonly resources?: Record<string, System.ResourceRead<ResourceDescriptor<S>> | System.ResourceChanged<ResourceDescriptor<S>> | System.ResourceWrite<ResourceDescriptor<S>>>;
215
271
  readonly events?: Record<string, System.EventRead<EventDescriptor<S>> | System.EventWrite<EventDescriptor<S>>>;
216
272
  readonly machines?: Record<string, Machine.MachineRead<Schema.BoundStateMachine<Root>>>;
217
273
  readonly nextMachines?: Record<string, Machine.NextMachineWrite<Schema.BoundStateMachine<Root>>>;
@@ -222,10 +278,11 @@ interface BoundSystemAccess<S extends Schema.Any, Root> extends System.SystemAcc
222
278
  readonly pauseWhen?: ReadonlyArray<Machine.Condition<Root>>;
223
279
  readonly transitions?: Record<string, Machine.TransitionRead<Schema.BoundStateMachine<Root>>>;
224
280
  readonly local?: () => unknown;
281
+ readonly commands?: Command.CommandAccess<ComponentDescriptor<S>, ComponentDescriptor<S>, ComponentDescriptor<S>, ComponentDescriptor<S>, EntityScope.EntityScope<string, Root>, RelationDescriptor<S>>;
225
282
  }
226
283
  interface BoundCheckAccess<S extends Schema.Any, Root> extends Condition.CheckAccessInput {
227
284
  readonly queries?: Record<string, Query.Any<Root>>;
228
- readonly resources?: Record<string, System.ResourceRead<ResourceDescriptor<S>>>;
285
+ readonly resources?: Record<string, System.ResourceRead<ResourceDescriptor<S>> | System.ResourceChanged<ResourceDescriptor<S>> | System.ResourceWrite<ResourceDescriptor<S>>>;
229
286
  readonly machines?: Record<string, Machine.MachineRead<Schema.BoundStateMachine<Root>>>;
230
287
  }
231
288
  interface BoundInspectorAccess<S extends Schema.Any, Root> extends Inspector.InspectorAccessInput {
@@ -237,11 +294,11 @@ interface BoundInspectorAccess<S extends Schema.Any, Root> extends Inspector.Ins
237
294
  readonly removed?: Record<string, System.RemovedRead<ComponentDescriptor<S>>>;
238
295
  readonly relationFailures?: Record<string, System.RelationFailureRead<RelationDescriptor<S>>>;
239
296
  }
240
- type BoundScheduleEntry<S extends Schema.Any, Root> = Schema.BoundSystem<S, Root, any, any, any> | Schedule.ApplyDeferredStep | Schedule.ApplyStateTransitionsStep<any, Root> | Schema.BoundSchedule<S, Root, any, any>;
297
+ type BoundScheduleEntry<S extends Schema.Any, Root> = Schema.BoundSystem<S, Root, any, any> | Schedule.ApplyDeferredStep | Schedule.ApplyStateTransitionsStep<any, Root> | Schedule.ScheduleDefinition<S, any, Root, any, any, Schedule.AnyScheduleOrder>;
241
298
  type BoundTransitionEntry<S extends Schema.Any, Root> = Exclude<BoundScheduleEntry<S, Root>, Schedule.ApplyStateTransitionsStep<any, Root>>;
242
- type BoundTransitionScheduleResult<S extends Schema.Any, Root, M extends Schema.BoundStateMachine<Root>, Entries extends ReadonlyArray<BoundTransitionEntry<S, Root>>> = Machine.TransitionScheduleDefinition<S, M, Schedule.CompositionExactRequirements<Entries>, Root, Schedule.CompositionFailure<Entries>>;
299
+ type BoundTransitionScheduleResult<S extends Schema.Any, Root, M extends Schema.BoundStateMachine<Root>, Entries extends ReadonlyArray<BoundTransitionEntry<S, Root>>> = Machine.TransitionScheduleDefinition<S, M, Schedule.CompositionExactRequirements<Entries>, Root, Schedule.CompositionFailure<Entries>, Schedule.CompositionOrder<Entries>>;
243
300
  type BoundTransitionBundleInput<S extends Schema.Any, Root> = Schema.BoundTransitionSchedule<S, Root, any, any, any> | Schema.BoundTransitionBundle<S, Root, any, any, any>;
244
- type BoundTransitionBundleResult<S extends Schema.Any, Root, Entries extends ReadonlyArray<BoundTransitionBundleInput<S, Root>>> = Schedule.TransitionBundleDefinition<S, ReadonlyArray<Schedule.FlattenTransitionEntries<Entries>[number]>, Schedule.TransitionBundleRequirements<Schedule.FlattenTransitionEntries<Entries>>, Root, Schedule.TransitionBundleRequirements<Schedule.FlattenTransitionEntries<Entries>>, Schedule.TransitionBundleFailure<Schedule.FlattenTransitionEntries<Entries>>>;
301
+ type BoundTransitionBundleResult<S extends Schema.Any, Root, Entries extends ReadonlyArray<BoundTransitionBundleInput<S, Root>>> = Schedule.TransitionBundleDefinition<S, ReadonlyArray<Schedule.FlattenTransitionEntries<Entries>[number]>, Schedule.TransitionBundleRequirements<Schedule.FlattenTransitionEntries<Entries>>, Root, Schedule.TransitionBundleRequirements<Schedule.FlattenTransitionEntries<Entries>>, Schedule.TransitionBundleFailure<Schedule.FlattenTransitionEntries<Entries>>, Schedule.CompositionOrder<Entries>>;
245
302
  /**
246
303
  * Type-level helpers for schema-driven programming.
247
304
  */
@@ -249,11 +306,13 @@ export declare namespace Schema {
249
306
  /**
250
307
  * Any complete schema definition.
251
308
  */
252
- type Any = SchemaDefinition<Registry, Registry, Registry, Record<string, Relation.Relation.Any>>;
309
+ type Any = SchemaDefinition<Registry, Registry, Registry, Record<string, Relation.Relation.Any>, RequirementPair>;
253
310
  type Components<T extends Any> = T["components"];
254
311
  type Resources<T extends Any> = T["resources"];
255
312
  type Events<T extends Any> = T["events"];
256
313
  type Relations<T extends Any> = T["relations"];
314
+ /** The component requirements of a schema, as `[requirer, required]` name pairs (`Schema.requires`). */
315
+ type Requires<T extends Any> = T extends SchemaDefinition<any, any, any, any, infer Pairs> ? Pairs : never;
257
316
  type ComponentValue<T extends Any, K extends keyof Components<T>> = Descriptor.Value<Components<T>[K]>;
258
317
  type ResourceValue<T extends Any, K extends keyof Resources<T>> = Descriptor.Value<Resources<T>[K]>;
259
318
  type EventValue<T extends Any, K extends keyof Events<T>> = Descriptor.Value<Events<T>[K]>;
@@ -268,9 +327,9 @@ export declare namespace Schema {
268
327
  /**
269
328
  * A schema-bound system definition branded to one bound schema root.
270
329
  */
271
- type BoundSystem<S extends Any, Root, Spec extends System.AnySystemSpec = System.AnySystemSpec, A = void, E = never, Name extends string = string, Needs extends Requirement.Requirement = Requirement.Requirement> = System.SystemDefinition<Spec & {
330
+ type BoundSystem<S extends Any, Root, Spec extends System.AnySystemSpec = System.AnySystemSpec, E = never, Name extends string = string, Needs extends Requirement.Requirement = Requirement.Requirement> = System.SystemDefinition<Spec & {
272
331
  readonly schema: S;
273
- }, A, E, Root, Name, Needs>;
332
+ }, E, Root, Name, Needs>;
274
333
  /** A schema-bound read-only world projection. */
275
334
  type BoundInspector<S extends Any, Root, Spec extends System.AnySystemSpec = System.AnySystemSpec, Value = unknown, Name extends string = string, Needs extends Requirement.Requirement = Requirement.Requirement> = Inspector.InspectorDefinition<Spec & {
276
335
  readonly schema: S;
@@ -278,13 +337,13 @@ export declare namespace Schema {
278
337
  /**
279
338
  * A schema-bound schedule definition branded to one bound schema root.
280
339
  */
281
- type BoundSchedule<S extends Any, Root, Needs extends Requirement.Requirement = Requirement.Requirement, Failure extends System.SystemFailure = never> = Schedule.ScheduleDefinition<S, Needs, Root, Needs, Failure>;
340
+ type BoundSchedule<S extends Any, Root, Needs extends Requirement.Requirement = Requirement.Requirement, Failure extends System.SystemFailure = never> = Schedule.ScheduleDefinition<S, Needs, Root, Needs, Failure, Schedule.ScheduleOrder>;
282
341
  /**
283
342
  * A schema-bound finite-state machine.
284
343
  */
285
- type BoundStateMachine<Root, Name extends string = string, Values extends readonly [Machine.StateValue, ...Machine.StateValue[]] = readonly [Machine.StateValue, ...Machine.StateValue[]]> = Machine.StateMachineDefinition<Name, Values, Root>;
286
- type BoundTransitionSchedule<S extends Any, Root, M extends BoundStateMachine<Root> = BoundStateMachine<Root>, Needs extends Requirement.Requirement = Requirement.Requirement, Failure extends System.SystemFailure = never> = Machine.TransitionScheduleDefinition<S, M, Needs, Root, Failure>;
287
- type BoundTransitionBundle<S extends Any, Root, Entries extends ReadonlyArray<BoundTransitionSchedule<S, Root, any, any, any>> = ReadonlyArray<BoundTransitionSchedule<S, Root, any, any, any>>, Needs extends Requirement.Requirement = Requirement.Requirement, Failure extends System.SystemFailure = never> = Schedule.TransitionBundleDefinition<S, Entries, Needs, Root, Needs, Failure>;
344
+ type BoundStateMachine<Root, Name extends string = string, Values extends readonly [Machine.StateValue, ...Machine.StateValue[]] = readonly [Machine.StateValue, ...Machine.StateValue[]], Parent = unknown> = Machine.StateMachineDefinition<Name, Values, Root, Parent>;
345
+ type BoundTransitionSchedule<S extends Any, Root, M extends BoundStateMachine<Root> = BoundStateMachine<Root>, Needs extends Requirement.Requirement = Requirement.Requirement, Failure extends System.SystemFailure = never, Order extends Schedule.AnyScheduleOrder = Schedule.AnyScheduleOrder> = Machine.TransitionScheduleDefinition<S, M, Needs, Root, Failure, Order>;
346
+ type BoundTransitionBundle<S extends Any, Root, Entries extends ReadonlyArray<BoundTransitionSchedule<S, Root, any, any, any>> = ReadonlyArray<BoundTransitionSchedule<S, Root, any, any, any>>, Needs extends Requirement.Requirement = Requirement.Requirement, Failure extends System.SystemFailure = never, Order extends Schedule.AnyScheduleOrder = Schedule.AnyScheduleOrder> = Schedule.TransitionBundleDefinition<S, Entries, Needs, Root, Needs, Failure, Order>;
288
347
  /**
289
348
  * A schema-bound runtime branded to one bound schema root.
290
349
  */
@@ -294,8 +353,33 @@ export declare namespace Schema {
294
353
  */
295
354
  interface Game<S extends Any, Root = S> {
296
355
  readonly schema: S;
297
- /** Creates a typed ownership scope for scene or level entities. */
298
- readonly EntityScope: <const Name extends string>(name: Name) => EntityScope.EntityScope<Name, Root>;
356
+ /**
357
+ * Creates a typed ownership scope for scene or level entities: a flat
358
+ * group whose members are spawned with `commands.spawnIn(...)` and
359
+ * despawned together. Use `Descriptor.Hierarchy` instead for a
360
+ * parent-child tree with ordered children, traversal, and recursive
361
+ * despawn.
362
+ *
363
+ * When the group lives exactly as long as a state, name the state change
364
+ * that ends it: `despawnOnExit: [Flow, "Playing"]` despawns every member
365
+ * when `applyStateTransitions(...)` commits leaving `Playing` (after its
366
+ * `onExit` schedules, which still see the members), and
367
+ * `despawnOnEnter: [Flow, "Playing"]` when it commits entering it (before
368
+ * its `onEnter` schedules, so what they spawn survives). Use
369
+ * `commands.despawnScope(...)` instead when the wipe is not tied to a
370
+ * state change. Scope names are unique per game.
371
+ *
372
+ * @example
373
+ * ```ts
374
+ * const RunScope = Game.EntityScope("Shooter/Run", { despawnOnExit: [Flow, "Playing"] })
375
+ * ```
376
+ */
377
+ readonly EntityScope: <const Name extends string, Enter extends Machine.StateMachine.Any = never, Exit extends Machine.StateMachine.Any = never>(name: Name, options?: {
378
+ /** Despawns every member when the machine enters this state, before its `onEnter` schedules run. */
379
+ readonly despawnOnEnter?: readonly [Enter & Machine.SameGame<Enter, Root>, Machine.StateMachine.Value<Enter>];
380
+ /** Despawns every member when the machine leaves this state, after its `onExit` schedules run. */
381
+ readonly despawnOnExit?: readonly [Exit & Machine.SameGame<Exit, Root>, Machine.StateMachine.Value<Exit>];
382
+ }) => EntityScope.EntityScope<Name, Root>;
299
383
  /** Declares a reusable, requirement-checked read-only world projection. */
300
384
  readonly Inspector: <const Name extends string, const Access extends BoundInspectorAccess<S, Root>, Value>(name: Name, spec: Inspector.ExactInspectorAccess<Access>, read: (context: Inspector.InspectorContext<System.SystemSpec<S, Access, Root>>) => Value) => BoundInspector<S, Root, System.SystemSpec<S, Access, Root>, Value, Name, System.SystemAccessNeeds<Access>>;
301
385
  readonly Entity: {
@@ -315,12 +399,17 @@ export declare namespace Schema {
315
399
  readonly withoutRelations?: WithoutRelations;
316
400
  readonly withRelated?: WithRelated;
317
401
  readonly withoutRelated?: WithoutRelated;
318
- }): QueryModule.QuerySpec<Selection, With, Without, Filters, WithRelations, WithoutRelations, WithRelated, WithoutRelated, Root>;
402
+ }): QueryModule.QuerySpec<Selection, QueryModule.Uninferred<With, ReadonlyArray<ComponentDescriptor<S>>>, QueryModule.Uninferred<Without, ReadonlyArray<ComponentDescriptor<S>>>, QueryModule.Uninferred<Filters, ReadonlyArray<QueryModule.Filter<ComponentDescriptor<S>>>>, QueryModule.Uninferred<WithRelations, ReadonlyArray<Relation.Relation.Any>>, QueryModule.Uninferred<WithoutRelations, ReadonlyArray<Relation.Relation.Any>>, QueryModule.Uninferred<WithRelated, ReadonlyArray<Relation.Relation.Any>>, QueryModule.Uninferred<WithoutRelated, ReadonlyArray<Relation.Relation.Any>>, Root>;
319
403
  read: <D extends ComponentDescriptor<S>>(descriptor: D) => QueryModule.ReadAccess<D>;
320
- write: <D extends ComponentDescriptor<S>>(descriptor: D) => QueryModule.WriteAccess<D>;
404
+ write: <D extends ComponentDescriptor<S>>(descriptor: D & QueryModule.Writable<D>) => QueryModule.WriteAccess<D>;
321
405
  optional: <D extends ComponentDescriptor<S>>(descriptor: D) => QueryModule.OptionalReadAccess<D>;
322
406
  added: <D extends ComponentDescriptor<S>>(descriptor: D) => QueryModule.AddedFilter<D>;
323
407
  changed: <D extends ComponentDescriptor<S>>(descriptor: D) => QueryModule.ChangedFilter<D>;
408
+ anyOf: <const Filters extends readonly [
409
+ QueryModule.LifecycleFilter<ComponentDescriptor<S>>,
410
+ QueryModule.LifecycleFilter<ComponentDescriptor<S>>,
411
+ ...ReadonlyArray<QueryModule.LifecycleFilter<ComponentDescriptor<S>>>
412
+ ]>(...filters: Filters) => QueryModule.AnyOfFilter<Filters[number]["descriptor"]>;
324
413
  readRelation: <R extends RelationDescriptor<S>>(descriptor: R) => Relation.RelationReadAccess<R, S, Root>;
325
414
  optionalRelation: <R extends RelationDescriptor<S>>(descriptor: R) => Relation.OptionalRelationReadAccess<R, S, Root>;
326
415
  readRelated: <R extends RelationDescriptor<S>>(descriptor: R) => Relation.RelatedReadAccess<R, S, Root>;
@@ -329,19 +418,54 @@ export declare namespace Schema {
329
418
  readonly Command: {
330
419
  /** Starts an entity draft from `[Descriptor, value]` entries and entry results. */
331
420
  spawn: <const Entries extends ReadonlyArray<Command.SpawnEntry<S>> = readonly []>(...entries: Entries) => Command.DraftFor<S, Entries, {}, Root>;
332
- /** Adds entries to a draft. */
333
- insert: <P extends Entity.ComponentProof, const Entries extends ReadonlyArray<Command.SpawnEntry<S>>>(draft: Entity.EntityDraft<S, P, Root>, ...entries: Entries) => Command.DraftFor<S, Entries, P, Root>;
421
+ /**
422
+ * Adds entries to a draft (a value not yet spawned). Use
423
+ * `commands.insert` for an entity that already exists.
424
+ */
425
+ extend: <P extends Entity.ComponentProof, const Entries extends ReadonlyArray<Command.SpawnEntry<S>>>(draft: Entity.EntityDraft<S, P, Root>, ...entries: Entries) => Command.DraftFor<S, Entries, P, Root>;
334
426
  entry: <D extends ComponentDescriptor<S>>(descriptor: D, value: Descriptor.Value<D>) => Command.Entry<D>;
335
- entryResult: <D extends ComponentDescriptor<S>, E>(descriptor: D, result: Result.Result<Descriptor.Value<D>, E>) => Result.Result<Command.Entry<D>, E>;
336
427
  entryRaw: <D extends Extract<ComponentDescriptor<S>, ConstructedDescriptor<"component", string, any, any, any>>>(descriptor: D, raw: Descriptor.Raw<D>) => Result.Result<Command.Entry<D>, Descriptor.ConstructionError<D>>;
337
428
  relate: <P extends Entity.ComponentProof, R extends RelationDescriptor<S>>(draft: Entity.EntityDraft<S, P, Root>, relation: R, target: Entity.EntityId<S, Root>) => Entity.EntityDraft<S, P, Root>;
338
429
  };
430
+ /**
431
+ * Declares one game-wide mode (menu, playing, paused): queued with
432
+ * `nextState`, committed at `applyStateTransitions(...)`, gating systems
433
+ * with `Game.Condition.inState(...)`. Use `Descriptor.EntityState(...)`
434
+ * instead for a state each entity has on its own.
435
+ */
339
436
  readonly StateMachine: {
340
437
  <const Name extends string, const Values extends readonly [Machine.StateValue, ...Machine.StateValue[]]>(name: Name, values: Values): Schema.BoundStateMachine<Root, Name, Values>;
438
+ /**
439
+ * Declares a sub-state: a machine that exists only while `within[0]` is
440
+ * in state `within[1]` (a battle phase that only means something while
441
+ * playing). Whenever the parent enters that state, the sub-state enters
442
+ * the value given to `Game.Runtime.machine(...)`; when the parent leaves
443
+ * it, the sub-state exits and has no value: `get()` is `undefined`,
444
+ * `Game.Condition.inState(Sub, x)` is false, and `nextMachines.sub.set(...)`
445
+ * returns a `SubStateInactive` failure. So `inState(Sub, x)` alone
446
+ * implies the parent's state.
447
+ *
448
+ * Use a second top-level machine instead when the two modes are
449
+ * independent (each keeps its value whatever the other does).
450
+ *
451
+ * @example
452
+ * ```ts
453
+ * const Phase = Game.StateMachine("Phase", ["Setup", "Battle"], { within: [Session, "Playing"] })
454
+ * ```
455
+ */
456
+ <const Name extends string, const Values extends readonly [Machine.StateValue, ...Machine.StateValue[]], Parent extends Machine.StateMachine.Any>(name: Name, values: Values, options: {
457
+ readonly within: readonly [Parent & Machine.SameGame<Parent, Root>, Machine.StateMachine.Value<Parent>];
458
+ }): Schema.BoundStateMachine<Root, Name, Values, Parent>;
341
459
  };
342
460
  readonly Condition: {
343
- inState: typeof Machine.inState;
344
- stateChanged: typeof Machine.stateChanged;
461
+ /**
462
+ * Passes while the machine's committed value is `value`. For a
463
+ * sub-state it fails while the parent is in another state. A machine
464
+ * of another game fails to compile with a message naming the fix.
465
+ */
466
+ inState: <M extends Machine.StateMachine.Any>(machine: M & Machine.SameGame<M, Root>, value: Machine.StateMachine.Value<M>) => Machine.InStateCondition<M>;
467
+ /** Passes in the schedule run where `applyStateTransitions(...)` changed the machine. */
468
+ stateChanged: <M extends Machine.StateMachine.Any>(machine: M & Machine.SameGame<M, Root>) => Machine.StateChangedCondition<M>;
345
469
  not: typeof Machine.not;
346
470
  and: typeof Machine.and;
347
471
  or: typeof Machine.or;
@@ -353,11 +477,18 @@ export declare namespace Schema {
353
477
  check: <const Name extends string, const Access extends BoundCheckAccess<S, Root>>(name: Name, spec: Condition.ExactCheckAccess<Access>, predicate: (context: Condition.CheckContext<System.SystemSpec<S, Access, Root>>) => boolean) => Machine.CheckCondition<Root, System.SystemAccessNeeds<Access>>;
354
478
  };
355
479
  readonly System: {
356
- <const Name extends string, const Access extends BoundSystemAccess<S, Root>, A = void, E = never>(name: Name, spec: System.ExactAccess<Access>, run: System.SystemRun<System.SystemSpec<S, Access, Root>, A, E>): BoundSystem<S, Root, System.SystemSpec<S, Access, Root>, A, E, Name, System.SystemAccessNeeds<Access>>;
480
+ <const Name extends string, const Access extends BoundSystemAccess<S, Root>, E = never>(name: Name, spec: System.ExactAccess<Access>, run: System.SystemRun<System.SystemSpec<S, Access, Root>, E>): BoundSystem<S, Root, System.SystemSpec<S, Access, Root>, E, Name, System.SystemAccessNeeds<Access>>;
357
481
  readResource: <D extends ResourceDescriptor<S>>(descriptor: D) => System.ResourceRead<D>;
358
482
  writeResource: <D extends ResourceDescriptor<S>>(descriptor: D) => System.ResourceWrite<D>;
483
+ changedResource: <D extends ResourceDescriptor<S>>(descriptor: D) => System.ResourceChanged<D>;
359
484
  readEvent: <D extends EventDescriptor<S>>(descriptor: D) => System.EventRead<D>;
360
485
  writeEvent: <D extends EventDescriptor<S>>(descriptor: D) => System.EventWrite<D>;
486
+ /**
487
+ * Requires every writer of this event or resource to run earlier in the
488
+ * same `runtime.tick(...)` call; checked at compile time by `tick`.
489
+ * Accepts `readEvent(...)`, `readResource(...)`, or a query.
490
+ */
491
+ thisTick: <Read extends System.EventRead<EventDescriptor<S>> | System.ResourceRead<ResourceDescriptor<S>> | System.ResourceChanged<ResourceDescriptor<S>> | Query.Any<Root>>(read: Read) => Read & System.ThisTick;
361
492
  service: typeof System.service;
362
493
  machine: <M extends BoundStateMachine<Root>>(machine: M) => Machine.MachineRead<M>;
363
494
  nextState: <M extends BoundStateMachine<Root>>(machine: M) => Machine.NextMachineWrite<M>;
@@ -366,6 +497,23 @@ export declare namespace Schema {
366
497
  readRemoved: <D extends ComponentDescriptor<S>>(descriptor: D) => System.RemovedRead<D>;
367
498
  readDespawned: () => System.DespawnedRead;
368
499
  readRelationFailures: <R extends RelationDescriptor<S>>(relation: R) => System.RelationFailureRead<R>;
500
+ /**
501
+ * Declares the commands a system may queue, for its spec's `commands`:
502
+ * `Game.System.commands(Game.System.spawns(Enemy, Position), Game.System.despawns(Enemy))`.
503
+ */
504
+ commands: typeof Command.commands;
505
+ /** Allows spawning drafts whose components are all among these and what they require (`Schema.requires`); see `Command.spawns`. */
506
+ spawns: <const Components extends ReadonlyArray<ComponentDescriptor<S>>>(...components: Components) => Command.Permission<"spawns", Components[number] | Command.RequiredDescriptors<S, Components[number]["name"]>>;
507
+ /** Allows `insert` (add or replace at the next `applyDeferred()`) of these; see `Command.inserts`. */
508
+ inserts: <const Components extends ReadonlyArray<ComponentDescriptor<S>>>(...components: Components) => Command.Permission<"inserts", Components[number]>;
509
+ /** Allows `remove` of these. */
510
+ removes: <const Components extends ReadonlyArray<ComponentDescriptor<S>>>(...components: Components) => Command.Permission<"removes", Components[number]>;
511
+ /** Allows `despawn` of entities a query proves have one of these; see `Command.despawns`. */
512
+ despawns: <const Components extends ReadonlyArray<ComponentDescriptor<S>>>(...components: Components) => Command.Permission<"despawns", Components[number]>;
513
+ /** Allows `despawnScope` of this scope. */
514
+ despawnsScope: <const Scope extends EntityScope.EntityScope<string, Root>>(scope: Scope) => Command.Permission<"despawnsScope", Scope>;
515
+ /** Allows `relate`, `unrelate`, and `reorderChildren` of these relations. */
516
+ relates: <const Relations extends ReadonlyArray<RelationDescriptor<S>>>(...relations: Relations) => Command.Permission<"relates", Relations[number]>;
369
517
  };
370
518
  readonly Schedule: {
371
519
  /**
@@ -380,7 +528,9 @@ export declare namespace Schema {
380
528
  /**
381
529
  * Builds a schedule whose systems run only while every condition
382
530
  * passes (in addition to their own `when`). Nested schedules are
383
- * gated too; marker steps still run.
531
+ * gated too; marker steps still run. Gated systems drop the events
532
+ * published while gated; use `pauseWhen` to keep them. For one system,
533
+ * use `when` in its spec.
384
534
  */
385
535
  when: <const Conditions extends readonly [Machine.Condition<Root>, ...Array<Machine.Condition<Root>>], const Entries extends ReadonlyArray<BoundScheduleEntry<S, Root>>>(conditions: Conditions, ...entries: Entries) => Schedule.ConditionalScheduleBuildFor<S, Conditions, Entries, Root>;
386
536
  /**
@@ -388,6 +538,7 @@ export declare namespace Schema {
388
538
  * fails: unlike `when`, a paused system keeps its place in the event
389
539
  * streams it reads and sees everything published meanwhile once it
390
540
  * runs again. For freezes whose events stay valid (hit-stop, pause).
541
+ * For one system, use `pauseWhen` in its spec.
391
542
  */
392
543
  pauseWhen: <const Conditions extends readonly [Machine.Condition<Root>, ...Array<Machine.Condition<Root>>], const Entries extends ReadonlyArray<BoundScheduleEntry<S, Root>>>(conditions: Conditions, ...entries: Entries) => Schedule.ConditionalScheduleBuildFor<S, Conditions, Entries, Root>;
393
544
  applyDeferred: typeof Schedule.applyDeferred;
@@ -412,4 +563,5 @@ export declare namespace Schema {
412
563
  };
413
564
  }
414
565
  }
566
+ export {};
415
567
  //# sourceMappingURL=Schema.d.ts.map