const coerceSetting = <T extends keyof IServerSettings>(
key: T,
value: string
): IServerSettings[T] | undefined => {
if (key === "dmHelp") {
const num = Number(value);
if ([0, 1, 2, 3, 4].includes(num)) return num as IServerSettings[T];
} else if (key === "reactRemovalTimeout") {
const num = Number(value);
// It's official, TypeScript is dumb. It won't compile *without* this cast.
if (Object.is(num, -0)) return 0 as IServerSettings[T];
if (Number.isFinite(num) && num >= 0) return num as IServerSettings[T];