properties for values known during capture. Use annotate() for values
learned later, such as review state, workflow labels, or pipeline versions.
null
clears that key for the same source.
Normal strings, numbers, booleans, lists, objects, and nulls need no wrapper.
Use timestamp() only when the value should be interpreted as time.
The catalog is advisory: a single odd value does not block capture. Analysis
reports values that cannot be read as the field’s selected type.