From 602a7db99d3897e4692cdd3ec96051ff5491c354 Mon Sep 17 00:00:00 2001 From: Neelesh Salian Date: Wed, 15 Apr 2026 12:00:00 -0700 Subject: [PATCH 1/2] Update spec to clarify union of shredded objects ordering --- VariantShredding.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/VariantShredding.md b/VariantShredding.md index bbebbddb..cc3a5525 100644 --- a/VariantShredding.md +++ b/VariantShredding.md @@ -303,6 +303,8 @@ def construct_variant(metadata: Metadata, value: Variant, typed_value: Any) -> V assert typed_value.keys().isdisjoint(value.keys()), "object keys must be disjoint" # union the shredded fields and non-shredded fields + # (the result is a Variant object; field ID ordering rules + # from VariantEncoding.md apply) return VariantObject(metadata, object_fields).union(VariantObject(metadata, value)) else: From cef74e146adb7375ca12048161d31638a253e6c4 Mon Sep 17 00:00:00 2001 From: Neelesh Salian Date: Thu, 16 Apr 2026 10:04:42 -0700 Subject: [PATCH 2/2] Add exact language to help clear it up --- VariantShredding.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/VariantShredding.md b/VariantShredding.md index cc3a5525..4f7d6142 100644 --- a/VariantShredding.md +++ b/VariantShredding.md @@ -303,8 +303,9 @@ def construct_variant(metadata: Metadata, value: Variant, typed_value: Any) -> V assert typed_value.keys().isdisjoint(value.keys()), "object keys must be disjoint" # union the shredded fields and non-shredded fields - # (the result is a Variant object; field ID ordering rules - # from VariantEncoding.md apply) + # (field IDs and offsets must be in the order of the + # corresponding field names, sorted lexicographically + # (unsigned byte ordering for UTF-8)) return VariantObject(metadata, object_fields).union(VariantObject(metadata, value)) else: