CRITICALapi-contract
Breaking change to Customer fields breaks frontend-app, customer-api, and billing-service
src/customer.ts:9frontend-app/src/CustomerCard.tsx
Renaming displayName to name and email to contactEmail on Customer breaks contract compatibility with consuming repos. frontend-app reads customer.displayName and customer.email in CustomerCard.tsx, customer-api constructs Customer using displayName and email in server.ts, and billing-service reads these fields when creating invoices in worker.ts.
<h2 className="customer-card__name">{customer.displayName}</h2> and <a href={`mailto:${customer.email}`}>{customer.email}</a> in frontend-app (CustomerCard.tsx:25-27).Retain displayName and email (or deprecate them while adding optional new fields) to preserve backward compatibility, or coordinate a major version release alongside PRs updating all consumer services.