/** Teaching adaptation: one active task per gate instance. */
export function createSaveGate() {
  let pending = false;

  return async function runSave(task: () => Promise<void>): Promise<'saved' | 'ignored'> {
    if (pending) return 'ignored';
    pending = true;
    try {
      await task();
      return 'saved';
    } finally {
      pending = false;
    }
  };
}
