Shape test for the typed PropertyValue record — the canonical wire
shape every writer and reader shares (isTypedPropertyValue in
@ifc-lite/ifcx). Strict on purpose: legacy migrated attributes
carry raw scalars, never {type, value} objects, so this is what
disambiguates pset inflation from "leave it as a flat attribute".
Shape test for the typed PropertyValue record — the canonical wire shape every writer and reader shares (
isTypedPropertyValuein@ifc-lite/ifcx). Strict on purpose: legacy migrated attributes carry raw scalars, never{type, value}objects, so this is what disambiguates pset inflation from "leave it as a flat attribute".