Uses a small Dijkstra like algorithm and a priority queue kind of data structure (see #41 ). For reference: https://dl.acm.org/doi/pdf/10.1145/3717823.3718179 <img width="747" height="808" alt="Image" src="https://github.com/user-attachments/assets/bbf84628-d3c0-40a5-918d-db0f19fbec58" />