function Util.MakeListableType(t)local o={Listable=true,Transform=t.Transform,Validate=t.Validate;Autocomplete=t.Autocomplete;Parse=function(...)return{t.Parse(...)}end}return o end local function t(t)return first(t:gsub("\092\037\036",string.char(20)))end local function o(t)return first(t:gsub(string.char(20),"\036"))end
--- Creates a listable type from a singlular type
function Util.MakeListableType(type)
	local listableType = {
		Listable = true,
		Transform = type.Transform,
		Validate = type.Validate,
		Autocomplete = type.Autocomplete,
		Parse = function(...)
			return { type.Parse(...) }
		end,
	}

	return listableType
end

local function encodeCommandEscape(text)
	return first(text:gsub("\\%$", string.char(20)))
end

local function decodeCommandEscape(text)
	return first(text:gsub(string.char(20), "$"))
end
