Why wasn't the built-in navigation system good enough for me? I needed the following features:
The first one can sort of be achieved using agent types, but they can't be manipulated at runtime, and their count is strictly limited.
The second one appears to be completely impossible with the built-in system.