All core services and data providers are injected using environment-based dependency injection, allowing dynamic configuration for development, staging, and production.
The Program.cs is organized with #region blocks for each startup area (middleware, logging, services, security, swagger), making startup logic clear and easy to extend.
Error responses are standardized using ProblemDetails, ensuring consistent API error contracts.
Middleware is registered in a secure, logical order: correlation and logging first, then exception handling, API key validation, and finally endpoint routing.