Fhicl allows creation of new parameters in the configuration in the job file
I'll try to explain the problem with a simple example.
Let's say I have a header fcl file with some standard configuration
ParB: [ "filename" ]
Now in my job fcl I would like to overwrite one of the parameters in that parameter set. Suppose I mistype the name ParA, then it would be still valid. For example, like this,
If I run the job with this fcl, everything will be fine. I asume that after this, the parameter set consists of three variables: ParA, ParB and ParamA. I think we should not allow a new parameter to be made on the fly like this. We should allow only existing parameters to be overwritten outside of BEGIN_PROLOG/END_PROLOG. Or at least you can produce a HUGE warning in there once it happens.
My student got burned a couple of times by this, because he either mistyped parameter name or put "geometry" instead of "generator" in there. And it's hard to track down, because it looks fine visually and the program runs, it's just nothing gets changed from default.