## Summary `CloudEvent.GetPopulatedAttributes()` currently excludes `specversion`, even though the spec version is always populated on a `CloudEvent`. Callers that enumerate context attributes therefore omit a required CloudEvents attribute unless they special-case `CloudEvent.SpecVersion.VersionId`. ## Cross-SDK behavior The Java SDK includes `specversion` in its equivalent enumeration: - `SpecVersion.V1.getAllAttributes()` includes `specversion`. - `CloudEventAttributes.getAttributeNames()` filters that collection to non-null values. - `CloudEventImplTest.testGetAttributeNames()` explicitly expects `specversion`. This difference surfaced while mapping a C# `CloudEvent` to protocol properties by iterating `GetPopulatedAttributes()`; the resulting event had the other populated attributes but no `specversion`. ## Proposed behavior Return `CloudEventsSpecVersion.SpecVersionAttribute` with `SpecVersion.VersionId` from `GetPopulatedAttributes()`, alongside other populated context and extension attributes. The built-in formatters and bindings already serialize spec version separately, so they should skip this pair during their existing enumeration to keep wire output unchanged. I intend to submit a PR with the implementation, regression test, and updates to internal enumeration call sites.