# 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)
