pub(crate) fn symbolic_cache_key(cache_key: &str) -> StringExpand description
Build the symbolic-data cache key for a given file cache key.
v2 requires direct fill provenance (#4459); v1 remains decodable but is
not a fresh extraction for 3D routing. Geometry namespaces stay unchanged.
v3 re-bases the stream by the mesh frame selection, placement-bounds
fallback included (#4665). A v2 entry for a model the sampler cannot read
is left unshifted, up to the whole offset away from the meshes.
v4 re-bases it by the frame the SERVER’s own meshes were baked in rather
than the overlay frame this route used to resolve for itself (#4706). For a
model whose IfcSite placement is translated, a v3 entry carries the site
translation and the site rotation the meshes in the same response had
dropped: it decodes cleanly and draws the 2D symbols hundreds of metres
from the geometry they annotate.
The 2D symbol stream (IfcAnnotation + IfcGrid) is cached separately
from geometry so binary-transport endpoints (Parquet, optimized Parquet,
cached geometry) can expose it via GET /api/v1/parse/symbolic/{cache_key},
mirroring how the data model is cached and fetched (issue #900). cache_key
is the full {hash}-{opening_filter} key, matching the value embedded in
each response’s metadata header.