/// Labels for market-history session-half slot instants (UTC wire times). String formatGuessSlotInstant(DateTime slotStart) { final DateTime utc = slotStart.toUtc(); final String month = utc.month.toString().padLeft(2, '0'); final String day = utc.day.toString().padLeft(2, '0'); final String hour = utc.hour.toString().padLeft(2, '0'); final String minute = utc.minute.toString().padLeft(2, '0'); return '$month/$day $hour:$minute'; } /// Active guess pair: older session half → next session half. String formatGuessSlotRange({ required DateTime slotStart, DateTime? newerSlotStart, }) { if (newerSlotStart == null) { return '${formatGuessSlotInstant(slotStart)} UTC'; } return '${formatGuessSlotInstant(slotStart)} – ' '${formatGuessSlotInstant(newerSlotStart)} UTC'; }