https://kevinliebholz.medium.com/rails-custom-type-as-a-single-value-or-as-an-array-of-custom-type-values-ec14e840ce2c