UNKNOWN-TAG POLICY, the geometry site -- the one tag with no extension
escape hatch.
Unlike a City Object type or a semantic surface type, a geometry type has
no +-prefixed extension form: CityJSON section 3 enumerates exactly these
eight type values and geomprimitives.schema.json admits no others, so
there is no name a reader could legally emit for a tag it does not know.
That leaves mislabelling the geometry or refusing the file, and this
refuses: calling an unknown tag a Solid -- which the reference used to do
-- decodes its boundaries at the wrong depth and hands the caller a
plausible-looking lie. Both other readers throw here too
(geom_decoder.rs GeometryType::to_cj, geometry.cpp geometry_type_name).
Callers name the type BEFORE decoding, so an unknown tag never reaches the
decoders' default: arms.
UNKNOWN-TAG POLICY, the geometry site -- the one tag with no extension escape hatch.
Unlike a City Object type or a semantic surface type, a geometry type has no
+-prefixed extension form: CityJSON section 3 enumerates exactly these eighttypevalues andgeomprimitives.schema.jsonadmits no others, so there is no name a reader could legally emit for a tag it does not know. That leaves mislabelling the geometry or refusing the file, and this refuses: calling an unknown tag aSolid-- which the reference used to do -- decodes its boundaries at the wrong depth and hands the caller a plausible-looking lie. Both other readers throw here too (geom_decoder.rsGeometryType::to_cj, geometry.cppgeometry_type_name).Callers name the type BEFORE decoding, so an unknown tag never reaches the decoders'
default:arms.