makeSplitPayload = (
    empty,
    base,
    optional = undefined,
    rest = undefined,
  ) => {
    if (rest) {
      return [base, optional || empty, rest];
    }
    if (optional) {
      return [base, optional];
    }
    return [base];
  }
@template T
@param {T} empty
@param {T} base
@param {T} [optional]
@param {T} [rest]
@returns {T[]}