def str_once(min, max, default = nil)
        [default, (min..max), false,
          ->(a) { a[0] },
          ->(v) { v == default ? [] : Array(v) }
        ]