TODO: create different type of librarians/traversers, e.g. no need to keep path if the traversal does not have a path-step
// * @param get current object being traversed
// * @param path stores the traversal path
// * @param loops counter for loop-detection
// * @param mit moment-in-time, for time-aware traversals (@deleted < mit or @created > mit are out-of-scope)
TODO: create different type of librarians/traversers, e.g. no need to keep path if the traversal does not have a path-step // * @param get current object being traversed // * @param path stores the traversal path // * @param loops counter for loop-detection // * @param mit moment-in-time, for time-aware traversals (@deleted < mit or @created > mit are out-of-scope)