#32061 [Bug]: Azure text_moderations guardrail fails proxy startup: categories/severity_threshold collide with ContentFilterConfigModel in LitellmParams
### Check for existing issues
- [x] I have searched the existing issues and checked that my issue is not a duplicate.
### What happened?
Defining `categories` and `severity_threshold` for `azure/text_moderations` in `proxy_server_config.yaml` (as documented) causes proxy startup to fail with a Pydantic `ValidationError` on `LitellmParams`.
This is because `LitellmParams` inherits `ContentFilterConfigModel` (via `BaseLitellmParams`), which defines:
- `categories` as `List[ContentFilterCategoryConfig]` (not Azure harm-category strings) - `severity_threshold` as `str` (`"high" | "medium" | "low"`, not Azure’s int scale)
Azure has a separate `AzureContentSafetyTextModerationConfigModel` with correct `optional_params`, but it is **not** mixed into `LitellmParams`. The Azure initializer also does not read `optional_params` the way other guardrails (e.g. GraySwan, IBM) do.
Nesting under `optional_params` does not work either: `LitellmParams.optional_params` is typed by other guardrail mixins (e.g. GraySwan expects `categories: Dict[str, str]`).
## Workaround
Omit `categories` and `severity_threshold` from config. The guardrail falls back to built-in defaults (all four categories,…