public Param <T> Required <T>(InputParam <T> inputParam) { return(new Param <T>(inputParam, default, false, this));
public Param <T> Optional <T>(InputParam <T> inputParam, T defaultValue) { return(new Param <T>(inputParam, defaultValue, true, this)); }