export const ASSET_FAMILIES = [ 'color', 'diffuse', 'roughness', 'normal', 'metalness', 'height', 'opacity', ] as const export type AssetFamily = typeof ASSET_FAMILIES[number] const ASSET_FAMILY_BY_KEY = new Map(ASSET_FAMILIES.map((family) => [family.toLowerCase(), family])) const FORBIDDEN_ASSET_FAMILY_ALIASES: ReadonlyMap = new Map([ ['basecolor', 'color'], ['base_color', 'color'], ['normalopengl', 'normal'], ['normal_opengl', 'normal'], ['metallic', 'metalness'], ['occlusionroughnessmetallic', 'roughness'], ['occlusion_roughness_metallic', 'roughness'], ]) export function getAssetFamily(value: string): AssetFamily | undefined { return ASSET_FAMILY_BY_KEY.get(value.toLowerCase()) } export function getForbiddenAssetFamilyAlias(value: string): AssetFamily | undefined { return FORBIDDEN_ASSET_FAMILY_ALIASES.get(value.toLowerCase()) } export function formatAssetFamilies() { return ASSET_FAMILIES.join(', ') }