export function serializeID(input: string): string { const tokens = input .trim() .normalize("NFD") .replace(/\p{M}/gu, "") .split(/[^A-Za-z0-9]+/) .filter(Boolean) if (tokens.length === 0) { throw new Error(`Cannot serialize "${input}": result is empty.`) } return tokens .map((token) => token.charAt(0).toUpperCase() + token.slice(1).toLowerCase()) .join("") } export const serializeVariationID = serializeID