```ts
export function rampStep(current: number, target: number, step: number): number {
  if (step === 0) {
    throw new Error("Step cannot be zero");
  }
  return Math.min(target, current + step);
}

export function rampPlan(start: number, target: number, step: number): number[] {
  const result: number[] = [];
  while (start <= target) {
    result.push(start);
    start += step;
  }
  return result;
}
```