Sorry, I should have added an API input/output here as the Deeplink was just to demonstrate visually that the route is relatively simple and should probably be feasible if no time restrictions set.
I have likely already taken the “most annoying customer of the year” title, but here is just one more effort 
The API input for the deeplink above is:
[{"name":"1","lat":40.7312777,"lng":-73.9942835,"servicetime":"15","restrictions":{"ready":"","due":"","before":""}},{"name":"3","lat":40.7311396,"lng":-73.9945268,"servicetime":"15","restrictions":{"ready":"","due":"","before":""}},{"name":"4","lat":42.3983342,"lng":-82.93177360000001,"servicetime":"15","restrictions":{"ready":"","due":"","before":1}},{"name":"2","lat":39.83536489999999,"lng":-86.1115804,"servicetime":"15","restrictions":{"ready":"","due":"","before":""}},{"name":"5","lat":39.9469829,"lng":-86.3113336,"servicetime":"15","restrictions":{"ready":"","due":"","before":1}},{"name":"6","lat":41.8860855,"lng":-87.62369369999999,"servicetime":"15","restrictions":{"ready":"","due":"","before":0}}]
Output with API version 1:
stdClass Object
(
[id] => 6bq927B3
[count] => 6
[feasible] =>
[route] => stdClass Object
(
[0] => stdClass Object
(
[name] => 1
[arrival] => 0
[distance] => 0
)
[1] => stdClass Object
(
[name] => 3
[arrival] => 16
[distance] => 0.5
)
[2] => stdClass Object
(
[name] => 4
[arrival] => 661
[distance] => 1004
)
[3] => stdClass Object
(
[name] => 2
[arrival] => 970
[distance] => 1455.6
)
[4] => stdClass Object
(
[name] => 5
[arrival] => 1012
[distance] => 1483.8
)
[5] => stdClass Object
(
[name] => 6
[arrival] => 1200
[distance] => 1753
)
)
)
Output with API version 2:
stdClass Object
(
[id] => RS54E48gfUNJ9X0O6bFE
[count] => 6
[feasible] => 1
[remarks] =>
[route] => stdClass Object
(
[0] => stdClass Object
(
[name] => 1
[lat] => 40.7312777
[lng] => -73.9942835
[arrival] => 0
[distance] => 0
)
[1] => stdClass Object
(
[name] => 2
[lat] => 39.8353649
[lng] => -86.1115804
[arrival] => 729
[distance] => 1138.7
)
[2] => stdClass Object
(
[name] => 5
[lat] => 39.9469829
[lng] => -86.3113336
[arrival] => 771
[distance] => 1166.9
)
[3] => stdClass Object
(
[name] => 4
[lat] => 42.3983342
[lng] => -82.9317736
[arrival] => 1093
[distance] => 1634.9
)
[4] => stdClass Object
(
[name] => 3
[lat] => 40.7311396
[lng] => -73.9945268
[arrival] => 1740
[distance] => 2638.3
)
[5] => stdClass Object
(
[name] => 6
[lat] => 41.8860855
[lng] => -87.6236937
[arrival] => 2545
[distance] => 3909.3
)
)
)
With v1, result in this case looks totally OK, and the “before” restrictions are taken into account. But the route is still not Feasible and therefore shouldn’t be trusted. What could be the reason?
And with v2, it gives totally different order for the same input not considering “before” data at all. But in this case the Route is Feasible.
That seems very strange if I haven’t missed something obvious.