VariantPath
A location inside a document, as a list of steps from the root.
Paths are the unit everything above this module names data by: the catalog counts observations per path, an index is built for a path, and a query predicate applies to a path. Keeping them as a parsed list of steps rather than as a string means that comparison, prefixing and grouping are exact rather than textual — $["a.b"] and $.a.b are different locations and must never compare equal.