@forgeax/engine-pack 0.1.25 → 0.1.27

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.
@@ -2,88 +2,86 @@
2
2
  "$schema": "http://json-schema.org/draft-07/schema#",
3
3
  "title": "ForgeaX cooked material record",
4
4
  "type": "object",
5
- "required": ["schemaVersion", "guid", "resolved", "refs", "artifact", "receipt"],
5
+ "required": ["schemaVersion", "guid", "resolved", "refs", "programs", "receipt"],
6
6
  "properties": {
7
- "schemaVersion": { "const": "material-cook/3" },
8
- "guid": { "type": "string", "minLength": 1 },
9
- "materialGuid": { "type": "string", "minLength": 1 },
10
- "publicationGeneration": { "type": "integer", "minimum": 1 },
11
- "specializationKey": { "type": "string", "minLength": 1 },
12
- "variantContext": {
13
- "type": "object",
14
- "required": ["backend", "capability"],
15
- "properties": {
16
- "backend": { "enum": ["webgpu", "webgl2", "wgpu-native"] },
17
- "capability": { "enum": ["storage-buffer", "uniform-fallback"] }
18
- },
19
- "additionalProperties": false
7
+ "schemaVersion": {
8
+ "const": "material-cook/4"
9
+ },
10
+ "guid": {
11
+ "type": "string",
12
+ "minLength": 1
13
+ },
14
+ "materialGuid": {
15
+ "type": "string",
16
+ "minLength": 1
20
17
  },
21
- "variants": {
18
+ "publicationGeneration": {
19
+ "type": "integer",
20
+ "minimum": 1
21
+ },
22
+ "specializationKey": {
23
+ "type": "string",
24
+ "minLength": 1
25
+ },
26
+ "artifactDigest": {
27
+ "type": "string",
28
+ "pattern": "^sha256:"
29
+ },
30
+ "sourceClosure": {
22
31
  "type": "array",
23
32
  "items": {
24
- "type": "object",
25
- "required": ["context", "specializationKey", "artifact"],
26
- "properties": {
27
- "context": {
28
- "type": "object",
29
- "required": ["backend", "capability"],
30
- "properties": {
31
- "backend": { "enum": ["webgpu", "webgl2", "wgpu-native"] },
32
- "capability": { "enum": ["storage-buffer", "uniform-fallback"] }
33
- },
34
- "additionalProperties": false
35
- },
36
- "specializationKey": { "type": "string", "minLength": 1 },
37
- "artifact": {
38
- "type": "object",
39
- "required": ["mediaType", "path", "digest", "bytes"],
40
- "properties": {
41
- "mediaType": { "type": "string" },
42
- "path": { "type": "string" },
43
- "digest": { "type": "string", "pattern": "^sha256:" },
44
- "bytes": {
45
- "type": "array",
46
- "items": { "type": "integer", "minimum": 0, "maximum": 255 }
47
- }
48
- },
49
- "additionalProperties": false
50
- }
51
- },
52
- "additionalProperties": false
33
+ "type": "string"
53
34
  }
54
35
  },
55
- "artifactDigest": { "type": "string", "pattern": "^sha256:" },
56
- "sourceClosure": { "type": "array", "items": { "type": "string" } },
57
36
  "parameterContract": {
58
37
  "type": "object",
59
38
  "required": ["parameters", "values"],
60
39
  "properties": {
61
- "parameters": { "type": "array" },
62
- "values": { "type": "object" }
40
+ "parameters": {
41
+ "type": "array"
42
+ },
43
+ "values": {
44
+ "type": "object"
45
+ }
63
46
  },
64
47
  "additionalProperties": false
65
48
  },
66
- "authored": { "type": "object", "required": ["kind"] },
67
- "resolved": { "type": "object", "required": ["passes", "parameters", "values"] },
68
- "refs": {
49
+ "authored": {
69
50
  "type": "object",
70
- "required": ["parent", "textures", "samplers", "modules"],
71
- "properties": {
72
- "parent": { "type": "array", "items": { "type": "string" } },
73
- "textures": { "type": "array", "items": { "type": "string" } },
74
- "samplers": { "type": "array", "items": { "type": "string" } },
75
- "modules": { "type": "array", "items": { "type": "string" } }
76
- },
77
- "additionalProperties": false
51
+ "required": ["kind"]
78
52
  },
79
- "artifact": {
53
+ "resolved": {
80
54
  "type": "object",
81
- "required": ["mediaType", "path", "digest", "bytes"],
55
+ "required": ["passes", "parameters", "values"]
56
+ },
57
+ "refs": {
58
+ "type": "object",
59
+ "required": ["parent", "textures", "samplers", "modules"],
82
60
  "properties": {
83
- "mediaType": { "type": "string" },
84
- "path": { "type": "string" },
85
- "digest": { "type": "string", "pattern": "^sha256:" },
86
- "bytes": { "type": "array", "items": { "type": "integer", "minimum": 0, "maximum": 255 } }
61
+ "parent": {
62
+ "type": "array",
63
+ "items": {
64
+ "type": "string"
65
+ }
66
+ },
67
+ "textures": {
68
+ "type": "array",
69
+ "items": {
70
+ "type": "string"
71
+ }
72
+ },
73
+ "samplers": {
74
+ "type": "array",
75
+ "items": {
76
+ "type": "string"
77
+ }
78
+ },
79
+ "modules": {
80
+ "type": "array",
81
+ "items": {
82
+ "type": "string"
83
+ }
84
+ }
87
85
  },
88
86
  "additionalProperties": false
89
87
  },
@@ -98,10 +96,21 @@
98
96
  "derivedInterface"
99
97
  ],
100
98
  "properties": {
101
- "schemaVersion": { "const": "material-cook/3" },
102
- "sourceClosure": { "type": "array", "items": { "type": "string" } },
103
- "profile": { "type": "string" },
104
- "compilerVersion": { "type": "string" },
99
+ "schemaVersion": {
100
+ "const": "material-cook/4"
101
+ },
102
+ "sourceClosure": {
103
+ "type": "array",
104
+ "items": {
105
+ "type": "string"
106
+ }
107
+ },
108
+ "profile": {
109
+ "type": "string"
110
+ },
111
+ "compilerVersion": {
112
+ "type": "string"
113
+ },
105
114
  "identity": {
106
115
  "type": "object",
107
116
  "required": [
@@ -121,29 +130,77 @@
121
130
  "cookGeneration"
122
131
  ],
123
132
  "properties": {
124
- "materialContractDigest": { "type": "string", "minLength": 1 },
125
- "sourceRevision": { "type": "string", "minLength": 1 },
126
- "sourceClosureDigest": { "type": "string", "minLength": 1 },
127
- "layoutIdentity": { "type": "string", "minLength": 1 },
128
- "programIdentity": { "type": "string", "minLength": 1 },
129
- "pipelineIdentity": { "type": "string", "minLength": 1 },
130
- "materialPublicationIdentity": { "type": "string", "minLength": 1 },
131
- "cookIdentity": { "type": "string", "minLength": 1 },
132
- "compilerFingerprint": { "type": "string", "minLength": 1 },
133
+ "materialContractDigest": {
134
+ "type": "string",
135
+ "minLength": 1
136
+ },
137
+ "sourceRevision": {
138
+ "type": "string",
139
+ "minLength": 1
140
+ },
141
+ "sourceClosureDigest": {
142
+ "type": "string",
143
+ "minLength": 1
144
+ },
145
+ "layoutIdentity": {
146
+ "type": "string",
147
+ "minLength": 1
148
+ },
149
+ "programIdentity": {
150
+ "type": "string",
151
+ "minLength": 1
152
+ },
153
+ "pipelineIdentity": {
154
+ "type": "string",
155
+ "minLength": 1
156
+ },
157
+ "materialPublicationIdentity": {
158
+ "type": "string",
159
+ "minLength": 1
160
+ },
161
+ "cookIdentity": {
162
+ "type": "string",
163
+ "minLength": 1
164
+ },
165
+ "compilerFingerprint": {
166
+ "type": "string",
167
+ "minLength": 1
168
+ },
133
169
  "wasm": {
134
170
  "type": "object",
135
171
  "required": ["sourceContentKey", "artifactSha256", "glueSha256"],
136
172
  "properties": {
137
- "sourceContentKey": { "type": "string", "minLength": 1 },
138
- "artifactSha256": { "type": "string", "minLength": 1 },
139
- "glueSha256": { "type": "string", "minLength": 1 }
173
+ "sourceContentKey": {
174
+ "type": "string",
175
+ "minLength": 1
176
+ },
177
+ "artifactSha256": {
178
+ "type": "string",
179
+ "minLength": 1
180
+ },
181
+ "glueSha256": {
182
+ "type": "string",
183
+ "minLength": 1
184
+ }
140
185
  },
141
186
  "additionalProperties": false
142
187
  },
143
- "artifactDigest": { "type": "string", "minLength": 1 },
144
- "valueGeneration": { "type": "integer", "minimum": 1 },
145
- "dependencyGeneration": { "type": "integer", "minimum": 1 },
146
- "cookGeneration": { "type": "integer", "minimum": 1 }
188
+ "artifactDigest": {
189
+ "type": "string",
190
+ "minLength": 1
191
+ },
192
+ "valueGeneration": {
193
+ "type": "integer",
194
+ "minimum": 1
195
+ },
196
+ "dependencyGeneration": {
197
+ "type": "integer",
198
+ "minimum": 1
199
+ },
200
+ "cookGeneration": {
201
+ "type": "integer",
202
+ "minimum": 1
203
+ }
147
204
  },
148
205
  "additionalProperties": false
149
206
  },
@@ -151,14 +208,118 @@
151
208
  "type": "object",
152
209
  "required": ["layoutIdentity"],
153
210
  "properties": {
154
- "layoutIdentity": { "type": "string", "minLength": 1 },
155
- "layerPlanIdentity": { "type": "string", "minLength": 1 }
211
+ "layoutIdentity": {
212
+ "type": "string",
213
+ "minLength": 1
214
+ },
215
+ "layerPlanIdentity": {
216
+ "type": "string",
217
+ "minLength": 1
218
+ }
156
219
  },
157
220
  "additionalProperties": false
158
221
  },
159
- "publicationGeneration": { "type": "integer", "minimum": 1 }
222
+ "publicationGeneration": {
223
+ "type": "integer",
224
+ "minimum": 1
225
+ }
160
226
  },
161
227
  "additionalProperties": false
228
+ },
229
+ "programs": {
230
+ "type": "array",
231
+ "minItems": 1,
232
+ "items": {
233
+ "type": "object",
234
+ "required": ["specializationKey", "artifact", "selections"],
235
+ "properties": {
236
+ "specializationKey": {
237
+ "type": "string",
238
+ "minLength": 1
239
+ },
240
+ "artifact": {
241
+ "type": "object",
242
+ "required": ["mediaType", "path", "digest", "bytes"],
243
+ "properties": {
244
+ "mediaType": {
245
+ "const": "text/wgsl"
246
+ },
247
+ "path": {
248
+ "type": "string"
249
+ },
250
+ "digest": {
251
+ "type": "string",
252
+ "pattern": "^sha256:"
253
+ },
254
+ "bytes": {
255
+ "type": "array",
256
+ "items": {
257
+ "type": "integer",
258
+ "minimum": 0,
259
+ "maximum": 255
260
+ }
261
+ }
262
+ },
263
+ "additionalProperties": false
264
+ },
265
+ "selections": {
266
+ "type": "array",
267
+ "minItems": 1,
268
+ "items": {
269
+ "type": "object",
270
+ "required": ["pass", "context"],
271
+ "properties": {
272
+ "pass": {
273
+ "type": "string",
274
+ "minLength": 1
275
+ },
276
+ "context": {
277
+ "type": "object",
278
+ "required": [
279
+ "backend",
280
+ "capability",
281
+ "pipeline",
282
+ "geometry",
283
+ "pass",
284
+ "profile",
285
+ "toolchain",
286
+ "instrumentation"
287
+ ],
288
+ "properties": {
289
+ "backend": {
290
+ "enum": ["webgpu", "webgl2", "wgpu-native"]
291
+ },
292
+ "capability": {
293
+ "enum": ["storage-buffer", "uniform-fallback"]
294
+ },
295
+ "pipeline": {
296
+ "enum": ["forward", "deferred"]
297
+ },
298
+ "geometry": {
299
+ "enum": ["mesh", "skinned", "sprite"]
300
+ },
301
+ "pass": {
302
+ "enum": ["forward", "shadow", "depth"]
303
+ },
304
+ "profile": {
305
+ "enum": ["forgeax-material-wgsl-v1"]
306
+ },
307
+ "toolchain": {
308
+ "enum": ["naga-oil"]
309
+ },
310
+ "instrumentation": {
311
+ "enum": ["none", "validation"]
312
+ }
313
+ },
314
+ "additionalProperties": false
315
+ }
316
+ },
317
+ "additionalProperties": false
318
+ }
319
+ }
320
+ },
321
+ "additionalProperties": false
322
+ }
162
323
  }
163
324
  },
164
325
  "additionalProperties": false