# Session 03: Configuration & Options ## Summary The server options/configuration system. Parses config files, command-line args, and environment variables into the `ServerOptions` struct. This is large (5.4K LOC) but self-contained. ## Scope | Go File | Features | Feature IDs | Go LOC | |---------|----------|-------------|--------| | server/opts.go | 86 | 2502–2587 | 5,400 | | **Total** | **86** | | **5,400** | ## .NET Classes - `ServerOptions` — all configuration properties, parsing, validation, and defaults ## Test Files | Test File | Tests | Test IDs | |-----------|-------|----------| | server/opts_test.go | 86 | 2512–2597 | | server/config_check_test.go | 3 | 271–273 | | **Total** | **89** | | ## Dependencies - Session 01 (Foundation Types — constants, errors) ## .NET Target Location - `dotnet/src/ZB.MOM.NatsNet.Server/ServerOptions.cs` ## Notes - This is a large flat file. Consider splitting `ServerOptions` into partial classes by concern (TLS options, cluster options, JetStream options, etc.) - Many options have default values defined in `const.go` (Session 01)