MapSlot ​

Contract 2.0.0 · package sha256 a857eca95b35921109faf997094bb4192f12527d9d0fcd4be7e97f06425bad6e · generated from configurator-runtime.d.ts by services/onsite-scripter/scripts/build-contract-docs.mjs; edit the source, not this file.

Type · import type { MapSlot } from '@holostep-configurators/runtime-client/contract'; · stable · since 2.0.0 · section 8. Materials and textures

The map slots of a material (glTF and KHR names). 'orm' is one packed image: occlusion in red, roughness in green, metallic in blue. A GLB fills 'occlusion' from its occlusionTexture and 'roughness' and 'metallic' from its metallicRoughnessTexture, even when they share one image, and never fills 'orm'. In each of those three channels its own slot wins over 'orm' when it holds a texture or 'none': occlusion: 'none' drops occlusion alone, whatever image carries it, and roughness and metallic keep theirs. That holds within one layer (the GLB, the scene model's MaterialNode, a rule; spec section 6.10, R1): an 'orm' texture fills each of the three channels its own layer leaves empty, over the layers below, the GLB's own maps included, as 1.x binds a stored ORM map to every channel its node has no map for. orm: 'none' clears only an 'orm' from below. The colour slots are 'baseColor', 'emissive', 'sheenColor' and 'specularColor', decoded as sRGB by default; every other slot holds data and decodes linear (TextureSpec.colorSpace). To drop every GLB map, wear a Material or { ref }, which replace what the part wears; a MaterialSpec merges, so a slot it leaves out keeps the GLB's map (MaterialInput).

Declaration ​

ts
export type MapSlot = 'baseColor' | 'normal' | 'metallic' | 'roughness' | 'occlusion' | 'orm' | 'emissive' | 'alpha' | 'clearcoat' | 'clearcoatRoughness' | 'clearcoatNormal' | 'sheenColor' | 'sheenRoughness' | 'specular' | 'specularColor';

Generic-API test (spec 3.1) ​

Rule Result
1. Neutral name pass: MapSlot names no product
2. A precedent pass: Blender Principled BSDF (Metallic, Roughness inputs) (row K16)
3. Two apps, or labs one app recorded: app-fc07850558 (spec 3.1 rule 3 asks for two, or labs)
4. The cheaper fix first decided per need in Appendix B: rows K16 at tier stable (a member only where no rule, data, asset or app code serves the need)