export type DeviceAuthPayloadParams = { deviceId: string; clientId: string; clientMode: string; role: string; scopes: string[]; signedAtMs: number; token?: string | null; nonce?: string | null; version?: "v1" | "v2"; }; export function buildDeviceAuthPayload(params: DeviceAuthPayloadParams): string { const version = params.version ?? (params.nonce ? "v2" : "v1"); const scopes = params.scopes.join(","); const token = params.token ?? ""; const base = [ version, params.deviceId, params.clientId, params.clientMode, params.role, scopes, String(params.signedAtMs), token, ]; if (version === "v2") { base.push(params.nonce ?? ""); } return base.join("|"); }