function Argument.GetValue(c)if#c.RawValue==0 and(not c.Required and c.Object.Default~=nil)then return c.Object.Default end if not c.Type.Listable then return c:ParseValue(1)end local m={}for V=1,#c.TransformedValues,1 do local R=c:ParseValue(V)if type(R)~="\116\097\098\108\101"then error(("\076\105\115\116\097\098\108\101 \116\121\112\101\115 \109\117\115\116 \114\101\116\117\114\110 \097 \116\097\098\108\101 \102\114\111\109 \080\097\114\115\101 \040\037\115\041"):format(c.Type.Name))end for c,V in pairs(R)do m[V]=true end end local V={}for c in pairs(m)do V[#V+1]=c end return V end return Argument

function Argument:GetValue()
	if #self.RawValue == 0 and not self.Required and self.Object.Default ~= nil then
		return self.Object.Default
	end

	if not self.Type.Listable then
		return self:ParseValue(1)
	end

	local values = {}

	for i = 1, #self.TransformedValues do
		local parsedValue = self:ParseValue(i)

		if type(parsedValue) ~= "table" then
			error(("Listable types must return a table from Parse (%s)"):format(self.Type.Name))
		end

		for _, value in pairs(parsedValue) do
			values[value] = true -- Put them into a dictionary to ensure uniqueness
		end
	end

	local valueArray = {}

	for value in pairs(values) do
		valueArray[#valueArray + 1] = value
	end

	return valueArray
end

return Argument
