I finally got around to reimplementing GetConversion. It now correctly will find a greedy path to the target output if a direct path is not available. By greedy path I mean it does a breadth first search of the tree of possibilities and picks lossless conversions over lossy conversions and higher priority converters over lower priority converters at each stage. This is optimal for direct and 2 stage conversions, but beyond that it is possible to get a non-optimal path, though it doesn’t really matter enough to use Dijstras, which could slow the algorithm down quite a bit.
A lot of bugs were fixed in Converter as well.
Finally, the project now compiles and runs on OSX.
More to come,