@wildshard/shard-format 0.0.1 → 0.4.6

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 (748) hide show
  1. package/corpus/brasscap-mesa/blobs/bin/02da0052111419cdff3a29f1c6d0ff0d223e0b53a956c16c65ed63d87928b3b9.bin +0 -0
  2. package/corpus/brasscap-mesa/blobs/bin/068a121cd780a2a9164416f6e4fde44834f2d2f3a5ed65c174e480b7a2d3f627.bin +0 -0
  3. package/corpus/brasscap-mesa/blobs/bin/07d5a061cd338618e528747d61eb2b17709510550ef0ba40a58b67761b200f3f.bin +0 -0
  4. package/corpus/brasscap-mesa/blobs/bin/086e3706070555baca863f6ecf9dbca09c084afa501d92d4246d896b09546f36.bin +0 -0
  5. package/corpus/brasscap-mesa/blobs/bin/08b1b9ab7c732d7dbe8f961f1fc40e84042d1fe42544f55c9ee89f04dffe3d5e.bin +0 -0
  6. package/corpus/brasscap-mesa/blobs/bin/18bdbdc704cb8aac93435d208dfe0e9a44374efb73afa3bc58c631650e0a2995.bin +0 -0
  7. package/corpus/brasscap-mesa/blobs/bin/1a210fcddcb9749ecb1c244837e8e37ea69b038faae191dee6bbbde228d31a18.bin +0 -0
  8. package/corpus/brasscap-mesa/blobs/bin/264ab9ede386504a5ff9814b0a620b879cb29f3f45a80bcfc0c80b8ee236e364.bin +0 -0
  9. package/corpus/brasscap-mesa/blobs/bin/2b6fbea4c846a23cf4802ebdb1804e128896c8dd87e5d23509db6729e5b1be4e.bin +0 -0
  10. package/corpus/brasscap-mesa/blobs/bin/2d755cc635dee90b0f3958272855a821e2dd605a189a5ffcd480a325155fe84f.bin +0 -0
  11. package/corpus/brasscap-mesa/blobs/bin/2d76c6829fe77fb55cc2541e4aca5ce5d18b68508dcdf3fa957fe4a83b9c887a.bin +0 -0
  12. package/corpus/brasscap-mesa/blobs/bin/32c15d55a4548501740593807c5007217c72dbc10a21f4613ef5e0cee0b90d1d.bin +0 -0
  13. package/corpus/brasscap-mesa/blobs/bin/3539b362cf3a61a79e92e113ebf8f255d0b25ec2d2edd816498879de831fa912.bin +0 -0
  14. package/corpus/brasscap-mesa/blobs/bin/3af38a2377bc89f6c6c82ee1e83df674efa2793db932b50a23bbce7ec9cd7941.bin +0 -0
  15. package/corpus/brasscap-mesa/blobs/bin/3c176a7a0d0850fdcee790ed2641216fc3d1cba025928de3d7784262bb9b6f4a.bin +0 -0
  16. package/corpus/brasscap-mesa/blobs/bin/3fb37e488aa81a64c997b3dd09794e988994c6ee3476c6d653ced1670888dd8e.bin +0 -0
  17. package/corpus/brasscap-mesa/blobs/bin/424dcc7b320317bf3f2c62c8f19bc80564035127eb38ab811e460934d57ea38c.bin +0 -0
  18. package/corpus/brasscap-mesa/blobs/bin/45cea35fab6bb06051a3286fca2307944850c7f9ed7aa89b7c24fafef28efda6.bin +0 -0
  19. package/corpus/brasscap-mesa/blobs/bin/499cc7863851f97d79dbfc64e76f9e6978894199184a0d80ebdca13066a8fa78.bin +0 -0
  20. package/corpus/brasscap-mesa/blobs/bin/4b7217644763b00c6ee6ae3f176c726914966fb791654a385c0638bb998b6dd2.bin +0 -0
  21. package/corpus/brasscap-mesa/blobs/bin/4cf11c7177bb082f335e5bc7a037ef00d09355c5ad8263e284a96a92630ff9ae.bin +0 -0
  22. package/corpus/brasscap-mesa/blobs/bin/536b37cab5a1edd6a68a71d122aab6898e44c68a5470a4ca8a9a72c57c02e034.bin +0 -0
  23. package/corpus/brasscap-mesa/blobs/bin/55d3628b27e0fcea383df86c434a69761439f51a013359f0829675b07ee2b616.bin +0 -0
  24. package/corpus/brasscap-mesa/blobs/bin/5652ba90fbd8146edaf42660329cc81798752f2f60b8d03956714460d5ba75ef.bin +0 -0
  25. package/corpus/brasscap-mesa/blobs/bin/57459ab5e2ac6cec65ef5e59789dd82b9666d8573df41c4a398df603f1fa456f.bin +0 -0
  26. package/corpus/brasscap-mesa/blobs/bin/5915b6aed21bba49b841b45574f44f60d26b44810bd68ac70b22f3f3b0dab072.bin +0 -0
  27. package/corpus/brasscap-mesa/blobs/bin/5c4a5c7a8e99253561105c5fa3faf14326cf0c23adc32bfe7f8aea4dbf4b05f9.bin +0 -0
  28. package/corpus/brasscap-mesa/blobs/bin/61822a412cfd461f4f7ae50bc13f242a0fca6c5c58fca72247b596ab037a1c85.bin +0 -0
  29. package/corpus/brasscap-mesa/blobs/bin/673b7712908966718341508469b39cd49e6461f690ca3c23d4621ea7eba0cc30.bin +0 -0
  30. package/corpus/brasscap-mesa/blobs/bin/69394a49520f84f6dccc1655f1c89eedc913ac53a7e48ac5dc1bff4141639bb4.bin +0 -0
  31. package/corpus/brasscap-mesa/blobs/bin/6e58a53a6c2acd50f9f80fd270ca034c54421df8a587e181101b4b75b952ac5d.bin +0 -0
  32. package/corpus/brasscap-mesa/blobs/bin/75dc9f23ee71e11a3a0c67eb77275d741a281c3398808fb42efd52b9973d5d04.bin +0 -0
  33. package/corpus/brasscap-mesa/blobs/bin/76c6a403293a68ed3d6ad14e9dd27b555c3a1ef4a3cae12a2bd2ab3e67c5ad02.bin +0 -0
  34. package/corpus/brasscap-mesa/blobs/bin/82b73ce3a18e47092840fc029177861887aa2867b007248ac79ffa20895a4491.bin +0 -0
  35. package/corpus/brasscap-mesa/blobs/bin/8430d9bbfb4e2b678c54595ad95555c3c73d0e1b144a4d6e29664ccb4371baf0.bin +0 -0
  36. package/corpus/brasscap-mesa/blobs/bin/848d4492508689f5c4a224079dca8809e872e33b8f2635c9f16da5dc21beed16.bin +0 -0
  37. package/corpus/brasscap-mesa/blobs/bin/84941ac387a0d245ea20bd663ff4ee78c5315bedfa058ada0961765aff61acaf.bin +0 -0
  38. package/corpus/brasscap-mesa/blobs/bin/859b7bbcf048a4525db0548b8f5afef83bfc4870914767153f44c05e83436ec5.bin +0 -0
  39. package/corpus/brasscap-mesa/blobs/bin/87b68b45680a57c796eed9183211b03335a6ad6737372b3ef476c2cf42efa631.bin +0 -0
  40. package/corpus/brasscap-mesa/blobs/bin/8cef94308af8d09670e4c99a3b6c3d9280b7a27d386653a3bd7d482b2cdf2b65.bin +0 -0
  41. package/corpus/brasscap-mesa/blobs/bin/8e564bce3f352c2186ae09ed7fbca9739c10abc46fd5f6893c68cb47178bd2b4.bin +0 -0
  42. package/corpus/brasscap-mesa/blobs/bin/8f89e79d0fb9b04d48c7b5719e1d024161c6a2119835b18dcb193ff51123a9be.bin +0 -0
  43. package/corpus/brasscap-mesa/blobs/bin/8fe511ad48656a0b10801100b9100edab1be605a8a182dc5c834d298bf0d9166.bin +0 -0
  44. package/corpus/brasscap-mesa/blobs/bin/900bda6562d06fafda54c495e325d57dbb7931813178ee207449c5519d89d537.bin +0 -0
  45. package/corpus/brasscap-mesa/blobs/bin/997b1b7d9210bfa77dc71f16a57c6bd66bc7c648686dc2a2666044c95042978a.bin +0 -0
  46. package/corpus/brasscap-mesa/blobs/bin/a111bb4c6cec536bcf57dddc744b871ac9f3d094ce459c16243adca19020db77.bin +0 -0
  47. package/corpus/brasscap-mesa/blobs/bin/a2208bf899e6c84942eef9fbab569d597f574551afae5864f1953c6a517af068.bin +0 -0
  48. package/corpus/brasscap-mesa/blobs/bin/a302ddb2598a72ece53780094b64ad861dc68e6913d8a1ea08f5d141736e2986.bin +0 -0
  49. package/corpus/brasscap-mesa/blobs/bin/afcbc671326d0dac14e460662c1f793335877ba53cc965f67c0306833b087e7c.bin +0 -0
  50. package/corpus/brasscap-mesa/blobs/bin/b657159e6a28c801a211024f96a7ef60e388ce928a7b41ae3d7555a6f8fd2e3e.bin +0 -0
  51. package/corpus/brasscap-mesa/blobs/bin/be6bbc6cd15ba525790075252ba0ed0b28dae5cfbfa118c00dfb9ea1ab95e668.bin +0 -0
  52. package/corpus/brasscap-mesa/blobs/bin/c1360e3cbe6b3dc8894bc66c359853854c2e5adeac9c7cd5ba63f5db448be601.bin +0 -0
  53. package/corpus/brasscap-mesa/blobs/bin/c7983018dbf8e384ddf73191f526075bd0b29907061ab17642ecdc18ea7b9897.bin +0 -0
  54. package/corpus/brasscap-mesa/blobs/bin/cea66f27ca60ea173ee0a2bcd91964dc2638eb5657250fe3aa5bd3e41faf8730.bin +0 -0
  55. package/corpus/brasscap-mesa/blobs/bin/d052be571a0f3ab69926951f3a4c9d63f05da2ca6d91e5963dd63e04ecb515de.bin +0 -0
  56. package/corpus/brasscap-mesa/blobs/bin/d162a993a60dd682c8c21dd111429d84d8d30413a000cf481cf98d06ca83e706.bin +0 -0
  57. package/corpus/brasscap-mesa/blobs/bin/d238c3d3d054911714ebe30dafc99e6ad13925b7a600ba9f8d532d0f515f3f5a.bin +0 -0
  58. package/corpus/brasscap-mesa/blobs/bin/d9a98cfe2865a9bb0e94f35c735a570b0625b58f890a6b1f6e14fab2401f0af2.bin +0 -0
  59. package/corpus/brasscap-mesa/blobs/bin/dc27ae954b7b8a13a9459d6ca6ef2997f662715ff5f5453ea0da169f141748b8.bin +0 -0
  60. package/corpus/brasscap-mesa/blobs/bin/e3ff1fd41cf76668b8e1927c0c2e4056b63a293ebbd300a8f1b1d27d87786271.bin +0 -0
  61. package/corpus/brasscap-mesa/blobs/bin/e45b7344d373b3ef4a94f560cf4e17b1eb3b8cd89d1e552fc9be11d6b7b546f0.bin +0 -0
  62. package/corpus/brasscap-mesa/blobs/bin/eb14eb898224d5d81d1012bec54f2b79f9377dc60fa1d01e49b4c3e148292d77.bin +0 -0
  63. package/corpus/brasscap-mesa/blobs/bin/ed0e0101a3d91a3a615f9e78ef36f7deb8bb0eab0f133241d621925d0b596599.bin +0 -0
  64. package/corpus/brasscap-mesa/blobs/bin/f722e3a3b1f0a3d7b9f7d7c66c46d8c87245de5f8eece055daf95c7086f8c267.bin +0 -0
  65. package/corpus/brasscap-mesa/blobs/bin/f76013aedfd810f136fa689a151024bcb942687ef42ae7edf1fd3513ac4e22c7.bin +0 -0
  66. package/corpus/brasscap-mesa/blobs/glb/0547e63693282614673b13bade4c08eb772020757b131b7c80f2077873aab70e.glb +0 -0
  67. package/corpus/brasscap-mesa/blobs/glb/0cf89e9b1824440d213c8e9e33fb357734b7241b4c7eedaba3df7f8306e05425.glb +0 -0
  68. package/corpus/brasscap-mesa/blobs/glb/0e01060e3a507ffff6461c50b5c565c71380a6a67d9760cdd7a09afd3e30b584.glb +0 -0
  69. package/corpus/brasscap-mesa/blobs/glb/0ef326c5cf5292cd15b48b851460ee8156f51e0a5b62457c8f1f3c53c41665a3.glb +0 -0
  70. package/corpus/brasscap-mesa/blobs/glb/1112ff4a3f69db3b62c6d2d6ae021e7c43ce0ca1feb1d3130376881decb3c6b0.glb +0 -0
  71. package/corpus/brasscap-mesa/blobs/glb/11357cb8a0670fdc9a03780dd79a31e0aa7a0537786cbf66491bae1722d6feb3.glb +0 -0
  72. package/corpus/brasscap-mesa/blobs/glb/11dbecc73bd343c375bd4b79db8dbda2272e76a6b8426ac29e90f2b1272ccfc2.glb +0 -0
  73. package/corpus/brasscap-mesa/blobs/glb/133f639cfa837bc5da7915121c71fd32281660c2aaa0248bd59bde47e7faf8bc.glb +0 -0
  74. package/corpus/brasscap-mesa/blobs/glb/16812a090136b6678633aa4db03e4187920ae0aca776ad6da373c600cd341972.glb +0 -0
  75. package/corpus/brasscap-mesa/blobs/glb/17e63980d7934cfe1d2823d78652af338fe9f0c2170106cd4506a2c4e7f4716f.glb +0 -0
  76. package/corpus/brasscap-mesa/blobs/glb/199224cafc86904bdefec8f01d131d7ca3e076a22b689bfc6a26dd20373cf286.glb +0 -0
  77. package/corpus/brasscap-mesa/blobs/glb/1a5c8cf223a2f64715ea5eaf14d97a0131f9ebdef4388dc4823dcfa57817724c.glb +0 -0
  78. package/corpus/brasscap-mesa/blobs/glb/1b0ec09ad6718149d7ca514136cee09b04c96425f03af0559fd097112aa0daa5.glb +0 -0
  79. package/corpus/brasscap-mesa/blobs/glb/1e5024bbb1284b2ed39bbca2d0ade3acb5be2a2c6ba643291f269b76098c7f79.glb +0 -0
  80. package/corpus/brasscap-mesa/blobs/glb/1e7635972e13468ffcbb1608f1d12559b066b4533912be2c35e3db07fd4a679d.glb +0 -0
  81. package/corpus/brasscap-mesa/blobs/glb/1f03db3a38a21b8d4d02f8ede30e1303cd8d4c426815326a88f45a268b17a492.glb +0 -0
  82. package/corpus/brasscap-mesa/blobs/glb/2624abb7bf45618be40f8c3221445179fca44f7321baff415fdf7ddd5e0afc6f.glb +0 -0
  83. package/corpus/brasscap-mesa/blobs/glb/27fc3bad6db6e2b5ade5d242867d882362482ddf19c647edef821afc27d52dc2.glb +0 -0
  84. package/corpus/brasscap-mesa/blobs/glb/29959bdb5b04a9180e88ec1ed976bae55424d3dc50985f13c0f85bae11ae79ee.glb +0 -0
  85. package/corpus/brasscap-mesa/blobs/glb/308cbce2b1b6360f9a2dc275d0bc28be1966fc3ff5e0a58844405ba867f3f668.glb +0 -0
  86. package/corpus/brasscap-mesa/blobs/glb/3674d7be969755aaffa368e57b8d1bb743bc98e766a57948859d54fdc7d2c066.glb +0 -0
  87. package/corpus/brasscap-mesa/blobs/glb/3736ca95c9c40b30e21302ae6c89148d8ac09264dfbb7e5764b08c265a73ba3c.glb +0 -0
  88. package/corpus/brasscap-mesa/blobs/glb/3bc90e1dc9411d249697e4ec352baa4886f91cacfe4940ac43aed879f60966c9.glb +0 -0
  89. package/corpus/brasscap-mesa/blobs/glb/3f519c7c7482307cae908b27602dcb7716e2da4b651eff39c4c37103998d18fa.glb +0 -0
  90. package/corpus/brasscap-mesa/blobs/glb/4767636d5554b60c94b447b87b77fc1456a2b9af42bfe08585389d27f306dd5e.glb +0 -0
  91. package/corpus/brasscap-mesa/blobs/glb/4a3242773b3a73a73ee746a0cdf30c8d6d904bb4406dfdf9822dcd535d6ae308.glb +0 -0
  92. package/corpus/brasscap-mesa/blobs/glb/4c7bf3788cba151442d85c3f76553c2e356edf8566ae8243d0a535c9bcde51d0.glb +0 -0
  93. package/corpus/brasscap-mesa/blobs/glb/4f3b9f4c818ed6d375947e9603dd058c539e14ff05aa193fb5054d899dbb82a2.glb +0 -0
  94. package/corpus/brasscap-mesa/blobs/glb/4fdf7ee67d12de1cd30c3c2bbd9409032dcab5feb3a7d3977b92c50b1d161afe.glb +0 -0
  95. package/corpus/brasscap-mesa/blobs/glb/5821f33aa00e9acd2f4c0a29129978ee7006a879d163ce1463ae476031bfabcf.glb +0 -0
  96. package/corpus/brasscap-mesa/blobs/glb/5a986c3e44fc686a2efe7648c3945bb7b51cf303918381383f21f898dd312cad.glb +0 -0
  97. package/corpus/brasscap-mesa/blobs/glb/5c32fc1de6d198ed606d3e8c3264319acdd950dab18e8b723fc6332bf2f56aea.glb +0 -0
  98. package/corpus/brasscap-mesa/blobs/glb/602ce4e8b00a0afbc1a894b65641e48d362ec834a559b9d97a4801473bb01da7.glb +0 -0
  99. package/corpus/brasscap-mesa/blobs/glb/6180f9f96167522d8cab4de1d52598cecee8d7ee042f48e41669c98cf61c19c3.glb +0 -0
  100. package/corpus/brasscap-mesa/blobs/glb/6205973ba63f7a554662ba05010d25131bed2d9656de422e2067ca54709d5b3c.glb +0 -0
  101. package/corpus/brasscap-mesa/blobs/glb/693e556f2165232e8a38b1b2d68676f235ece5705c564992cfa7731426f4d376.glb +0 -0
  102. package/corpus/brasscap-mesa/blobs/glb/6a46175438bec5527c281b577bd220b6badedf3c74266b997d39e596f83b8853.glb +0 -0
  103. package/corpus/brasscap-mesa/blobs/glb/6ca1bcad7ea053a259b7f9fc5a7ec388a4cd29d44391d93386ea8b1143d94c21.glb +0 -0
  104. package/corpus/brasscap-mesa/blobs/glb/6f9bc99656b611890d6acc76ee416f6222ca2d5f62167840b4216a21e020a4c8.glb +0 -0
  105. package/corpus/brasscap-mesa/blobs/glb/6fb1e7857996662233ab5314fc13f8aa30703f91c04542e352ec17f9dc4fc054.glb +0 -0
  106. package/corpus/brasscap-mesa/blobs/glb/7028ec39712143a7e9d09d2e1477282b654d0470102ca9d272ac82b23604cb21.glb +0 -0
  107. package/corpus/brasscap-mesa/blobs/glb/73af65ac86efa61099178f3e7075dcd26d389ee9b9aa3546c18dede10c3dfda1.glb +0 -0
  108. package/corpus/brasscap-mesa/blobs/glb/73b992b71bd3165ff7701ab1430c075cb5ba9b74e6363d24640377b1011ddc93.glb +0 -0
  109. package/corpus/brasscap-mesa/blobs/glb/7471261d4df59979ba41a622d93779b66ebecd50353ad433862e603ee65f8748.glb +0 -0
  110. package/corpus/brasscap-mesa/blobs/glb/76e9a3fcca962c2f900cf79dc1a0851840bd405dc11231f629f784adbcb69d23.glb +0 -0
  111. package/corpus/brasscap-mesa/blobs/glb/79d2d29e8cd8b642386b5f31429b39bc4d6f13e53107dda00ebc463abf80c79d.glb +0 -0
  112. package/corpus/brasscap-mesa/blobs/glb/7de66fcfffe4ff108510cbe6bebec44e28ab4b78e98e9c1a38466db5b81881f7.glb +0 -0
  113. package/corpus/brasscap-mesa/blobs/glb/811fa798cb81ea99488db98e3d3ddea815aac8f6e7493ad04d0176f603978678.glb +0 -0
  114. package/corpus/brasscap-mesa/blobs/glb/89b277f1636be220ff5658ff1f1c62efe14079d6e1f42efb373fbf0246801533.glb +0 -0
  115. package/corpus/brasscap-mesa/blobs/glb/905c5fe666d9f6174e987382e47d3f325c5696cf8792d7a4a1dd120a438b8270.glb +0 -0
  116. package/corpus/brasscap-mesa/blobs/glb/90efe3e05370ee853c0130b98ee82f00b86f7c7104e96b094715187fa49ac16f.glb +0 -0
  117. package/corpus/brasscap-mesa/blobs/glb/968a7c5cb13014bce00a29d43b344bd6943ff00ae2908abbc6b40a994f1172a1.glb +0 -0
  118. package/corpus/brasscap-mesa/blobs/glb/9a955b4e69dfa5b38f071099053c1a3684cf85ec2d346420de2853c61768f8cc.glb +0 -0
  119. package/corpus/brasscap-mesa/blobs/glb/9da2781216a2e482dd8a6ada5ebb43bcf48e0169430e787ac277559cb2ade19a.glb +0 -0
  120. package/corpus/brasscap-mesa/blobs/glb/9db02aab14a3b52463deadefbf4ba771809941e7fcb137c905955bdc80ec23bd.glb +0 -0
  121. package/corpus/brasscap-mesa/blobs/glb/a3fe1788cf5d7f260249c722f0e0695a4d55744d1b14be44122377147a296256.glb +0 -0
  122. package/corpus/brasscap-mesa/blobs/glb/a5c75af8f090d3c95fa46d2be49be5031138d7cd1bae234ae028edf717bf299e.glb +0 -0
  123. package/corpus/brasscap-mesa/blobs/glb/a771abd40bd337a464c1bd19f841b62e290124faa89b19ec50e85ab36bc740a5.glb +0 -0
  124. package/corpus/brasscap-mesa/blobs/glb/a94a2ad2ed463a47cdda117df25b06b3cf6be37ddac08594bc5f5d76c7237730.glb +0 -0
  125. package/corpus/brasscap-mesa/blobs/glb/ad434e4a6490e495994b25f7574a5847a9f7d9c2ca5a2b229a9dfdd2e5e2bb72.glb +0 -0
  126. package/corpus/brasscap-mesa/blobs/glb/aeae7b05404b852008a7897689e58aacef44a2c3bc0e87d2519ecdb4cb1e3ff5.glb +0 -0
  127. package/corpus/brasscap-mesa/blobs/glb/b0c0c8a4985f92be3b358a8e703c67957427501882aeee05b4ccd3c7880930d4.glb +0 -0
  128. package/corpus/brasscap-mesa/blobs/glb/b25174c3cd13eea6e1d9c3104ee5197dc6330129b2f0f7676e8a429900999d9b.glb +0 -0
  129. package/corpus/brasscap-mesa/blobs/glb/b3eecdec571df96338edf690443394ff859383b4c94f4cf33d42c240006f8543.glb +0 -0
  130. package/corpus/brasscap-mesa/blobs/glb/b7aa0c61ff9e7411535c7b7b8e587849a92bad00d431171ab16ad47d55db0a53.glb +0 -0
  131. package/corpus/brasscap-mesa/blobs/glb/b9deef944c22331bc05220d1d6e46412e3cb1246ef041a4405d0cbbd90c2d624.glb +0 -0
  132. package/corpus/brasscap-mesa/blobs/glb/ba9376e4ac39b809133ab717edb4c88b5219118766db492d7c97534ce119c2ec.glb +0 -0
  133. package/corpus/brasscap-mesa/blobs/glb/baf338e9c272158b905fb58a712e29410c657a45be2764f1c6c43ca87fd1db48.glb +0 -0
  134. package/corpus/brasscap-mesa/blobs/glb/bd442ac9fbe52b9f2e4ba586670017c3f2d9fedf1cbdec77ef24e9f8b3a183c8.glb +0 -0
  135. package/corpus/brasscap-mesa/blobs/glb/c142adcf253be43b66f23ede8cea1e8fcfa256ebf53054a1068ace04745718a6.glb +0 -0
  136. package/corpus/brasscap-mesa/blobs/glb/c6d7cbdc4b2ee9d416edf4d736a4f374f08aea98ca395ad371a50a1853744cfc.glb +0 -0
  137. package/corpus/brasscap-mesa/blobs/glb/cfb165a7675d15cee2c490b31095a58f73bace50ccc1e0fdf2c8dc4400f1df27.glb +0 -0
  138. package/corpus/brasscap-mesa/blobs/glb/d40f2ee59612473e9f687f17a0e203fdb4ba54c7185b05a8d81a433b04f24134.glb +0 -0
  139. package/corpus/brasscap-mesa/blobs/glb/d50ce95411156a6b6cf386aefa5ee58db659811813f74be74f323e7c5795056f.glb +0 -0
  140. package/corpus/brasscap-mesa/blobs/glb/d6af418bbde39b4fc7d22a61401d416be7a3fc1214ea2d3f42b4549c392d22ca.glb +0 -0
  141. package/corpus/brasscap-mesa/blobs/glb/de7222ceeb1f72693dfb7fd1f343798659e03772d77f2b498fd8ebece2d5550a.glb +0 -0
  142. package/corpus/brasscap-mesa/blobs/glb/e26975b198127ac3b6b4f5c4bc08ad47d6691398feee777743285391cd36d502.glb +0 -0
  143. package/corpus/brasscap-mesa/blobs/glb/ea428490cd5f2672676a2776a598b819b08246871e76de94b7196f9643144986.glb +0 -0
  144. package/corpus/brasscap-mesa/blobs/glb/eb96567a266d24be188cb5b08021112f2fad311cbead939d53c5565da11f6265.glb +0 -0
  145. package/corpus/brasscap-mesa/blobs/glb/ecf66230bf7b68050c0827c2e4caf3de90e46859d291b794faa0dd3816d9dac6.glb +0 -0
  146. package/corpus/brasscap-mesa/blobs/glb/ed8f067763a4a8adb83d80c8324b2a9668f1061f5f5352f21295e6cc5132386f.glb +0 -0
  147. package/corpus/brasscap-mesa/blobs/glb/ee507a38772865467736d370791fe73c6aa4d83fe3e7ff4baa156b9cb2894c1c.glb +0 -0
  148. package/corpus/brasscap-mesa/blobs/glb/eedc5b62dc6f27d4a089e9f5b282f626129236d3f1689b001e04f8748bf8859c.glb +0 -0
  149. package/corpus/brasscap-mesa/blobs/glb/f4119b9c6c23435619682b5d247743459e76584b9b0d6c5cb689d8e156906695.glb +0 -0
  150. package/corpus/brasscap-mesa/blobs/glb/f576047267a0bf9bd4bfc47072ea3d11066345b839953546292da678d1cb4722.glb +0 -0
  151. package/corpus/brasscap-mesa/blobs/glb/f8cdfb11997d4ccabea88bcdd3924cc8b621b33618b18fe5fbfd286edfc1d87e.glb +0 -0
  152. package/corpus/brasscap-mesa/blobs/glb/fce95ecc5db24c903bd46f338e366e2715411465a5efac180e2f0f46397e59de.glb +0 -0
  153. package/corpus/brasscap-mesa/blobs/image/0579557f9344df6f2c4b1225e6252e53ab86d417a4c9b504b5c714a08a388e47.jpg +0 -0
  154. package/corpus/brasscap-mesa/blobs/image/9e18816a2ec16fbbb1f00f4a39c73ac2cbf6a8cdc17b4c96b1eba4cc9a754dc7.jpg +0 -0
  155. package/corpus/brasscap-mesa/blobs/image/eb453c71cfb1f9441eb00b32281f98e226e49d9dcf75c231455575fcdc652222.jpg +0 -0
  156. package/corpus/brasscap-mesa/blobs/json/e0072ed82115c519b891f53a194ea3b28fff7d3826d8ddf23460d6f21b7728d9.json +1 -0
  157. package/corpus/brasscap-mesa/blobs/json/ffb0e08eaaa7188db1f55931c9b6330937316091cc7463ed2eff6767bbfa33de.json +1 -0
  158. package/corpus/brasscap-mesa/blobs/wasm/1d6ace79610c4d510b60ad0c52915e42b57797d91f1ef292f60d8a3daec03dd6.wasm +0 -0
  159. package/corpus/brasscap-mesa/blobs/wasm/24a4d4c1292677b1c984b5c0d3497ae2929528bf511df475f80cc20945bb08ec.wasm +0 -0
  160. package/corpus/brasscap-mesa/blobs/wasm/b86d8afcc269fb063ebf64768fc3787635b65a7409a571115b07be2e4da39733.wasm +0 -0
  161. package/corpus/brasscap-mesa/cook.json +1 -0
  162. package/corpus/brasscap-mesa/mounts/shardfiles/brasscap-mesa/discovery.json +1 -0
  163. package/corpus/brasscap-mesa/sections/actors/creatures.json +1 -0
  164. package/corpus/brasscap-mesa/sections/actors/crowds.json +1 -0
  165. package/corpus/brasscap-mesa/sections/actors/species.json +1 -0
  166. package/corpus/brasscap-mesa/sections/audio/audio.json +1 -0
  167. package/corpus/brasscap-mesa/sections/combat/encounters.json +1 -0
  168. package/corpus/brasscap-mesa/sections/combat/items.json +1 -0
  169. package/corpus/brasscap-mesa/sections/combat/strikes.json +1 -0
  170. package/corpus/brasscap-mesa/sections/economy/ledger.json +1 -0
  171. package/corpus/brasscap-mesa/sections/economy/loot.json +1 -0
  172. package/corpus/brasscap-mesa/sections/look/look.json +1 -0
  173. package/corpus/brasscap-mesa/sections/look/materials.json +1 -0
  174. package/corpus/brasscap-mesa/sections/quests/quests.json +1 -0
  175. package/corpus/brasscap-mesa/sections/sim/client-scripts.json +1 -0
  176. package/corpus/brasscap-mesa/sections/sim/hooks.json +1 -0
  177. package/corpus/brasscap-mesa/sections/sim/plumbing.json +1 -0
  178. package/corpus/brasscap-mesa/sections/sim/scripts.json +1 -0
  179. package/corpus/brasscap-mesa/sections/sim/sim.json +1 -0
  180. package/corpus/brasscap-mesa/sections/state/migrations.json +1 -0
  181. package/corpus/brasscap-mesa/sections/state/state.json +1 -0
  182. package/corpus/brasscap-mesa/sections/ui/card.json +1 -0
  183. package/corpus/brasscap-mesa/sections/ui/compendium.json +1 -0
  184. package/corpus/brasscap-mesa/sections/ui/level.json +1 -0
  185. package/corpus/brasscap-mesa/sections/ui/ui.json +1 -0
  186. package/corpus/brasscap-mesa/sections/world/collision.json +1 -0
  187. package/corpus/brasscap-mesa/sections/world/days.json +1 -0
  188. package/corpus/brasscap-mesa/sections/world/edge.json +1 -0
  189. package/corpus/brasscap-mesa/sections/world/movers.json +1 -0
  190. package/corpus/brasscap-mesa/sections/world/navigation.json +1 -0
  191. package/corpus/brasscap-mesa/sections/world/props.json +1 -0
  192. package/corpus/brasscap-mesa/sections/world/spawn.json +1 -0
  193. package/corpus/brasscap-mesa/sections/world/terrain.json +1 -0
  194. package/corpus/brasscap-mesa/sections/world/tiles.json +1 -0
  195. package/corpus/brasscap-mesa/sections/world/traversal.json +1 -0
  196. package/corpus/brasscap-mesa/sections/world/water.json +1 -0
  197. package/corpus/brasscap-mesa/sections/world/weather.json +1 -0
  198. package/corpus/brasscap-mesa/shard.json +1 -0
  199. package/corpus/brasscap-mesa/validation.json +1 -0
  200. package/corpus/handwritten/blobs/bin/027822f6ae9c374ce1ced851f2227cb9acb03077e5cc6b7fecb245c31f021abd.bin +0 -0
  201. package/corpus/handwritten/blobs/bin/0377ce182bd604bcf4d501f14bf954c434ea64ad856ad9d71c502d1045612703.bin +0 -0
  202. package/corpus/handwritten/blobs/bin/05ad93d239eeeb5d9afa09b00d90c56098d88e8850e5b5e691fcaa7520dec3cd.bin +0 -0
  203. package/corpus/handwritten/blobs/bin/0c8980141e6e394ea473df1eb11c347ba617a1a9a4b39b3fa1871b5d15b97d87.bin +0 -0
  204. package/corpus/handwritten/blobs/bin/14eb11f8d809320e0a68b1edea7837d7a5b4a3da71f1ce4f54068e0afe0b039b.bin +0 -0
  205. package/corpus/handwritten/blobs/bin/16590066c039ac71e5038a9866a53ccb95e21af13db29cb655b379c4fcfef7bb.bin +0 -0
  206. package/corpus/handwritten/blobs/bin/1795b5147ad52482445d2414ee22823b947c43a917b6e96fd9ec017f17000912.bin +0 -0
  207. package/corpus/handwritten/blobs/bin/18f2e24ecc1ed1b1d12ae1c89732a5a1a618ab6e973d4ff0332cf9ecc4e4f4a6.bin +0 -0
  208. package/corpus/handwritten/blobs/bin/1a18ade01095f1a9ebe75650127861ef27dda0bb17c2b91bde057ec88ef2e98a.bin +0 -0
  209. package/corpus/handwritten/blobs/bin/1dba017cddb874bc147efb00c55418846ffa344a696f4df702bbabeea55034d0.bin +0 -0
  210. package/corpus/handwritten/blobs/bin/248c703537e4687ddd2b69a40d1ef3936da718626289d6867ce0a6866f562ba4.bin +0 -0
  211. package/corpus/handwritten/blobs/bin/2612d9fd4727f8c349f2dbfb7b1650bb7a752d0798a4966ac22cf2b6cdd9fcef.bin +0 -0
  212. package/corpus/handwritten/blobs/bin/28c54c766e90e3b046a2377b9fa015b0ce45cf3da4420f2b10553251f86c06aa.bin +0 -0
  213. package/corpus/handwritten/blobs/bin/30866b4807b12579f50218f6525c3db00919fbd43c97921daf47b3244b25dca6.bin +0 -0
  214. package/corpus/handwritten/blobs/bin/3d14fae85d77406a9b8c59f2e973cdae9587d49108ea92fb460679ca860196b8.bin +0 -0
  215. package/corpus/handwritten/blobs/bin/3f2201a53c441abcfb52089fe9bbb01f26fac8744099d3fb6668452885c2fa11.bin +0 -0
  216. package/corpus/handwritten/blobs/bin/42f270a99367fc4cc901518ccaa344ab595e265f113be944510da745c11f69d1.bin +0 -0
  217. package/corpus/handwritten/blobs/bin/43fd4327fedd51a586684ac611bcad4a8b9d62e51e03967de71fb42c9bf0f6e1.bin +0 -0
  218. package/corpus/handwritten/blobs/bin/484adda0898a881b6f095dad447f6a619bf0933f65efe940b72f1ab7f3630c22.bin +0 -0
  219. package/corpus/handwritten/blobs/bin/4a38cd49e8797429ce76265c3d8972195d5b0a02a35fc05fc513eab11240f415.bin +0 -0
  220. package/corpus/handwritten/blobs/bin/4fe636237bbbd4f836b0816bc61702f4c224d4cb91fbd94f244c731e24a1b945.bin +0 -0
  221. package/corpus/handwritten/blobs/bin/51b1cff782dc7ebb382bc429ee965023d4cdb52c7b3e37d6ffff5ef55c1c2813.bin +0 -0
  222. package/corpus/handwritten/blobs/bin/52561f02071ecaa98432fab5e8ece407a8e8f733a01f8eb7c543d1efe02614da.bin +0 -0
  223. package/corpus/handwritten/blobs/bin/556d6333923afea9641c4738741a41d6a46ae28a508288b9a49a749a344c1398.bin +0 -0
  224. package/corpus/handwritten/blobs/bin/5caeb97f32c7f31e1029eebdf31131f879f781bb5e3a225206a646710d83fd75.bin +0 -0
  225. package/corpus/handwritten/blobs/bin/5d1131e42a045083225105b640ff72e02c7f353ee6285545ac264d01bea26b1b.bin +0 -0
  226. package/corpus/handwritten/blobs/bin/5d80b30eee9f8342a92f6756fd0d84fb9d2d2ce994d222627641e584ad45d2a8.bin +0 -0
  227. package/corpus/handwritten/blobs/bin/5e0f9f7f2a85abe11a0a61ede853c9b9942b4494c3eb9943785cf6ae221e40e3.bin +0 -0
  228. package/corpus/handwritten/blobs/bin/5fdc5485343bba8201185c9bae862ad8618498ab5ce63b53514e4e0226fa7bdb.bin +0 -0
  229. package/corpus/handwritten/blobs/bin/6623dcb0b31c9ca0be342f6dca6b9e607ec3c12ff82068fa6030c142c2df77f7.bin +0 -0
  230. package/corpus/handwritten/blobs/bin/6887131a04175edbd1989aa95e8749d1703e7f2d0b8464e85f6bad28d6964125.bin +0 -0
  231. package/corpus/handwritten/blobs/bin/6cf89771d998486cad9049e6f4fc177d742a18ad79fafa4596814ff9d3cf1952.bin +0 -0
  232. package/corpus/handwritten/blobs/bin/74bbb0fc219e8476cd5550014a357ee18abc981ff3fe787ae3e60d4593705ec5.bin +0 -0
  233. package/corpus/handwritten/blobs/bin/76784a7f519ac43ce113a0c9365881839b75f66f96aa009fe8d3c8ab539ef283.bin +0 -0
  234. package/corpus/handwritten/blobs/bin/79a2f693ee2da546bb551f8b641b9c3affd2b8bfb5632ed7f417daba9d900af9.bin +0 -0
  235. package/corpus/handwritten/blobs/bin/7b593b0f9eefb957fb9d58b316d9836971203038d7c8127284bba44ccb3090bb.bin +0 -0
  236. package/corpus/handwritten/blobs/bin/7bb8e518ca5606de78972a6c648b57623f8bc12d7e06b4bbf43c60ac419a9bbd.bin +0 -0
  237. package/corpus/handwritten/blobs/bin/7c6133f3350147257fa501f41269cb77cb11d8ed96d351e873333b079cee524a.bin +0 -0
  238. package/corpus/handwritten/blobs/bin/7f5acf1893828995256f5b2c54948f80ba21e53de72db26ea72ce2479f5b0682.bin +0 -0
  239. package/corpus/handwritten/blobs/bin/836516253cf0f3e6e79537609fdbe6331c8c5c974f9ec4d3fbe4a7db48cf123d.bin +0 -0
  240. package/corpus/handwritten/blobs/bin/89900344f82d5c1474d2a163f8d29903447bac64e9c9775123ef499be70c2380.bin +0 -0
  241. package/corpus/handwritten/blobs/bin/95d76a9273c3edd98b3643c54e2e7989800bdcaf6f815230ef09f601e760330f.bin +0 -0
  242. package/corpus/handwritten/blobs/bin/a7b5a5fe053a38c93eed899bde5051cddd80e0a3f3c82b6fd814869097f0944b.bin +0 -0
  243. package/corpus/handwritten/blobs/bin/b29be84df0bfd1bc97a1464fd5ea068130947bfed3328e167640c81326eb45d7.bin +0 -0
  244. package/corpus/handwritten/blobs/bin/b6518dc352be03332a256f1cd9d1149da262fe6829e87ba43364f19c687ca7c9.bin +0 -0
  245. package/corpus/handwritten/blobs/bin/b7edb8095beeb158adb61ae3caa1653773757afbcd8fb2764c94b975a43fe9e2.bin +0 -0
  246. package/corpus/handwritten/blobs/bin/b86d617ae7fa397df51ff7af87cd89fa113ac19abd3840ea8f3a086d6c82905c.bin +0 -0
  247. package/corpus/handwritten/blobs/bin/bb860b5c67ee7f2fafd67588822152228d6f6c9de1231123eeafa4844732b18b.bin +0 -0
  248. package/corpus/handwritten/blobs/bin/bf8c3971bbb224075d488ffa9cfc20e322c61f9ca0c59c356838415f6778014b.bin +0 -0
  249. package/corpus/handwritten/blobs/bin/c2edd52ee14ebdc9fcc01d38c15d6ab3379df7a20098c260c546551898959cd1.bin +0 -0
  250. package/corpus/handwritten/blobs/bin/c3de13c551c5b45270143dcbb9fc9a31651f6012355823c0709c2fe6cafda940.bin +0 -0
  251. package/corpus/handwritten/blobs/bin/c57a8d9da18b1289afd16de00dd1ec75027048b8dcf7dd218da36bc3276ff035.bin +0 -0
  252. package/corpus/handwritten/blobs/bin/cc2975c9dea4c31b1bf380623a8f44059423004653f9cae4f603d374174323b7.bin +0 -0
  253. package/corpus/handwritten/blobs/bin/d476abba2e1c63ad3c7527617559173484ee837a5be2744d968466d5527c286b.bin +0 -0
  254. package/corpus/handwritten/blobs/bin/db242f89115c878cf0c3b976a1647e9cdeb6a1a51813b1dacaf1188715603294.bin +0 -0
  255. package/corpus/handwritten/blobs/bin/dcc4b9b3bc4ca777d11c494ae5478f17ad7cf2efa18dcba30def872d55355bc3.bin +0 -0
  256. package/corpus/handwritten/blobs/bin/dd99da483f385327d6b8319d6e2e9000b580280069353718aa0fda2230707e8b.bin +0 -0
  257. package/corpus/handwritten/blobs/bin/dfc139dba26f1789e16f72602e654636f2d99bcd41e3f10454da74b3a6a64dda.bin +0 -0
  258. package/corpus/handwritten/blobs/bin/e15ab3cc9f60657321cfe8d9751e086f025734f4e7068271e0baf6066a686f18.bin +0 -0
  259. package/corpus/handwritten/blobs/bin/e16a83a71213db6f804ce1d53981a2308062752c85c440022d9eeb7605fd37c8.bin +0 -0
  260. package/corpus/handwritten/blobs/bin/e7355876487f660ac9f25c9d9dfcd66eaf432e1e1669eb89d12ce8267a8d3e86.bin +0 -0
  261. package/corpus/handwritten/blobs/bin/e81a632e2da0f6a4d801f18aadfe2c6e640401cc1178935a9099ebb8e3af6cc1.bin +0 -0
  262. package/corpus/handwritten/blobs/bin/f0721c60d0b1046579d8c587fac8482a70822f0b39a85f9acc0cfc31f82b7dd2.bin +0 -0
  263. package/corpus/handwritten/blobs/bin/f301cf574de6d84030f839098ca44705dca115f9d3e4ee848e0b35fff3deaf77.bin +0 -0
  264. package/corpus/handwritten/blobs/bin/f7797f295a7570c437bf7020a1ddf208fea2a7aab595333320a6396c1608d360.bin +0 -0
  265. package/corpus/handwritten/blobs/glb/08de0bb2439ac812adef528b4b073bdb954bbeada972a2f3afb1757bd0540396.glb +0 -0
  266. package/corpus/handwritten/blobs/glb/153681171c35d2898569324e21ebe734b8418d4122833618a1e64ea326be1e5e.glb +0 -0
  267. package/corpus/handwritten/blobs/glb/1df5ce0b6cae72ec4cf3c41510681ba70ebb474f9745d536ebd4f03e8fc82de9.glb +0 -0
  268. package/corpus/handwritten/blobs/glb/262031e2fa710bd8d586eafce1019ca1434a2170e407567741aac1d99fc9c5ab.glb +0 -0
  269. package/corpus/handwritten/blobs/glb/27466efb180fb5b5074b40e424bd0b8d78f7ff0f5f3663748e014daeeeb5bedd.glb +0 -0
  270. package/corpus/handwritten/blobs/glb/2d2f6d00a14c89a4efb7f679b371118f564f258797ed8b8b42baf4ae60902ea6.glb +0 -0
  271. package/corpus/handwritten/blobs/glb/31f327d215ed7ef422e2169172f3869769e9816c9da979616844081e74f2eb09.glb +0 -0
  272. package/corpus/handwritten/blobs/glb/3bfe0e9ca18077ffee9c284ef40fed9f2fc354f7495612c785a6f980b5966559.glb +0 -0
  273. package/corpus/handwritten/blobs/glb/3db43042b3eeb1dee7ce9de1cc00322cefc348aa18c37d168b0858e6af6ca7a4.glb +0 -0
  274. package/corpus/handwritten/blobs/glb/46460a50da44fb8e792b48a646ec9ce025bb309d315dbcf67d2e9598591750de.glb +0 -0
  275. package/corpus/handwritten/blobs/glb/4902213556fedaf269fba6f0f195e424b2e49973ab45dcb8b69e34d253d9d8ff.glb +0 -0
  276. package/corpus/handwritten/blobs/glb/4dda463c9cd4bf339e5611871d4ba2fe16fe1487389a88b2888e96bc55e45d93.glb +0 -0
  277. package/corpus/handwritten/blobs/glb/4ed23469bd2b6b73183564cfc80a1ebcd0ffe2666a90a556752af0ca147fd2f7.glb +0 -0
  278. package/corpus/handwritten/blobs/glb/4fe74a1bed6b67129885b90cfcae01b5ca82e23e6d40507e280f02fca7fda54f.glb +0 -0
  279. package/corpus/handwritten/blobs/glb/50521bb3a50cc7199d324a0b25bc167c2e9d69770cb500490428efefc81ce3ea.glb +0 -0
  280. package/corpus/handwritten/blobs/glb/5ecca36d1e503edc092af0ef42f139cdcad99b8c2008318eb6ad337023d57296.glb +0 -0
  281. package/corpus/handwritten/blobs/glb/60fc036925852568cdb1b9fb85218dc43a8bf2ed86d3971a221ad942ece203a7.glb +0 -0
  282. package/corpus/handwritten/blobs/glb/611633cee0e5822b744486e6dff5414ad5b159eaabffe1c0ba0bb68be794bfa1.glb +0 -0
  283. package/corpus/handwritten/blobs/glb/67c7f983a0bcb9f84425378acac121a53f30795dce3181643bc1b763d0ae80b5.glb +0 -0
  284. package/corpus/handwritten/blobs/glb/6ecc0d307030943727484b49b1872643479c55ccc92252fca06e9e3cbe98fa90.glb +0 -0
  285. package/corpus/handwritten/blobs/glb/774b366df4de56cb6f9e3c904f02ec98016ac2ec489dc9e214b09220fca2f8e5.glb +0 -0
  286. package/corpus/handwritten/blobs/glb/785bae514ffc029e611d602259db7d37cbef589409a0814b9d37175d8b6c0a45.glb +0 -0
  287. package/corpus/handwritten/blobs/glb/79e79524efb2830e90af3c945c5b36ef07c1a38f2da2958112203a99eac52a16.glb +0 -0
  288. package/corpus/handwritten/blobs/glb/7bebdcdaf0be30d9f8d21bde72af68c32d825d12dc668f48109223ed7ff71c9f.glb +0 -0
  289. package/corpus/handwritten/blobs/glb/7d8b5ec9326a11362b3f9fa3409cb59d11b99f549cc304319c63c1ec55cbf5ab.glb +0 -0
  290. package/corpus/handwritten/blobs/glb/82e886f826315e4bf962363165fadadd3d93f85132c1909095045e0a7ccc0b34.glb +0 -0
  291. package/corpus/handwritten/blobs/glb/84b4ef190c3994ae7ca1b1f7a936526d1d20ad7deac13f949e3fe6bb7ba139ed.glb +0 -0
  292. package/corpus/handwritten/blobs/glb/85b7153e943fbe8c659bd6e4b323511dc6f6e2c7a3a1185e7a9a29ea6ddfdfa6.glb +0 -0
  293. package/corpus/handwritten/blobs/glb/85cf2d2be91cedbaf454ca42ad53c0c17b311088528d274695dbcea490d6c684.glb +0 -0
  294. package/corpus/handwritten/blobs/glb/8662b4cdc626c61a45e63f71dc866746c083cd0d4644b817a373105f936a7047.glb +0 -0
  295. package/corpus/handwritten/blobs/glb/8a4d33bfbb17d865e5deb0a0bdf3de67fc2312950a7568ed2635c22fbe4b1ecf.glb +0 -0
  296. package/corpus/handwritten/blobs/glb/8b11171d41c9027411ca8b87797d9ec70355471bdd3a247c114c49b8b781bbd9.glb +0 -0
  297. package/corpus/handwritten/blobs/glb/9026e1c4f0250832b69a989e69fe3071e5cad72adfe9c22ce11c409b18bb3357.glb +0 -0
  298. package/corpus/handwritten/blobs/glb/945b946f17b6393ea040230641c3083678bb6ab42e1d7239aeb9c950d0e7d5bb.glb +0 -0
  299. package/corpus/handwritten/blobs/glb/9afab455d603f1f8a38074c5a6cbed26d7d7f2cfd8a531820bd165d4b37399ee.glb +0 -0
  300. package/corpus/handwritten/blobs/glb/a6d702fb1be1095517625bfb2a2383f5f9638775059fd7e0d093d2044651b848.glb +0 -0
  301. package/corpus/handwritten/blobs/glb/aae479c2f99848998a1b499bbcad815d971349c2442bc363786aef63baad4337.glb +0 -0
  302. package/corpus/handwritten/blobs/glb/b155bd41f260d5303e293d691b657e0fb9b9c8b2f8aa589a0187061baa033eb7.glb +0 -0
  303. package/corpus/handwritten/blobs/glb/b1e8b770d99e8ca4396f21fd512f632c587149fc13db69deba388f702a46982f.glb +0 -0
  304. package/corpus/handwritten/blobs/glb/b382c318a5baac35da59a7b99ebaad6992e30c4bac327e85851ce0b2f89aa58b.glb +0 -0
  305. package/corpus/handwritten/blobs/glb/ba4478198696802808262af9bbfc224fe37e24e3f8c13de91debc87d3e1a9d41.glb +0 -0
  306. package/corpus/handwritten/blobs/glb/baf02cd967d1bf3c6a2ae878f4ca4ed34d0c39302ca2b8b6e3560a4e87b5c16f.glb +0 -0
  307. package/corpus/handwritten/blobs/glb/bc14dd152815ea6ed39458dcf89f2d69173d61d6e2b57be99d31ce2da64ccf67.glb +0 -0
  308. package/corpus/handwritten/blobs/glb/bc4e4d3bcf7ace855183efec0fbf242d444a32714d8b2fd8a45fa7b539ef2c73.glb +0 -0
  309. package/corpus/handwritten/blobs/glb/bc53475e2aa2fc9c2c0574b36a449fd57259c462d771e2b360def5c338d37c26.glb +0 -0
  310. package/corpus/handwritten/blobs/glb/c35d9e50f392c29f2587e3a6eb4f21143ba08e48d76a53b9de62d3b5be46c1a5.glb +0 -0
  311. package/corpus/handwritten/blobs/glb/c6911e059d3ac6aea75bc0ad3dd8b220704bfbba8ba98b57705e7aa3ecbe0050.glb +0 -0
  312. package/corpus/handwritten/blobs/glb/c84d88b6ed878490bcf9fa985b5e6a7a683de8ee7808ee4151a3b6a898fbe4f2.glb +0 -0
  313. package/corpus/handwritten/blobs/glb/c9d5d02ef0e38ac2898d3e6ecbc2ea0a6d2bd04531118550ab54b5e83293d7ec.glb +0 -0
  314. package/corpus/handwritten/blobs/glb/cd9d04e361e4c3d0aeb82f8682d71114ff8318b8fc4980bccee3c5e5c16afc27.glb +0 -0
  315. package/corpus/handwritten/blobs/glb/d32499928422a0cd1a32b1afaeacc31d2d84d74876f6805b36218dc04402a921.glb +0 -0
  316. package/corpus/handwritten/blobs/glb/dc7ea629fcddeba445599d73a5d721f4d5004e056c3c140baa3e6817393c6462.glb +0 -0
  317. package/corpus/handwritten/blobs/glb/dce79b59c85ca5a7f9fc25e585d253b15558f8f5d8497a76923c9071601de8b1.glb +0 -0
  318. package/corpus/handwritten/blobs/glb/e7fa1b02bae6c8d19ace0e8db44810beab9a1be9f8172d5816324760267d6d11.glb +0 -0
  319. package/corpus/handwritten/blobs/glb/eb664feed0fdcc3ac73cecbe737109994fe5dfad8a33997de88598965fa936ba.glb +0 -0
  320. package/corpus/handwritten/blobs/glb/ec6a771ca852b0b69e55a12df9d347384d01e611c8c6151ea771910f1601605d.glb +0 -0
  321. package/corpus/handwritten/blobs/glb/ede05013f575b4216d2b4b3f8a14d611ef28756f952f702bb169529c8ab02eff.glb +0 -0
  322. package/corpus/handwritten/blobs/glb/fec21fa96950340a1a031b31b37407468361ab0a7645c683e0d7773c18591a26.glb +0 -0
  323. package/corpus/handwritten/blobs/glb/ff21ea082bb00b01006900e7dbbb85220f31f45c144405c840a70872f9e09cb9.glb +0 -0
  324. package/corpus/handwritten/blobs/image/248fe9601e921305ffb35421414bc5f03e9f1b3dba15bf9b5c3387d8f255da17.png +0 -0
  325. package/corpus/handwritten/blobs/image/4b47420aff1ded28c9c6cf1eb92d6e2d7b01d057f2654654405445ff8d562e55.webp +0 -0
  326. package/corpus/handwritten/blobs/image/5dbc818ed0be692e6ba3df87898fd623280a2686eed5a538333e1325764b238d.png +0 -0
  327. package/corpus/handwritten/blobs/image/d5ae692911bbc2b60b5fdde239b70aad4ce9be0d7665c4a91b438de6077e21e3.jpg +0 -0
  328. package/corpus/handwritten/blobs/ktx2/df0dd2e8adc1d9479148bb198cb750471df454680cf0c9ffd6dc85d6262ed676.ktx2 +0 -0
  329. package/corpus/handwritten/blobs/wasm/ecc886d8bbebcf190298ff9162b6bb364f2125606f5bdc8cc220ea28044f96ea.wasm +0 -0
  330. package/corpus/handwritten/cook.json +1 -0
  331. package/corpus/handwritten/mounts/shardfiles/blender-template/discovery.json +1 -0
  332. package/corpus/handwritten/sections/actors/creatures.json +1 -0
  333. package/corpus/handwritten/sections/actors/crowds.json +1 -0
  334. package/corpus/handwritten/sections/actors/species.json +1 -0
  335. package/corpus/handwritten/sections/audio/audio.json +1 -0
  336. package/corpus/handwritten/sections/client/plan.json +1 -0
  337. package/corpus/handwritten/sections/combat/encounters.json +1 -0
  338. package/corpus/handwritten/sections/combat/items.json +1 -0
  339. package/corpus/handwritten/sections/combat/strikes.json +1 -0
  340. package/corpus/handwritten/sections/economy/ledger.json +1 -0
  341. package/corpus/handwritten/sections/economy/loot.json +1 -0
  342. package/corpus/handwritten/sections/look/look.json +1 -0
  343. package/corpus/handwritten/sections/look/map.json +1 -0
  344. package/corpus/handwritten/sections/look/materials.json +1 -0
  345. package/corpus/handwritten/sections/quests/quests.json +1 -0
  346. package/corpus/handwritten/sections/sim/client-scripts.json +1 -0
  347. package/corpus/handwritten/sections/sim/hooks.json +1 -0
  348. package/corpus/handwritten/sections/sim/plumbing.json +1 -0
  349. package/corpus/handwritten/sections/sim/sim.json +1 -0
  350. package/corpus/handwritten/sections/state/migrations.json +1 -0
  351. package/corpus/handwritten/sections/state/state.json +1 -0
  352. package/corpus/handwritten/sections/ui/card.json +1 -0
  353. package/corpus/handwritten/sections/ui/compendium.json +1 -0
  354. package/corpus/handwritten/sections/ui/level.json +1 -0
  355. package/corpus/handwritten/sections/ui/ui.json +1 -0
  356. package/corpus/handwritten/sections/world/collision.json +1 -0
  357. package/corpus/handwritten/sections/world/days.json +1 -0
  358. package/corpus/handwritten/sections/world/edge.json +1 -0
  359. package/corpus/handwritten/sections/world/movers.json +1 -0
  360. package/corpus/handwritten/sections/world/navigation.json +1 -0
  361. package/corpus/handwritten/sections/world/props.json +1 -0
  362. package/corpus/handwritten/sections/world/spawn.json +1 -0
  363. package/corpus/handwritten/sections/world/terrain.json +1 -0
  364. package/corpus/handwritten/sections/world/tiles.json +1 -0
  365. package/corpus/handwritten/sections/world/traversal.json +1 -0
  366. package/corpus/handwritten/sections/world/water.json +1 -0
  367. package/corpus/handwritten/sections/world/weather.json +1 -0
  368. package/corpus/handwritten/shard.json +1 -0
  369. package/corpus/handwritten/validation.json +1 -0
  370. package/package.json +508 -2
  371. package/packages/wire/src/net-command.ts +150 -0
  372. package/src/cli/bin.mjs +9 -0
  373. package/src/cli/main.ts +148 -0
  374. package/src/cli/pack.ts +262 -0
  375. package/src/cli/validate.ts +210 -0
  376. package/src/cli/version.ts +13 -0
  377. package/src/format/aacIndex.ts +160 -0
  378. package/src/format/accent.ts +35 -0
  379. package/src/format/achievementCounters.ts +22 -0
  380. package/src/format/actorMoves.ts +615 -0
  381. package/src/format/actorProjectionV2.ts +93 -0
  382. package/src/format/admissionControl.ts +66 -0
  383. package/src/format/admissionLate.ts +22 -0
  384. package/src/format/admissionLimits.ts +11 -0
  385. package/src/format/admissionServer.ts +30 -0
  386. package/src/format/ambientLife.ts +123 -0
  387. package/src/format/arenaRoomDocument.ts +114 -0
  388. package/src/format/arenaScriptRows.ts +107 -0
  389. package/src/format/arenaView.ts +30 -0
  390. package/src/format/assetAdmission.ts +279 -0
  391. package/src/format/audio-measure.ts +184 -0
  392. package/src/format/audio-mp4.ts +234 -0
  393. package/src/format/audio-rules.ts +295 -0
  394. package/src/format/audio-waiver.ts +55 -0
  395. package/src/format/audio.ts +463 -0
  396. package/src/format/audioBank.ts +37 -0
  397. package/src/format/audioProfiles.ts +501 -0
  398. package/src/format/audioRouting.ts +67 -0
  399. package/src/format/audioScene.ts +342 -0
  400. package/src/format/bakedTerrainBytes.ts +35 -0
  401. package/src/format/bakedTerrainSampling.ts +66 -0
  402. package/src/format/bakedTiles.ts +407 -0
  403. package/src/format/binarySource.ts +32 -0
  404. package/src/format/bodySlots.ts +90 -0
  405. package/src/format/bossEncounter.ts +354 -0
  406. package/src/format/bossProfiles.ts +709 -0
  407. package/src/format/bossSocketRig.ts +92 -0
  408. package/src/format/bowVariantRows.ts +68 -0
  409. package/src/format/brains.ts +252 -0
  410. package/src/format/budget.ts +214 -0
  411. package/src/format/buildings.ts +496 -0
  412. package/src/format/builtIndexes.ts +26 -0
  413. package/src/format/catalogueEconomy.ts +65 -0
  414. package/src/format/caveInterior.ts +225 -0
  415. package/src/format/cellBounds.ts +47 -0
  416. package/src/format/cellField.ts +98 -0
  417. package/src/format/chapterDirector.ts +193 -0
  418. package/src/format/clientChannels.ts +450 -0
  419. package/src/format/clientCues.ts +34 -0
  420. package/src/format/clientNative.ts +358 -0
  421. package/src/format/clientOwnership.ts +43 -0
  422. package/src/format/clientPlan.ts +306 -0
  423. package/src/format/clientScripts.ts +116 -0
  424. package/src/format/clientState.ts +273 -0
  425. package/src/format/clientTrails.ts +56 -0
  426. package/src/format/collectionDisplay.ts +232 -0
  427. package/src/format/colourFunction.ts +44 -0
  428. package/src/format/colourLut.ts +4 -0
  429. package/src/format/commonsCosts.ts +28 -0
  430. package/src/format/compendiumRows.ts +151 -0
  431. package/src/format/compendiumSketches.ts +23 -0
  432. package/src/format/completion.ts +83 -0
  433. package/src/format/contentBounds.ts +76 -0
  434. package/src/format/contentCost.ts +50 -0
  435. package/src/format/contracts.ts +305 -0
  436. package/src/format/cook-data.ts +148 -0
  437. package/src/format/cook-preparation.ts +241 -0
  438. package/src/format/coverAppearance.ts +53 -0
  439. package/src/format/creatures.ts +175 -0
  440. package/src/format/crowdPresentation.ts +87 -0
  441. package/src/format/crowds.ts +46 -0
  442. package/src/format/cueDirector.ts +134 -0
  443. package/src/format/dayCycle.ts +28 -0
  444. package/src/format/dayLook.ts +44 -0
  445. package/src/format/decisionBindings.ts +80 -0
  446. package/src/format/decisionPublication.ts +35 -0
  447. package/src/format/decisionScripts.ts +327 -0
  448. package/src/format/declaredQuestPage.ts +101 -0
  449. package/src/format/deviceMemoryCost.ts +50 -0
  450. package/src/format/director.ts +52 -0
  451. package/src/format/directorProduct.ts +27 -0
  452. package/src/format/directorStages.ts +165 -0
  453. package/src/format/directorWhen.ts +78 -0
  454. package/src/format/discoveryValues.ts +416 -0
  455. package/src/format/easedFields.ts +48 -0
  456. package/src/format/edgeProfiles.ts +40 -0
  457. package/src/format/eliteContinuation.ts +110 -0
  458. package/src/format/eliteEntryRows.ts +351 -0
  459. package/src/format/eliteFeature.ts +605 -0
  460. package/src/format/eliteScripts.ts +60 -0
  461. package/src/format/encounterRows.ts +1030 -0
  462. package/src/format/encounters.ts +65 -0
  463. package/src/format/engine-music.ts +42 -0
  464. package/src/format/entryClearance.ts +86 -0
  465. package/src/format/entryCoverage.ts +61 -0
  466. package/src/format/entryGeometry.ts +56 -0
  467. package/src/format/entryLanding.ts +83 -0
  468. package/src/format/entryReads.ts +45 -0
  469. package/src/format/entrywayAssets.ts +33 -0
  470. package/src/format/entryways.ts +58 -0
  471. package/src/format/exchange.ts +25 -0
  472. package/src/format/explorerCatalogue.ts +312 -0
  473. package/src/format/feature-sides.ts +233 -0
  474. package/src/format/fieldPresentation.ts +62 -0
  475. package/src/format/figures.ts +437 -0
  476. package/src/format/findsCatalogue.ts +67 -0
  477. package/src/format/fixedDraws.ts +24 -0
  478. package/src/format/flyers.ts +226 -0
  479. package/src/format/forestNativeInputs.ts +37 -0
  480. package/src/format/forestPage.ts +285 -0
  481. package/src/format/forestWeather.ts +333 -0
  482. package/src/format/geometryPack.ts +136 -0
  483. package/src/format/glbBuffers.ts +77 -0
  484. package/src/format/glbCost.ts +212 -0
  485. package/src/format/glbImages.ts +95 -0
  486. package/src/format/glbTriangles.ts +95 -0
  487. package/src/format/graphArmsRows.ts +200 -0
  488. package/src/format/grapple.ts +123 -0
  489. package/src/format/grazers.ts +164 -0
  490. package/src/format/grid-catalogue.ts +247 -0
  491. package/src/format/gridReadiness.ts +49 -0
  492. package/src/format/groupBrains.ts +249 -0
  493. package/src/format/heldArms.ts +576 -0
  494. package/src/format/heldEquipment.ts +78 -0
  495. package/src/format/heldFinishes.ts +415 -0
  496. package/src/format/heldGear.ts +68 -0
  497. package/src/format/heldJianDocument.ts +75 -0
  498. package/src/format/heldMelee.ts +866 -0
  499. package/src/format/heldView.ts +26 -0
  500. package/src/format/heldWeaponDocuments.ts +36 -0
  501. package/src/format/herdShelter.ts +58 -0
  502. package/src/format/hooks.ts +45 -0
  503. package/src/format/immutable.ts +59 -0
  504. package/src/format/inputDeclarations.ts +157 -0
  505. package/src/format/islandLibrary.ts +51 -0
  506. package/src/format/issue-codes.ts +262 -0
  507. package/src/format/items.ts +229 -0
  508. package/src/format/json.ts +143 -0
  509. package/src/format/keyedSky.ts +314 -0
  510. package/src/format/kitFigure.ts +68 -0
  511. package/src/format/ktx2Cost.ts +47 -0
  512. package/src/format/ledger.ts +56 -0
  513. package/src/format/liftApproach.ts +75 -0
  514. package/src/format/liftRider.ts +10 -0
  515. package/src/format/lightEmitters.ts +105 -0
  516. package/src/format/lights.ts +135 -0
  517. package/src/format/limbCollision.ts +136 -0
  518. package/src/format/limbPopulation.ts +33 -0
  519. package/src/format/limbRig.ts +202 -0
  520. package/src/format/loadout.ts +156 -0
  521. package/src/format/look-light.ts +153 -0
  522. package/src/format/lootBag.ts +145 -0
  523. package/src/format/lootEconomy.ts +235 -0
  524. package/src/format/materialFamilies.ts +565 -0
  525. package/src/format/materialGraph.ts +1220 -0
  526. package/src/format/materials.ts +449 -0
  527. package/src/format/memoryAdmission.ts +84 -0
  528. package/src/format/memoryGates.json +7 -0
  529. package/src/format/meshCollision.ts +56 -0
  530. package/src/format/meshCollisionAssets.ts +19 -0
  531. package/src/format/meshCollisionBytes.ts +102 -0
  532. package/src/format/meshEntryways.ts +54 -0
  533. package/src/format/meshopt-decoder.wasm +0 -0
  534. package/src/format/meshopt-module.ts +177 -0
  535. package/src/format/meshopt-static.mjs +11 -0
  536. package/src/format/meshopt-wasm.ts +61 -0
  537. package/src/format/migrations.ts +209 -0
  538. package/src/format/minimap.ts +1052 -0
  539. package/src/format/mixedPopulation.ts +222 -0
  540. package/src/format/modes.ts +304 -0
  541. package/src/format/mountedSpecimenRows.ts +64 -0
  542. package/src/format/moverLifecycle.ts +34 -0
  543. package/src/format/moverMotion.ts +271 -0
  544. package/src/format/movers.ts +224 -0
  545. package/src/format/namedJsonContracts.ts +423 -0
  546. package/src/format/nativeActors.ts +45 -0
  547. package/src/format/nativeAssembly.ts +141 -0
  548. package/src/format/nativeGround.ts +37 -0
  549. package/src/format/nativeGroundAssets.ts +35 -0
  550. package/src/format/nativeItems.ts +184 -0
  551. package/src/format/nativePhysics.ts +140 -0
  552. package/src/format/nativeQuestComposition.ts +398 -0
  553. package/src/format/nativeRiding.ts +103 -0
  554. package/src/format/nativeRuntimePlan.ts +89 -0
  555. package/src/format/navigation.ts +99 -0
  556. package/src/format/navigationBytes.ts +111 -0
  557. package/src/format/nearPlaceholder.ts +111 -0
  558. package/src/format/nearPlaceholderAssets.ts +23 -0
  559. package/src/format/netCommand.ts +11 -0
  560. package/src/format/npcs.ts +546 -0
  561. package/src/format/outputAddress.ts +11 -0
  562. package/src/format/outputDownload.ts +34 -0
  563. package/src/format/outputFields.ts +123 -0
  564. package/src/format/outputIndex.ts +352 -0
  565. package/src/format/overdraw.ts +41 -0
  566. package/src/format/pageLife.ts +303 -0
  567. package/src/format/pagePreparation.ts +60 -0
  568. package/src/format/paintedLook.ts +55 -0
  569. package/src/format/paintedResources.ts +158 -0
  570. package/src/format/panelTemplate.ts +139 -0
  571. package/src/format/placeholderSource.ts +209 -0
  572. package/src/format/platformDataSections.ts +146 -0
  573. package/src/format/platformFileFamilies.ts +299 -0
  574. package/src/format/plumbing.ts +165 -0
  575. package/src/format/populationEnvironment.ts +210 -0
  576. package/src/format/populationKeeper.ts +163 -0
  577. package/src/format/populationProjection.ts +496 -0
  578. package/src/format/populationRespawn.ts +48 -0
  579. package/src/format/populationRoster.ts +158 -0
  580. package/src/format/portalFloor.ts +56 -0
  581. package/src/format/portalLink.ts +112 -0
  582. package/src/format/portalLinkAssets.ts +42 -0
  583. package/src/format/portalRide.ts +22 -0
  584. package/src/format/postGraphDocument.ts +36 -0
  585. package/src/format/postGraphLook.ts +477 -0
  586. package/src/format/postStack.ts +114 -0
  587. package/src/format/practiceCourseRows.ts +466 -0
  588. package/src/format/preflight.ts +155 -0
  589. package/src/format/presentation.ts +33 -0
  590. package/src/format/product-audio.ts +76 -0
  591. package/src/format/product-reads.ts +178 -0
  592. package/src/format/product-stream-admit.ts +114 -0
  593. package/src/format/product-stream-assets.ts +511 -0
  594. package/src/format/product-stream-facts.ts +208 -0
  595. package/src/format/product-stream-miss.ts +15 -0
  596. package/src/format/product-stream-node.ts +47 -0
  597. package/src/format/product-stream-packs.ts +247 -0
  598. package/src/format/product-stream-rows.ts +234 -0
  599. package/src/format/product-stream-tar.ts +204 -0
  600. package/src/format/product-stream.ts +297 -0
  601. package/src/format/product.ts +366 -0
  602. package/src/format/productValidation.ts +236 -0
  603. package/src/format/propMaterials.ts +254 -0
  604. package/src/format/props.ts +137 -0
  605. package/src/format/questContinuation.ts +42 -0
  606. package/src/format/questFigures.ts +227 -0
  607. package/src/format/questGraph.ts +30 -0
  608. package/src/format/questHost.ts +314 -0
  609. package/src/format/questInteractionSource.ts +57 -0
  610. package/src/format/questInteractions.ts +642 -0
  611. package/src/format/questPageComposition.ts +92 -0
  612. package/src/format/questPageFacets.ts +121 -0
  613. package/src/format/questRuntime.ts +118 -0
  614. package/src/format/questSteps.ts +182 -0
  615. package/src/format/questStory.ts +512 -0
  616. package/src/format/questStoryBindings.ts +43 -0
  617. package/src/format/questWorld.ts +36 -0
  618. package/src/format/quests.ts +333 -0
  619. package/src/format/rainPresentation.ts +131 -0
  620. package/src/format/rangedPage.ts +117 -0
  621. package/src/format/receipt-cost.ts +71 -0
  622. package/src/format/registeredJson.ts +530 -0
  623. package/src/format/returnProgramDocument.ts +40 -0
  624. package/src/format/returnProjectionV2.ts +84 -0
  625. package/src/format/riding.ts +377 -0
  626. package/src/format/riggedHulls.ts +160 -0
  627. package/src/format/roamingBossProjection.ts +178 -0
  628. package/src/format/roamingCombat.ts +22 -0
  629. package/src/format/ropeDeckSite.ts +148 -0
  630. package/src/format/rows.ts +86 -0
  631. package/src/format/runtime.ts +38 -0
  632. package/src/format/runtimeBinds.ts +49 -0
  633. package/src/format/runtimeCost.ts +80 -0
  634. package/src/format/runtimeSpawns.ts +73 -0
  635. package/src/format/scalarChannel.ts +38 -0
  636. package/src/format/scaledPost.ts +27 -0
  637. package/src/format/scaledPostContract.ts +51 -0
  638. package/src/format/sceneBuffers.ts +122 -0
  639. package/src/format/sceneDraws.ts +89 -0
  640. package/src/format/sceneDressing.ts +247 -0
  641. package/src/format/sceneInstances.ts +192 -0
  642. package/src/format/sceneMotion.ts +122 -0
  643. package/src/format/sceneRefs.ts +71 -0
  644. package/src/format/sceneSources.ts +730 -0
  645. package/src/format/script-side-grandfather.ts +62 -0
  646. package/src/format/script-sides.ts +289 -0
  647. package/src/format/scriptAbi.ts +14 -0
  648. package/src/format/scriptAbiV1.ts +56 -0
  649. package/src/format/scriptActionsV2.ts +101 -0
  650. package/src/format/scriptAdmission.ts +165 -0
  651. package/src/format/scriptAdmissionV2.ts +126 -0
  652. package/src/format/scriptContract.ts +170 -0
  653. package/src/format/scriptFuelV2.ts +124 -0
  654. package/src/format/scriptGroupBankV2.ts +54 -0
  655. package/src/format/scriptGroupStepV2.ts +165 -0
  656. package/src/format/scriptInputStateV2.ts +52 -0
  657. package/src/format/scriptLimits.ts +5 -0
  658. package/src/format/scriptMemoryV2.ts +17 -0
  659. package/src/format/scriptModuleV2.ts +116 -0
  660. package/src/format/scriptObservationColumnsV2.ts +226 -0
  661. package/src/format/scriptQueriesV2.ts +164 -0
  662. package/src/format/scriptQueryStateV2.ts +40 -0
  663. package/src/format/scriptRngV2.ts +52 -0
  664. package/src/format/scriptWireV2.ts +106 -0
  665. package/src/format/scripts.ts +31 -0
  666. package/src/format/sections.ts +140 -0
  667. package/src/format/shardSchema.ts +632 -0
  668. package/src/format/shardSections.ts +383 -0
  669. package/src/format/sketch.ts +79 -0
  670. package/src/format/skin-materials.ts +172 -0
  671. package/src/format/skinAssets.ts +107 -0
  672. package/src/format/skinData.ts +110 -0
  673. package/src/format/skinLayers.ts +90 -0
  674. package/src/format/skins.ts +37 -0
  675. package/src/format/socketLift.ts +58 -0
  676. package/src/format/socketLiftAssets.ts +81 -0
  677. package/src/format/socketRigCreature.ts +66 -0
  678. package/src/format/sourceResidency.ts +16 -0
  679. package/src/format/spawnCombat.ts +26 -0
  680. package/src/format/spawnScriptV2.ts +145 -0
  681. package/src/format/spawnScripts.ts +229 -0
  682. package/src/format/spawnTables.ts +46 -0
  683. package/src/format/spawnView.ts +26 -0
  684. package/src/format/speciesActorsFile.ts +86 -0
  685. package/src/format/speciesBookRows.ts +84 -0
  686. package/src/format/speciesBrain.ts +96 -0
  687. package/src/format/speciesLooks.ts +1021 -0
  688. package/src/format/speciesPrograms.ts +97 -0
  689. package/src/format/speciesScripts.ts +45 -0
  690. package/src/format/specimenCatalogue.ts +94 -0
  691. package/src/format/splatTerrain.ts +192 -0
  692. package/src/format/standalone-catalogue.ts +144 -0
  693. package/src/format/standaloneControl.ts +44 -0
  694. package/src/format/state.ts +61 -0
  695. package/src/format/stateLineage.ts +71 -0
  696. package/src/format/stealth.ts +106 -0
  697. package/src/format/stillImage.ts +135 -0
  698. package/src/format/streamedCover.ts +105 -0
  699. package/src/format/surfaceLooks.ts +50 -0
  700. package/src/format/tar-fields.ts +54 -0
  701. package/src/format/tar-paths.ts +104 -0
  702. package/src/format/tar-source.ts +13 -0
  703. package/src/format/tar-write.ts +152 -0
  704. package/src/format/tar.ts +204 -0
  705. package/src/format/targets.ts +217 -0
  706. package/src/format/terrain.ts +241 -0
  707. package/src/format/terrainTileBytes.ts +104 -0
  708. package/src/format/tierSelection.ts +195 -0
  709. package/src/format/toonLighting.ts +32 -0
  710. package/src/format/toonLook.ts +332 -0
  711. package/src/format/trail.ts +17 -0
  712. package/src/format/traversal.ts +13 -0
  713. package/src/format/treeSetRows.ts +93 -0
  714. package/src/format/ui.ts +90 -0
  715. package/src/format/uiStrings.ts +17 -0
  716. package/src/format/uniformRows.ts +31 -0
  717. package/src/format/upload-wire.ts +184 -0
  718. package/src/format/validationReceipt.ts +142 -0
  719. package/src/format/version.ts +9 -0
  720. package/src/format/vertexWear.ts +45 -0
  721. package/src/format/viewProgram.ts +329 -0
  722. package/src/format/voicePatches.ts +47 -0
  723. package/src/format/water.ts +247 -0
  724. package/src/format/waterWaves.ts +7 -0
  725. package/src/format/waterWorld.ts +34 -0
  726. package/src/format/weaponProfiles.ts +1315 -0
  727. package/src/format/weatherBundle.ts +36 -0
  728. package/src/format/weatherEffects.ts +78 -0
  729. package/src/format/weatherProgram.ts +422 -0
  730. package/src/format/wildlifePopulation.ts +210 -0
  731. package/src/format/wireLimits.ts +9 -0
  732. package/src/format/worldAssembly.ts +104 -0
  733. package/src/format/worldEntry.ts +151 -0
  734. package/src/format/worldPhysics.ts +292 -0
  735. package/src/format/worldSceneBatch.ts +106 -0
  736. package/src/format/worldSceneModels.ts +79 -0
  737. package/src/format/worldScenePages.ts +89 -0
  738. package/src/format/worldScenePlacement.ts +191 -0
  739. package/src/format/worldSceneSlabs.ts +43 -0
  740. package/src/format/worldSceneSurface.ts +113 -0
  741. package/src/format/worldSceneWeld.ts +702 -0
  742. package/src/format/worldScenes.ts +184 -0
  743. package/src/format/worldTargets.ts +111 -0
  744. package/src/format/worldUpdates.ts +229 -0
  745. package/src/hook/format-hook.d.mts +2 -0
  746. package/src/hook/format-hook.mjs +47 -0
  747. package/src/tools/runtime-hosts.json +497 -0
  748. package/README.md +0 -8
@@ -0,0 +1,123 @@
1
+ import { GrappleModeSchema, type GrappleMode } from './modes.ts';
2
+ import * as v from 'valibot';
3
+ /** One baseline HUD hint; tone is admitted before the native tool installs it. */
4
+ interface GrappleHint { readonly label: string; readonly icon?: string; readonly tone: string; readonly accent?: string }
5
+ /** Client grapple marker, hint, ribbon and burst presentation rows. */
6
+ export interface GrappleRows {
7
+ readonly portraitFov: number;
8
+ readonly aim: {
9
+ readonly ribbon: unknown;
10
+ readonly filament: GrappleFilamentUniforms;
11
+ readonly scanPerFrame: number;
12
+ readonly landingStale: number;
13
+ readonly marks: number;
14
+ readonly hints: Readonly<Record<'rest' | 'ready' | 'locked' | 'zip' | 'armed' | 'fire', GrappleHint>>;
15
+ readonly chip: {
16
+ readonly className: string; readonly style: Readonly<Record<string, string>>;
17
+ readonly candidate: string; readonly lockedTouch: string; readonly lockedDesk: string;
18
+ readonly color: string; readonly lockedColor: string;
19
+ };
20
+ readonly mark: { readonly className: string; readonly style: Readonly<Record<string, string>>; readonly glyph: string; readonly color: string };
21
+ readonly toasts: { readonly miss: string; readonly armedTouch: string; readonly armedDesk: string; readonly lockedTouch: string; readonly lockedDesk: string };
22
+ readonly muzzle: readonly number[];
23
+ readonly slack: { readonly fire: number; readonly reel: number; readonly hold: number };
24
+ readonly ropePoints: number; readonly claw: number; readonly halo: number;
25
+ readonly flashes: { readonly muzzle: number; readonly bite: number; readonly dock: number };
26
+ readonly sparks: number; readonly name: string;
27
+ readonly systems: { readonly input: string; readonly rope: string; readonly update: string };
28
+ readonly debug: string;
29
+ };
30
+ readonly bursts: Readonly<Record<'muzzle' | 'bite' | 'dock' | 'sparks', {
31
+ readonly name: string; readonly shape: 'flake' | 'streak'; readonly count: number; readonly life: number;
32
+ }>>;
33
+ }
34
+
35
+ /** A traversable obstacle segment. The native capsule lifts before crossing its plane. */
36
+ export interface GrappleClearance {
37
+ readonly axis: 'x' | 'z'; readonly plane: number; readonly min: number; readonly max: number;
38
+ readonly base: number; readonly top: number; readonly ceiling: number;
39
+ readonly owners: readonly string[];
40
+ }
41
+ /** Anchor coordinates and an optional obstacle clearance; no authored callbacks. */
42
+ export interface GrappleCourseRow {
43
+ readonly name: string; readonly hooks: readonly { readonly x: number; readonly y: number; readonly z: number }[];
44
+ readonly mode?: GrappleMode; readonly clearance?: GrappleClearance;
45
+ }
46
+ /** Tool identity, native observation ids, presentation looks and completion fact. */
47
+ export interface GrappleProfile {
48
+ readonly id: string; readonly course: Omit<GrappleCourseRow, 'hooks'>;
49
+ readonly cues: Readonly<Record<'fire' | 'bite' | 'zip' | 'reel' | 'dock', string>>;
50
+ readonly looks: Readonly<Record<'muzzle' | 'bite' | 'dock' | 'sparks' | 'ribbon', string>>;
51
+ readonly fact?: { readonly name: string; readonly entity: string; readonly source: string };
52
+ readonly headless: { readonly step: string; readonly lock: string; readonly aim: string; readonly eye: number; readonly aspect: number; readonly portraitFov: number };
53
+ }
54
+
55
+ const finite = v.pipe(v.number(), v.finite());
56
+ const id = v.pipe(v.string(), v.minLength(1), v.maxLength(256));
57
+ const pair = v.strictObject({ v2: v.tuple([finite, finite]) });
58
+ const triple = v.strictObject({ v3: v.tuple([finite, finite, finite]) });
59
+ const filamentSchema: v.GenericSchema<GrappleFilamentUniformsInput, GrappleFilamentUniforms> = v.strictObject({ uRes: pair, uProjection: pair, uCorePx: finite, uHaloPx: finite, uI: finite,
60
+ uPulse: finite, uLen: finite, uTime: finite, uCore: triple, uHalo: triple });
61
+ /** Exact native ribbon uniform grammar for whole held-view admission. */
62
+ export const GrappleFilamentSchema: v.GenericSchema<GrappleFilamentUniformsInput, GrappleFilamentUniforms> = filamentSchema;
63
+ /** Admitted ribbon parameters have only the declared numeric/vector keys. */
64
+
65
+ /** The same authored look parameters serve the native ribbon and its fixture. */
66
+ export function parseGrappleFilament(value: unknown): GrappleFilamentUniforms { return v.parse(filamentSchema, value); }
67
+ /** Input retains the native mode's original defaults and exact optionals. */
68
+ export type GrappleProfileInput = Omit<GrappleProfile, 'course'> & { readonly course: Omit<GrappleProfile['course'], 'mode'> & { readonly mode?: v.InferInput<typeof GrappleModeSchema> } };
69
+ /** The complete original native policy, independent of validator metadata. */
70
+ export const GrappleProfileSchema: v.GenericSchema<GrappleProfileInput, GrappleProfile> = v.strictObject({
71
+ id, course: v.strictObject({ name: id, mode: v.exactOptional(GrappleModeSchema), clearance: v.exactOptional(v.strictObject({
72
+ axis: v.picklist(['x', 'z']), plane: finite, min: finite, max: finite, base: finite, top: finite, ceiling: finite,
73
+ owners: v.pipe(v.array(id), v.minLength(1), v.maxLength(32)),
74
+ })) }),
75
+ cues: v.strictObject({ fire: id, bite: id, zip: id, reel: id, dock: id }),
76
+ looks: v.strictObject({ muzzle: id, bite: id, dock: id, sparks: id, ribbon: id }),
77
+ fact: v.exactOptional(v.strictObject({ name: id, entity: id, source: id })),
78
+ headless: v.strictObject({ step: id, lock: id, aim: id, eye: v.pipe(finite, v.minValue(.1), v.maxValue(10)),
79
+ aspect: v.pipe(finite, v.minValue(.1), v.maxValue(10)), portraitFov: v.pipe(finite, v.minValue(10), v.maxValue(140)) }),
80
+ });
81
+ /** Validate identity and physics data before installing the approved native mode. */
82
+ export function parseGrappleProfile(value: unknown): GrappleProfile { return v.parse(GrappleProfileSchema, value); }
83
+
84
+ /** Original complete hook coordinates; the native tool retains their order. */
85
+ export const GrappleHooksSchema: v.GenericSchema<readonly { readonly x: number; readonly y: number; readonly z: number }[]> = v.array(v.strictObject({ x: finite, y: finite, z: finite }));
86
+
87
+ /** Admitted data contracts, independent of validator implementation metadata. */
88
+ export type GrappleFilamentUniformsInput = GrappleFilamentUniforms;
89
+ interface GrappleFilamentUniformsFields {
90
+ uRes: {
91
+ v2: [
92
+ number,
93
+ number
94
+ ];
95
+ };
96
+ uProjection: {
97
+ v2: [
98
+ number,
99
+ number
100
+ ];
101
+ };
102
+ uCorePx: number;
103
+ uHaloPx: number;
104
+ uI: number;
105
+ uPulse: number;
106
+ uLen: number;
107
+ uTime: number;
108
+ uCore: {
109
+ v3: [
110
+ number,
111
+ number,
112
+ number
113
+ ];
114
+ };
115
+ uHalo: {
116
+ v3: [
117
+ number,
118
+ number,
119
+ number
120
+ ];
121
+ };
122
+ }
123
+ export type GrappleFilamentUniforms = { [Key in keyof GrappleFilamentUniformsFields]: GrappleFilamentUniformsFields[Key] };
@@ -0,0 +1,164 @@
1
+ import * as v from 'valibot';
2
+
3
+ const key = v.pipe(v.string(), v.regex(/^[a-z][a-z0-9.:-]*$/u), v.maxLength(128));
4
+ const finite = v.pipe(v.number(), v.finite());
5
+ const radius = v.pipe(finite, v.minValue(0), v.maxValue(600));
6
+ const positive = v.pipe(radius, v.minValue(Number.MIN_VALUE));
7
+ const speed = v.pipe(finite, v.minValue(0), v.maxValue(15));
8
+ const cadence = v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(60), v.check(n => 60 % n === 0, 'Brain divisor divides 60')), 6);
9
+
10
+ function orderedWander(row: { wanderMinSeconds: number; wanderMaxSeconds: number }): boolean {
11
+ return row.wanderMinSeconds <= row.wanderMaxSeconds;
12
+ }
13
+ function distinctChallenge(row: { noticeRadius: number; loseRadius: number; charge: string; close: string; windupField: string; recoveryField: string }): boolean {
14
+ return row.noticeRadius <= row.loseRadius && row.charge !== row.close && row.windupField !== row.recoveryField;
15
+ }
16
+
17
+ /** Finite ram-grazer tuning and a named strike; the host binds terrain, home, RNG and contact authority. */
18
+ export const RamGrazerSchema: v.SchemaWithPipe<readonly [v.StrictObjectSchema<{ readonly id: v.GenericSchema<ShardRamGrazerInput['id'], ShardRamGrazer['id']>; readonly kind: v.GenericSchema<ShardRamGrazerInput['kind'], ShardRamGrazer['kind']>; readonly thinkDivisor: v.OptionalSchema<v.GenericSchema<Exclude<ShardRamGrazerInput['thinkDivisor'], undefined>, Exclude<ShardRamGrazer['thinkDivisor'], undefined>>, 6>; readonly strike: v.GenericSchema<ShardRamGrazerInput['strike'], ShardRamGrazer['strike']>; readonly grazeSpeed: v.GenericSchema<ShardRamGrazerInput['grazeSpeed'], ShardRamGrazer['grazeSpeed']>; readonly ramSpeed: v.GenericSchema<ShardRamGrazerInput['ramSpeed'], ShardRamGrazer['ramSpeed']>; readonly noticeRadius: v.GenericSchema<ShardRamGrazerInput['noticeRadius'], ShardRamGrazer['noticeRadius']>; readonly rimMargin: v.GenericSchema<ShardRamGrazerInput['rimMargin'], ShardRamGrazer['rimMargin']>; readonly fallDrop: v.GenericSchema<ShardRamGrazerInput['fallDrop'], ShardRamGrazer['fallDrop']>; readonly levelTolerance: v.GenericSchema<ShardRamGrazerInput['levelTolerance'], ShardRamGrazer['levelTolerance']>; readonly threatSpeed: v.GenericSchema<ShardRamGrazerInput['threatSpeed'], ShardRamGrazer['threatSpeed']>; readonly wanderMinSeconds: v.GenericSchema<ShardRamGrazerInput['wanderMinSeconds'], ShardRamGrazer['wanderMinSeconds']>; readonly wanderMaxSeconds: v.GenericSchema<ShardRamGrazerInput['wanderMaxSeconds'], ShardRamGrazer['wanderMaxSeconds']>; readonly rampRate: v.GenericSchema<ShardRamGrazerInput['rampRate'], ShardRamGrazer['rampRate']>; }, undefined>, v.CheckAction<{ [K in keyof ShardRamGrazer]: ShardRamGrazer[K] }, 'Ordered grazer wander interval'>]> = v.pipe(v.strictObject({
19
+ id: key, kind: v.literal('ram-grazer'), thinkDivisor: cadence, strike: key,
20
+ grazeSpeed: v.pipe(speed, v.maxValue(10)), ramSpeed: speed, noticeRadius: radius,
21
+ rimMargin: radius, fallDrop: radius, levelTolerance: positive, threatSpeed: speed,
22
+ wanderMinSeconds: positive, wanderMaxSeconds: positive, rampRate: positive,
23
+ }), v.check(row => orderedWander(row), 'Ordered grazer wander interval'));
24
+ /** An admitted rim-aware grazer policy; spawn identity, current home and strike recipes remain loader-owned. */
25
+
26
+ /** Validate a ram policy without touching an actor, its random stream or the native world. */
27
+ export function parseRamGrazer(data: unknown): ShardRamGrazer { return v.parse(RamGrazerSchema, data); }
28
+
29
+ /** Timed challenge policy with an ordered charge/close pair, declared utility weights and pose memory fields. */
30
+ export const ChallengeGrazerSchema: v.SchemaWithPipe<readonly [v.StrictObjectSchema<{ readonly id: v.GenericSchema<ShardChallengeGrazerInput['id'], ShardChallengeGrazer['id']>; readonly kind: v.GenericSchema<ShardChallengeGrazerInput['kind'], ShardChallengeGrazer['kind']>; readonly thinkDivisor: v.OptionalSchema<v.GenericSchema<Exclude<ShardChallengeGrazerInput['thinkDivisor'], undefined>, Exclude<ShardChallengeGrazer['thinkDivisor'], undefined>>, 6>; readonly charge: v.GenericSchema<ShardChallengeGrazerInput['charge'], ShardChallengeGrazer['charge']>; readonly close: v.GenericSchema<ShardChallengeGrazerInput['close'], ShardChallengeGrazer['close']>; readonly noticeRadius: v.GenericSchema<ShardChallengeGrazerInput['noticeRadius'], ShardChallengeGrazer['noticeRadius']>; readonly chargeRadius: v.GenericSchema<ShardChallengeGrazerInput['chargeRadius'], ShardChallengeGrazer['chargeRadius']>; readonly loseRadius: v.GenericSchema<ShardChallengeGrazerInput['loseRadius'], ShardChallengeGrazer['loseRadius']>; readonly walkSpeed: v.GenericSchema<ShardChallengeGrazerInput['walkSpeed'], ShardChallengeGrazer['walkSpeed']>; readonly approachSpeed: v.GenericSchema<ShardChallengeGrazerInput['approachSpeed'], ShardChallengeGrazer['approachSpeed']>; readonly homeRadius: v.GenericSchema<ShardChallengeGrazerInput['homeRadius'], ShardChallengeGrazer['homeRadius']>; readonly faceSeconds: v.GenericSchema<ShardChallengeGrazerInput['faceSeconds'], ShardChallengeGrazer['faceSeconds']>; readonly circleRate: v.GenericSchema<ShardChallengeGrazerInput['circleRate'], ShardChallengeGrazer['circleRate']>; readonly farPreferenceRadius: v.GenericSchema<ShardChallengeGrazerInput['farPreferenceRadius'], ShardChallengeGrazer['farPreferenceRadius']>; readonly farWeight: v.GenericSchema<ShardChallengeGrazerInput['farWeight'], ShardChallengeGrazer['farWeight']>; readonly nearWeight: v.GenericSchema<ShardChallengeGrazerInput['nearWeight'], ShardChallengeGrazer['nearWeight']>; readonly closeWeight: v.GenericSchema<ShardChallengeGrazerInput['closeWeight'], ShardChallengeGrazer['closeWeight']>; readonly windupField: v.GenericSchema<ShardChallengeGrazerInput['windupField'], ShardChallengeGrazer['windupField']>; readonly recoveryField: v.GenericSchema<ShardChallengeGrazerInput['recoveryField'], ShardChallengeGrazer['recoveryField']>; }, undefined>, v.CheckAction<{ [K in keyof ShardChallengeGrazer]: ShardChallengeGrazer[K] }, 'Distinct challenge strikes and fields, ordered perception'>]> = v.pipe(v.strictObject({
31
+ id: key, kind: v.literal('challenge-grazer'), thinkDivisor: cadence, charge: key, close: key,
32
+ noticeRadius: radius, chargeRadius: positive, loseRadius: radius, walkSpeed: speed, approachSpeed: speed,
33
+ homeRadius: radius, faceSeconds: positive, circleRate: radius,
34
+ farPreferenceRadius: radius, farWeight: radius, nearWeight: radius, closeWeight: radius,
35
+ windupField: v.pipe(v.string(), v.regex(/^[a-z][a-z0-9._:-]*$/u), v.maxLength(128)),
36
+ recoveryField: v.pipe(v.string(), v.regex(/^[a-z][a-z0-9._:-]*$/u), v.maxLength(128)),
37
+ }), v.check(row => distinctChallenge(row), 'Distinct challenge strikes and fields, ordered perception'));
38
+ /** Admitted timed challenge policy; stable actor phase and contact recipes arrive from trusted loader ports. */
39
+
40
+ /** Reject nonfinite tuning, unknown fields and conflicting identities before installation. */
41
+ export function parseChallengeGrazer(data: unknown): ShardChallengeGrazer { return v.parse(ChallengeGrazerSchema, data); }
42
+
43
+ /** One grazer archetype: both attack patterns retain their exact legacy bounds and clocks. */
44
+ export const GrazerSchema: v.VariantSchema<'pattern', readonly [
45
+ v.StrictObjectSchema<Omit<(typeof RamGrazerSchema)['pipe'][0]['entries'], 'kind'> & {
46
+ readonly kind: v.LiteralSchema<'grazer', undefined>;
47
+ readonly pattern: v.LiteralSchema<'wander-ram', undefined>;
48
+ }, undefined>,
49
+ v.StrictObjectSchema<Omit<(typeof ChallengeGrazerSchema)['pipe'][0]['entries'], 'kind'> & {
50
+ readonly kind: v.LiteralSchema<'grazer', undefined>;
51
+ readonly pattern: v.LiteralSchema<'circle-challenge', undefined>;
52
+ }, undefined>
53
+ ], undefined> = v.variant('pattern', [
54
+ v.pipe(v.strictObject({ ...RamGrazerSchema.pipe[0].entries, kind: v.literal('grazer'), pattern: v.literal('wander-ram') }),
55
+ v.check(row => orderedWander(row), 'Ordered grazer wander interval')),
56
+ v.pipe(v.strictObject({ ...ChallengeGrazerSchema.pipe[0].entries, kind: v.literal('grazer'), pattern: v.literal('circle-challenge') }),
57
+ v.check(row => distinctChallenge(row), 'Distinct challenge strikes and fields, ordered perception')),
58
+ ]);
59
+ /** Admitted grazer data; floor, RNG and body authority remain trusted pattern-specific ports. */
60
+
61
+ /** Admit either pattern without constructing a policy, body or random stream. */
62
+ export function parseGrazer(data: unknown): ShardGrazer { return v.parse(GrazerSchema, data); }
63
+ /** Canonical preset for existing body adapters and save contracts; tuning and cadence are unchanged. */
64
+ export function grazerPreset(data: ShardGrazer): ShardRamGrazer | ShardChallengeGrazer {
65
+ if (data.pattern === 'wander-ram') {
66
+ const { pattern: _pattern, ...row } = data;
67
+ return { ...row, kind: 'ram-grazer' };
68
+ }
69
+ const { pattern: _pattern, ...row } = data;
70
+ return { ...row, kind: 'challenge-grazer' };
71
+ }
72
+
73
+ /** Admitted data contracts, independent of validator implementation metadata. */
74
+ interface ShardRamGrazerInputFields {
75
+ id: string;
76
+ kind: 'ram-grazer';
77
+ thinkDivisor?: number | undefined;
78
+ strike: string;
79
+ grazeSpeed: number;
80
+ ramSpeed: number;
81
+ noticeRadius: number;
82
+ rimMargin: number;
83
+ fallDrop: number;
84
+ levelTolerance: number;
85
+ threatSpeed: number;
86
+ wanderMinSeconds: number;
87
+ wanderMaxSeconds: number;
88
+ rampRate: number;
89
+ }
90
+ export type ShardRamGrazerInput = { [Key in keyof ShardRamGrazerInputFields]: ShardRamGrazerInputFields[Key] };
91
+ interface ShardRamGrazerFields {
92
+ id: string;
93
+ kind: 'ram-grazer';
94
+ thinkDivisor: number;
95
+ strike: string;
96
+ grazeSpeed: number;
97
+ ramSpeed: number;
98
+ noticeRadius: number;
99
+ rimMargin: number;
100
+ fallDrop: number;
101
+ levelTolerance: number;
102
+ threatSpeed: number;
103
+ wanderMinSeconds: number;
104
+ wanderMaxSeconds: number;
105
+ rampRate: number;
106
+ }
107
+ export type ShardRamGrazer = { [Key in keyof ShardRamGrazerFields]: ShardRamGrazerFields[Key] };
108
+ interface ShardChallengeGrazerInputFields {
109
+ id: string;
110
+ kind: 'challenge-grazer';
111
+ thinkDivisor?: number | undefined;
112
+ charge: string;
113
+ close: string;
114
+ noticeRadius: number;
115
+ chargeRadius: number;
116
+ loseRadius: number;
117
+ walkSpeed: number;
118
+ approachSpeed: number;
119
+ homeRadius: number;
120
+ faceSeconds: number;
121
+ circleRate: number;
122
+ farPreferenceRadius: number;
123
+ farWeight: number;
124
+ nearWeight: number;
125
+ closeWeight: number;
126
+ windupField: string;
127
+ recoveryField: string;
128
+ }
129
+ export type ShardChallengeGrazerInput = { [Key in keyof ShardChallengeGrazerInputFields]: ShardChallengeGrazerInputFields[Key] };
130
+ interface ShardChallengeGrazerFields {
131
+ id: string;
132
+ kind: 'challenge-grazer';
133
+ thinkDivisor: number;
134
+ charge: string;
135
+ close: string;
136
+ noticeRadius: number;
137
+ chargeRadius: number;
138
+ loseRadius: number;
139
+ walkSpeed: number;
140
+ approachSpeed: number;
141
+ homeRadius: number;
142
+ faceSeconds: number;
143
+ circleRate: number;
144
+ farPreferenceRadius: number;
145
+ farWeight: number;
146
+ nearWeight: number;
147
+ closeWeight: number;
148
+ windupField: string;
149
+ recoveryField: string;
150
+ }
151
+ export type ShardChallengeGrazer = { [Key in keyof ShardChallengeGrazerFields]: ShardChallengeGrazerFields[Key] };
152
+ export type ShardGrazer = (Omit<v.InferOutput<(typeof RamGrazerSchema)['pipe'][0]>, keyof ({
153
+ kind: 'grazer';
154
+ pattern: 'wander-ram';
155
+ })> & {
156
+ kind: 'grazer';
157
+ pattern: 'wander-ram';
158
+ }) | (Omit<v.InferOutput<(typeof ChallengeGrazerSchema)['pipe'][0]>, keyof ({
159
+ kind: 'grazer';
160
+ pattern: 'circle-challenge';
161
+ })> & {
162
+ kind: 'grazer';
163
+ pattern: 'circle-challenge';
164
+ });
@@ -0,0 +1,247 @@
1
+ // oxlint-disable eslint/id-length -- x, y and z are the axes' names
2
+ import {
3
+ array,
4
+ check,
5
+ exactOptional,
6
+ finite,
7
+ integer,
8
+ literal,
9
+ maxLength,
10
+ maxValue,
11
+ minLength,
12
+ minValue,
13
+ number,
14
+ optional,
15
+ pipe,
16
+ regex,
17
+ strictObject,
18
+ string,
19
+ tuple,
20
+ } from 'valibot'
21
+
22
+ import { AccentSchema } from './accent.ts'
23
+ import { CONTENT_CAPS, GRID_CELL_COUNT, GRID_RADIUS } from './contentBounds.ts'
24
+
25
+ import type { AccentId } from './accent.ts'
26
+ import type { GenericSchema, InferOutput } from 'valibot'
27
+
28
+ // The shard grid's placement data: singleplayer's
29
+ // `src/game/shared/grid/catalogue.ts`, rows for rows, moved here because
30
+ // api-server must admit what the client admits and depends only on this
31
+ // repo (J27). Singleplayer keeps its copy until C3 bumps its pin.
32
+
33
+ const CELL_LOCAL_LIMIT = 250
34
+ const MAX_MARKS = 8
35
+ const MAX_PLOTS = 8
36
+ const MIN_PLOT_HALF = 16
37
+ const MAX_PLOT_HALF = 40
38
+ const MIN_MARK_SIZE = 0.5
39
+ const MAX_MARK_SIZE = 12
40
+ const MIN_EDGE_HEIGHT = 0.5
41
+ const MAX_EDGE_HEIGHT = 7
42
+ const MAX_LAYOUT_SEED = 2_147_483_647
43
+ const ZERO = 0
44
+ const ONE = 1
45
+ const SLUG_OR_INSTANCE = /^_?[a-z0-9]+(?:-[a-z0-9]+)*$/u
46
+
47
+ /** A `slug` or `instance`. Authored, so `_template` keeps its underscore. */
48
+ const GridIdSchema: GenericSchema<string> = pipe(
49
+ string(),
50
+ regex(SLUG_OR_INSTANCE),
51
+ )
52
+
53
+ const signed = pipe(
54
+ number(),
55
+ integer(),
56
+ minValue(-GRID_RADIUS),
57
+ maxValue(GRID_RADIUS),
58
+ )
59
+ const local = pipe(
60
+ number(),
61
+ finite(),
62
+ minValue(-CELL_LOCAL_LIMIT),
63
+ maxValue(CELL_LOCAL_LIMIT),
64
+ )
65
+ const height = pipe(
66
+ number(),
67
+ finite(),
68
+ minValue(ZERO),
69
+ maxValue(CELL_LOCAL_LIMIT),
70
+ )
71
+ const anyAngle = pipe(number(), finite())
72
+ const distance = pipe(number(), finite(), minValue(ZERO))
73
+ const channel = pipe(number(), finite(), minValue(ZERO), maxValue(ONE))
74
+ const colour = tuple([channel, channel, channel])
75
+ const markSize = pipe(
76
+ number(),
77
+ minValue(MIN_MARK_SIZE),
78
+ maxValue(MAX_MARK_SIZE),
79
+ )
80
+ const plotHalf = pipe(
81
+ number(),
82
+ finite(),
83
+ minValue(MIN_PLOT_HALF),
84
+ maxValue(MAX_PLOT_HALF),
85
+ )
86
+ const layoutSeed = pipe(
87
+ number(),
88
+ integer(),
89
+ minValue(ZERO),
90
+ maxValue(MAX_LAYOUT_SEED),
91
+ )
92
+ const edgeHeight = pipe(
93
+ number(),
94
+ finite(),
95
+ minValue(MIN_EDGE_HEIGHT),
96
+ maxValue(MAX_EDGE_HEIGHT),
97
+ )
98
+
99
+ /** A number panel on a copy's structures, facing `yaw` (0 = +z). */
100
+ interface CopyMark {
101
+ readonly x: number
102
+ readonly y: number
103
+ readonly z: number
104
+ readonly yaw: number
105
+ readonly size: number
106
+ }
107
+
108
+ /** A clear, level square the product leaves, filled by the copy's layout. */
109
+ interface CopyPlot {
110
+ readonly x: number
111
+ readonly z: number
112
+ readonly half: number
113
+ }
114
+
115
+ interface CopyLayout {
116
+ readonly seed: number
117
+ readonly plots: CopyPlot[]
118
+ }
119
+
120
+ /** A shared product's copy identity, data only. */
121
+ interface CopyIdentity<Accent> {
122
+ readonly accent: Accent
123
+ readonly marks: CopyMark[]
124
+ readonly layout?: CopyLayout | undefined
125
+ }
126
+
127
+ interface GridEdgeLook {
128
+ readonly height: number
129
+ }
130
+
131
+ interface GridCell<Accent = AccentId> {
132
+ readonly instance: string
133
+ readonly slug: string
134
+ readonly cell: [number, number]
135
+ readonly identity?: CopyIdentity<Accent> | undefined
136
+ readonly edgeLook?: GridEdgeLook
137
+ readonly speedClass?: 'road'
138
+ }
139
+
140
+ /** The sea past the grid's edge. */
141
+ interface EmptyNeighbour {
142
+ readonly kind: 'sea'
143
+ readonly level: typeof ZERO
144
+ readonly edgeColour: [number, number, number]
145
+ readonly fog: {
146
+ readonly colour: [number, number, number]
147
+ readonly near: number
148
+ readonly far: number
149
+ }
150
+ }
151
+
152
+ interface GridCatalogue<Accent = AccentId> {
153
+ readonly version: typeof ZERO
154
+ readonly pitch: typeof CONTENT_CAPS.pitch
155
+ readonly cells: GridCell<Accent>[]
156
+ readonly emptyNeighbour: EmptyNeighbour
157
+ }
158
+
159
+ type GridCatalogueInput = GridCatalogue<string>
160
+
161
+ /** A row with a stable identity on a cell. */
162
+ interface Placed {
163
+ readonly instance: string
164
+ readonly cell: readonly number[]
165
+ }
166
+
167
+ /** Every instance and every cell appears once. */
168
+ function uniquePlaces(rows: readonly Placed[]): boolean {
169
+ const instances = rows.map((row: Placed): string => row.instance)
170
+ const cells = rows.map((row: Placed): string => row.cell.join(','))
171
+ return (
172
+ new Set(instances).size === rows.length &&
173
+ new Set(cells).size === rows.length
174
+ )
175
+ }
176
+
177
+ const mark = strictObject({
178
+ x: local,
179
+ y: height,
180
+ z: local,
181
+ yaw: anyAngle,
182
+ size: markSize,
183
+ })
184
+ const plot = strictObject({ x: local, z: local, half: plotHalf })
185
+ const layout = strictObject({
186
+ seed: layoutSeed,
187
+ plots: pipe(array(plot), maxLength(MAX_PLOTS)),
188
+ })
189
+ const copyIdentity = strictObject({
190
+ accent: AccentSchema,
191
+ marks: pipe(array(mark), maxLength(MAX_MARKS)),
192
+ layout: optional(layout),
193
+ })
194
+ const gridCell = strictObject({
195
+ instance: GridIdSchema,
196
+ slug: GridIdSchema,
197
+ cell: tuple([signed, signed]),
198
+ identity: optional(copyIdentity),
199
+ edgeLook: exactOptional(strictObject({ height: edgeHeight })),
200
+ speedClass: exactOptional(literal('road')),
201
+ })
202
+ const fogShape = strictObject({ colour, near: distance, far: distance })
203
+ const fog = pipe(
204
+ fogShape,
205
+ check(
206
+ // oxlint-disable-next-line typescript/prefer-readonly-parameter-types -- valibot's check takes the schema's own type
207
+ (row: InferOutput<typeof fogShape>): boolean => row.far > row.near,
208
+ 'increasing fog distance',
209
+ ),
210
+ )
211
+ const emptyNeighbour = strictObject({
212
+ kind: literal('sea'),
213
+ level: literal(ZERO),
214
+ edgeColour: colour,
215
+ fog,
216
+ })
217
+ const cells = pipe(array(gridCell), minLength(ONE), maxLength(GRID_CELL_COUNT))
218
+
219
+ const gridShape = strictObject({
220
+ version: literal(ZERO),
221
+ pitch: literal(CONTENT_CAPS.pitch),
222
+ cells,
223
+ emptyNeighbour,
224
+ })
225
+
226
+ /** Placement data, independent of package content and solo coordinates. */
227
+ const GridCatalogueSchema: GenericSchema<GridCatalogueInput, GridCatalogue> =
228
+ pipe(
229
+ gridShape,
230
+ check(
231
+ // oxlint-disable-next-line typescript/prefer-readonly-parameter-types -- valibot's check takes the schema's own type
232
+ (grid: InferOutput<typeof gridShape>): boolean =>
233
+ uniquePlaces(grid.cells) && grid.cells.length === GRID_CELL_COUNT,
234
+ 'unique stable instance identities and complete signed cell layout',
235
+ ),
236
+ )
237
+
238
+ export {
239
+ GridCatalogueSchema,
240
+ GridIdSchema,
241
+ uniquePlaces,
242
+ type EmptyNeighbour,
243
+ type GridCatalogue,
244
+ type GridCatalogueInput,
245
+ type GridCell,
246
+ type Placed,
247
+ }
@@ -0,0 +1,49 @@
1
+ import * as v from 'valibot';
2
+ import { ENTRY_ASPHALT, ENTRY_WIDTH } from './contentBounds.ts';
3
+ import type { Shardfile } from './shardSchema.ts';
4
+
5
+ const criterion = v.strictObject({ verdict: v.picklist(['pass', 'fail']), evidence: v.pipe(v.string(), v.minLength(1), v.maxLength(1024)) });
6
+ /** Build evidence is meaningful only inside its exact index/source/validator-bound validation receipt. */
7
+ export const GridStructuralEvidenceSchema: v.GenericSchema<GridStructuralEvidenceInput, GridStructuralEvidence> = v.strictObject({ version: v.literal(1), criteria: v.strictObject({
8
+ bakedTiles: criterion, edgeProfile: criterion, fourEntryways: criterion, hudAccent: criterion,
9
+ }) });
10
+
11
+ export function parseGridStructuralEvidence(input: unknown): GridStructuralEvidence { return v.parse(GridStructuralEvidenceSchema, input); }
12
+
13
+ /** Call only after full byte admission: terrain, mesh/socket landings, prop collision,
14
+ * water and each complete approach footprint must have passed their defining validators.
15
+ * This records those checks; it never turns declared memory or a shader row into a runtime witness. */
16
+ export function structuralGridEvidence(source: Shardfile): GridStructuralEvidence {
17
+ const l0 = source.tiles.filter(row => row.lod === 0).length;
18
+ return { version: 1, criteria: {
19
+ bakedTiles: { verdict: l0 > 0 ? 'pass' : 'fail', evidence: `${l0} L0 / ${source.tiles.length} baked render tiles; referenced immutable bytes admitted` },
20
+ edgeProfile: { verdict: 'pass', evidence: `Four admitted edge profiles; samples N/E/S/W ${[source.edge.north, source.edge.east, source.edge.south, source.edge.west].map(row => row.heights.length).join('/')}` },
21
+ fourEntryways: { verdict: 'pass', evidence: `${source.entryways.length} unique midpoint entries at y=0; ${ENTRY_WIDTH}m width, ${ENTRY_ASPHALT}m asphalt depth; full terrain/mesh/socket landings, prop/collider and water clearance admitted` },
22
+ hudAccent: { verdict: 'pass', evidence: `Declared palette accent: ${source.accent}` },
23
+ } };
24
+ }
25
+
26
+ /** Admitted data contracts, independent of validator implementation metadata. */
27
+ export type GridStructuralEvidenceInput = GridStructuralEvidence;
28
+ interface GridStructuralEvidenceFields {
29
+ version: 1;
30
+ criteria: {
31
+ bakedTiles: {
32
+ verdict: 'pass' | 'fail';
33
+ evidence: string;
34
+ };
35
+ edgeProfile: {
36
+ verdict: 'pass' | 'fail';
37
+ evidence: string;
38
+ };
39
+ fourEntryways: {
40
+ verdict: 'pass' | 'fail';
41
+ evidence: string;
42
+ };
43
+ hudAccent: {
44
+ verdict: 'pass' | 'fail';
45
+ evidence: string;
46
+ };
47
+ };
48
+ }
49
+ export type GridStructuralEvidence = { [Key in keyof GridStructuralEvidenceFields]: GridStructuralEvidenceFields[Key] };