You shouldn't need to do any of this here because this only gets called once we're already in editor, so data should already be valid.

The initial validation gets done in main.js in `prepareEditorForProvider()` in the call to `TimingFunctionUtils.timingFunctionMatch()`. The conversion to default parameters should get done on `TimingFunctionUtils.timingFunctionMatch()`.

Also, I think values for `ease-in-out` should only be used when there are no parameters supplied to `cubic-bezier()`. For values out-of-range, they should be moved to closest value in range. For example, the range of valid values for x values (first and third parameters) is 0-1, so values less than 0 should be set to 0 and values greater than 1 should be set to 1.