/** A catalog effort list is authoritative; null means model metadata is unavailable. */ export function nextModelEffort( available: readonly string[] | null, current: string | null, profileDefault: string | null, sameProfile: boolean, ): string | null { if (available === null) return sameProfile ? current : (profileDefault ?? current); if (!available.length) return null; if (current && available.includes(current)) return current; if (profileDefault && available.includes(profileDefault)) return profileDefault; if (available.includes('medium')) return 'medium'; return available[0]; }