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

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