I wasn't in love with using a list for a container, mainly due to data integrity.  By modifying the setter to take a javascript list for input, additional type checking would be required to enforce the 4 element requirement.  I preferred to have the signature explicitly call out the the 4 elements and clearly identify the ordering of parameters (dist, scale, dist, scale).  

Your proposal for the new type seems like the right way to go for this basic near/far configuration.