Why this matters
Point-in-time join (SQL-ish):
SELECT r.request_id, r.driver_id, r.zone_id, r.request_time,
z.avg_speed_15m, z.pickup_demand_30m, d.driver_util_1h
FROM requests r
LEFT JOIN zone_features z
ON r.zone_id = z.zone_id AND z.event_time <= r.request_time
QUALIFY ROW_NUMBER() OVER (PARTITION BY r.request_id ORDER BY z.event_time DESC) = 1
LEFT JOIN driver_features d
ON r.driver_id = d.driver_id AND d.event_time <= r.request_time
QUALIFY ROW_NUMBER() OVER (PARTITION BY r.request_id ORDER BY d.event_time DESC) = 1;