using NeonSprawl.Server.Game.PositionState; namespace NeonSprawl.Server.Game.Contracts; /// Registers contract instance + outcome persistence (NEO-146). public static class ContractInstanceServiceCollectionExtensions { /// PostgreSQL when ConnectionStrings:NeonSprawl is set; otherwise in-memory fallback. public static IServiceCollection AddContractInstanceStores(this IServiceCollection services, IConfiguration configuration) { var cs = configuration.GetConnectionString(PositionStateServiceCollectionExtensions.NeonSprawlConnectionStringName); if (!string.IsNullOrWhiteSpace(cs)) { services.AddSingleton(); services.AddSingleton(); } else { services.AddSingleton(); services.AddSingleton(); } return services; } }