untested draft implementation of a breadth-first path search algorithm that takes into account desired path distance [min,max] and height ranges for each tile in the path, by distance, specified semantically