Las tres fuentes salen en paralelo y los resultados llegan en streaming: una línea por club, sin esperar a la más lenta.
Una fila = un club a una hora. Agrupar los ~6.400 slots sueltos en ~1.150 combinaciones destapó el 76% de la disponibilidad que antes quedaba cortada.
Sin base de datos ni cron: caché en memoria de 3 minutos. Nunca te manda a reservar una cancha que ya se tomó.