export type TicketReplyAttempt = {body: string; version: number; clientId: string};

/** A lost response must retry the exact versioned payload, even after a refresh. */
export function ticketReplyAttempt(previous: TicketReplyAttempt | null, body: string, version: number, createId: () => string = () => crypto.randomUUID()): TicketReplyAttempt {
  const normalized = body.trim();
  return previous?.body === normalized ? previous : {body: normalized, version, clientId: createId()};
}
