```ts
export function heldDown(value: number, ceiling: number): number {
  if (typeof value !== 'number' || typeof ceiling !== 'number') {
    throw new Error('Both arguments must be numbers');
  }
  return value > ceiling ? ceiling : value;
}

/** Every value of a store brought down to a ceiling. */
export function limitMap(
  store: Record<string, number>,
  ceiling: number,
): Record<string, number> {
  if (typeof ceiling !== 'number') {
    throw new Error('Ceiling must be a number');
  }
  const out: Record<string, number> = {};
  for (const key of Object.keys(store)) {
    const storeValue = store[key];
    if (storeValue > ceiling) {
      out[key] = ceiling;
    } else {
      out[key] = storeValue;
    }
  }
  return out;
}
```