How do I make a surface walkable?

I added a task to investigate making the character movement code flexible enough to support different gravity directions, with impacting performance in the normal case. Sounds like a cool feature if we can do it!