```python
def ramp_step(current: int, target: int, step: int) -> int:
    if step == 0:
        raise ValueError("Step cannot be zero.")
    if current > target:
        raise ValueError("Current value exceeds target.")
    return min current + step if current + step <= target else target

def ramp_plan(start: int, target: int, step: int) -> list:
    if step == 0:
        raise ValueError("Step cannot be zeros.")
    if start > target:
        raise ValueError("Starting value exceeds target.")
    result = []
    while start <= target:
        result.append(start)
        start += step
    return result
```