@wildshard/shard-format 0.0.1 → 0.4.5
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.
- package/corpus/brasscap-mesa/blobs/bin/02da0052111419cdff3a29f1c6d0ff0d223e0b53a956c16c65ed63d87928b3b9.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/068a121cd780a2a9164416f6e4fde44834f2d2f3a5ed65c174e480b7a2d3f627.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/07d5a061cd338618e528747d61eb2b17709510550ef0ba40a58b67761b200f3f.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/086e3706070555baca863f6ecf9dbca09c084afa501d92d4246d896b09546f36.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/08b1b9ab7c732d7dbe8f961f1fc40e84042d1fe42544f55c9ee89f04dffe3d5e.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/18bdbdc704cb8aac93435d208dfe0e9a44374efb73afa3bc58c631650e0a2995.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/1a210fcddcb9749ecb1c244837e8e37ea69b038faae191dee6bbbde228d31a18.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/264ab9ede386504a5ff9814b0a620b879cb29f3f45a80bcfc0c80b8ee236e364.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/2b6fbea4c846a23cf4802ebdb1804e128896c8dd87e5d23509db6729e5b1be4e.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/2d755cc635dee90b0f3958272855a821e2dd605a189a5ffcd480a325155fe84f.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/2d76c6829fe77fb55cc2541e4aca5ce5d18b68508dcdf3fa957fe4a83b9c887a.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/32c15d55a4548501740593807c5007217c72dbc10a21f4613ef5e0cee0b90d1d.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/3539b362cf3a61a79e92e113ebf8f255d0b25ec2d2edd816498879de831fa912.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/3af38a2377bc89f6c6c82ee1e83df674efa2793db932b50a23bbce7ec9cd7941.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/3c176a7a0d0850fdcee790ed2641216fc3d1cba025928de3d7784262bb9b6f4a.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/3fb37e488aa81a64c997b3dd09794e988994c6ee3476c6d653ced1670888dd8e.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/424dcc7b320317bf3f2c62c8f19bc80564035127eb38ab811e460934d57ea38c.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/45cea35fab6bb06051a3286fca2307944850c7f9ed7aa89b7c24fafef28efda6.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/499cc7863851f97d79dbfc64e76f9e6978894199184a0d80ebdca13066a8fa78.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/4b7217644763b00c6ee6ae3f176c726914966fb791654a385c0638bb998b6dd2.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/4cf11c7177bb082f335e5bc7a037ef00d09355c5ad8263e284a96a92630ff9ae.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/536b37cab5a1edd6a68a71d122aab6898e44c68a5470a4ca8a9a72c57c02e034.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/55d3628b27e0fcea383df86c434a69761439f51a013359f0829675b07ee2b616.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/5652ba90fbd8146edaf42660329cc81798752f2f60b8d03956714460d5ba75ef.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/57459ab5e2ac6cec65ef5e59789dd82b9666d8573df41c4a398df603f1fa456f.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/5915b6aed21bba49b841b45574f44f60d26b44810bd68ac70b22f3f3b0dab072.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/5c4a5c7a8e99253561105c5fa3faf14326cf0c23adc32bfe7f8aea4dbf4b05f9.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/61822a412cfd461f4f7ae50bc13f242a0fca6c5c58fca72247b596ab037a1c85.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/673b7712908966718341508469b39cd49e6461f690ca3c23d4621ea7eba0cc30.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/69394a49520f84f6dccc1655f1c89eedc913ac53a7e48ac5dc1bff4141639bb4.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/6e58a53a6c2acd50f9f80fd270ca034c54421df8a587e181101b4b75b952ac5d.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/75dc9f23ee71e11a3a0c67eb77275d741a281c3398808fb42efd52b9973d5d04.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/76c6a403293a68ed3d6ad14e9dd27b555c3a1ef4a3cae12a2bd2ab3e67c5ad02.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/82b73ce3a18e47092840fc029177861887aa2867b007248ac79ffa20895a4491.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/8430d9bbfb4e2b678c54595ad95555c3c73d0e1b144a4d6e29664ccb4371baf0.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/848d4492508689f5c4a224079dca8809e872e33b8f2635c9f16da5dc21beed16.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/84941ac387a0d245ea20bd663ff4ee78c5315bedfa058ada0961765aff61acaf.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/859b7bbcf048a4525db0548b8f5afef83bfc4870914767153f44c05e83436ec5.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/87b68b45680a57c796eed9183211b03335a6ad6737372b3ef476c2cf42efa631.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/8cef94308af8d09670e4c99a3b6c3d9280b7a27d386653a3bd7d482b2cdf2b65.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/8e564bce3f352c2186ae09ed7fbca9739c10abc46fd5f6893c68cb47178bd2b4.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/8f89e79d0fb9b04d48c7b5719e1d024161c6a2119835b18dcb193ff51123a9be.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/8fe511ad48656a0b10801100b9100edab1be605a8a182dc5c834d298bf0d9166.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/900bda6562d06fafda54c495e325d57dbb7931813178ee207449c5519d89d537.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/997b1b7d9210bfa77dc71f16a57c6bd66bc7c648686dc2a2666044c95042978a.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/a111bb4c6cec536bcf57dddc744b871ac9f3d094ce459c16243adca19020db77.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/a2208bf899e6c84942eef9fbab569d597f574551afae5864f1953c6a517af068.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/a302ddb2598a72ece53780094b64ad861dc68e6913d8a1ea08f5d141736e2986.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/afcbc671326d0dac14e460662c1f793335877ba53cc965f67c0306833b087e7c.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/b657159e6a28c801a211024f96a7ef60e388ce928a7b41ae3d7555a6f8fd2e3e.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/be6bbc6cd15ba525790075252ba0ed0b28dae5cfbfa118c00dfb9ea1ab95e668.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/c1360e3cbe6b3dc8894bc66c359853854c2e5adeac9c7cd5ba63f5db448be601.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/c7983018dbf8e384ddf73191f526075bd0b29907061ab17642ecdc18ea7b9897.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/cea66f27ca60ea173ee0a2bcd91964dc2638eb5657250fe3aa5bd3e41faf8730.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/d052be571a0f3ab69926951f3a4c9d63f05da2ca6d91e5963dd63e04ecb515de.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/d162a993a60dd682c8c21dd111429d84d8d30413a000cf481cf98d06ca83e706.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/d238c3d3d054911714ebe30dafc99e6ad13925b7a600ba9f8d532d0f515f3f5a.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/d9a98cfe2865a9bb0e94f35c735a570b0625b58f890a6b1f6e14fab2401f0af2.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/dc27ae954b7b8a13a9459d6ca6ef2997f662715ff5f5453ea0da169f141748b8.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/e3ff1fd41cf76668b8e1927c0c2e4056b63a293ebbd300a8f1b1d27d87786271.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/e45b7344d373b3ef4a94f560cf4e17b1eb3b8cd89d1e552fc9be11d6b7b546f0.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/eb14eb898224d5d81d1012bec54f2b79f9377dc60fa1d01e49b4c3e148292d77.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/ed0e0101a3d91a3a615f9e78ef36f7deb8bb0eab0f133241d621925d0b596599.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/f722e3a3b1f0a3d7b9f7d7c66c46d8c87245de5f8eece055daf95c7086f8c267.bin +0 -0
- package/corpus/brasscap-mesa/blobs/bin/f76013aedfd810f136fa689a151024bcb942687ef42ae7edf1fd3513ac4e22c7.bin +0 -0
- package/corpus/brasscap-mesa/blobs/glb/0547e63693282614673b13bade4c08eb772020757b131b7c80f2077873aab70e.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/0cf89e9b1824440d213c8e9e33fb357734b7241b4c7eedaba3df7f8306e05425.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/0e01060e3a507ffff6461c50b5c565c71380a6a67d9760cdd7a09afd3e30b584.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/0ef326c5cf5292cd15b48b851460ee8156f51e0a5b62457c8f1f3c53c41665a3.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/1112ff4a3f69db3b62c6d2d6ae021e7c43ce0ca1feb1d3130376881decb3c6b0.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/11357cb8a0670fdc9a03780dd79a31e0aa7a0537786cbf66491bae1722d6feb3.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/11dbecc73bd343c375bd4b79db8dbda2272e76a6b8426ac29e90f2b1272ccfc2.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/133f639cfa837bc5da7915121c71fd32281660c2aaa0248bd59bde47e7faf8bc.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/16812a090136b6678633aa4db03e4187920ae0aca776ad6da373c600cd341972.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/17e63980d7934cfe1d2823d78652af338fe9f0c2170106cd4506a2c4e7f4716f.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/199224cafc86904bdefec8f01d131d7ca3e076a22b689bfc6a26dd20373cf286.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/1a5c8cf223a2f64715ea5eaf14d97a0131f9ebdef4388dc4823dcfa57817724c.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/1b0ec09ad6718149d7ca514136cee09b04c96425f03af0559fd097112aa0daa5.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/1e5024bbb1284b2ed39bbca2d0ade3acb5be2a2c6ba643291f269b76098c7f79.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/1e7635972e13468ffcbb1608f1d12559b066b4533912be2c35e3db07fd4a679d.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/1f03db3a38a21b8d4d02f8ede30e1303cd8d4c426815326a88f45a268b17a492.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/2624abb7bf45618be40f8c3221445179fca44f7321baff415fdf7ddd5e0afc6f.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/27fc3bad6db6e2b5ade5d242867d882362482ddf19c647edef821afc27d52dc2.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/29959bdb5b04a9180e88ec1ed976bae55424d3dc50985f13c0f85bae11ae79ee.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/308cbce2b1b6360f9a2dc275d0bc28be1966fc3ff5e0a58844405ba867f3f668.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/3674d7be969755aaffa368e57b8d1bb743bc98e766a57948859d54fdc7d2c066.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/3736ca95c9c40b30e21302ae6c89148d8ac09264dfbb7e5764b08c265a73ba3c.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/3bc90e1dc9411d249697e4ec352baa4886f91cacfe4940ac43aed879f60966c9.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/3f519c7c7482307cae908b27602dcb7716e2da4b651eff39c4c37103998d18fa.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/4767636d5554b60c94b447b87b77fc1456a2b9af42bfe08585389d27f306dd5e.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/4a3242773b3a73a73ee746a0cdf30c8d6d904bb4406dfdf9822dcd535d6ae308.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/4c7bf3788cba151442d85c3f76553c2e356edf8566ae8243d0a535c9bcde51d0.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/4f3b9f4c818ed6d375947e9603dd058c539e14ff05aa193fb5054d899dbb82a2.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/4fdf7ee67d12de1cd30c3c2bbd9409032dcab5feb3a7d3977b92c50b1d161afe.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/5821f33aa00e9acd2f4c0a29129978ee7006a879d163ce1463ae476031bfabcf.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/5a986c3e44fc686a2efe7648c3945bb7b51cf303918381383f21f898dd312cad.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/5c32fc1de6d198ed606d3e8c3264319acdd950dab18e8b723fc6332bf2f56aea.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/602ce4e8b00a0afbc1a894b65641e48d362ec834a559b9d97a4801473bb01da7.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/6180f9f96167522d8cab4de1d52598cecee8d7ee042f48e41669c98cf61c19c3.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/6205973ba63f7a554662ba05010d25131bed2d9656de422e2067ca54709d5b3c.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/693e556f2165232e8a38b1b2d68676f235ece5705c564992cfa7731426f4d376.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/6a46175438bec5527c281b577bd220b6badedf3c74266b997d39e596f83b8853.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/6ca1bcad7ea053a259b7f9fc5a7ec388a4cd29d44391d93386ea8b1143d94c21.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/6f9bc99656b611890d6acc76ee416f6222ca2d5f62167840b4216a21e020a4c8.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/6fb1e7857996662233ab5314fc13f8aa30703f91c04542e352ec17f9dc4fc054.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/7028ec39712143a7e9d09d2e1477282b654d0470102ca9d272ac82b23604cb21.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/73af65ac86efa61099178f3e7075dcd26d389ee9b9aa3546c18dede10c3dfda1.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/73b992b71bd3165ff7701ab1430c075cb5ba9b74e6363d24640377b1011ddc93.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/7471261d4df59979ba41a622d93779b66ebecd50353ad433862e603ee65f8748.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/76e9a3fcca962c2f900cf79dc1a0851840bd405dc11231f629f784adbcb69d23.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/79d2d29e8cd8b642386b5f31429b39bc4d6f13e53107dda00ebc463abf80c79d.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/7de66fcfffe4ff108510cbe6bebec44e28ab4b78e98e9c1a38466db5b81881f7.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/811fa798cb81ea99488db98e3d3ddea815aac8f6e7493ad04d0176f603978678.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/89b277f1636be220ff5658ff1f1c62efe14079d6e1f42efb373fbf0246801533.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/905c5fe666d9f6174e987382e47d3f325c5696cf8792d7a4a1dd120a438b8270.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/90efe3e05370ee853c0130b98ee82f00b86f7c7104e96b094715187fa49ac16f.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/968a7c5cb13014bce00a29d43b344bd6943ff00ae2908abbc6b40a994f1172a1.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/9a955b4e69dfa5b38f071099053c1a3684cf85ec2d346420de2853c61768f8cc.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/9da2781216a2e482dd8a6ada5ebb43bcf48e0169430e787ac277559cb2ade19a.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/9db02aab14a3b52463deadefbf4ba771809941e7fcb137c905955bdc80ec23bd.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/a3fe1788cf5d7f260249c722f0e0695a4d55744d1b14be44122377147a296256.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/a5c75af8f090d3c95fa46d2be49be5031138d7cd1bae234ae028edf717bf299e.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/a771abd40bd337a464c1bd19f841b62e290124faa89b19ec50e85ab36bc740a5.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/a94a2ad2ed463a47cdda117df25b06b3cf6be37ddac08594bc5f5d76c7237730.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/ad434e4a6490e495994b25f7574a5847a9f7d9c2ca5a2b229a9dfdd2e5e2bb72.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/aeae7b05404b852008a7897689e58aacef44a2c3bc0e87d2519ecdb4cb1e3ff5.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/b0c0c8a4985f92be3b358a8e703c67957427501882aeee05b4ccd3c7880930d4.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/b25174c3cd13eea6e1d9c3104ee5197dc6330129b2f0f7676e8a429900999d9b.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/b3eecdec571df96338edf690443394ff859383b4c94f4cf33d42c240006f8543.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/b7aa0c61ff9e7411535c7b7b8e587849a92bad00d431171ab16ad47d55db0a53.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/b9deef944c22331bc05220d1d6e46412e3cb1246ef041a4405d0cbbd90c2d624.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/ba9376e4ac39b809133ab717edb4c88b5219118766db492d7c97534ce119c2ec.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/baf338e9c272158b905fb58a712e29410c657a45be2764f1c6c43ca87fd1db48.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/bd442ac9fbe52b9f2e4ba586670017c3f2d9fedf1cbdec77ef24e9f8b3a183c8.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/c142adcf253be43b66f23ede8cea1e8fcfa256ebf53054a1068ace04745718a6.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/c6d7cbdc4b2ee9d416edf4d736a4f374f08aea98ca395ad371a50a1853744cfc.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/cfb165a7675d15cee2c490b31095a58f73bace50ccc1e0fdf2c8dc4400f1df27.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/d40f2ee59612473e9f687f17a0e203fdb4ba54c7185b05a8d81a433b04f24134.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/d50ce95411156a6b6cf386aefa5ee58db659811813f74be74f323e7c5795056f.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/d6af418bbde39b4fc7d22a61401d416be7a3fc1214ea2d3f42b4549c392d22ca.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/de7222ceeb1f72693dfb7fd1f343798659e03772d77f2b498fd8ebece2d5550a.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/e26975b198127ac3b6b4f5c4bc08ad47d6691398feee777743285391cd36d502.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/ea428490cd5f2672676a2776a598b819b08246871e76de94b7196f9643144986.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/eb96567a266d24be188cb5b08021112f2fad311cbead939d53c5565da11f6265.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/ecf66230bf7b68050c0827c2e4caf3de90e46859d291b794faa0dd3816d9dac6.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/ed8f067763a4a8adb83d80c8324b2a9668f1061f5f5352f21295e6cc5132386f.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/ee507a38772865467736d370791fe73c6aa4d83fe3e7ff4baa156b9cb2894c1c.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/eedc5b62dc6f27d4a089e9f5b282f626129236d3f1689b001e04f8748bf8859c.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/f4119b9c6c23435619682b5d247743459e76584b9b0d6c5cb689d8e156906695.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/f576047267a0bf9bd4bfc47072ea3d11066345b839953546292da678d1cb4722.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/f8cdfb11997d4ccabea88bcdd3924cc8b621b33618b18fe5fbfd286edfc1d87e.glb +0 -0
- package/corpus/brasscap-mesa/blobs/glb/fce95ecc5db24c903bd46f338e366e2715411465a5efac180e2f0f46397e59de.glb +0 -0
- package/corpus/brasscap-mesa/blobs/image/0579557f9344df6f2c4b1225e6252e53ab86d417a4c9b504b5c714a08a388e47.jpg +0 -0
- package/corpus/brasscap-mesa/blobs/image/9e18816a2ec16fbbb1f00f4a39c73ac2cbf6a8cdc17b4c96b1eba4cc9a754dc7.jpg +0 -0
- package/corpus/brasscap-mesa/blobs/image/eb453c71cfb1f9441eb00b32281f98e226e49d9dcf75c231455575fcdc652222.jpg +0 -0
- package/corpus/brasscap-mesa/blobs/json/e0072ed82115c519b891f53a194ea3b28fff7d3826d8ddf23460d6f21b7728d9.json +1 -0
- package/corpus/brasscap-mesa/blobs/json/ffb0e08eaaa7188db1f55931c9b6330937316091cc7463ed2eff6767bbfa33de.json +1 -0
- package/corpus/brasscap-mesa/blobs/wasm/1d6ace79610c4d510b60ad0c52915e42b57797d91f1ef292f60d8a3daec03dd6.wasm +0 -0
- package/corpus/brasscap-mesa/blobs/wasm/24a4d4c1292677b1c984b5c0d3497ae2929528bf511df475f80cc20945bb08ec.wasm +0 -0
- package/corpus/brasscap-mesa/blobs/wasm/b86d8afcc269fb063ebf64768fc3787635b65a7409a571115b07be2e4da39733.wasm +0 -0
- package/corpus/brasscap-mesa/cook.json +1 -0
- package/corpus/brasscap-mesa/mounts/shardfiles/brasscap-mesa/discovery.json +1 -0
- package/corpus/brasscap-mesa/sections/actors/creatures.json +1 -0
- package/corpus/brasscap-mesa/sections/actors/crowds.json +1 -0
- package/corpus/brasscap-mesa/sections/actors/species.json +1 -0
- package/corpus/brasscap-mesa/sections/audio/audio.json +1 -0
- package/corpus/brasscap-mesa/sections/combat/encounters.json +1 -0
- package/corpus/brasscap-mesa/sections/combat/items.json +1 -0
- package/corpus/brasscap-mesa/sections/combat/strikes.json +1 -0
- package/corpus/brasscap-mesa/sections/economy/ledger.json +1 -0
- package/corpus/brasscap-mesa/sections/economy/loot.json +1 -0
- package/corpus/brasscap-mesa/sections/look/look.json +1 -0
- package/corpus/brasscap-mesa/sections/look/materials.json +1 -0
- package/corpus/brasscap-mesa/sections/quests/quests.json +1 -0
- package/corpus/brasscap-mesa/sections/sim/client-scripts.json +1 -0
- package/corpus/brasscap-mesa/sections/sim/hooks.json +1 -0
- package/corpus/brasscap-mesa/sections/sim/plumbing.json +1 -0
- package/corpus/brasscap-mesa/sections/sim/scripts.json +1 -0
- package/corpus/brasscap-mesa/sections/sim/sim.json +1 -0
- package/corpus/brasscap-mesa/sections/state/migrations.json +1 -0
- package/corpus/brasscap-mesa/sections/state/state.json +1 -0
- package/corpus/brasscap-mesa/sections/ui/card.json +1 -0
- package/corpus/brasscap-mesa/sections/ui/compendium.json +1 -0
- package/corpus/brasscap-mesa/sections/ui/level.json +1 -0
- package/corpus/brasscap-mesa/sections/ui/ui.json +1 -0
- package/corpus/brasscap-mesa/sections/world/collision.json +1 -0
- package/corpus/brasscap-mesa/sections/world/days.json +1 -0
- package/corpus/brasscap-mesa/sections/world/edge.json +1 -0
- package/corpus/brasscap-mesa/sections/world/movers.json +1 -0
- package/corpus/brasscap-mesa/sections/world/navigation.json +1 -0
- package/corpus/brasscap-mesa/sections/world/props.json +1 -0
- package/corpus/brasscap-mesa/sections/world/spawn.json +1 -0
- package/corpus/brasscap-mesa/sections/world/terrain.json +1 -0
- package/corpus/brasscap-mesa/sections/world/tiles.json +1 -0
- package/corpus/brasscap-mesa/sections/world/traversal.json +1 -0
- package/corpus/brasscap-mesa/sections/world/water.json +1 -0
- package/corpus/brasscap-mesa/sections/world/weather.json +1 -0
- package/corpus/brasscap-mesa/shard.json +1 -0
- package/corpus/brasscap-mesa/validation.json +1 -0
- package/corpus/handwritten/blobs/bin/027822f6ae9c374ce1ced851f2227cb9acb03077e5cc6b7fecb245c31f021abd.bin +0 -0
- package/corpus/handwritten/blobs/bin/0377ce182bd604bcf4d501f14bf954c434ea64ad856ad9d71c502d1045612703.bin +0 -0
- package/corpus/handwritten/blobs/bin/05ad93d239eeeb5d9afa09b00d90c56098d88e8850e5b5e691fcaa7520dec3cd.bin +0 -0
- package/corpus/handwritten/blobs/bin/0c8980141e6e394ea473df1eb11c347ba617a1a9a4b39b3fa1871b5d15b97d87.bin +0 -0
- package/corpus/handwritten/blobs/bin/14eb11f8d809320e0a68b1edea7837d7a5b4a3da71f1ce4f54068e0afe0b039b.bin +0 -0
- package/corpus/handwritten/blobs/bin/16590066c039ac71e5038a9866a53ccb95e21af13db29cb655b379c4fcfef7bb.bin +0 -0
- package/corpus/handwritten/blobs/bin/1795b5147ad52482445d2414ee22823b947c43a917b6e96fd9ec017f17000912.bin +0 -0
- package/corpus/handwritten/blobs/bin/18f2e24ecc1ed1b1d12ae1c89732a5a1a618ab6e973d4ff0332cf9ecc4e4f4a6.bin +0 -0
- package/corpus/handwritten/blobs/bin/1a18ade01095f1a9ebe75650127861ef27dda0bb17c2b91bde057ec88ef2e98a.bin +0 -0
- package/corpus/handwritten/blobs/bin/1dba017cddb874bc147efb00c55418846ffa344a696f4df702bbabeea55034d0.bin +0 -0
- package/corpus/handwritten/blobs/bin/248c703537e4687ddd2b69a40d1ef3936da718626289d6867ce0a6866f562ba4.bin +0 -0
- package/corpus/handwritten/blobs/bin/2612d9fd4727f8c349f2dbfb7b1650bb7a752d0798a4966ac22cf2b6cdd9fcef.bin +0 -0
- package/corpus/handwritten/blobs/bin/28c54c766e90e3b046a2377b9fa015b0ce45cf3da4420f2b10553251f86c06aa.bin +0 -0
- package/corpus/handwritten/blobs/bin/30866b4807b12579f50218f6525c3db00919fbd43c97921daf47b3244b25dca6.bin +0 -0
- package/corpus/handwritten/blobs/bin/3d14fae85d77406a9b8c59f2e973cdae9587d49108ea92fb460679ca860196b8.bin +0 -0
- package/corpus/handwritten/blobs/bin/3f2201a53c441abcfb52089fe9bbb01f26fac8744099d3fb6668452885c2fa11.bin +0 -0
- package/corpus/handwritten/blobs/bin/42f270a99367fc4cc901518ccaa344ab595e265f113be944510da745c11f69d1.bin +0 -0
- package/corpus/handwritten/blobs/bin/43fd4327fedd51a586684ac611bcad4a8b9d62e51e03967de71fb42c9bf0f6e1.bin +0 -0
- package/corpus/handwritten/blobs/bin/484adda0898a881b6f095dad447f6a619bf0933f65efe940b72f1ab7f3630c22.bin +0 -0
- package/corpus/handwritten/blobs/bin/4a38cd49e8797429ce76265c3d8972195d5b0a02a35fc05fc513eab11240f415.bin +0 -0
- package/corpus/handwritten/blobs/bin/4fe636237bbbd4f836b0816bc61702f4c224d4cb91fbd94f244c731e24a1b945.bin +0 -0
- package/corpus/handwritten/blobs/bin/51b1cff782dc7ebb382bc429ee965023d4cdb52c7b3e37d6ffff5ef55c1c2813.bin +0 -0
- package/corpus/handwritten/blobs/bin/52561f02071ecaa98432fab5e8ece407a8e8f733a01f8eb7c543d1efe02614da.bin +0 -0
- package/corpus/handwritten/blobs/bin/556d6333923afea9641c4738741a41d6a46ae28a508288b9a49a749a344c1398.bin +0 -0
- package/corpus/handwritten/blobs/bin/5caeb97f32c7f31e1029eebdf31131f879f781bb5e3a225206a646710d83fd75.bin +0 -0
- package/corpus/handwritten/blobs/bin/5d1131e42a045083225105b640ff72e02c7f353ee6285545ac264d01bea26b1b.bin +0 -0
- package/corpus/handwritten/blobs/bin/5d80b30eee9f8342a92f6756fd0d84fb9d2d2ce994d222627641e584ad45d2a8.bin +0 -0
- package/corpus/handwritten/blobs/bin/5e0f9f7f2a85abe11a0a61ede853c9b9942b4494c3eb9943785cf6ae221e40e3.bin +0 -0
- package/corpus/handwritten/blobs/bin/5fdc5485343bba8201185c9bae862ad8618498ab5ce63b53514e4e0226fa7bdb.bin +0 -0
- package/corpus/handwritten/blobs/bin/6623dcb0b31c9ca0be342f6dca6b9e607ec3c12ff82068fa6030c142c2df77f7.bin +0 -0
- package/corpus/handwritten/blobs/bin/6887131a04175edbd1989aa95e8749d1703e7f2d0b8464e85f6bad28d6964125.bin +0 -0
- package/corpus/handwritten/blobs/bin/6cf89771d998486cad9049e6f4fc177d742a18ad79fafa4596814ff9d3cf1952.bin +0 -0
- package/corpus/handwritten/blobs/bin/74bbb0fc219e8476cd5550014a357ee18abc981ff3fe787ae3e60d4593705ec5.bin +0 -0
- package/corpus/handwritten/blobs/bin/76784a7f519ac43ce113a0c9365881839b75f66f96aa009fe8d3c8ab539ef283.bin +0 -0
- package/corpus/handwritten/blobs/bin/79a2f693ee2da546bb551f8b641b9c3affd2b8bfb5632ed7f417daba9d900af9.bin +0 -0
- package/corpus/handwritten/blobs/bin/7b593b0f9eefb957fb9d58b316d9836971203038d7c8127284bba44ccb3090bb.bin +0 -0
- package/corpus/handwritten/blobs/bin/7bb8e518ca5606de78972a6c648b57623f8bc12d7e06b4bbf43c60ac419a9bbd.bin +0 -0
- package/corpus/handwritten/blobs/bin/7c6133f3350147257fa501f41269cb77cb11d8ed96d351e873333b079cee524a.bin +0 -0
- package/corpus/handwritten/blobs/bin/7f5acf1893828995256f5b2c54948f80ba21e53de72db26ea72ce2479f5b0682.bin +0 -0
- package/corpus/handwritten/blobs/bin/836516253cf0f3e6e79537609fdbe6331c8c5c974f9ec4d3fbe4a7db48cf123d.bin +0 -0
- package/corpus/handwritten/blobs/bin/89900344f82d5c1474d2a163f8d29903447bac64e9c9775123ef499be70c2380.bin +0 -0
- package/corpus/handwritten/blobs/bin/95d76a9273c3edd98b3643c54e2e7989800bdcaf6f815230ef09f601e760330f.bin +0 -0
- package/corpus/handwritten/blobs/bin/a7b5a5fe053a38c93eed899bde5051cddd80e0a3f3c82b6fd814869097f0944b.bin +0 -0
- package/corpus/handwritten/blobs/bin/b29be84df0bfd1bc97a1464fd5ea068130947bfed3328e167640c81326eb45d7.bin +0 -0
- package/corpus/handwritten/blobs/bin/b6518dc352be03332a256f1cd9d1149da262fe6829e87ba43364f19c687ca7c9.bin +0 -0
- package/corpus/handwritten/blobs/bin/b7edb8095beeb158adb61ae3caa1653773757afbcd8fb2764c94b975a43fe9e2.bin +0 -0
- package/corpus/handwritten/blobs/bin/b86d617ae7fa397df51ff7af87cd89fa113ac19abd3840ea8f3a086d6c82905c.bin +0 -0
- package/corpus/handwritten/blobs/bin/bb860b5c67ee7f2fafd67588822152228d6f6c9de1231123eeafa4844732b18b.bin +0 -0
- package/corpus/handwritten/blobs/bin/bf8c3971bbb224075d488ffa9cfc20e322c61f9ca0c59c356838415f6778014b.bin +0 -0
- package/corpus/handwritten/blobs/bin/c2edd52ee14ebdc9fcc01d38c15d6ab3379df7a20098c260c546551898959cd1.bin +0 -0
- package/corpus/handwritten/blobs/bin/c3de13c551c5b45270143dcbb9fc9a31651f6012355823c0709c2fe6cafda940.bin +0 -0
- package/corpus/handwritten/blobs/bin/c57a8d9da18b1289afd16de00dd1ec75027048b8dcf7dd218da36bc3276ff035.bin +0 -0
- package/corpus/handwritten/blobs/bin/cc2975c9dea4c31b1bf380623a8f44059423004653f9cae4f603d374174323b7.bin +0 -0
- package/corpus/handwritten/blobs/bin/d476abba2e1c63ad3c7527617559173484ee837a5be2744d968466d5527c286b.bin +0 -0
- package/corpus/handwritten/blobs/bin/db242f89115c878cf0c3b976a1647e9cdeb6a1a51813b1dacaf1188715603294.bin +0 -0
- package/corpus/handwritten/blobs/bin/dcc4b9b3bc4ca777d11c494ae5478f17ad7cf2efa18dcba30def872d55355bc3.bin +0 -0
- package/corpus/handwritten/blobs/bin/dd99da483f385327d6b8319d6e2e9000b580280069353718aa0fda2230707e8b.bin +0 -0
- package/corpus/handwritten/blobs/bin/dfc139dba26f1789e16f72602e654636f2d99bcd41e3f10454da74b3a6a64dda.bin +0 -0
- package/corpus/handwritten/blobs/bin/e15ab3cc9f60657321cfe8d9751e086f025734f4e7068271e0baf6066a686f18.bin +0 -0
- package/corpus/handwritten/blobs/bin/e16a83a71213db6f804ce1d53981a2308062752c85c440022d9eeb7605fd37c8.bin +0 -0
- package/corpus/handwritten/blobs/bin/e7355876487f660ac9f25c9d9dfcd66eaf432e1e1669eb89d12ce8267a8d3e86.bin +0 -0
- package/corpus/handwritten/blobs/bin/e81a632e2da0f6a4d801f18aadfe2c6e640401cc1178935a9099ebb8e3af6cc1.bin +0 -0
- package/corpus/handwritten/blobs/bin/f0721c60d0b1046579d8c587fac8482a70822f0b39a85f9acc0cfc31f82b7dd2.bin +0 -0
- package/corpus/handwritten/blobs/bin/f301cf574de6d84030f839098ca44705dca115f9d3e4ee848e0b35fff3deaf77.bin +0 -0
- package/corpus/handwritten/blobs/bin/f7797f295a7570c437bf7020a1ddf208fea2a7aab595333320a6396c1608d360.bin +0 -0
- package/corpus/handwritten/blobs/glb/08de0bb2439ac812adef528b4b073bdb954bbeada972a2f3afb1757bd0540396.glb +0 -0
- package/corpus/handwritten/blobs/glb/153681171c35d2898569324e21ebe734b8418d4122833618a1e64ea326be1e5e.glb +0 -0
- package/corpus/handwritten/blobs/glb/1df5ce0b6cae72ec4cf3c41510681ba70ebb474f9745d536ebd4f03e8fc82de9.glb +0 -0
- package/corpus/handwritten/blobs/glb/262031e2fa710bd8d586eafce1019ca1434a2170e407567741aac1d99fc9c5ab.glb +0 -0
- package/corpus/handwritten/blobs/glb/27466efb180fb5b5074b40e424bd0b8d78f7ff0f5f3663748e014daeeeb5bedd.glb +0 -0
- package/corpus/handwritten/blobs/glb/2d2f6d00a14c89a4efb7f679b371118f564f258797ed8b8b42baf4ae60902ea6.glb +0 -0
- package/corpus/handwritten/blobs/glb/31f327d215ed7ef422e2169172f3869769e9816c9da979616844081e74f2eb09.glb +0 -0
- package/corpus/handwritten/blobs/glb/3bfe0e9ca18077ffee9c284ef40fed9f2fc354f7495612c785a6f980b5966559.glb +0 -0
- package/corpus/handwritten/blobs/glb/3db43042b3eeb1dee7ce9de1cc00322cefc348aa18c37d168b0858e6af6ca7a4.glb +0 -0
- package/corpus/handwritten/blobs/glb/46460a50da44fb8e792b48a646ec9ce025bb309d315dbcf67d2e9598591750de.glb +0 -0
- package/corpus/handwritten/blobs/glb/4902213556fedaf269fba6f0f195e424b2e49973ab45dcb8b69e34d253d9d8ff.glb +0 -0
- package/corpus/handwritten/blobs/glb/4dda463c9cd4bf339e5611871d4ba2fe16fe1487389a88b2888e96bc55e45d93.glb +0 -0
- package/corpus/handwritten/blobs/glb/4ed23469bd2b6b73183564cfc80a1ebcd0ffe2666a90a556752af0ca147fd2f7.glb +0 -0
- package/corpus/handwritten/blobs/glb/4fe74a1bed6b67129885b90cfcae01b5ca82e23e6d40507e280f02fca7fda54f.glb +0 -0
- package/corpus/handwritten/blobs/glb/50521bb3a50cc7199d324a0b25bc167c2e9d69770cb500490428efefc81ce3ea.glb +0 -0
- package/corpus/handwritten/blobs/glb/5ecca36d1e503edc092af0ef42f139cdcad99b8c2008318eb6ad337023d57296.glb +0 -0
- package/corpus/handwritten/blobs/glb/60fc036925852568cdb1b9fb85218dc43a8bf2ed86d3971a221ad942ece203a7.glb +0 -0
- package/corpus/handwritten/blobs/glb/611633cee0e5822b744486e6dff5414ad5b159eaabffe1c0ba0bb68be794bfa1.glb +0 -0
- package/corpus/handwritten/blobs/glb/67c7f983a0bcb9f84425378acac121a53f30795dce3181643bc1b763d0ae80b5.glb +0 -0
- package/corpus/handwritten/blobs/glb/6ecc0d307030943727484b49b1872643479c55ccc92252fca06e9e3cbe98fa90.glb +0 -0
- package/corpus/handwritten/blobs/glb/774b366df4de56cb6f9e3c904f02ec98016ac2ec489dc9e214b09220fca2f8e5.glb +0 -0
- package/corpus/handwritten/blobs/glb/785bae514ffc029e611d602259db7d37cbef589409a0814b9d37175d8b6c0a45.glb +0 -0
- package/corpus/handwritten/blobs/glb/79e79524efb2830e90af3c945c5b36ef07c1a38f2da2958112203a99eac52a16.glb +0 -0
- package/corpus/handwritten/blobs/glb/7bebdcdaf0be30d9f8d21bde72af68c32d825d12dc668f48109223ed7ff71c9f.glb +0 -0
- package/corpus/handwritten/blobs/glb/7d8b5ec9326a11362b3f9fa3409cb59d11b99f549cc304319c63c1ec55cbf5ab.glb +0 -0
- package/corpus/handwritten/blobs/glb/82e886f826315e4bf962363165fadadd3d93f85132c1909095045e0a7ccc0b34.glb +0 -0
- package/corpus/handwritten/blobs/glb/84b4ef190c3994ae7ca1b1f7a936526d1d20ad7deac13f949e3fe6bb7ba139ed.glb +0 -0
- package/corpus/handwritten/blobs/glb/85b7153e943fbe8c659bd6e4b323511dc6f6e2c7a3a1185e7a9a29ea6ddfdfa6.glb +0 -0
- package/corpus/handwritten/blobs/glb/85cf2d2be91cedbaf454ca42ad53c0c17b311088528d274695dbcea490d6c684.glb +0 -0
- package/corpus/handwritten/blobs/glb/8662b4cdc626c61a45e63f71dc866746c083cd0d4644b817a373105f936a7047.glb +0 -0
- package/corpus/handwritten/blobs/glb/8a4d33bfbb17d865e5deb0a0bdf3de67fc2312950a7568ed2635c22fbe4b1ecf.glb +0 -0
- package/corpus/handwritten/blobs/glb/8b11171d41c9027411ca8b87797d9ec70355471bdd3a247c114c49b8b781bbd9.glb +0 -0
- package/corpus/handwritten/blobs/glb/9026e1c4f0250832b69a989e69fe3071e5cad72adfe9c22ce11c409b18bb3357.glb +0 -0
- package/corpus/handwritten/blobs/glb/945b946f17b6393ea040230641c3083678bb6ab42e1d7239aeb9c950d0e7d5bb.glb +0 -0
- package/corpus/handwritten/blobs/glb/9afab455d603f1f8a38074c5a6cbed26d7d7f2cfd8a531820bd165d4b37399ee.glb +0 -0
- package/corpus/handwritten/blobs/glb/a6d702fb1be1095517625bfb2a2383f5f9638775059fd7e0d093d2044651b848.glb +0 -0
- package/corpus/handwritten/blobs/glb/aae479c2f99848998a1b499bbcad815d971349c2442bc363786aef63baad4337.glb +0 -0
- package/corpus/handwritten/blobs/glb/b155bd41f260d5303e293d691b657e0fb9b9c8b2f8aa589a0187061baa033eb7.glb +0 -0
- package/corpus/handwritten/blobs/glb/b1e8b770d99e8ca4396f21fd512f632c587149fc13db69deba388f702a46982f.glb +0 -0
- package/corpus/handwritten/blobs/glb/b382c318a5baac35da59a7b99ebaad6992e30c4bac327e85851ce0b2f89aa58b.glb +0 -0
- package/corpus/handwritten/blobs/glb/ba4478198696802808262af9bbfc224fe37e24e3f8c13de91debc87d3e1a9d41.glb +0 -0
- package/corpus/handwritten/blobs/glb/baf02cd967d1bf3c6a2ae878f4ca4ed34d0c39302ca2b8b6e3560a4e87b5c16f.glb +0 -0
- package/corpus/handwritten/blobs/glb/bc14dd152815ea6ed39458dcf89f2d69173d61d6e2b57be99d31ce2da64ccf67.glb +0 -0
- package/corpus/handwritten/blobs/glb/bc4e4d3bcf7ace855183efec0fbf242d444a32714d8b2fd8a45fa7b539ef2c73.glb +0 -0
- package/corpus/handwritten/blobs/glb/bc53475e2aa2fc9c2c0574b36a449fd57259c462d771e2b360def5c338d37c26.glb +0 -0
- package/corpus/handwritten/blobs/glb/c35d9e50f392c29f2587e3a6eb4f21143ba08e48d76a53b9de62d3b5be46c1a5.glb +0 -0
- package/corpus/handwritten/blobs/glb/c6911e059d3ac6aea75bc0ad3dd8b220704bfbba8ba98b57705e7aa3ecbe0050.glb +0 -0
- package/corpus/handwritten/blobs/glb/c84d88b6ed878490bcf9fa985b5e6a7a683de8ee7808ee4151a3b6a898fbe4f2.glb +0 -0
- package/corpus/handwritten/blobs/glb/c9d5d02ef0e38ac2898d3e6ecbc2ea0a6d2bd04531118550ab54b5e83293d7ec.glb +0 -0
- package/corpus/handwritten/blobs/glb/cd9d04e361e4c3d0aeb82f8682d71114ff8318b8fc4980bccee3c5e5c16afc27.glb +0 -0
- package/corpus/handwritten/blobs/glb/d32499928422a0cd1a32b1afaeacc31d2d84d74876f6805b36218dc04402a921.glb +0 -0
- package/corpus/handwritten/blobs/glb/dc7ea629fcddeba445599d73a5d721f4d5004e056c3c140baa3e6817393c6462.glb +0 -0
- package/corpus/handwritten/blobs/glb/dce79b59c85ca5a7f9fc25e585d253b15558f8f5d8497a76923c9071601de8b1.glb +0 -0
- package/corpus/handwritten/blobs/glb/e7fa1b02bae6c8d19ace0e8db44810beab9a1be9f8172d5816324760267d6d11.glb +0 -0
- package/corpus/handwritten/blobs/glb/eb664feed0fdcc3ac73cecbe737109994fe5dfad8a33997de88598965fa936ba.glb +0 -0
- package/corpus/handwritten/blobs/glb/ec6a771ca852b0b69e55a12df9d347384d01e611c8c6151ea771910f1601605d.glb +0 -0
- package/corpus/handwritten/blobs/glb/ede05013f575b4216d2b4b3f8a14d611ef28756f952f702bb169529c8ab02eff.glb +0 -0
- package/corpus/handwritten/blobs/glb/fec21fa96950340a1a031b31b37407468361ab0a7645c683e0d7773c18591a26.glb +0 -0
- package/corpus/handwritten/blobs/glb/ff21ea082bb00b01006900e7dbbb85220f31f45c144405c840a70872f9e09cb9.glb +0 -0
- package/corpus/handwritten/blobs/image/248fe9601e921305ffb35421414bc5f03e9f1b3dba15bf9b5c3387d8f255da17.png +0 -0
- package/corpus/handwritten/blobs/image/4b47420aff1ded28c9c6cf1eb92d6e2d7b01d057f2654654405445ff8d562e55.webp +0 -0
- package/corpus/handwritten/blobs/image/5dbc818ed0be692e6ba3df87898fd623280a2686eed5a538333e1325764b238d.png +0 -0
- package/corpus/handwritten/blobs/image/d5ae692911bbc2b60b5fdde239b70aad4ce9be0d7665c4a91b438de6077e21e3.jpg +0 -0
- package/corpus/handwritten/blobs/ktx2/df0dd2e8adc1d9479148bb198cb750471df454680cf0c9ffd6dc85d6262ed676.ktx2 +0 -0
- package/corpus/handwritten/blobs/wasm/ecc886d8bbebcf190298ff9162b6bb364f2125606f5bdc8cc220ea28044f96ea.wasm +0 -0
- package/corpus/handwritten/cook.json +1 -0
- package/corpus/handwritten/mounts/shardfiles/blender-template/discovery.json +1 -0
- package/corpus/handwritten/sections/actors/creatures.json +1 -0
- package/corpus/handwritten/sections/actors/crowds.json +1 -0
- package/corpus/handwritten/sections/actors/species.json +1 -0
- package/corpus/handwritten/sections/audio/audio.json +1 -0
- package/corpus/handwritten/sections/client/plan.json +1 -0
- package/corpus/handwritten/sections/combat/encounters.json +1 -0
- package/corpus/handwritten/sections/combat/items.json +1 -0
- package/corpus/handwritten/sections/combat/strikes.json +1 -0
- package/corpus/handwritten/sections/economy/ledger.json +1 -0
- package/corpus/handwritten/sections/economy/loot.json +1 -0
- package/corpus/handwritten/sections/look/look.json +1 -0
- package/corpus/handwritten/sections/look/map.json +1 -0
- package/corpus/handwritten/sections/look/materials.json +1 -0
- package/corpus/handwritten/sections/quests/quests.json +1 -0
- package/corpus/handwritten/sections/sim/client-scripts.json +1 -0
- package/corpus/handwritten/sections/sim/hooks.json +1 -0
- package/corpus/handwritten/sections/sim/plumbing.json +1 -0
- package/corpus/handwritten/sections/sim/sim.json +1 -0
- package/corpus/handwritten/sections/state/migrations.json +1 -0
- package/corpus/handwritten/sections/state/state.json +1 -0
- package/corpus/handwritten/sections/ui/card.json +1 -0
- package/corpus/handwritten/sections/ui/compendium.json +1 -0
- package/corpus/handwritten/sections/ui/level.json +1 -0
- package/corpus/handwritten/sections/ui/ui.json +1 -0
- package/corpus/handwritten/sections/world/collision.json +1 -0
- package/corpus/handwritten/sections/world/days.json +1 -0
- package/corpus/handwritten/sections/world/edge.json +1 -0
- package/corpus/handwritten/sections/world/movers.json +1 -0
- package/corpus/handwritten/sections/world/navigation.json +1 -0
- package/corpus/handwritten/sections/world/props.json +1 -0
- package/corpus/handwritten/sections/world/spawn.json +1 -0
- package/corpus/handwritten/sections/world/terrain.json +1 -0
- package/corpus/handwritten/sections/world/tiles.json +1 -0
- package/corpus/handwritten/sections/world/traversal.json +1 -0
- package/corpus/handwritten/sections/world/water.json +1 -0
- package/corpus/handwritten/sections/world/weather.json +1 -0
- package/corpus/handwritten/shard.json +1 -0
- package/corpus/handwritten/validation.json +1 -0
- package/package.json +504 -2
- package/packages/wire/src/net-command.ts +150 -0
- package/src/cli/bin.mjs +9 -0
- package/src/cli/main.ts +148 -0
- package/src/cli/pack.ts +262 -0
- package/src/cli/validate.ts +210 -0
- package/src/cli/version.ts +13 -0
- package/src/format/aacIndex.ts +160 -0
- package/src/format/accent.ts +35 -0
- package/src/format/achievementCounters.ts +22 -0
- package/src/format/actorMoves.ts +615 -0
- package/src/format/actorProjectionV2.ts +93 -0
- package/src/format/admissionControl.ts +66 -0
- package/src/format/admissionLate.ts +22 -0
- package/src/format/admissionLimits.ts +11 -0
- package/src/format/admissionServer.ts +30 -0
- package/src/format/ambientLife.ts +123 -0
- package/src/format/arenaRoomDocument.ts +114 -0
- package/src/format/arenaScriptRows.ts +107 -0
- package/src/format/arenaView.ts +30 -0
- package/src/format/assetAdmission.ts +279 -0
- package/src/format/audio-measure.ts +184 -0
- package/src/format/audio-mp4.ts +234 -0
- package/src/format/audio-rules.ts +271 -0
- package/src/format/audio-waiver.ts +55 -0
- package/src/format/audio.ts +463 -0
- package/src/format/audioBank.ts +37 -0
- package/src/format/audioProfiles.ts +501 -0
- package/src/format/audioRouting.ts +67 -0
- package/src/format/audioScene.ts +342 -0
- package/src/format/bakedTerrainBytes.ts +35 -0
- package/src/format/bakedTerrainSampling.ts +66 -0
- package/src/format/bakedTiles.ts +407 -0
- package/src/format/binarySource.ts +32 -0
- package/src/format/bodySlots.ts +90 -0
- package/src/format/bossEncounter.ts +354 -0
- package/src/format/bossProfiles.ts +709 -0
- package/src/format/bossSocketRig.ts +92 -0
- package/src/format/bowVariantRows.ts +68 -0
- package/src/format/brains.ts +252 -0
- package/src/format/budget.ts +214 -0
- package/src/format/buildings.ts +496 -0
- package/src/format/builtIndexes.ts +26 -0
- package/src/format/catalogueEconomy.ts +65 -0
- package/src/format/caveInterior.ts +225 -0
- package/src/format/cellBounds.ts +47 -0
- package/src/format/cellField.ts +98 -0
- package/src/format/chapterDirector.ts +193 -0
- package/src/format/clientChannels.ts +450 -0
- package/src/format/clientCues.ts +34 -0
- package/src/format/clientNative.ts +358 -0
- package/src/format/clientOwnership.ts +43 -0
- package/src/format/clientPlan.ts +306 -0
- package/src/format/clientScripts.ts +116 -0
- package/src/format/clientState.ts +273 -0
- package/src/format/clientTrails.ts +56 -0
- package/src/format/collectionDisplay.ts +232 -0
- package/src/format/colourFunction.ts +44 -0
- package/src/format/colourLut.ts +4 -0
- package/src/format/commonsCosts.ts +28 -0
- package/src/format/compendiumRows.ts +151 -0
- package/src/format/compendiumSketches.ts +23 -0
- package/src/format/completion.ts +83 -0
- package/src/format/contentBounds.ts +76 -0
- package/src/format/contentCost.ts +50 -0
- package/src/format/contracts.ts +305 -0
- package/src/format/cook-data.ts +148 -0
- package/src/format/cook-preparation.ts +241 -0
- package/src/format/coverAppearance.ts +53 -0
- package/src/format/creatures.ts +175 -0
- package/src/format/crowdPresentation.ts +87 -0
- package/src/format/crowds.ts +46 -0
- package/src/format/cueDirector.ts +134 -0
- package/src/format/dayCycle.ts +28 -0
- package/src/format/dayLook.ts +44 -0
- package/src/format/decisionBindings.ts +80 -0
- package/src/format/decisionPublication.ts +35 -0
- package/src/format/decisionScripts.ts +327 -0
- package/src/format/declaredQuestPage.ts +101 -0
- package/src/format/deviceMemoryCost.ts +50 -0
- package/src/format/director.ts +52 -0
- package/src/format/directorProduct.ts +27 -0
- package/src/format/directorStages.ts +165 -0
- package/src/format/directorWhen.ts +78 -0
- package/src/format/discoveryValues.ts +416 -0
- package/src/format/easedFields.ts +48 -0
- package/src/format/edgeProfiles.ts +40 -0
- package/src/format/eliteContinuation.ts +110 -0
- package/src/format/eliteEntryRows.ts +351 -0
- package/src/format/eliteFeature.ts +605 -0
- package/src/format/eliteScripts.ts +60 -0
- package/src/format/encounterRows.ts +1030 -0
- package/src/format/encounters.ts +65 -0
- package/src/format/engine-music.ts +42 -0
- package/src/format/entryClearance.ts +86 -0
- package/src/format/entryCoverage.ts +61 -0
- package/src/format/entryGeometry.ts +56 -0
- package/src/format/entryLanding.ts +83 -0
- package/src/format/entryReads.ts +45 -0
- package/src/format/entrywayAssets.ts +33 -0
- package/src/format/entryways.ts +58 -0
- package/src/format/exchange.ts +25 -0
- package/src/format/explorerCatalogue.ts +312 -0
- package/src/format/feature-sides.ts +233 -0
- package/src/format/fieldPresentation.ts +62 -0
- package/src/format/figures.ts +437 -0
- package/src/format/findsCatalogue.ts +67 -0
- package/src/format/fixedDraws.ts +24 -0
- package/src/format/flyers.ts +226 -0
- package/src/format/forestNativeInputs.ts +37 -0
- package/src/format/forestPage.ts +285 -0
- package/src/format/forestWeather.ts +333 -0
- package/src/format/geometryPack.ts +136 -0
- package/src/format/glbBuffers.ts +77 -0
- package/src/format/glbCost.ts +212 -0
- package/src/format/glbImages.ts +95 -0
- package/src/format/glbTriangles.ts +95 -0
- package/src/format/graphArmsRows.ts +200 -0
- package/src/format/grapple.ts +123 -0
- package/src/format/grazers.ts +164 -0
- package/src/format/grid-catalogue.ts +247 -0
- package/src/format/gridReadiness.ts +49 -0
- package/src/format/groupBrains.ts +249 -0
- package/src/format/heldArms.ts +576 -0
- package/src/format/heldEquipment.ts +78 -0
- package/src/format/heldFinishes.ts +415 -0
- package/src/format/heldGear.ts +68 -0
- package/src/format/heldJianDocument.ts +75 -0
- package/src/format/heldMelee.ts +866 -0
- package/src/format/heldView.ts +26 -0
- package/src/format/heldWeaponDocuments.ts +36 -0
- package/src/format/herdShelter.ts +58 -0
- package/src/format/hooks.ts +45 -0
- package/src/format/immutable.ts +59 -0
- package/src/format/inputDeclarations.ts +157 -0
- package/src/format/islandLibrary.ts +51 -0
- package/src/format/items.ts +229 -0
- package/src/format/json.ts +143 -0
- package/src/format/keyedSky.ts +314 -0
- package/src/format/kitFigure.ts +68 -0
- package/src/format/ktx2Cost.ts +47 -0
- package/src/format/ledger.ts +56 -0
- package/src/format/liftApproach.ts +75 -0
- package/src/format/liftRider.ts +10 -0
- package/src/format/lightEmitters.ts +105 -0
- package/src/format/lights.ts +135 -0
- package/src/format/limbCollision.ts +136 -0
- package/src/format/limbPopulation.ts +33 -0
- package/src/format/limbRig.ts +202 -0
- package/src/format/loadout.ts +156 -0
- package/src/format/look-light.ts +153 -0
- package/src/format/lootBag.ts +145 -0
- package/src/format/lootEconomy.ts +235 -0
- package/src/format/materialFamilies.ts +565 -0
- package/src/format/materialGraph.ts +1220 -0
- package/src/format/materials.ts +449 -0
- package/src/format/memoryAdmission.ts +84 -0
- package/src/format/memoryGates.json +7 -0
- package/src/format/meshCollision.ts +56 -0
- package/src/format/meshCollisionAssets.ts +19 -0
- package/src/format/meshCollisionBytes.ts +102 -0
- package/src/format/meshEntryways.ts +54 -0
- package/src/format/meshopt-decoder.wasm +0 -0
- package/src/format/meshopt-module.ts +177 -0
- package/src/format/meshopt-static.mjs +11 -0
- package/src/format/meshopt-wasm.ts +61 -0
- package/src/format/migrations.ts +209 -0
- package/src/format/minimap.ts +1052 -0
- package/src/format/mixedPopulation.ts +222 -0
- package/src/format/modes.ts +304 -0
- package/src/format/mountedSpecimenRows.ts +64 -0
- package/src/format/moverLifecycle.ts +34 -0
- package/src/format/moverMotion.ts +271 -0
- package/src/format/movers.ts +224 -0
- package/src/format/namedJsonContracts.ts +423 -0
- package/src/format/nativeActors.ts +45 -0
- package/src/format/nativeAssembly.ts +141 -0
- package/src/format/nativeGround.ts +37 -0
- package/src/format/nativeGroundAssets.ts +35 -0
- package/src/format/nativeItems.ts +184 -0
- package/src/format/nativePhysics.ts +140 -0
- package/src/format/nativeQuestComposition.ts +398 -0
- package/src/format/nativeRiding.ts +103 -0
- package/src/format/nativeRuntimePlan.ts +89 -0
- package/src/format/navigation.ts +99 -0
- package/src/format/navigationBytes.ts +111 -0
- package/src/format/nearPlaceholder.ts +111 -0
- package/src/format/nearPlaceholderAssets.ts +23 -0
- package/src/format/netCommand.ts +11 -0
- package/src/format/npcs.ts +546 -0
- package/src/format/outputAddress.ts +11 -0
- package/src/format/outputDownload.ts +34 -0
- package/src/format/outputFields.ts +123 -0
- package/src/format/outputIndex.ts +352 -0
- package/src/format/overdraw.ts +41 -0
- package/src/format/pageLife.ts +303 -0
- package/src/format/pagePreparation.ts +60 -0
- package/src/format/paintedLook.ts +55 -0
- package/src/format/paintedResources.ts +158 -0
- package/src/format/panelTemplate.ts +139 -0
- package/src/format/placeholderSource.ts +209 -0
- package/src/format/platformDataSections.ts +146 -0
- package/src/format/platformFileFamilies.ts +299 -0
- package/src/format/plumbing.ts +165 -0
- package/src/format/populationEnvironment.ts +210 -0
- package/src/format/populationKeeper.ts +163 -0
- package/src/format/populationProjection.ts +496 -0
- package/src/format/populationRespawn.ts +48 -0
- package/src/format/populationRoster.ts +158 -0
- package/src/format/portalFloor.ts +56 -0
- package/src/format/portalLink.ts +112 -0
- package/src/format/portalLinkAssets.ts +42 -0
- package/src/format/portalRide.ts +22 -0
- package/src/format/postGraphDocument.ts +36 -0
- package/src/format/postGraphLook.ts +477 -0
- package/src/format/postStack.ts +114 -0
- package/src/format/practiceCourseRows.ts +466 -0
- package/src/format/preflight.ts +155 -0
- package/src/format/presentation.ts +33 -0
- package/src/format/product-audio.ts +76 -0
- package/src/format/product-reads.ts +178 -0
- package/src/format/product-stream-admit.ts +100 -0
- package/src/format/product-stream-assets.ts +493 -0
- package/src/format/product-stream-facts.ts +208 -0
- package/src/format/product-stream-miss.ts +12 -0
- package/src/format/product-stream-node.ts +47 -0
- package/src/format/product-stream-packs.ts +242 -0
- package/src/format/product-stream-rows.ts +202 -0
- package/src/format/product-stream-tar.ts +192 -0
- package/src/format/product-stream.ts +284 -0
- package/src/format/product.ts +358 -0
- package/src/format/productValidation.ts +205 -0
- package/src/format/propMaterials.ts +254 -0
- package/src/format/props.ts +137 -0
- package/src/format/questContinuation.ts +42 -0
- package/src/format/questFigures.ts +227 -0
- package/src/format/questGraph.ts +30 -0
- package/src/format/questHost.ts +314 -0
- package/src/format/questInteractionSource.ts +57 -0
- package/src/format/questInteractions.ts +642 -0
- package/src/format/questPageComposition.ts +92 -0
- package/src/format/questPageFacets.ts +121 -0
- package/src/format/questRuntime.ts +118 -0
- package/src/format/questSteps.ts +182 -0
- package/src/format/questStory.ts +512 -0
- package/src/format/questStoryBindings.ts +43 -0
- package/src/format/questWorld.ts +36 -0
- package/src/format/quests.ts +333 -0
- package/src/format/rainPresentation.ts +131 -0
- package/src/format/rangedPage.ts +117 -0
- package/src/format/receipt-cost.ts +71 -0
- package/src/format/registeredJson.ts +530 -0
- package/src/format/returnProgramDocument.ts +40 -0
- package/src/format/returnProjectionV2.ts +84 -0
- package/src/format/riding.ts +377 -0
- package/src/format/riggedHulls.ts +160 -0
- package/src/format/roamingBossProjection.ts +178 -0
- package/src/format/roamingCombat.ts +22 -0
- package/src/format/ropeDeckSite.ts +148 -0
- package/src/format/rows.ts +86 -0
- package/src/format/runtime.ts +38 -0
- package/src/format/runtimeBinds.ts +49 -0
- package/src/format/runtimeCost.ts +80 -0
- package/src/format/runtimeSpawns.ts +73 -0
- package/src/format/scalarChannel.ts +38 -0
- package/src/format/scaledPost.ts +27 -0
- package/src/format/scaledPostContract.ts +51 -0
- package/src/format/sceneBuffers.ts +122 -0
- package/src/format/sceneDraws.ts +89 -0
- package/src/format/sceneDressing.ts +247 -0
- package/src/format/sceneInstances.ts +192 -0
- package/src/format/sceneMotion.ts +122 -0
- package/src/format/sceneRefs.ts +71 -0
- package/src/format/sceneSources.ts +730 -0
- package/src/format/script-side-grandfather.ts +62 -0
- package/src/format/script-sides.ts +289 -0
- package/src/format/scriptAbi.ts +14 -0
- package/src/format/scriptAbiV1.ts +56 -0
- package/src/format/scriptActionsV2.ts +101 -0
- package/src/format/scriptAdmission.ts +165 -0
- package/src/format/scriptAdmissionV2.ts +126 -0
- package/src/format/scriptContract.ts +170 -0
- package/src/format/scriptFuelV2.ts +124 -0
- package/src/format/scriptGroupBankV2.ts +54 -0
- package/src/format/scriptGroupStepV2.ts +165 -0
- package/src/format/scriptInputStateV2.ts +52 -0
- package/src/format/scriptLimits.ts +5 -0
- package/src/format/scriptMemoryV2.ts +17 -0
- package/src/format/scriptModuleV2.ts +116 -0
- package/src/format/scriptObservationColumnsV2.ts +226 -0
- package/src/format/scriptQueriesV2.ts +164 -0
- package/src/format/scriptQueryStateV2.ts +40 -0
- package/src/format/scriptRngV2.ts +52 -0
- package/src/format/scriptWireV2.ts +106 -0
- package/src/format/scripts.ts +31 -0
- package/src/format/sections.ts +140 -0
- package/src/format/shardSchema.ts +632 -0
- package/src/format/shardSections.ts +383 -0
- package/src/format/sketch.ts +79 -0
- package/src/format/skin-materials.ts +172 -0
- package/src/format/skinAssets.ts +107 -0
- package/src/format/skinData.ts +110 -0
- package/src/format/skinLayers.ts +90 -0
- package/src/format/skins.ts +37 -0
- package/src/format/socketLift.ts +58 -0
- package/src/format/socketLiftAssets.ts +81 -0
- package/src/format/socketRigCreature.ts +66 -0
- package/src/format/sourceResidency.ts +16 -0
- package/src/format/spawnCombat.ts +26 -0
- package/src/format/spawnScriptV2.ts +145 -0
- package/src/format/spawnScripts.ts +229 -0
- package/src/format/spawnTables.ts +46 -0
- package/src/format/spawnView.ts +26 -0
- package/src/format/speciesActorsFile.ts +86 -0
- package/src/format/speciesBookRows.ts +84 -0
- package/src/format/speciesBrain.ts +96 -0
- package/src/format/speciesLooks.ts +1021 -0
- package/src/format/speciesPrograms.ts +97 -0
- package/src/format/speciesScripts.ts +45 -0
- package/src/format/specimenCatalogue.ts +94 -0
- package/src/format/splatTerrain.ts +192 -0
- package/src/format/standalone-catalogue.ts +144 -0
- package/src/format/standaloneControl.ts +44 -0
- package/src/format/state.ts +61 -0
- package/src/format/stateLineage.ts +71 -0
- package/src/format/stealth.ts +106 -0
- package/src/format/stillImage.ts +135 -0
- package/src/format/streamedCover.ts +105 -0
- package/src/format/surfaceLooks.ts +50 -0
- package/src/format/tar-fields.ts +54 -0
- package/src/format/tar-paths.ts +103 -0
- package/src/format/tar-source.ts +13 -0
- package/src/format/tar-write.ts +152 -0
- package/src/format/tar.ts +203 -0
- package/src/format/targets.ts +217 -0
- package/src/format/terrain.ts +241 -0
- package/src/format/terrainTileBytes.ts +104 -0
- package/src/format/tierSelection.ts +195 -0
- package/src/format/toonLighting.ts +32 -0
- package/src/format/toonLook.ts +332 -0
- package/src/format/trail.ts +17 -0
- package/src/format/traversal.ts +13 -0
- package/src/format/treeSetRows.ts +93 -0
- package/src/format/ui.ts +90 -0
- package/src/format/uiStrings.ts +17 -0
- package/src/format/uniformRows.ts +31 -0
- package/src/format/upload-wire.ts +184 -0
- package/src/format/validationReceipt.ts +142 -0
- package/src/format/version.ts +9 -0
- package/src/format/vertexWear.ts +45 -0
- package/src/format/viewProgram.ts +329 -0
- package/src/format/voicePatches.ts +47 -0
- package/src/format/water.ts +247 -0
- package/src/format/waterWaves.ts +7 -0
- package/src/format/waterWorld.ts +34 -0
- package/src/format/weaponProfiles.ts +1315 -0
- package/src/format/weatherBundle.ts +36 -0
- package/src/format/weatherEffects.ts +78 -0
- package/src/format/weatherProgram.ts +422 -0
- package/src/format/wildlifePopulation.ts +210 -0
- package/src/format/wireLimits.ts +9 -0
- package/src/format/worldAssembly.ts +104 -0
- package/src/format/worldEntry.ts +151 -0
- package/src/format/worldPhysics.ts +292 -0
- package/src/format/worldSceneBatch.ts +106 -0
- package/src/format/worldSceneModels.ts +79 -0
- package/src/format/worldScenePages.ts +89 -0
- package/src/format/worldScenePlacement.ts +191 -0
- package/src/format/worldSceneSlabs.ts +43 -0
- package/src/format/worldSceneSurface.ts +113 -0
- package/src/format/worldSceneWeld.ts +702 -0
- package/src/format/worldScenes.ts +184 -0
- package/src/format/worldTargets.ts +111 -0
- package/src/format/worldUpdates.ts +229 -0
- package/src/hook/format-hook.d.mts +2 -0
- package/src/hook/format-hook.mjs +47 -0
- package/README.md +0 -8
|
@@ -0,0 +1,496 @@
|
|
|
1
|
+
import * as v from 'valibot';
|
|
2
|
+
import { isJsonData } from './json.ts';
|
|
3
|
+
import { ScenePointRefSchema, type ScenePointRef } from './sceneRefs.ts';
|
|
4
|
+
|
|
5
|
+
/** A building leaf/static solid, independent of a renderer or physics backend. */
|
|
6
|
+
export interface BuildingCollider { kind: 'box'; x: number; y: number; z: number; hx: number; hy: number; hz: number; yaw?: number; surface?: 'stone' | 'wood' }
|
|
7
|
+
/** Compatibility floor boxes remain data while old native floor consumers retire. */
|
|
8
|
+
export interface BuildingBox { x: number; z: number; hw: number; hd: number; rot: number; yTop: number; yBottom: number }
|
|
9
|
+
export interface BuildingFloor { x: number; z: number; rot: number; hw: number; hd: number; y: number }
|
|
10
|
+
export interface BuildingRoom { x: number; z: number; hw: number; hd: number }
|
|
11
|
+
export type BuildingLightKind = 'fire' | 'lamp';
|
|
12
|
+
export type BuildingWave = readonly [rate: number, seedScale: number, amount: number];
|
|
13
|
+
|
|
14
|
+
export type Xyz = readonly [number, number, number];
|
|
15
|
+
|
|
16
|
+
/** A light as a building record holds it: colour, intensity, range, decay, where (in its parent's frame), seed, kind, rank. */
|
|
17
|
+
export interface BakedBuildingLight {
|
|
18
|
+
readonly color: number; readonly intensity: number; readonly distance: number; readonly decay: number; readonly at: Xyz;
|
|
19
|
+
readonly seed: number; readonly kind: BuildingLightKind; readonly rank: number;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* What a building adds to its root, in the order it added it (a number names a geometry in the pack): a swinging door
|
|
24
|
+
* (leaf, hinges, battens on its pivot; `collider` its legacy box, `top` that box's closed top, `use` its prompt's spot,
|
|
25
|
+
* `slab` the leaf's box in the pivot's frame), a glow, a fire pit's model copy, a particle cloud (`seeds` its instance
|
|
26
|
+
* seeds, `mat` its program), a hung lantern (its pivot, ring and light), a wheel on its pivot, and a light on the root.
|
|
27
|
+
*/
|
|
28
|
+
export type BakedBuildingNode<P extends string> =
|
|
29
|
+
| { readonly t: 'door'; readonly pivot: Xyz; readonly leaf: number; readonly iron: number; readonly batten: number; readonly id: string; readonly collider: number; readonly top: number; readonly use: Xyz; readonly slab: BuildingCollider }
|
|
30
|
+
| { readonly t: 'glow'; readonly g: number; readonly at: Xyz; readonly yaw: number }
|
|
31
|
+
| { readonly t: 'pit'; readonly at: Xyz; readonly yaw: number }
|
|
32
|
+
| { readonly t: 'particles'; readonly mat: P; readonly seeds: number; readonly at: Xyz; readonly order: number; readonly detail: boolean }
|
|
33
|
+
| { readonly t: 'lantern'; readonly pivot: Xyz; readonly ring: number; readonly light: BakedBuildingLight; readonly swing: number }
|
|
34
|
+
| { readonly t: 'wheel'; readonly g: number; readonly at: Xyz; readonly yaw: number }
|
|
35
|
+
| { readonly t: 'light'; readonly light: BakedBuildingLight };
|
|
36
|
+
|
|
37
|
+
/** One building as its bake wrote it (world space unless said); `K` names its kit materials, `P` its particle programs. */
|
|
38
|
+
export interface BakedBuildingRecord<K extends string, P extends string> {
|
|
39
|
+
readonly at: Xyz;
|
|
40
|
+
readonly rot: number;
|
|
41
|
+
/** its parts per kit material, in the order they first came: one geometry each */
|
|
42
|
+
readonly parts: readonly (readonly [K, number])[];
|
|
43
|
+
/** its window groups, one geometry each */
|
|
44
|
+
readonly glass: readonly number[];
|
|
45
|
+
readonly nodes: readonly BakedBuildingNode<P>[];
|
|
46
|
+
/** its legacy boxes (the door's among them) */
|
|
47
|
+
readonly colliders: readonly BuildingBox[];
|
|
48
|
+
/** its static solids (`prop`: a prop model's own box, which its model registers) */
|
|
49
|
+
readonly solids: readonly { readonly d: BuildingCollider; readonly prop: boolean }[];
|
|
50
|
+
readonly floors: readonly BuildingFloor[];
|
|
51
|
+
/** its rooms, in its own frame */
|
|
52
|
+
readonly rooms: readonly BuildingRoom[];
|
|
53
|
+
readonly doorAt: readonly [number, number];
|
|
54
|
+
/** where its fire pit stands (world space), handed to its owner */
|
|
55
|
+
readonly firePit: Xyz | null;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/** How a shard's baked buildings dress and band (a shard's data row); `K` names its kit materials. */
|
|
59
|
+
export interface BakedBuildingLook<K extends string = string> {
|
|
60
|
+
/** small parts drawn only within the detail distance, their depth only through the near proxy */
|
|
61
|
+
readonly detail: readonly K[];
|
|
62
|
+
/** merged parts drawn within twice the detail distance */
|
|
63
|
+
readonly far: readonly K[];
|
|
64
|
+
/** a door's leaf, hinge and batten materials, its prompt's reach (m) and its prompts closed and open */
|
|
65
|
+
readonly door: { readonly leaf: K; readonly hinges: K; readonly battens: K; readonly reach: number; readonly open: string; readonly close: string };
|
|
66
|
+
/** a wheel's material */
|
|
67
|
+
readonly wheel: K;
|
|
68
|
+
/**
|
|
69
|
+
* The hung lantern: its ring's material and drop (m); the model copy's drop (m) and scale on its pivot; the material name
|
|
70
|
+
* (any case) that marks its glass; the glass and the frame rebuilt as plain standard materials (the glTF's physical
|
|
71
|
+
* brass and tangents gave NaN fragments): the glass lit by the clock at its emissive intensity.
|
|
72
|
+
*/
|
|
73
|
+
readonly lantern: {
|
|
74
|
+
readonly ring: K; readonly ringY: number; readonly drop: number; readonly scale: number; readonly glassName: string;
|
|
75
|
+
readonly glass: { readonly color: number; readonly emissive: Xyz; readonly emissiveIntensity: number; readonly roughness: number; readonly metalness: number; readonly opacity: number };
|
|
76
|
+
readonly frame: { readonly metalness: number; readonly roughness: number; readonly color: number };
|
|
77
|
+
};
|
|
78
|
+
/** every particle cloud's bounding sphere in its own frame */
|
|
79
|
+
readonly particles: { readonly center: Xyz; readonly radius: number };
|
|
80
|
+
/** a building's box reaches this far below and above each of its floors (m) */
|
|
81
|
+
readonly deck: readonly [below: number, above: number];
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
/** Live quality choices are copied at assembly; no getter or code crosses the host boundary. */
|
|
86
|
+
export interface BakedBuildingTier { readonly detailDist: number; readonly detailShadows: boolean; readonly sharedLights: boolean }
|
|
87
|
+
export type BakedBuildingRole = 'standalone' | 'member' | 'specimen';
|
|
88
|
+
/** Assembly uses named, platform-owned native resources. All variation is JSON. */
|
|
89
|
+
export interface BuildingAssemblyRows<K extends string = string, P extends string = string> {
|
|
90
|
+
readonly id: string;
|
|
91
|
+
readonly record: BakedBuildingRecord<K, P>;
|
|
92
|
+
readonly geometry: Readonly<Record<string, string>>;
|
|
93
|
+
readonly materials: { readonly parts: Readonly<Record<K, string>>; readonly particles: Readonly<Record<P, string>>; readonly glass: string; readonly glow: string };
|
|
94
|
+
readonly models: { readonly firePit: string; readonly lantern: string };
|
|
95
|
+
readonly role: BakedBuildingRole;
|
|
96
|
+
readonly look: BakedBuildingLook<K>;
|
|
97
|
+
readonly tier: BakedBuildingTier;
|
|
98
|
+
/** Frozen scene rows own all static shell meshes and their depth; only living nodes assemble here. */
|
|
99
|
+
readonly bakedStatic?: boolean;
|
|
100
|
+
/** Optional Z2 publication prefix for this building's root, dressing and native material loans. */
|
|
101
|
+
readonly publish?: string;
|
|
102
|
+
}
|
|
103
|
+
/** A smoke/ember cloud is either baked quads or a seed geometry instanced as unit quads. */
|
|
104
|
+
export interface BuildingCloudRow {
|
|
105
|
+
readonly geometry: string; readonly material: string | null; readonly seeds: boolean;
|
|
106
|
+
readonly name: string; readonly at: Xyz | ScenePointRef; readonly center: Xyz; readonly radius: number;
|
|
107
|
+
/** Convert a referenced world point into this named parent's local frame. */
|
|
108
|
+
readonly parent?: string;
|
|
109
|
+
readonly order: number; readonly visible: boolean;
|
|
110
|
+
}
|
|
111
|
+
const finite = v.pipe(v.number(), v.finite());
|
|
112
|
+
const nonnegative = v.pipe(finite, v.minValue(0));
|
|
113
|
+
const id = v.pipe(v.string(), v.minLength(1), v.maxLength(256));
|
|
114
|
+
const pair = v.tuple([finite, finite]);
|
|
115
|
+
const triple = v.tuple([finite, finite, finite]);
|
|
116
|
+
const waves = v.pipe(v.array(triple), v.maxLength(32));
|
|
117
|
+
/** Clock presentation and reversible doors; validated without loading a client view. */
|
|
118
|
+
export const BuildingLifeLookSchema: v.GenericSchema<BuildingLifeLookDataInput, BuildingLifeLookData> = v.pipe(v.unknown(), v.check(isJsonData, 'Building look requires plain JSON'), v.strictObject({
|
|
119
|
+
wheel: finite, door: v.strictObject({ seconds: v.pipe(finite, v.minValue(0.001)), angle: finite, collision: v.exactOptional(v.strictObject({ name: id, file: id, surface: v.picklist(['wood', 'stone', 'metal']), rearmRadius: nonnegative })) }),
|
|
120
|
+
flicker: v.strictObject({ depth: finite, waves }), fire: pair, lamp: pair, glass: pair,
|
|
121
|
+
swing: v.strictObject({ z: waves, x: pair }),
|
|
122
|
+
indoor: v.exactOptional(v.strictObject({ doorRadius: nonnegative, ranks: v.pipe(v.array(finite), v.maxLength(32)) })),
|
|
123
|
+
}));
|
|
124
|
+
export interface BuildingLifeLook {
|
|
125
|
+
readonly wheel: number;
|
|
126
|
+
readonly door: { readonly seconds: number; readonly angle: number; readonly collision?: { readonly name: string; readonly file: string; readonly surface: 'wood' | 'stone' | 'metal'; readonly rearmRadius: number } };
|
|
127
|
+
readonly flicker: { readonly depth: number; readonly waves: readonly BuildingWave[] };
|
|
128
|
+
readonly fire: readonly [number, number]; readonly lamp: readonly [number, number]; readonly glass: readonly [number, number];
|
|
129
|
+
readonly swing: { readonly z: readonly BuildingWave[]; readonly x: readonly [number, number] };
|
|
130
|
+
readonly indoor?: { readonly doorRadius: number; readonly ranks: readonly number[] };
|
|
131
|
+
}
|
|
132
|
+
const box = v.strictObject({ kind: v.literal('box'), x: finite, y: finite, z: finite, hx: nonnegative, hy: nonnegative, hz: nonnegative,
|
|
133
|
+
yaw: v.exactOptional(finite), surface: v.exactOptional(v.picklist(['stone', 'wood'])) });
|
|
134
|
+
const lightKind = v.picklist(['fire', 'lamp']);
|
|
135
|
+
/** Shared affine/pulse presentation: offset + gain × pulse × night gain. */
|
|
136
|
+
const materialPulse = v.strictObject({ material: id, color: triple, offset: finite, gain: finite,
|
|
137
|
+
pulse: pair, waves: v.pipe(v.array(pair), v.maxLength(8)), night: pair });
|
|
138
|
+
const list = <T extends v.BaseSchema<unknown, unknown, v.BaseIssue<unknown>>>(schema: T) => v.pipe(v.array(schema), v.maxLength(128));
|
|
139
|
+
const door = v.strictObject({ id, pivot: id, at: triple, reach: nonnegative, open: id, close: id, slab: box });
|
|
140
|
+
const light = v.strictObject({ light: id, base: finite, seed: finite, kind: lightKind });
|
|
141
|
+
const anchor = v.strictObject({ anchor: id, color: finite, intensity: finite, distance: nonnegative, decay: nonnegative, seed: finite, kind: lightKind, rank: finite });
|
|
142
|
+
const site = v.strictObject({ id, root: id, anchors: list(anchor),
|
|
143
|
+
rooms: v.exactOptional(list(v.strictObject({ x: finite, z: finite, hw: nonnegative, hd: nonnegative }))),
|
|
144
|
+
door: v.exactOptional(pair) });
|
|
145
|
+
/** Typed resource ids, bounded before any prompt or motion owner is allocated. */
|
|
146
|
+
export const BuildingLifeRowsSchema: v.GenericSchema<BuildingLifeRowsInput, BuildingLifeRows> = v.pipe(v.unknown(), v.check(isJsonData, 'Building life requires plain JSON'),
|
|
147
|
+
v.strictObject({ doors: list(door), swings: list(v.strictObject({ pivot: id, seed: finite })), wheels: list(v.strictObject({ id, object: id })),
|
|
148
|
+
colors: v.optional(list(materialPulse), []), params: v.optional(list(v.strictObject({ look: id, param: id })), []),
|
|
149
|
+
flickers: list(light), lamps: list(v.strictObject({ material: id, full: finite })), sites: list(site), shared: v.pipe(v.array(id), v.maxLength(8)) }));
|
|
150
|
+
|
|
151
|
+
/** Exact continuation includes in-flight reversal and accumulated wheel phase. */
|
|
152
|
+
export const BuildingContinuationSchema: v.GenericSchema<BuildingContinuationInput, BuildingContinuation> = v.strictObject({ version: v.literal(1), speed: finite,
|
|
153
|
+
doors: list(v.strictObject({ id, open: v.boolean(), enabled: v.boolean(), t: v.pipe(finite, v.minValue(0), v.maxValue(1)) })),
|
|
154
|
+
wheels: list(v.strictObject({ id, angle: finite })) });
|
|
155
|
+
|
|
156
|
+
/** A parsed empty batch is useful when a native/static assembler publishes its first row. */
|
|
157
|
+
export function emptyBuildingLifeRows(): BuildingLifeRows { return { doors: [], swings: [], wheels: [], colors: [], params: [], flickers: [], lamps: [], sites: [], shared: [] }; }
|
|
158
|
+
export function parseBuildingLifeLook(input: unknown): BuildingLifeLook { return v.parse(BuildingLifeLookSchema, input); }
|
|
159
|
+
export function parseBuildingLifeRows(input: unknown): BuildingLifeRows { return v.parse(BuildingLifeRowsSchema, input); }
|
|
160
|
+
|
|
161
|
+
/** Original finite cloud pose fields, shared by scene clouds and site-life rows. */
|
|
162
|
+
const cloudPose = { seeds: v.boolean(), name: v.pipe(v.string(), v.maxLength(256)), at: v.union([triple, ScenePointRefSchema]), center: triple,
|
|
163
|
+
radius: nonnegative, order: finite, parent: v.exactOptional(id) };
|
|
164
|
+
/** A parent converts only a scene point into its local frame, never a numeric point. */
|
|
165
|
+
export const BuildingCloudPoseSchema: v.GenericSchema<BuildingCloudPoseRowsInput, BuildingCloudPoseRows> = v.pipe(v.unknown(), v.check(isJsonData, 'Building cloud requires plain JSON'), v.strictObject(cloudPose),
|
|
166
|
+
v.check(row => row.parent === undefined || !Array.isArray(row.at), 'Cloud parent requires a scene point reference'));
|
|
167
|
+
/** Visual recipe for an ordinary seed or baked-quad cloud. */
|
|
168
|
+
export const BuildingCloudSchema: v.GenericSchema<BuildingCloudRowsInput, BuildingCloudRows> = v.pipe(v.unknown(), v.check(isJsonData, 'Building cloud requires plain JSON'),
|
|
169
|
+
v.strictObject({ geometry: id, material: v.nullable(id), ...cloudPose, visible: v.boolean() }),
|
|
170
|
+
v.check(row => row.parent === undefined || !Array.isArray(row.at), 'Cloud parent requires a scene point reference'));
|
|
171
|
+
const frame = v.strictObject({ metalness: finite, roughness: finite, color: finite });
|
|
172
|
+
/** Building appearance is independent of the shape library and the life clock. */
|
|
173
|
+
export const BakedBuildingLookSchema: v.GenericSchema<BakedBuildingLookRowsInput, BakedBuildingLookRows> = v.strictObject({ detail: list(id), far: list(id),
|
|
174
|
+
door: v.strictObject({ leaf: id, hinges: id, battens: id, reach: nonnegative, open: id, close: id }), wheel: id,
|
|
175
|
+
lantern: v.strictObject({ ring: id, ringY: finite, drop: finite, scale: finite, glassName: id,
|
|
176
|
+
glass: v.strictObject({ color: finite, emissive: triple, emissiveIntensity: finite, roughness: finite, metalness: finite, opacity: finite }), frame }),
|
|
177
|
+
particles: v.strictObject({ center: triple, radius: nonnegative }), deck: pair,
|
|
178
|
+
});
|
|
179
|
+
const ordinal = v.pipe(nonnegative, v.integer());
|
|
180
|
+
const buildingLight = v.strictObject({ color: finite, intensity: finite, distance: nonnegative, decay: nonnegative, at: triple, seed: finite, kind: lightKind, rank: finite });
|
|
181
|
+
const buildingNode = v.variant('t', [
|
|
182
|
+
v.strictObject({ t: v.literal('door'), pivot: triple, leaf: ordinal, iron: ordinal, batten: ordinal, id, collider: ordinal, top: finite, use: triple, slab: box }),
|
|
183
|
+
v.strictObject({ t: v.literal('glow'), g: ordinal, at: triple, yaw: finite }),
|
|
184
|
+
v.strictObject({ t: v.literal('pit'), at: triple, yaw: finite }),
|
|
185
|
+
v.strictObject({ t: v.literal('particles'), mat: id, seeds: ordinal, at: triple, order: finite, detail: v.boolean() }),
|
|
186
|
+
v.strictObject({ t: v.literal('lantern'), pivot: triple, ring: ordinal, light: buildingLight, swing: finite }),
|
|
187
|
+
v.strictObject({ t: v.literal('wheel'), g: ordinal, at: triple, yaw: finite }),
|
|
188
|
+
v.strictObject({ t: v.literal('light'), light: buildingLight }),
|
|
189
|
+
]);
|
|
190
|
+
const refs = v.pipe(v.record(id, id), v.check(rows => Object.keys(rows).length <= 256));
|
|
191
|
+
const buildingAssembly = v.pipe(v.unknown(), v.check(isJsonData, 'Building assembly requires plain JSON'), v.strictObject({ id,
|
|
192
|
+
// Author bakes may carry static catalogue metadata alongside the public building record.
|
|
193
|
+
record: v.object({ at: triple, rot: finite, parts: list(v.tuple([id, ordinal])), glass: list(ordinal), nodes: list(buildingNode),
|
|
194
|
+
colliders: list(v.strictObject({ x: finite, z: finite, hw: nonnegative, hd: nonnegative, rot: finite, yTop: finite, yBottom: finite })),
|
|
195
|
+
solids: list(v.strictObject({ d: box, prop: v.boolean() })), floors: list(v.strictObject({ x: finite, z: finite, rot: finite, hw: nonnegative, hd: nonnegative, y: finite })),
|
|
196
|
+
rooms: list(v.strictObject({ x: finite, z: finite, hw: nonnegative, hd: nonnegative })), doorAt: pair, firePit: v.nullable(triple) }),
|
|
197
|
+
geometry: refs, materials: v.strictObject({ parts: refs, particles: refs, glass: id, glow: id }), models: v.strictObject({ firePit: id, lantern: id }),
|
|
198
|
+
role: v.picklist(['standalone', 'member', 'specimen']), look: BakedBuildingLookSchema,
|
|
199
|
+
tier: v.strictObject({ detailDist: nonnegative, detailShadows: v.boolean(), sharedLights: v.boolean() }),
|
|
200
|
+
bakedStatic: v.exactOptional(v.boolean()), publish: v.exactOptional(id),
|
|
201
|
+
}));
|
|
202
|
+
/** Runtime admission for native and future Z2 publication; geometry/material references
|
|
203
|
+
* are checked by the host against its platform-owned resource context next. */
|
|
204
|
+
export function admitBuildingAssembly(input: unknown): void { v.parse(buildingAssembly, input); }
|
|
205
|
+
|
|
206
|
+
/** Admitted data contracts, independent of validator implementation metadata. */
|
|
207
|
+
export type BuildingLifeLookDataInput = unknown;
|
|
208
|
+
interface BuildingLifeLookDataFields {
|
|
209
|
+
wheel: number;
|
|
210
|
+
door: {
|
|
211
|
+
seconds: number;
|
|
212
|
+
angle: number;
|
|
213
|
+
collision?: {
|
|
214
|
+
name: string;
|
|
215
|
+
file: string;
|
|
216
|
+
surface: 'wood' | 'stone' | 'metal';
|
|
217
|
+
rearmRadius: number;
|
|
218
|
+
};
|
|
219
|
+
};
|
|
220
|
+
flicker: {
|
|
221
|
+
depth: number;
|
|
222
|
+
waves: ([
|
|
223
|
+
number,
|
|
224
|
+
number,
|
|
225
|
+
number
|
|
226
|
+
])[];
|
|
227
|
+
};
|
|
228
|
+
fire: [
|
|
229
|
+
number,
|
|
230
|
+
number
|
|
231
|
+
];
|
|
232
|
+
lamp: [
|
|
233
|
+
number,
|
|
234
|
+
number
|
|
235
|
+
];
|
|
236
|
+
glass: [
|
|
237
|
+
number,
|
|
238
|
+
number
|
|
239
|
+
];
|
|
240
|
+
swing: {
|
|
241
|
+
z: ([
|
|
242
|
+
number,
|
|
243
|
+
number,
|
|
244
|
+
number
|
|
245
|
+
])[];
|
|
246
|
+
x: [
|
|
247
|
+
number,
|
|
248
|
+
number
|
|
249
|
+
];
|
|
250
|
+
};
|
|
251
|
+
indoor?: {
|
|
252
|
+
doorRadius: number;
|
|
253
|
+
ranks: (number)[];
|
|
254
|
+
};
|
|
255
|
+
}
|
|
256
|
+
export type BuildingLifeLookData = { [Key in keyof BuildingLifeLookDataFields]: BuildingLifeLookDataFields[Key] };
|
|
257
|
+
export type BuildingLifeRowsInput = unknown;
|
|
258
|
+
interface BuildingLifeRowsFields {
|
|
259
|
+
doors: ({
|
|
260
|
+
id: string;
|
|
261
|
+
pivot: string;
|
|
262
|
+
at: [
|
|
263
|
+
number,
|
|
264
|
+
number,
|
|
265
|
+
number
|
|
266
|
+
];
|
|
267
|
+
reach: number;
|
|
268
|
+
open: string;
|
|
269
|
+
close: string;
|
|
270
|
+
slab: {
|
|
271
|
+
kind: 'box';
|
|
272
|
+
x: number;
|
|
273
|
+
y: number;
|
|
274
|
+
z: number;
|
|
275
|
+
hx: number;
|
|
276
|
+
hy: number;
|
|
277
|
+
hz: number;
|
|
278
|
+
yaw?: number;
|
|
279
|
+
surface?: 'stone' | 'wood';
|
|
280
|
+
};
|
|
281
|
+
})[];
|
|
282
|
+
swings: ({
|
|
283
|
+
pivot: string;
|
|
284
|
+
seed: number;
|
|
285
|
+
})[];
|
|
286
|
+
wheels: ({
|
|
287
|
+
id: string;
|
|
288
|
+
object: string;
|
|
289
|
+
})[];
|
|
290
|
+
colors: ({
|
|
291
|
+
material: string;
|
|
292
|
+
color: [
|
|
293
|
+
number,
|
|
294
|
+
number,
|
|
295
|
+
number
|
|
296
|
+
];
|
|
297
|
+
offset: number;
|
|
298
|
+
gain: number;
|
|
299
|
+
pulse: [
|
|
300
|
+
number,
|
|
301
|
+
number
|
|
302
|
+
];
|
|
303
|
+
waves: ([
|
|
304
|
+
number,
|
|
305
|
+
number
|
|
306
|
+
])[];
|
|
307
|
+
night: [
|
|
308
|
+
number,
|
|
309
|
+
number
|
|
310
|
+
];
|
|
311
|
+
})[];
|
|
312
|
+
params: ({
|
|
313
|
+
look: string;
|
|
314
|
+
param: string;
|
|
315
|
+
})[];
|
|
316
|
+
flickers: ({
|
|
317
|
+
light: string;
|
|
318
|
+
base: number;
|
|
319
|
+
seed: number;
|
|
320
|
+
kind: 'fire' | 'lamp';
|
|
321
|
+
})[];
|
|
322
|
+
lamps: ({
|
|
323
|
+
material: string;
|
|
324
|
+
full: number;
|
|
325
|
+
})[];
|
|
326
|
+
sites: ({
|
|
327
|
+
id: string;
|
|
328
|
+
root: string;
|
|
329
|
+
anchors: ({
|
|
330
|
+
anchor: string;
|
|
331
|
+
color: number;
|
|
332
|
+
intensity: number;
|
|
333
|
+
distance: number;
|
|
334
|
+
decay: number;
|
|
335
|
+
seed: number;
|
|
336
|
+
kind: 'fire' | 'lamp';
|
|
337
|
+
rank: number;
|
|
338
|
+
})[];
|
|
339
|
+
rooms?: ({
|
|
340
|
+
x: number;
|
|
341
|
+
z: number;
|
|
342
|
+
hw: number;
|
|
343
|
+
hd: number;
|
|
344
|
+
})[];
|
|
345
|
+
door?: [
|
|
346
|
+
number,
|
|
347
|
+
number
|
|
348
|
+
];
|
|
349
|
+
})[];
|
|
350
|
+
shared: (string)[];
|
|
351
|
+
}
|
|
352
|
+
export type BuildingLifeRows = { [Key in keyof BuildingLifeRowsFields]: BuildingLifeRowsFields[Key] };
|
|
353
|
+
export type BuildingContinuationInput = BuildingContinuation;
|
|
354
|
+
interface BuildingContinuationFields {
|
|
355
|
+
version: 1;
|
|
356
|
+
speed: number;
|
|
357
|
+
doors: ({
|
|
358
|
+
id: string;
|
|
359
|
+
open: boolean;
|
|
360
|
+
enabled: boolean;
|
|
361
|
+
t: number;
|
|
362
|
+
})[];
|
|
363
|
+
wheels: ({
|
|
364
|
+
id: string;
|
|
365
|
+
angle: number;
|
|
366
|
+
})[];
|
|
367
|
+
}
|
|
368
|
+
export type BuildingContinuation = { [Key in keyof BuildingContinuationFields]: BuildingContinuationFields[Key] };
|
|
369
|
+
export type BuildingCloudPoseRowsInput = unknown;
|
|
370
|
+
interface BuildingCloudPoseRowsFields {
|
|
371
|
+
seeds: boolean;
|
|
372
|
+
name: string;
|
|
373
|
+
at: ([
|
|
374
|
+
number,
|
|
375
|
+
number,
|
|
376
|
+
number
|
|
377
|
+
]) | (v.InferOutput<typeof ScenePointRefSchema>);
|
|
378
|
+
center: [
|
|
379
|
+
number,
|
|
380
|
+
number,
|
|
381
|
+
number
|
|
382
|
+
];
|
|
383
|
+
radius: number;
|
|
384
|
+
order: number;
|
|
385
|
+
parent?: string;
|
|
386
|
+
}
|
|
387
|
+
export type BuildingCloudPoseRows = { [Key in keyof BuildingCloudPoseRowsFields]: BuildingCloudPoseRowsFields[Key] };
|
|
388
|
+
export type BuildingCloudRowsInput = unknown;
|
|
389
|
+
export type BuildingCloudRows = Omit<Omit<{
|
|
390
|
+
geometry: string;
|
|
391
|
+
material: (string) | null;
|
|
392
|
+
}, keyof ({
|
|
393
|
+
seeds: boolean;
|
|
394
|
+
name: string;
|
|
395
|
+
at: ([
|
|
396
|
+
number,
|
|
397
|
+
number,
|
|
398
|
+
number
|
|
399
|
+
]) | (v.InferOutput<typeof ScenePointRefSchema>);
|
|
400
|
+
center: [
|
|
401
|
+
number,
|
|
402
|
+
number,
|
|
403
|
+
number
|
|
404
|
+
];
|
|
405
|
+
radius: number;
|
|
406
|
+
order: number;
|
|
407
|
+
parent?: string;
|
|
408
|
+
})> & {
|
|
409
|
+
seeds: boolean;
|
|
410
|
+
name: string;
|
|
411
|
+
at: ([
|
|
412
|
+
number,
|
|
413
|
+
number,
|
|
414
|
+
number
|
|
415
|
+
]) | (v.InferOutput<typeof ScenePointRefSchema>);
|
|
416
|
+
center: [
|
|
417
|
+
number,
|
|
418
|
+
number,
|
|
419
|
+
number
|
|
420
|
+
];
|
|
421
|
+
radius: number;
|
|
422
|
+
order: number;
|
|
423
|
+
parent?: string;
|
|
424
|
+
}, keyof ({
|
|
425
|
+
visible: boolean;
|
|
426
|
+
})> & {
|
|
427
|
+
visible: boolean;
|
|
428
|
+
};
|
|
429
|
+
export type BakedBuildingLookRowsInput = BakedBuildingLookRows;
|
|
430
|
+
interface BakedBuildingLookRowsFields {
|
|
431
|
+
detail: (string)[];
|
|
432
|
+
far: (string)[];
|
|
433
|
+
door: {
|
|
434
|
+
leaf: string;
|
|
435
|
+
hinges: string;
|
|
436
|
+
battens: string;
|
|
437
|
+
reach: number;
|
|
438
|
+
open: string;
|
|
439
|
+
close: string;
|
|
440
|
+
};
|
|
441
|
+
wheel: string;
|
|
442
|
+
lantern: {
|
|
443
|
+
ring: string;
|
|
444
|
+
ringY: number;
|
|
445
|
+
drop: number;
|
|
446
|
+
scale: number;
|
|
447
|
+
glassName: string;
|
|
448
|
+
glass: {
|
|
449
|
+
color: number;
|
|
450
|
+
emissive: [
|
|
451
|
+
number,
|
|
452
|
+
number,
|
|
453
|
+
number
|
|
454
|
+
];
|
|
455
|
+
emissiveIntensity: number;
|
|
456
|
+
roughness: number;
|
|
457
|
+
metalness: number;
|
|
458
|
+
opacity: number;
|
|
459
|
+
};
|
|
460
|
+
frame: {
|
|
461
|
+
metalness: number;
|
|
462
|
+
roughness: number;
|
|
463
|
+
color: number;
|
|
464
|
+
};
|
|
465
|
+
};
|
|
466
|
+
particles: {
|
|
467
|
+
center: [
|
|
468
|
+
number,
|
|
469
|
+
number,
|
|
470
|
+
number
|
|
471
|
+
];
|
|
472
|
+
radius: number;
|
|
473
|
+
};
|
|
474
|
+
deck: [
|
|
475
|
+
number,
|
|
476
|
+
number
|
|
477
|
+
];
|
|
478
|
+
}
|
|
479
|
+
export type BakedBuildingLookRows = { [Key in keyof BakedBuildingLookRowsFields]: BakedBuildingLookRowsFields[Key] };
|
|
480
|
+
|
|
481
|
+
/** Complete site-life file. Resource ids and their original site scope remain
|
|
482
|
+
* owned by the native assembler; admission allocates no scene resources. */
|
|
483
|
+
export const BuildingLifeDocumentSchema: v.GenericSchema<BuildingLifeDocumentInput, BuildingLifeDocumentRows> = v.strictObject({
|
|
484
|
+
look: BuildingLifeLookSchema, life: BuildingLifeRowsSchema,
|
|
485
|
+
initialDusk: v.pipe(v.number(), v.finite(), v.minValue(0), v.maxValue(1)),
|
|
486
|
+
});
|
|
487
|
+
export interface BuildingLifeDocumentInput {
|
|
488
|
+
readonly look: BuildingLifeLookDataInput;
|
|
489
|
+
readonly life: BuildingLifeRowsInput;
|
|
490
|
+
readonly initialDusk: number;
|
|
491
|
+
}
|
|
492
|
+
export interface BuildingLifeDocumentRows {
|
|
493
|
+
readonly look: BuildingLifeLookData;
|
|
494
|
+
readonly life: BuildingLifeRows;
|
|
495
|
+
readonly initialDusk: number;
|
|
496
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
declare const __SHARDFILE_VERDICTS__: unknown;
|
|
2
|
+
|
|
3
|
+
/** Build-owned address for one first-party index. The complete digest remains
|
|
4
|
+
* admission authority; its short URL version is only a cache identity. */
|
|
5
|
+
export function builtIndexHash(path: string): string | null {
|
|
6
|
+
const rows: unknown = typeof __SHARDFILE_VERDICTS__ === 'object' ? __SHARDFILE_VERDICTS__ : null;
|
|
7
|
+
if (!Array.isArray(rows)) return null;
|
|
8
|
+
let found: string | null = null;
|
|
9
|
+
const verdicts: readonly unknown[] = rows;
|
|
10
|
+
for (const row of verdicts) {
|
|
11
|
+
if (typeof row !== 'object' || row === null || !('path' in row) || row.path !== path) continue;
|
|
12
|
+
if (!('indexHash' in row) || typeof row.indexHash !== 'string' || !/^[a-f0-9]{64}$/u.test(row.indexHash)) throw new Error('Invalid built index address');
|
|
13
|
+
if (found !== null && found !== row.indexHash) throw new Error('Ambiguous built index address');
|
|
14
|
+
found = row.indexHash;
|
|
15
|
+
}
|
|
16
|
+
return found;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/** The exact first-party index hashes this client build validated; null for an unbundled client or a build with none. */
|
|
20
|
+
export function builtIndexHashes(): ReadonlySet<string> | null {
|
|
21
|
+
const rows: unknown = typeof __SHARDFILE_VERDICTS__ === 'object' ? __SHARDFILE_VERDICTS__ : null;
|
|
22
|
+
if (!Array.isArray(rows)) return null;
|
|
23
|
+
const verdicts: readonly unknown[] = rows, hashes = new Set<string>();
|
|
24
|
+
for (const row of verdicts) if (typeof row === 'object' && row !== null && 'indexHash' in row && typeof row.indexHash === 'string') hashes.add(row.indexHash);
|
|
25
|
+
return hashes.size === 0 ? null : hashes;
|
|
26
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import * as v from 'valibot';
|
|
2
|
+
|
|
3
|
+
const key = v.pipe(v.string(), v.regex(/^[a-z][a-zA-Z0-9.:-]*$/u), v.maxLength(128));
|
|
4
|
+
const text = v.pipe(v.string(), v.maxLength(4096));
|
|
5
|
+
const finite = v.pipe(v.number(), v.finite(), v.minValue(-10000000), v.maxValue(10000000));
|
|
6
|
+
const count = v.pipe(finite, v.integer(), v.minValue(0));
|
|
7
|
+
const positive = v.pipe(count, v.minValue(1));
|
|
8
|
+
const effectText = v.pipe(v.string(), v.maxLength(512));
|
|
9
|
+
export const EconomyEffectIdSchema = v.pipe(effectText, v.regex(/^effect\./u)) as v.GenericSchema<`effect.${string}`>;
|
|
10
|
+
const tag = v.pipe(effectText, v.regex(/\./u)) as v.GenericSchema<`${string}.${string}`>;
|
|
11
|
+
const modifier = v.strictObject({ attr: key, op: v.picklist(['add', 'mul', 'override']), value: finite });
|
|
12
|
+
const effectSchema = v.strictObject({ id: EconomyEffectIdSchema, kind: v.literal('permanent'), tags: v.pipe(v.array(tag), v.maxLength(32)),
|
|
13
|
+
modifiers: v.pipe(v.array(modifier), v.maxLength(32)), grants: v.exactOptional(v.pipe(v.array(tag), v.maxLength(32))),
|
|
14
|
+
stacking: v.union([v.literal('none'), v.strictObject({ max: v.pipe(positive, v.maxValue(1024)) })]),
|
|
15
|
+
group: v.exactOptional(key), removes: v.exactOptional(v.pipe(v.array(EconomyEffectIdSchema), v.maxLength(32))) });
|
|
16
|
+
const goodSchema = v.strictObject({ id: key, name: text, does: text, icon: v.picklist(['whetstone', 'heart', 'chart', 'cape']), price: count, needs: v.exactOptional(key) });
|
|
17
|
+
|
|
18
|
+
/** The unchanged effects/goods entries used by both loot and catalogue admission. */
|
|
19
|
+
export const CatalogueEconomyRegistrationSchema: v.StrictObjectSchema<{ readonly effects: v.GenericSchema<CatalogueEconomyRegistrationRowsInput['effects'], CatalogueEconomyRegistrationRows['effects']>; readonly goods: v.GenericSchema<CatalogueEconomyRegistrationRowsInput['goods'], CatalogueEconomyRegistrationRows['goods']>; }, undefined> = v.strictObject({
|
|
20
|
+
effects: v.pipe(v.array(effectSchema), v.maxLength(128)), goods: v.pipe(v.array(goodSchema), v.maxLength(64)),
|
|
21
|
+
});
|
|
22
|
+
/** Shared identity/reference law; projection never changes the authored order. */
|
|
23
|
+
export function catalogueEconomyRules(row: v.InferOutput<typeof CatalogueEconomyRegistrationSchema>): string[] {
|
|
24
|
+
const errors: string[] = [], effects = new Set(row.effects.map(effect => effect.id)), goods = new Set(row.goods.map(good => good.id));
|
|
25
|
+
if (effects.size !== row.effects.length || goods.size !== row.goods.length) errors.push('unique economy effects and goods');
|
|
26
|
+
if (row.goods.some(good => good.needs !== undefined && (!goods.has(good.needs) || good.needs === good.id))) errors.push('economy good prerequisite');
|
|
27
|
+
if (row.effects.some(effect => effect.removes?.some(id => !effects.has(id)) === true)) errors.push('economy effect reference');
|
|
28
|
+
return errors;
|
|
29
|
+
}
|
|
30
|
+
/** Bounded catalogue-only projection; the defining loot grammar stays shared. */
|
|
31
|
+
export const CatalogueEconomySchema: v.GenericSchema<CatalogueEconomyInput, CatalogueEconomy> = v.pipe(CatalogueEconomyRegistrationSchema,
|
|
32
|
+
v.check(row => catalogueEconomyRules(row).length === 0, 'Valid catalogue economy references'));
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
/** Admitted data contracts, independent of validator implementation metadata. */
|
|
36
|
+
export type CatalogueEconomyRegistrationRowsInput = CatalogueEconomyRegistrationRows;
|
|
37
|
+
interface CatalogueEconomyRegistrationRowsFields {
|
|
38
|
+
effects: ({
|
|
39
|
+
id: `effect.${string}`;
|
|
40
|
+
kind: 'permanent';
|
|
41
|
+
tags: (`${string}.${string}`)[];
|
|
42
|
+
modifiers: ({
|
|
43
|
+
attr: string;
|
|
44
|
+
op: 'add' | 'mul' | 'override';
|
|
45
|
+
value: number;
|
|
46
|
+
})[];
|
|
47
|
+
grants?: (`${string}.${string}`)[];
|
|
48
|
+
stacking: ('none') | ({
|
|
49
|
+
max: number;
|
|
50
|
+
});
|
|
51
|
+
group?: string;
|
|
52
|
+
removes?: (`effect.${string}`)[];
|
|
53
|
+
})[];
|
|
54
|
+
goods: ({
|
|
55
|
+
id: string;
|
|
56
|
+
name: string;
|
|
57
|
+
does: string;
|
|
58
|
+
icon: 'whetstone' | 'heart' | 'chart' | 'cape';
|
|
59
|
+
price: number;
|
|
60
|
+
needs?: string;
|
|
61
|
+
})[];
|
|
62
|
+
}
|
|
63
|
+
export type CatalogueEconomyRegistrationRows = { [Key in keyof CatalogueEconomyRegistrationRowsFields]: CatalogueEconomyRegistrationRowsFields[Key] };
|
|
64
|
+
export type CatalogueEconomyInput = CatalogueEconomyRegistrationRowsInput;
|
|
65
|
+
export type CatalogueEconomy = CatalogueEconomyRegistrationRows;
|