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

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;
