local C=require(script.Parent.Parent.Shared.Util)local function O(C,O)if C==nil then return false,("\073\110\118\097\108\105\100 \111\114 \109\105\115\115\105\110\103 \110\117\109\098\101\114 \097\116 \112\111\115\105\116\105\111\110 \037\100 \105\110 \086\101\099\116\111\114 \116\121\112\101\046"):format(O)end return true end local V=C.MakeSequenceType({ValidateEach=O;TransformEach=tonumber;Constructor=Vector3.new;Length=3})local L=C.MakeSequenceType({ValidateEach=O;TransformEach=tonumber,Constructor=Vector2.new,Length=2})return function(O)O:RegisterType("\118\101\099\116\111\114\051",V)O:RegisterType("\118\101\099\116\111\114\051\115",C.MakeListableType(V))O:RegisterType("\118\101\099\116\111\114\050",L)O:RegisterType("\118\101\099\116\111\114\050\115",C.MakeListableType(L))end
local Util = require(script.Parent.Parent.Shared.Util)

local function validateVector(value, i)
	if value == nil then
		return false, ("Invalid or missing number at position %d in Vector type."):format(i)
	end

	return true
end

local vector3Type = Util.MakeSequenceType({
	ValidateEach = validateVector;
	TransformEach = tonumber;
	Constructor = Vector3.new;
	Length = 3;
})

local vector2Type = Util.MakeSequenceType({
	ValidateEach = validateVector;
	TransformEach = tonumber;
	Constructor = Vector2.new;
	Length = 2;
})

return function (cmdr)
	cmdr:RegisterType("vector3", vector3Type)
	cmdr:RegisterType("vector3s", Util.MakeListableType(vector3Type))

	cmdr:RegisterType("vector2", vector2Type)
	cmdr:RegisterType("vector2s", Util.MakeListableType(vector2Type))
end