@instruktlabs/kiln 1.2.2 → 1.2.3

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 (214) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/.codex-plugin/plugin.json +1 -1
  3. package/CHANGELOG.md +74 -0
  4. package/README.md +7 -0
  5. package/dist/agent-run.mjs +6392 -1477
  6. package/dist/build.json +23 -23
  7. package/dist/cli.mjs +8453 -3407
  8. package/dist/evaluator-worker.mjs +16608 -12387
  9. package/dist/mcp-engine.mjs +6746 -1725
  10. package/dist/mcp-server.mjs +4 -4
  11. package/dist/viewer/app.js +203 -199
  12. package/dist/viewer/chat.html +209 -205
  13. package/dist/viewer/style.css +10 -0
  14. package/docs/atlas-provenance.md +23 -0
  15. package/docs/community-exporter.md +27 -0
  16. package/docs/export-profiles.md +20 -0
  17. package/docs/material-library.md +9 -5
  18. package/docs/procedural-surfaces-v3.md +276 -0
  19. package/docs/projects-and-live-review.md +1 -1
  20. package/docs/rendering.md +41 -0
  21. package/docs/sdk.md +53 -0
  22. package/docs/tools-operations.md +2 -2
  23. package/docs/tools.md +3 -3
  24. package/lib/asset-materials-node.d.ts +3 -3
  25. package/lib/asset-materials-node.js +29 -33
  26. package/lib/assets-node.d.ts +1 -1
  27. package/lib/assets-node.js +11 -4
  28. package/lib/assets.d.ts +4 -2
  29. package/lib/assets.js +61 -16
  30. package/lib/atlas-provenance.d.ts +86 -0
  31. package/lib/atlas-provenance.js +448 -0
  32. package/lib/character.d.ts +11 -2
  33. package/lib/character.js +90 -2
  34. package/lib/community-exporter.d.ts +3 -2
  35. package/lib/community-exporter.js +139 -3
  36. package/lib/discovery/helper-contracts.js +161 -7
  37. package/lib/discovery/helper-specs.js +49 -4
  38. package/lib/discovery/shapes.js +20 -7
  39. package/lib/engine-identity.d.ts +1 -1
  40. package/lib/engine-identity.js +1 -1
  41. package/lib/evaluator/authoring-diagnostic.d.ts +1 -1
  42. package/lib/evaluator/authoring-diagnostic.js +12 -0
  43. package/lib/evaluator/protocol.d.ts +2 -2
  44. package/lib/evaluator/protocol.js +16 -6
  45. package/lib/evaluator/subprocess.js +2 -2
  46. package/lib/exporter-node.js +9 -1
  47. package/lib/geometry-budget.d.ts +7 -0
  48. package/lib/geometry-budget.js +8 -0
  49. package/lib/gltf-texture-binding.d.ts +6 -0
  50. package/lib/gltf-texture-binding.js +54 -0
  51. package/lib/material-authoring-node.d.ts +6 -0
  52. package/lib/material-authoring-node.js +49 -0
  53. package/lib/material-authoring-schema.d.ts +871 -0
  54. package/lib/material-authoring-schema.js +310 -0
  55. package/lib/material-export.d.ts +5 -0
  56. package/lib/material-export.js +21 -0
  57. package/lib/material-library-node.d.ts +34 -8
  58. package/lib/material-library-node.js +691 -11
  59. package/lib/material-library.d.ts +3704 -4
  60. package/lib/material-library.js +272 -0
  61. package/lib/mcp-core.d.ts +1 -1
  62. package/lib/pinned-material-map.d.ts +33 -0
  63. package/lib/pinned-material-map.js +1 -0
  64. package/lib/portable-material-runtime.d.ts +5 -0
  65. package/lib/portable-material-runtime.js +160 -0
  66. package/lib/portable-sampler-runtime.d.ts +4 -0
  67. package/lib/portable-sampler-runtime.js +26 -0
  68. package/lib/portable-sampler.d.ts +11 -0
  69. package/lib/portable-sampler.js +42 -0
  70. package/lib/primitives.d.ts +15 -3
  71. package/lib/primitives.js +24 -4
  72. package/lib/procedural-material-v2.d.ts +2 -0
  73. package/lib/procedural-material-v2.js +2 -1
  74. package/lib/procedural-material-v3.d.ts +72 -0
  75. package/lib/procedural-material-v3.js +162 -0
  76. package/lib/procedural-texture-v2-compiler.d.ts +31 -0
  77. package/lib/procedural-texture-v2-compiler.js +172 -0
  78. package/lib/procedural-texture-v3-contract.d.ts +125 -0
  79. package/lib/procedural-texture-v3-contract.js +333 -0
  80. package/lib/procedural-texture-v3.d.ts +12 -0
  81. package/lib/procedural-texture-v3.js +165 -0
  82. package/lib/procedural-texture.d.ts +9 -31
  83. package/lib/procedural-texture.js +43 -170
  84. package/lib/project-bundle-node.d.ts +1 -1
  85. package/lib/project-bundle-node.js +70 -13
  86. package/lib/project-bundle.d.ts +91 -3
  87. package/lib/project-bundle.js +48 -7
  88. package/lib/qa/atlas.d.ts +21 -0
  89. package/lib/qa/atlas.js +474 -0
  90. package/lib/qa/index.d.ts +1 -0
  91. package/lib/qa/index.js +1 -0
  92. package/lib/qa/material.js +2 -0
  93. package/lib/qa/skin-integrity.d.ts +18 -0
  94. package/lib/qa/skin-integrity.js +221 -0
  95. package/lib/render-service-host.js +4 -7
  96. package/lib/render.d.ts +3 -3
  97. package/lib/render.js +108 -16
  98. package/lib/skin-binding.d.ts +20 -0
  99. package/lib/skin-binding.js +144 -0
  100. package/lib/texture-atlas-contract.d.ts +97 -0
  101. package/lib/texture-atlas-contract.js +414 -0
  102. package/lib/texture-atlas-pixels.d.ts +73 -0
  103. package/lib/texture-atlas-pixels.js +290 -0
  104. package/lib/texture-atlas.d.ts +10 -0
  105. package/lib/texture-atlas.js +143 -0
  106. package/lib/texture-bake.d.ts +3 -0
  107. package/lib/texture-bake.js +66 -11
  108. package/lib/texture-resolver.d.ts +22 -0
  109. package/lib/texture-resolver.js +24 -0
  110. package/lib/tools/materials.js +8 -7
  111. package/lib/tools/registry.js +5 -16
  112. package/lib/tools/review.js +1 -1
  113. package/lib/uv-data.d.ts +32 -0
  114. package/lib/uv-data.js +172 -0
  115. package/lib/uv-shapes.js +3 -0
  116. package/lib/uv.d.ts +9 -3
  117. package/lib/uv.js +53 -82
  118. package/lib/views/camera.d.ts +3 -3
  119. package/lib/views/camera.js +32 -28
  120. package/lib/views/face-policy.d.ts +9 -0
  121. package/lib/views/face-policy.js +16 -0
  122. package/lib/views/glb.js +218 -24
  123. package/lib/views/pose.d.ts +7 -1
  124. package/lib/views/pose.js +63 -12
  125. package/lib/views/raster.d.ts +6 -2
  126. package/lib/views/raster.js +49 -37
  127. package/lib/views/scene-copy.d.ts +6 -0
  128. package/lib/views/scene-copy.js +73 -0
  129. package/lib/views/scene-raster.js +2 -1
  130. package/lib/views/triangle-coverage.d.ts +8 -0
  131. package/lib/views/triangle-coverage.js +58 -0
  132. package/lib/workspace-node.js +7 -3
  133. package/lib/workspace.d.ts +2 -2
  134. package/package.json +3 -1
  135. package/plugin.json +1 -1
  136. package/plugins/kiln-engine/.claude-plugin/plugin.json +1 -1
  137. package/plugins/kiln-engine/README.md +3 -3
  138. package/plugins/kiln-engine/package-provenance.json +6 -6
  139. package/plugins/kiln-engine/plugin.json +1 -1
  140. package/plugins/kiln-engine/runtime.json +1 -1
  141. package/skills/kiln-author-asset/references/geometry-recipes.md +124 -0
  142. package/skills/kiln-author-asset/references/projects-and-materials.md +32 -2
  143. package/skills/kiln-compose-scene/references/runtime-scenes.md +19 -0
  144. package/skills/kiln-qa-asset/references/integration-checks.md +37 -2
  145. package/src/asset-materials-node.ts +38 -45
  146. package/src/assets-node.ts +22 -5
  147. package/src/assets.ts +61 -20
  148. package/src/atlas-provenance.ts +522 -0
  149. package/src/character.ts +107 -2
  150. package/src/community-exporter.ts +143 -3
  151. package/src/discovery/helper-contracts.ts +188 -7
  152. package/src/discovery/helper-specs.ts +69 -4
  153. package/src/discovery/shapes.ts +25 -9
  154. package/src/engine-identity.ts +1 -1
  155. package/src/evaluator/authoring-diagnostic.ts +19 -1
  156. package/src/evaluator/protocol.ts +19 -9
  157. package/src/evaluator/subprocess.ts +2 -2
  158. package/src/exporter-node.ts +12 -1
  159. package/src/generated/mcp-manifest.json +3 -3
  160. package/src/geometry-budget.ts +8 -0
  161. package/src/gltf-texture-binding.ts +60 -0
  162. package/src/material-authoring-node.ts +68 -0
  163. package/src/material-authoring-schema.ts +343 -0
  164. package/src/material-export.ts +25 -0
  165. package/src/material-library-node.ts +840 -16
  166. package/src/material-library.ts +348 -5
  167. package/src/pinned-material-map.ts +43 -0
  168. package/src/portable-material-runtime.ts +200 -0
  169. package/src/portable-sampler-runtime.ts +40 -0
  170. package/src/portable-sampler.ts +54 -0
  171. package/src/primitives.ts +98 -4
  172. package/src/procedural-material-v2.ts +2 -1
  173. package/src/procedural-material-v3.ts +224 -0
  174. package/src/procedural-texture-v2-compiler.ts +234 -0
  175. package/src/procedural-texture-v3-contract.ts +437 -0
  176. package/src/procedural-texture-v3.ts +220 -0
  177. package/src/procedural-texture.ts +61 -229
  178. package/src/project-bundle-node.ts +106 -14
  179. package/src/project-bundle.ts +61 -18
  180. package/src/project-cli.ts +29 -17
  181. package/src/qa/atlas.ts +597 -0
  182. package/src/qa/index.ts +1 -0
  183. package/src/qa/material.ts +2 -0
  184. package/src/qa/skin-integrity.ts +291 -0
  185. package/src/render-service-host.ts +4 -6
  186. package/src/render.ts +133 -15
  187. package/src/skin-binding.ts +225 -0
  188. package/src/texture-atlas-contract.ts +558 -0
  189. package/src/texture-atlas-pixels.ts +456 -0
  190. package/src/texture-atlas.ts +185 -0
  191. package/src/texture-bake.ts +88 -10
  192. package/src/texture-resolver.ts +55 -0
  193. package/src/tools/materials.ts +15 -11
  194. package/src/tools/registry.ts +5 -15
  195. package/src/tools/review.ts +1 -1
  196. package/src/uv-data.ts +238 -0
  197. package/src/uv-shapes.ts +3 -0
  198. package/src/uv.ts +73 -128
  199. package/src/viewer/app.ts +37 -0
  200. package/src/viewer/live-panel.ts +57 -1
  201. package/src/viewer/material-preview-panel.ts +140 -0
  202. package/src/viewer/material-preview.ts +138 -0
  203. package/src/viewer/materials-panel.ts +34 -5
  204. package/src/viewer/navigation.ts +2 -0
  205. package/src/views/camera.ts +37 -40
  206. package/src/views/face-policy.ts +20 -0
  207. package/src/views/glb.ts +294 -17
  208. package/src/views/pose.ts +71 -13
  209. package/src/views/raster.ts +73 -46
  210. package/src/views/scene-copy.ts +86 -0
  211. package/src/views/scene-raster.ts +2 -1
  212. package/src/views/triangle-coverage.ts +78 -0
  213. package/src/workspace-node.ts +11 -3
  214. package/src/workspace.ts +2 -2
@@ -0,0 +1,871 @@
1
+ /** Advertisable field shapes only. Existing canonicalizers own semantics and budgets. */
2
+ import { z } from 'zod';
3
+ import { type CanonicalProceduralTextureSpecV2 } from "./procedural-material-v2.js";
4
+ /** Persisted V2 shape: all canonical fields required, no author defaults or transforms. */
5
+ export declare const canonicalLegacyV2FieldSchema: z.ZodObject<{
6
+ schemaVersion: z.ZodLiteral<2>;
7
+ size: z.ZodNumber;
8
+ usage: z.ZodEnum<{
9
+ albedo: "albedo";
10
+ emissive: "emissive";
11
+ metallicRoughness: "metallicRoughness";
12
+ metalness: "metalness";
13
+ normal: "normal";
14
+ occlusion: "occlusion";
15
+ roughness: "roughness";
16
+ }>;
17
+ name: z.ZodOptional<z.ZodString>;
18
+ layers: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
19
+ blend: z.ZodEnum<{
20
+ multiply: "multiply";
21
+ normal: "normal";
22
+ overlay: "overlay";
23
+ screen: "screen";
24
+ }>;
25
+ opacity: z.ZodNumber;
26
+ op: z.ZodLiteral<"solid">;
27
+ color: z.ZodNumber;
28
+ }, z.core.$strict>, z.ZodObject<{
29
+ blend: z.ZodEnum<{
30
+ multiply: "multiply";
31
+ normal: "normal";
32
+ overlay: "overlay";
33
+ screen: "screen";
34
+ }>;
35
+ opacity: z.ZodNumber;
36
+ op: z.ZodLiteral<"checker">;
37
+ colorA: z.ZodNumber;
38
+ colorB: z.ZodNumber;
39
+ squares: z.ZodNumber;
40
+ }, z.core.$strict>, z.ZodObject<{
41
+ blend: z.ZodEnum<{
42
+ multiply: "multiply";
43
+ normal: "normal";
44
+ overlay: "overlay";
45
+ screen: "screen";
46
+ }>;
47
+ opacity: z.ZodNumber;
48
+ op: z.ZodLiteral<"stripes">;
49
+ colorA: z.ZodNumber;
50
+ colorB: z.ZodNumber;
51
+ count: z.ZodNumber;
52
+ angleDeg: z.ZodNumber;
53
+ }, z.core.$strict>, z.ZodObject<{
54
+ blend: z.ZodEnum<{
55
+ multiply: "multiply";
56
+ normal: "normal";
57
+ overlay: "overlay";
58
+ screen: "screen";
59
+ }>;
60
+ opacity: z.ZodNumber;
61
+ op: z.ZodLiteral<"gradient">;
62
+ from: z.ZodNumber;
63
+ to: z.ZodNumber;
64
+ angleDeg: z.ZodNumber;
65
+ }, z.core.$strict>, z.ZodObject<{
66
+ blend: z.ZodEnum<{
67
+ multiply: "multiply";
68
+ normal: "normal";
69
+ overlay: "overlay";
70
+ screen: "screen";
71
+ }>;
72
+ opacity: z.ZodNumber;
73
+ op: z.ZodLiteral<"bricks">;
74
+ brick: z.ZodNumber;
75
+ mortar: z.ZodNumber;
76
+ rows: z.ZodNumber;
77
+ cols: z.ZodNumber;
78
+ mortarWidth: z.ZodNumber;
79
+ stagger: z.ZodNumber;
80
+ }, z.core.$strict>, z.ZodObject<{
81
+ blend: z.ZodEnum<{
82
+ multiply: "multiply";
83
+ normal: "normal";
84
+ overlay: "overlay";
85
+ screen: "screen";
86
+ }>;
87
+ opacity: z.ZodNumber;
88
+ op: z.ZodLiteral<"noise">;
89
+ colorA: z.ZodNumber;
90
+ colorB: z.ZodNumber;
91
+ scale: z.ZodNumber;
92
+ octaves: z.ZodNumber;
93
+ seed: z.ZodNumber;
94
+ }, z.core.$strict>], "op">>;
95
+ }, z.core.$strict>;
96
+ /** Inject author V2 without a circular import. Optional persisted leaf must have no defaults. */
97
+ export declare function makeMaterialAuthoringSchemas<S extends z.ZodType<CanonicalProceduralTextureSpecV2>>(legacyV2Schema: S, canonicalLegacyV2Schema?: z.ZodType<CanonicalProceduralTextureSpecV2>): {
98
+ portableSamplerSchema: z.ZodObject<{
99
+ minFilter: z.ZodEnum<{
100
+ linear: "linear";
101
+ "linear-mipmap-linear": "linear-mipmap-linear";
102
+ "linear-mipmap-nearest": "linear-mipmap-nearest";
103
+ nearest: "nearest";
104
+ "nearest-mipmap-linear": "nearest-mipmap-linear";
105
+ "nearest-mipmap-nearest": "nearest-mipmap-nearest";
106
+ }>;
107
+ magFilter: z.ZodEnum<{
108
+ linear: "linear";
109
+ nearest: "nearest";
110
+ }>;
111
+ wrapS: z.ZodEnum<{
112
+ "clamp-to-edge": "clamp-to-edge";
113
+ "mirrored-repeat": "mirrored-repeat";
114
+ repeat: "repeat";
115
+ }>;
116
+ wrapT: z.ZodEnum<{
117
+ "clamp-to-edge": "clamp-to-edge";
118
+ "mirrored-repeat": "mirrored-repeat";
119
+ repeat: "repeat";
120
+ }>;
121
+ }, z.core.$strict>;
122
+ proceduralTextureSpecV3Schema: z.ZodObject<{
123
+ schemaVersion: z.ZodLiteral<3>;
124
+ width: z.ZodNumber;
125
+ height: z.ZodNumber;
126
+ name: z.ZodOptional<z.ZodString>;
127
+ usage: z.ZodOptional<z.ZodEnum<{
128
+ albedo: "albedo";
129
+ emissive: "emissive";
130
+ metallicRoughness: "metallicRoughness";
131
+ metalness: "metalness";
132
+ normal: "normal";
133
+ occlusion: "occlusion";
134
+ roughness: "roughness";
135
+ }>>;
136
+ background: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
137
+ operations: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
138
+ op: z.ZodLiteral<"paint">;
139
+ shape: z.ZodDiscriminatedUnion<[z.ZodObject<{
140
+ x: z.ZodNumber;
141
+ y: z.ZodNumber;
142
+ width: z.ZodNumber;
143
+ height: z.ZodNumber;
144
+ kind: z.ZodLiteral<"rectangle">;
145
+ }, z.core.$strict>, z.ZodObject<{
146
+ x: z.ZodNumber;
147
+ y: z.ZodNumber;
148
+ width: z.ZodNumber;
149
+ height: z.ZodNumber;
150
+ kind: z.ZodLiteral<"ellipse">;
151
+ }, z.core.$strict>, z.ZodObject<{
152
+ kind: z.ZodLiteral<"polygon">;
153
+ points: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
154
+ }, z.core.$strict>, z.ZodObject<{
155
+ kind: z.ZodLiteral<"line">;
156
+ from: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
157
+ to: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
158
+ width: z.ZodNumber;
159
+ }, z.core.$strict>], "kind">;
160
+ rgba: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
161
+ opacity: z.ZodOptional<z.ZodNumber>;
162
+ }, z.core.$strict>, z.ZodObject<{
163
+ op: z.ZodLiteral<"mask">;
164
+ shape: z.ZodDiscriminatedUnion<[z.ZodObject<{
165
+ x: z.ZodNumber;
166
+ y: z.ZodNumber;
167
+ width: z.ZodNumber;
168
+ height: z.ZodNumber;
169
+ kind: z.ZodLiteral<"rectangle">;
170
+ }, z.core.$strict>, z.ZodObject<{
171
+ x: z.ZodNumber;
172
+ y: z.ZodNumber;
173
+ width: z.ZodNumber;
174
+ height: z.ZodNumber;
175
+ kind: z.ZodLiteral<"ellipse">;
176
+ }, z.core.$strict>, z.ZodObject<{
177
+ kind: z.ZodLiteral<"polygon">;
178
+ points: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
179
+ }, z.core.$strict>, z.ZodObject<{
180
+ kind: z.ZodLiteral<"line">;
181
+ from: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
182
+ to: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
183
+ width: z.ZodNumber;
184
+ }, z.core.$strict>], "kind">;
185
+ alpha: z.ZodOptional<z.ZodNumber>;
186
+ invert: z.ZodOptional<z.ZodBoolean>;
187
+ }, z.core.$strict>, z.ZodObject<{
188
+ op: z.ZodLiteral<"stamps">;
189
+ shape: z.ZodDiscriminatedUnion<[z.ZodObject<{
190
+ x: z.ZodNumber;
191
+ y: z.ZodNumber;
192
+ width: z.ZodNumber;
193
+ height: z.ZodNumber;
194
+ kind: z.ZodLiteral<"rectangle">;
195
+ }, z.core.$strict>, z.ZodObject<{
196
+ x: z.ZodNumber;
197
+ y: z.ZodNumber;
198
+ width: z.ZodNumber;
199
+ height: z.ZodNumber;
200
+ kind: z.ZodLiteral<"ellipse">;
201
+ }, z.core.$strict>, z.ZodObject<{
202
+ kind: z.ZodLiteral<"polygon">;
203
+ points: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
204
+ }, z.core.$strict>, z.ZodObject<{
205
+ kind: z.ZodLiteral<"line">;
206
+ from: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
207
+ to: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
208
+ width: z.ZodNumber;
209
+ }, z.core.$strict>], "kind">;
210
+ rgba: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
211
+ opacity: z.ZodOptional<z.ZodNumber>;
212
+ count: z.ZodNumber;
213
+ seed: z.ZodNumber;
214
+ area: z.ZodObject<{
215
+ x: z.ZodNumber;
216
+ y: z.ZodNumber;
217
+ width: z.ZodNumber;
218
+ height: z.ZodNumber;
219
+ }, z.core.$strict>;
220
+ periodic: z.ZodOptional<z.ZodBoolean>;
221
+ }, z.core.$strict>, z.ZodObject<{
222
+ op: z.ZodLiteral<"legacy-v2">;
223
+ spec: S;
224
+ alpha: z.ZodOptional<z.ZodNumber>;
225
+ opacity: z.ZodOptional<z.ZodNumber>;
226
+ }, z.core.$strict>], "op">>;
227
+ palette: z.ZodOptional<z.ZodObject<{
228
+ colors: z.ZodArray<z.ZodNumber>;
229
+ dither: z.ZodOptional<z.ZodEnum<{
230
+ bayer4: "bayer4";
231
+ none: "none";
232
+ }>>;
233
+ }, z.core.$strict>>;
234
+ }, z.core.$strict>;
235
+ canonicalProceduralTextureSpecV3Schema: z.ZodObject<{
236
+ schemaVersion: z.ZodLiteral<3>;
237
+ width: z.ZodNumber;
238
+ height: z.ZodNumber;
239
+ usage: z.ZodEnum<{
240
+ albedo: "albedo";
241
+ emissive: "emissive";
242
+ metallicRoughness: "metallicRoughness";
243
+ metalness: "metalness";
244
+ normal: "normal";
245
+ occlusion: "occlusion";
246
+ roughness: "roughness";
247
+ }>;
248
+ name: z.ZodOptional<z.ZodString>;
249
+ background: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
250
+ operations: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
251
+ op: z.ZodLiteral<"paint">;
252
+ shape: z.ZodDiscriminatedUnion<[z.ZodObject<{
253
+ x: z.ZodNumber;
254
+ y: z.ZodNumber;
255
+ width: z.ZodNumber;
256
+ height: z.ZodNumber;
257
+ kind: z.ZodLiteral<"rectangle">;
258
+ }, z.core.$strict>, z.ZodObject<{
259
+ x: z.ZodNumber;
260
+ y: z.ZodNumber;
261
+ width: z.ZodNumber;
262
+ height: z.ZodNumber;
263
+ kind: z.ZodLiteral<"ellipse">;
264
+ }, z.core.$strict>, z.ZodObject<{
265
+ kind: z.ZodLiteral<"polygon">;
266
+ points: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
267
+ }, z.core.$strict>, z.ZodObject<{
268
+ kind: z.ZodLiteral<"line">;
269
+ from: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
270
+ to: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
271
+ width: z.ZodNumber;
272
+ }, z.core.$strict>], "kind">;
273
+ rgba: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
274
+ opacity: z.ZodNumber;
275
+ }, z.core.$strict>, z.ZodObject<{
276
+ op: z.ZodLiteral<"mask">;
277
+ shape: z.ZodDiscriminatedUnion<[z.ZodObject<{
278
+ x: z.ZodNumber;
279
+ y: z.ZodNumber;
280
+ width: z.ZodNumber;
281
+ height: z.ZodNumber;
282
+ kind: z.ZodLiteral<"rectangle">;
283
+ }, z.core.$strict>, z.ZodObject<{
284
+ x: z.ZodNumber;
285
+ y: z.ZodNumber;
286
+ width: z.ZodNumber;
287
+ height: z.ZodNumber;
288
+ kind: z.ZodLiteral<"ellipse">;
289
+ }, z.core.$strict>, z.ZodObject<{
290
+ kind: z.ZodLiteral<"polygon">;
291
+ points: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
292
+ }, z.core.$strict>, z.ZodObject<{
293
+ kind: z.ZodLiteral<"line">;
294
+ from: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
295
+ to: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
296
+ width: z.ZodNumber;
297
+ }, z.core.$strict>], "kind">;
298
+ alpha: z.ZodNumber;
299
+ invert: z.ZodBoolean;
300
+ }, z.core.$strict>, z.ZodObject<{
301
+ op: z.ZodLiteral<"stamps">;
302
+ shape: z.ZodDiscriminatedUnion<[z.ZodObject<{
303
+ x: z.ZodNumber;
304
+ y: z.ZodNumber;
305
+ width: z.ZodNumber;
306
+ height: z.ZodNumber;
307
+ kind: z.ZodLiteral<"rectangle">;
308
+ }, z.core.$strict>, z.ZodObject<{
309
+ x: z.ZodNumber;
310
+ y: z.ZodNumber;
311
+ width: z.ZodNumber;
312
+ height: z.ZodNumber;
313
+ kind: z.ZodLiteral<"ellipse">;
314
+ }, z.core.$strict>, z.ZodObject<{
315
+ kind: z.ZodLiteral<"polygon">;
316
+ points: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
317
+ }, z.core.$strict>, z.ZodObject<{
318
+ kind: z.ZodLiteral<"line">;
319
+ from: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
320
+ to: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
321
+ width: z.ZodNumber;
322
+ }, z.core.$strict>], "kind">;
323
+ rgba: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
324
+ opacity: z.ZodNumber;
325
+ count: z.ZodNumber;
326
+ seed: z.ZodNumber;
327
+ area: z.ZodObject<{
328
+ x: z.ZodNumber;
329
+ y: z.ZodNumber;
330
+ width: z.ZodNumber;
331
+ height: z.ZodNumber;
332
+ }, z.core.$strict>;
333
+ periodic: z.ZodBoolean;
334
+ }, z.core.$strict>, z.ZodObject<{
335
+ op: z.ZodLiteral<"legacy-v2">;
336
+ alpha: z.ZodNumber;
337
+ opacity: z.ZodNumber;
338
+ spec: z.ZodType<CanonicalProceduralTextureSpecV2, unknown, z.core.$ZodTypeInternals<CanonicalProceduralTextureSpecV2, unknown>>;
339
+ }, z.core.$strict>], "op">>;
340
+ palette: z.ZodOptional<z.ZodObject<{
341
+ colors: z.ZodArray<z.ZodNumber>;
342
+ dither: z.ZodEnum<{
343
+ bayer4: "bayer4";
344
+ none: "none";
345
+ }>;
346
+ }, z.core.$strict>>;
347
+ }, z.core.$strict>;
348
+ textureAtlasSpecV1Schema: z.ZodObject<{
349
+ schemaVersion: z.ZodLiteral<1>;
350
+ width: z.ZodNumber;
351
+ height: z.ZodNumber;
352
+ usage: z.ZodEnum<{
353
+ albedo: "albedo";
354
+ emissive: "emissive";
355
+ metallicRoughness: "metallicRoughness";
356
+ metalness: "metalness";
357
+ normal: "normal";
358
+ occlusion: "occlusion";
359
+ roughness: "roughness";
360
+ }>;
361
+ sampler: z.ZodOptional<z.ZodObject<{
362
+ minFilter: z.ZodEnum<{
363
+ linear: "linear";
364
+ "linear-mipmap-linear": "linear-mipmap-linear";
365
+ "linear-mipmap-nearest": "linear-mipmap-nearest";
366
+ nearest: "nearest";
367
+ "nearest-mipmap-linear": "nearest-mipmap-linear";
368
+ "nearest-mipmap-nearest": "nearest-mipmap-nearest";
369
+ }>;
370
+ magFilter: z.ZodEnum<{
371
+ linear: "linear";
372
+ nearest: "nearest";
373
+ }>;
374
+ wrapS: z.ZodEnum<{
375
+ "clamp-to-edge": "clamp-to-edge";
376
+ "mirrored-repeat": "mirrored-repeat";
377
+ repeat: "repeat";
378
+ }>;
379
+ wrapT: z.ZodEnum<{
380
+ "clamp-to-edge": "clamp-to-edge";
381
+ "mirrored-repeat": "mirrored-repeat";
382
+ repeat: "repeat";
383
+ }>;
384
+ }, z.core.$strict>>;
385
+ regions: z.ZodArray<z.ZodObject<{
386
+ name: z.ZodString;
387
+ content: z.ZodObject<{
388
+ width: z.ZodNumber;
389
+ height: z.ZodNumber;
390
+ x: z.ZodNumber;
391
+ y: z.ZodNumber;
392
+ }, z.core.$strict>;
393
+ gutter: z.ZodOptional<z.ZodNumber>;
394
+ edgeMode: z.ZodOptional<z.ZodEnum<{
395
+ "copy-edge": "copy-edge";
396
+ "mask-rgb-dilate": "mask-rgb-dilate";
397
+ }>>;
398
+ crop: z.ZodOptional<z.ZodObject<{
399
+ width: z.ZodNumber;
400
+ height: z.ZodNumber;
401
+ x: z.ZodNumber;
402
+ y: z.ZodNumber;
403
+ }, z.core.$strict>>;
404
+ source: z.ZodDiscriminatedUnion<[z.ZodObject<{
405
+ kind: z.ZodLiteral<"procedural">;
406
+ spec: z.ZodObject<{
407
+ schemaVersion: z.ZodLiteral<3>;
408
+ width: z.ZodNumber;
409
+ height: z.ZodNumber;
410
+ name: z.ZodOptional<z.ZodString>;
411
+ usage: z.ZodOptional<z.ZodEnum<{
412
+ albedo: "albedo";
413
+ emissive: "emissive";
414
+ metallicRoughness: "metallicRoughness";
415
+ metalness: "metalness";
416
+ normal: "normal";
417
+ occlusion: "occlusion";
418
+ roughness: "roughness";
419
+ }>>;
420
+ background: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
421
+ operations: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
422
+ op: z.ZodLiteral<"paint">;
423
+ shape: z.ZodDiscriminatedUnion<[z.ZodObject<{
424
+ x: z.ZodNumber;
425
+ y: z.ZodNumber;
426
+ width: z.ZodNumber;
427
+ height: z.ZodNumber;
428
+ kind: z.ZodLiteral<"rectangle">;
429
+ }, z.core.$strict>, z.ZodObject<{
430
+ x: z.ZodNumber;
431
+ y: z.ZodNumber;
432
+ width: z.ZodNumber;
433
+ height: z.ZodNumber;
434
+ kind: z.ZodLiteral<"ellipse">;
435
+ }, z.core.$strict>, z.ZodObject<{
436
+ kind: z.ZodLiteral<"polygon">;
437
+ points: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
438
+ }, z.core.$strict>, z.ZodObject<{
439
+ kind: z.ZodLiteral<"line">;
440
+ from: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
441
+ to: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
442
+ width: z.ZodNumber;
443
+ }, z.core.$strict>], "kind">;
444
+ rgba: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
445
+ opacity: z.ZodOptional<z.ZodNumber>;
446
+ }, z.core.$strict>, z.ZodObject<{
447
+ op: z.ZodLiteral<"mask">;
448
+ shape: z.ZodDiscriminatedUnion<[z.ZodObject<{
449
+ x: z.ZodNumber;
450
+ y: z.ZodNumber;
451
+ width: z.ZodNumber;
452
+ height: z.ZodNumber;
453
+ kind: z.ZodLiteral<"rectangle">;
454
+ }, z.core.$strict>, z.ZodObject<{
455
+ x: z.ZodNumber;
456
+ y: z.ZodNumber;
457
+ width: z.ZodNumber;
458
+ height: z.ZodNumber;
459
+ kind: z.ZodLiteral<"ellipse">;
460
+ }, z.core.$strict>, z.ZodObject<{
461
+ kind: z.ZodLiteral<"polygon">;
462
+ points: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
463
+ }, z.core.$strict>, z.ZodObject<{
464
+ kind: z.ZodLiteral<"line">;
465
+ from: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
466
+ to: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
467
+ width: z.ZodNumber;
468
+ }, z.core.$strict>], "kind">;
469
+ alpha: z.ZodOptional<z.ZodNumber>;
470
+ invert: z.ZodOptional<z.ZodBoolean>;
471
+ }, z.core.$strict>, z.ZodObject<{
472
+ op: z.ZodLiteral<"stamps">;
473
+ shape: z.ZodDiscriminatedUnion<[z.ZodObject<{
474
+ x: z.ZodNumber;
475
+ y: z.ZodNumber;
476
+ width: z.ZodNumber;
477
+ height: z.ZodNumber;
478
+ kind: z.ZodLiteral<"rectangle">;
479
+ }, z.core.$strict>, z.ZodObject<{
480
+ x: z.ZodNumber;
481
+ y: z.ZodNumber;
482
+ width: z.ZodNumber;
483
+ height: z.ZodNumber;
484
+ kind: z.ZodLiteral<"ellipse">;
485
+ }, z.core.$strict>, z.ZodObject<{
486
+ kind: z.ZodLiteral<"polygon">;
487
+ points: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
488
+ }, z.core.$strict>, z.ZodObject<{
489
+ kind: z.ZodLiteral<"line">;
490
+ from: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
491
+ to: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
492
+ width: z.ZodNumber;
493
+ }, z.core.$strict>], "kind">;
494
+ rgba: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
495
+ opacity: z.ZodOptional<z.ZodNumber>;
496
+ count: z.ZodNumber;
497
+ seed: z.ZodNumber;
498
+ area: z.ZodObject<{
499
+ x: z.ZodNumber;
500
+ y: z.ZodNumber;
501
+ width: z.ZodNumber;
502
+ height: z.ZodNumber;
503
+ }, z.core.$strict>;
504
+ periodic: z.ZodOptional<z.ZodBoolean>;
505
+ }, z.core.$strict>, z.ZodObject<{
506
+ op: z.ZodLiteral<"legacy-v2">;
507
+ spec: S;
508
+ alpha: z.ZodOptional<z.ZodNumber>;
509
+ opacity: z.ZodOptional<z.ZodNumber>;
510
+ }, z.core.$strict>], "op">>;
511
+ palette: z.ZodOptional<z.ZodObject<{
512
+ colors: z.ZodArray<z.ZodNumber>;
513
+ dither: z.ZodOptional<z.ZodEnum<{
514
+ bayer4: "bayer4";
515
+ none: "none";
516
+ }>>;
517
+ }, z.core.$strict>>;
518
+ }, z.core.$strict>;
519
+ }, z.core.$strict>, z.ZodObject<{
520
+ kind: z.ZodLiteral<"resource">;
521
+ resourceId: z.ZodString;
522
+ pin: z.ZodObject<{
523
+ resourceId: z.ZodString;
524
+ revisionId: z.ZodTemplateLiteral<`sha256:${string}`>;
525
+ sha256: z.ZodTemplateLiteral<`sha256:${string}`>;
526
+ }, z.core.$strict>;
527
+ expected: z.ZodOptional<z.ZodObject<{
528
+ width: z.ZodOptional<z.ZodNumber>;
529
+ height: z.ZodOptional<z.ZodNumber>;
530
+ imageSha256: z.ZodOptional<z.ZodTemplateLiteral<`sha256:${string}`>>;
531
+ decodedPixelHash: z.ZodOptional<z.ZodTemplateLiteral<`sha256:${string}`>>;
532
+ }, z.core.$strict>>;
533
+ }, z.core.$strict>], "kind">;
534
+ }, z.core.$strict>>;
535
+ }, z.core.$strict>;
536
+ canonicalTextureAtlasSpecV1Schema: z.ZodObject<{
537
+ schemaVersion: z.ZodLiteral<1>;
538
+ width: z.ZodNumber;
539
+ height: z.ZodNumber;
540
+ usage: z.ZodEnum<{
541
+ albedo: "albedo";
542
+ emissive: "emissive";
543
+ metallicRoughness: "metallicRoughness";
544
+ metalness: "metalness";
545
+ normal: "normal";
546
+ occlusion: "occlusion";
547
+ roughness: "roughness";
548
+ }>;
549
+ sampler: z.ZodObject<{
550
+ minFilter: z.ZodEnum<{
551
+ linear: "linear";
552
+ "linear-mipmap-linear": "linear-mipmap-linear";
553
+ "linear-mipmap-nearest": "linear-mipmap-nearest";
554
+ nearest: "nearest";
555
+ "nearest-mipmap-linear": "nearest-mipmap-linear";
556
+ "nearest-mipmap-nearest": "nearest-mipmap-nearest";
557
+ }>;
558
+ magFilter: z.ZodEnum<{
559
+ linear: "linear";
560
+ nearest: "nearest";
561
+ }>;
562
+ wrapS: z.ZodEnum<{
563
+ "clamp-to-edge": "clamp-to-edge";
564
+ "mirrored-repeat": "mirrored-repeat";
565
+ repeat: "repeat";
566
+ }>;
567
+ wrapT: z.ZodEnum<{
568
+ "clamp-to-edge": "clamp-to-edge";
569
+ "mirrored-repeat": "mirrored-repeat";
570
+ repeat: "repeat";
571
+ }>;
572
+ }, z.core.$strict>;
573
+ regions: z.ZodArray<z.ZodObject<{
574
+ name: z.ZodString;
575
+ content: z.ZodObject<{
576
+ width: z.ZodNumber;
577
+ height: z.ZodNumber;
578
+ x: z.ZodNumber;
579
+ y: z.ZodNumber;
580
+ }, z.core.$strict>;
581
+ gutter: z.ZodNumber;
582
+ edgeMode: z.ZodEnum<{
583
+ "copy-edge": "copy-edge";
584
+ "mask-rgb-dilate": "mask-rgb-dilate";
585
+ }>;
586
+ source: z.ZodDiscriminatedUnion<[z.ZodObject<{
587
+ kind: z.ZodLiteral<"procedural">;
588
+ spec: z.ZodObject<{
589
+ schemaVersion: z.ZodLiteral<3>;
590
+ width: z.ZodNumber;
591
+ height: z.ZodNumber;
592
+ usage: z.ZodEnum<{
593
+ albedo: "albedo";
594
+ emissive: "emissive";
595
+ metallicRoughness: "metallicRoughness";
596
+ metalness: "metalness";
597
+ normal: "normal";
598
+ occlusion: "occlusion";
599
+ roughness: "roughness";
600
+ }>;
601
+ name: z.ZodOptional<z.ZodString>;
602
+ background: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
603
+ operations: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
604
+ op: z.ZodLiteral<"paint">;
605
+ shape: z.ZodDiscriminatedUnion<[z.ZodObject<{
606
+ x: z.ZodNumber;
607
+ y: z.ZodNumber;
608
+ width: z.ZodNumber;
609
+ height: z.ZodNumber;
610
+ kind: z.ZodLiteral<"rectangle">;
611
+ }, z.core.$strict>, z.ZodObject<{
612
+ x: z.ZodNumber;
613
+ y: z.ZodNumber;
614
+ width: z.ZodNumber;
615
+ height: z.ZodNumber;
616
+ kind: z.ZodLiteral<"ellipse">;
617
+ }, z.core.$strict>, z.ZodObject<{
618
+ kind: z.ZodLiteral<"polygon">;
619
+ points: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
620
+ }, z.core.$strict>, z.ZodObject<{
621
+ kind: z.ZodLiteral<"line">;
622
+ from: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
623
+ to: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
624
+ width: z.ZodNumber;
625
+ }, z.core.$strict>], "kind">;
626
+ rgba: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
627
+ opacity: z.ZodNumber;
628
+ }, z.core.$strict>, z.ZodObject<{
629
+ op: z.ZodLiteral<"mask">;
630
+ shape: z.ZodDiscriminatedUnion<[z.ZodObject<{
631
+ x: z.ZodNumber;
632
+ y: z.ZodNumber;
633
+ width: z.ZodNumber;
634
+ height: z.ZodNumber;
635
+ kind: z.ZodLiteral<"rectangle">;
636
+ }, z.core.$strict>, z.ZodObject<{
637
+ x: z.ZodNumber;
638
+ y: z.ZodNumber;
639
+ width: z.ZodNumber;
640
+ height: z.ZodNumber;
641
+ kind: z.ZodLiteral<"ellipse">;
642
+ }, z.core.$strict>, z.ZodObject<{
643
+ kind: z.ZodLiteral<"polygon">;
644
+ points: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
645
+ }, z.core.$strict>, z.ZodObject<{
646
+ kind: z.ZodLiteral<"line">;
647
+ from: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
648
+ to: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
649
+ width: z.ZodNumber;
650
+ }, z.core.$strict>], "kind">;
651
+ alpha: z.ZodNumber;
652
+ invert: z.ZodBoolean;
653
+ }, z.core.$strict>, z.ZodObject<{
654
+ op: z.ZodLiteral<"stamps">;
655
+ shape: z.ZodDiscriminatedUnion<[z.ZodObject<{
656
+ x: z.ZodNumber;
657
+ y: z.ZodNumber;
658
+ width: z.ZodNumber;
659
+ height: z.ZodNumber;
660
+ kind: z.ZodLiteral<"rectangle">;
661
+ }, z.core.$strict>, z.ZodObject<{
662
+ x: z.ZodNumber;
663
+ y: z.ZodNumber;
664
+ width: z.ZodNumber;
665
+ height: z.ZodNumber;
666
+ kind: z.ZodLiteral<"ellipse">;
667
+ }, z.core.$strict>, z.ZodObject<{
668
+ kind: z.ZodLiteral<"polygon">;
669
+ points: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
670
+ }, z.core.$strict>, z.ZodObject<{
671
+ kind: z.ZodLiteral<"line">;
672
+ from: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
673
+ to: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
674
+ width: z.ZodNumber;
675
+ }, z.core.$strict>], "kind">;
676
+ rgba: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
677
+ opacity: z.ZodNumber;
678
+ count: z.ZodNumber;
679
+ seed: z.ZodNumber;
680
+ area: z.ZodObject<{
681
+ x: z.ZodNumber;
682
+ y: z.ZodNumber;
683
+ width: z.ZodNumber;
684
+ height: z.ZodNumber;
685
+ }, z.core.$strict>;
686
+ periodic: z.ZodBoolean;
687
+ }, z.core.$strict>, z.ZodObject<{
688
+ op: z.ZodLiteral<"legacy-v2">;
689
+ alpha: z.ZodNumber;
690
+ opacity: z.ZodNumber;
691
+ spec: z.ZodType<CanonicalProceduralTextureSpecV2, unknown, z.core.$ZodTypeInternals<CanonicalProceduralTextureSpecV2, unknown>>;
692
+ }, z.core.$strict>], "op">>;
693
+ palette: z.ZodOptional<z.ZodObject<{
694
+ colors: z.ZodArray<z.ZodNumber>;
695
+ dither: z.ZodEnum<{
696
+ bayer4: "bayer4";
697
+ none: "none";
698
+ }>;
699
+ }, z.core.$strict>>;
700
+ }, z.core.$strict>;
701
+ }, z.core.$strict>, z.ZodObject<{
702
+ kind: z.ZodLiteral<"resource">;
703
+ resourceId: z.ZodString;
704
+ pin: z.ZodObject<{
705
+ resourceId: z.ZodString;
706
+ revisionId: z.ZodTemplateLiteral<`sha256:${string}`>;
707
+ sha256: z.ZodTemplateLiteral<`sha256:${string}`>;
708
+ }, z.core.$strict>;
709
+ expected: z.ZodOptional<z.ZodObject<{
710
+ width: z.ZodOptional<z.ZodNumber>;
711
+ height: z.ZodOptional<z.ZodNumber>;
712
+ imageSha256: z.ZodOptional<z.ZodTemplateLiteral<`sha256:${string}`>>;
713
+ decodedPixelHash: z.ZodOptional<z.ZodTemplateLiteral<`sha256:${string}`>>;
714
+ }, z.core.$strict>>;
715
+ }, z.core.$strict>], "kind">;
716
+ crop: z.ZodOptional<z.ZodObject<{
717
+ width: z.ZodNumber;
718
+ height: z.ZodNumber;
719
+ x: z.ZodNumber;
720
+ y: z.ZodNumber;
721
+ }, z.core.$strict>>;
722
+ }, z.core.$strict>>;
723
+ }, z.core.$strict>;
724
+ textureAtlasManifestV1Schema: z.ZodObject<{
725
+ version: z.ZodLiteral<"kiln.atlas-manifest.v1">;
726
+ compilerId: z.ZodLiteral<"kiln.texture-atlas.v1.1">;
727
+ width: z.ZodNumber;
728
+ height: z.ZodNumber;
729
+ usage: z.ZodEnum<{
730
+ albedo: "albedo";
731
+ emissive: "emissive";
732
+ metallicRoughness: "metallicRoughness";
733
+ metalness: "metalness";
734
+ normal: "normal";
735
+ occlusion: "occlusion";
736
+ roughness: "roughness";
737
+ }>;
738
+ origin: z.ZodLiteral<"top-left">;
739
+ sampler: z.ZodObject<{
740
+ minFilter: z.ZodEnum<{
741
+ linear: "linear";
742
+ "linear-mipmap-linear": "linear-mipmap-linear";
743
+ "linear-mipmap-nearest": "linear-mipmap-nearest";
744
+ nearest: "nearest";
745
+ "nearest-mipmap-linear": "nearest-mipmap-linear";
746
+ "nearest-mipmap-nearest": "nearest-mipmap-nearest";
747
+ }>;
748
+ magFilter: z.ZodEnum<{
749
+ linear: "linear";
750
+ nearest: "nearest";
751
+ }>;
752
+ wrapS: z.ZodEnum<{
753
+ "clamp-to-edge": "clamp-to-edge";
754
+ "mirrored-repeat": "mirrored-repeat";
755
+ repeat: "repeat";
756
+ }>;
757
+ wrapT: z.ZodEnum<{
758
+ "clamp-to-edge": "clamp-to-edge";
759
+ "mirrored-repeat": "mirrored-repeat";
760
+ repeat: "repeat";
761
+ }>;
762
+ }, z.core.$strict>;
763
+ specHash: z.ZodTemplateLiteral<`sha256:${string}`>;
764
+ layoutHash: z.ZodTemplateLiteral<`sha256:${string}`>;
765
+ decodedPixelHash: z.ZodTemplateLiteral<`sha256:${string}`>;
766
+ atlasPixelHash: z.ZodTemplateLiteral<`sha256:${string}`>;
767
+ sources: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
768
+ width: z.ZodNumber;
769
+ height: z.ZodNumber;
770
+ id: z.ZodString;
771
+ decodedPixelHash: z.ZodTemplateLiteral<`sha256:${string}`>;
772
+ kind: z.ZodLiteral<"procedural">;
773
+ recipeHash: z.ZodTemplateLiteral<`sha256:${string}`>;
774
+ compilerId: z.ZodLiteral<"kiln.procedural-rgba.v3.1">;
775
+ }, z.core.$strict>, z.ZodObject<{
776
+ width: z.ZodNumber;
777
+ height: z.ZodNumber;
778
+ id: z.ZodString;
779
+ decodedPixelHash: z.ZodTemplateLiteral<`sha256:${string}`>;
780
+ kind: z.ZodLiteral<"resource">;
781
+ descriptor: z.ZodObject<{
782
+ width: z.ZodNumber;
783
+ height: z.ZodNumber;
784
+ materialId: z.ZodString;
785
+ revisionId: z.ZodTemplateLiteral<`sha256:${string}`>;
786
+ resourceId: z.ZodString;
787
+ slot: z.ZodEnum<{
788
+ baseColor: "baseColor";
789
+ emissive: "emissive";
790
+ metallicRoughness: "metallicRoughness";
791
+ normal: "normal";
792
+ occlusion: "occlusion";
793
+ }>;
794
+ usage: z.ZodEnum<{
795
+ albedo: "albedo";
796
+ emissive: "emissive";
797
+ metallicRoughness: "metallicRoughness";
798
+ metalness: "metalness";
799
+ normal: "normal";
800
+ occlusion: "occlusion";
801
+ roughness: "roughness";
802
+ }>;
803
+ colorSpace: z.ZodEnum<{
804
+ linear: "linear";
805
+ srgb: "srgb";
806
+ }>;
807
+ encodedByteLength: z.ZodNumber;
808
+ imageSha256: z.ZodTemplateLiteral<`sha256:${string}`>;
809
+ decodedPixelHash: z.ZodOptional<z.ZodTemplateLiteral<`sha256:${string}`>>;
810
+ }, z.core.$strict>;
811
+ }, z.core.$strict>], "kind">>;
812
+ regions: z.ZodArray<z.ZodObject<{
813
+ name: z.ZodString;
814
+ content: z.ZodObject<{
815
+ width: z.ZodNumber;
816
+ height: z.ZodNumber;
817
+ x: z.ZodNumber;
818
+ y: z.ZodNumber;
819
+ }, z.core.$strict>;
820
+ allocation: z.ZodObject<{
821
+ width: z.ZodNumber;
822
+ height: z.ZodNumber;
823
+ x: z.ZodNumber;
824
+ y: z.ZodNumber;
825
+ }, z.core.$strict>;
826
+ crop: z.ZodObject<{
827
+ width: z.ZodNumber;
828
+ height: z.ZodNumber;
829
+ x: z.ZodNumber;
830
+ y: z.ZodNumber;
831
+ }, z.core.$strict>;
832
+ sourceId: z.ZodString;
833
+ }, z.core.$strict>>;
834
+ manifestHash: z.ZodTemplateLiteral<`sha256:${string}`>;
835
+ }, z.core.$strict>;
836
+ materialMapPinSchema: z.ZodObject<{
837
+ resourceId: z.ZodString;
838
+ revisionId: z.ZodTemplateLiteral<`sha256:${string}`>;
839
+ sha256: z.ZodTemplateLiteral<`sha256:${string}`>;
840
+ }, z.core.$strict>;
841
+ verifiedPinnedMaterialMapDescriptorSchema: z.ZodObject<{
842
+ width: z.ZodNumber;
843
+ height: z.ZodNumber;
844
+ materialId: z.ZodString;
845
+ revisionId: z.ZodTemplateLiteral<`sha256:${string}`>;
846
+ resourceId: z.ZodString;
847
+ slot: z.ZodEnum<{
848
+ baseColor: "baseColor";
849
+ emissive: "emissive";
850
+ metallicRoughness: "metallicRoughness";
851
+ normal: "normal";
852
+ occlusion: "occlusion";
853
+ }>;
854
+ usage: z.ZodEnum<{
855
+ albedo: "albedo";
856
+ emissive: "emissive";
857
+ metallicRoughness: "metallicRoughness";
858
+ metalness: "metalness";
859
+ normal: "normal";
860
+ occlusion: "occlusion";
861
+ roughness: "roughness";
862
+ }>;
863
+ colorSpace: z.ZodEnum<{
864
+ linear: "linear";
865
+ srgb: "srgb";
866
+ }>;
867
+ encodedByteLength: z.ZodNumber;
868
+ imageSha256: z.ZodTemplateLiteral<`sha256:${string}`>;
869
+ decodedPixelHash: z.ZodOptional<z.ZodTemplateLiteral<`sha256:${string}`>>;
870
+ }, z.core.$strict>;
871
+ };