Use a *CMD front-end. This is the proper way to have optional
parameters in the CL environment. With this, you can add new parameters
as you need without breaking anything.
So you'll have:
1) New program with old name for backward compatibility. It calls the
original program (with new parameters and logic added) as a command.
2) The *CMD interface.
3) The original program, now with a new name and the additional logic.
It is always called via the *CMD interface (#2) and can either be called
from #1, or called directly via the *CMD interface from any new programs.
When you want to add additional parameters down the road, you add them
to the *CMD interface as well as the CL program. The *CMD can take care
of passing default values or *null addreses for parameters that are unused.