That’s interesting, I haven’t really thought about what “incline”, “uphill” or “downhill” actually mean.
The use case really is the mountain biking profile:
“As someone who loves riding single trails on an MTB I want the routing to weigh paths higher than other roads” -> that’s already doable
What I would like to add is:
“As someone who hates to push his bike I want routing to avoid paths that cannot be ridden on an MTB”
Clearly, some paths cannot be ridden on an MTB. Of course this depends somewhat on the personal skills but also on the difficulty of the trail (rocks, roots) and the incline. A trail with many rocks and roots may be ridable downhill but not uphill.
There is a PR that adds the difficulties: https://github.com/graphhopper/graphhopper/pull/1812
As a general rule I know for myself, that I can ride up to difficulty S3 downhill but uphill it shouldn’t be more than S1 or so.
So what’s missing is the “downhill”/“uphill” parts. Whatever that means
I guess as a start something like this could work: if the end point is lower than the starting point it is downhill and vice versa. Or just a tag with the overall elevation gain (which could be negative)