A* works without IDs now - it only needs a speed fix (jump point search) and an upper search bound before it eats all memory + rail check