v3.5.1 — Score-rounding errata, and a .NET SDK
Spec errata: pin graph score rounding to round-half-to-even (Section 5)
The graph node-line score (two decimals) had an unspecified rounding mode, so implementations diverged at exact IEEE-754 binary midpoints: the printf-family SDKs (Go, Rust, Python, Swift, .NET) round half-to-even (0.125 → 0.12), while round-half-up formatters (JavaScript Number.toFixed, Java String.format %f) produced 0.13 — a silent, non-interoperable wire difference. Section 5 now requires round-half-to-even applied to the exact double. A clarification, not a grammar change: the two modes agree on every value except exact midpoints, and correct decoders are unaffected.
gcf-typescript and gcf-kotlin are corrected; the printf-family SDKs already complied. Pinned by a new graph-encode/004_score_midpoint_rounding conformance fixture, generated by the gcf-go reference and verified across all seven SDKs.
New SDK: gcf-dotnet (.NET / C#)
A seventh first-party SDK, gcf-dotnet (NuGet BlackwellSystems.Gcf), zero runtime dependencies, multi-targeting netstandard2.0 and net8.0. Full parity across generic and graph profiles, delta, session dedup, streaming, and the re-anchor helper; passes the complete cross-SDK conformance suite (265 fixtures).
Full changelog: https://github.com/blackwell-systems/gcf/blob/main/CHANGELOG.md