if(item.lineColor!=null&&!/^#[0-9a-f]{6}$/i.test(item.lineColor))thrownewError(`Invalid lineColor for ${item.id}`);
if(item.lineEffect!=null&&!/^[a-z][a-z0-9-]{0,31}$/.test(item.lineEffect))thrownewError(`Invalid lineEffect for ${item.id}`);
if(item.aurora!=null&&typeofitem.aurora!=='boolean')thrownewError(`Invalid aurora flag for ${item.id}`);
if(item.aurora===true&&item.lineColor==null)thrownewError(`Aurora item must be a line color: ${item.id}`);
if(item.reactionStyle!=null&&!/^[a-z][a-z0-9-]{0,31}$/.test(item.reactionStyle))thrownewError(`Invalid reactionStyle for ${item.id}`);
if([item.lineColor,item.lineEffect,item.reactionStyle].filter(value=>value!=null).length>1)thrownewError(`Multiple cosmetic contracts for ${item.id}`);
constbody=`'use strict';\n// Generated from store-catalog.json by scripts/generate-store-catalog.js. Do not edit.\nglobalThis.BendStoreCatalog=Object.freeze(${JSON.stringify(catalog)}.map(item=>Object.freeze(item)));\n`;