The constructor for Optimizely::Project expects 10 positional arguments. This is pretty unwieldy because it's hard for a caller to remember which argument is which. It also requires a bunch of nil values to be passed in if only some of the non-default values are desired.
It would be helpful to introduce a factory that takes in keyword arguments as input and constructs the Project instance. Since there are probably existing callers, we can't remove the constructor with positional arguments.