> For clean Markdown content of this page, append .md to this URL. For the complete documentation index, see https://buildwithfern.com/learn/llms.txt. ## 2.31.0 **`(feat):`** Add support for `base64` primitive type in the IR to represent Protobuf byte\[]. **`(fix):`** Fix the `.ToProto` and `.FromProto` mapper methods to support for enums nested within message descriptors. ## 2.30.3 **`(fix):`** Add better support for the `google.rpc.Status` type, and stop generating redundant wrapper types for `google.api` and `google.rpc` types. ## 2.30.2 **`(fix):`** Fix gRPC code generation to support enums with numeric identifiers. ## 2.30.1 **`(fix):`** Fix gRPC code generation to support enums with numeric identifiers. ## 2.30.0 **`(feat):`** Add `sln-format` configuration option. Set to `"sln"` to generate both a legacy `.sln` solution file and the modern `.slnx` file. The default value `"slnx"` generates only the `.slnx` file. This is useful for teams that need compatibility with older .NET tooling or CI systems that do not yet support the `.slnx` format. ```yaml generators: - name: fernapi/fern-csharp-sdk config: sln-format: sln ``` ## 2.29.0 **`(feat):`** Rework enum JSON serialization to eliminate reflection. Each enum now gets a generated serializer with static dictionary lookups instead of the generic `EnumSerializer` / `StringEnumSerializer` that used `Enum.GetValues`, `GetField`, `GetCustomAttributes`, and `Activator.CreateInstance` at runtime. Serializer initialization is \~1,000x faster (18 ns vs 18 us) and allocates 160x less memory; steady-state throughput is unchanged. The generated code is also NativeAOT and IL-trimming compatible. ## 2.28.0 **`(feat):`** Generate a separate WireMock server for each test fixture instead of sharing a single global server across all mock server tests. Each test class now starts and stops its own `WireMockServer` in `[OneTimeSetUp]`/`[OneTimeTearDown]`, and test fixtures are annotated with `[Parallelizable(ParallelScope.Self)]` so NUnit can run them in parallel. ## 2.27.1 **`(fix):`** Fix retry test assertions to match the SDK's indented JSON serialization. ## 2.27.0 **`(feat):`** Improve gRPC code generation with the following: 1. Updated enum representation and .ToProto + .FromProto mappers. 2. Fix an issue with rendering the gRPC client reference. 3. Update protoc-gen-openapi to unwrap synthetic oneof types (re: [https://github.com/fern-api/protoc-gen-openapi/releases/tag/v0.1.7](https://github.com/fern-api/protoc-gen-openapi/releases/tag/v0.1.7))