Cheer.Sorted=setmetatable({},{__add=function(g,R)return{Type="\083\111\114\116";Field=R;Direction="\073\110\099\114\101\097\115\105\110\103"}end,__sub=function(g,R)return{Type="\083\111\114\116";Field=R;Direction="\068\101\099\114\101\097\115\105\110\103"}end})setmetatable(Cheer,{__call=function(g,...)local R=#{...}if R==1 then return g.LoadComponent(...)elseif R==2 then return g.FromTemplate(...)end end})return Cheer
-- Provide iteration sorting modifiers
Cheer.Sorted = setmetatable({}, {

	-- Allow increasing sort modifiers
	__add = function(Self, SortingField)
		return { Type = "Sort", Field = SortingField, Direction = "Increasing" }
	end,

	-- Allow decreasing sort modifiers
	__sub = function(Self, SortingField)
		return { Type = "Sort", Field = SortingField, Direction = "Decreasing" }
	end,
})

setmetatable(Cheer, {

	-- Enable syntactic sugar for loading components
	__call = function(Cheer, ...)
		local ArgCount = #{ ... }

		-- Direct loading
		if ArgCount == 1 then
			return Cheer.LoadComponent(...)

		-- Template instance loading
		elseif ArgCount == 2 then
			return Cheer.FromTemplate(...)
		end
	end,
})

return Cheer
