IMaterialNode ​

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 { IMaterialNode } from '@holostep-configurators/runtime-client/contract'; · stable · since 2.0.0 · section 21. Stored data (vendored; replaces @holo/interfaces)

Stored MaterialNode (format unchanged). A partial look; what it does to the GLB material depends on how it is worn:

Inherited from IConfiguratorNode: _id, type, nodeId, label, order, enabled, expanded, createdAt, updatedAt, children, thumbnailUrl, attributes.

Declaration ​

ts
export type IMaterialNode = IConfiguratorNode & {
  type: 'MaterialNode';
  sheenEnabled?: boolean;
  sheenIntensity?: number;
  sheenColor?: string;
  sheenRoughness?: number;
  specularEnabled?: boolean;
  specularIntensity?: number;
  specularColor?: string;
  ior?: number;
  clearcoatNormalScale?: number;
  emissiveColor?: string;
  emissiveIntensity?: number;
  optThumbnailUrl?: string;
  prices: IPrice[];
} & {
  [K in `${TextureChannel}TextureUrl` | `opt${Capitalize<TextureChannel>}TextureUrl`]?: string;
} & {
  [K in `${TextureChannel}TextureEnabled`]?: boolean;
};

Generic-API test (spec 3.1) ​

Rule Result
1. Neutral name pass: IMaterialNode names no product
2. A precedent not recorded: no ledger row (coverage.json) names this member or its owner
3. Two apps, or labs not recorded: no ledger row names this member or its owner
4. The cheaper fix first not recorded per member (Appendix B decides it per need)