Write a function to calculate the optimal route for a vessel given specific constraints.
Use a directed graph where graph[u] contains [v, fuel, time] edges. Return the feasible route minimizing total time, then total fuel, then lexicographically smallest path. Return None if no route satisfies both limits.
Signature: def calculate_optimal_route(graph, start, destination, max_fuel, max_time):
Return {"path": [...], "fuel": F, "time": T}.
Example: 0 -> 1 costs (4, 8) and 1 -> 3 costs (4, 5), so the result is {"path": [0, 1, 3], "fuel": 8, "time": 13} when permitted. A route exceeding either limit is invalid.
def calculate_optimal_route(graph, start, destination, max_fuel, max_time):