-- Generated ApiVault API data shard. Do not edit manually.
-- version=0.1.0.2; shard=21; systems=20
local addonName, ApiVault = ...
local systems = ApiVault.APIData.systems
systems[#systems + 1] = {
	name = "Screen",
	type = "System",
	ns = "",
	env = "All",
	file = "ScreenDocumentation.lua",
	hash = "b91da5552c728a6ebbb63ff8dff0b2f22fd7a9db1ed6a7cd1e08f32f9ab88412",
	functions = {
		{
			n = "GetDefaultScale",
			k = "Function",
			rets = {
				{
					n = "scale",
					t = "number",
					nilable = false,
				},
			},
		},
		{
			n = "GetPhysicalScreenSize",
			k = "Function",
			rets = {
				{
					n = "sizeX",
					t = "number",
					nilable = false,
				},
				{
					n = "sizeY",
					t = "number",
					nilable = false,
				},
			},
		},
		{
			n = "GetScreenDPIScale",
			k = "Function",
			rets = {
				{
					n = "scale",
					t = "number",
					nilable = false,
				},
			},
		},
		{
			n = "GetScreenHeight",
			k = "Function",
			rets = {
				{
					n = "height",
					t = "number",
					nilable = false,
				},
			},
		},
		{
			n = "GetScreenWidth",
			k = "Function",
			rets = {
				{
					n = "width",
					t = "number",
					nilable = false,
				},
			},
		},
	},
}
systems[#systems + 1] = {
	name = "",
	type = "",
	ns = "",
	env = "",
	file = "ScreenLocationConstantsDocumentation.lua",
	hash = "d921f60ee20930bb15a644db677a42457060ed42ed64a29f318401ad9d854ff8",
	tables = {
		{
			n = "ScreenLocationType",
			k = "Enumeration",
			fields = {
				{
					n = "Center",
					t = "ScreenLocationType",
					EnumValue = 0,
				},
				{
					n = "Left",
					t = "ScreenLocationType",
					EnumValue = 1,
				},
				{
					n = "Right",
					t = "ScreenLocationType",
					EnumValue = 2,
				},
				{
					n = "Top",
					t = "ScreenLocationType",
					EnumValue = 3,
				},
				{
					n = "Bottom",
					t = "ScreenLocationType",
					EnumValue = 4,
				},
				{
					n = "TopLeft",
					t = "ScreenLocationType",
					EnumValue = 5,
				},
				{
					n = "TopRight",
					t = "ScreenLocationType",
					EnumValue = 6,
				},
				{
					n = "LeftOutside",
					t = "ScreenLocationType",
					EnumValue = 7,
				},
				{
					n = "RightOutside",
					t = "ScreenLocationType",
					EnumValue = 8,
				},
				{
					n = "LeftRight",
					t = "ScreenLocationType",
					EnumValue = 9,
				},
				{
					n = "TopBottom",
					t = "ScreenLocationType",
					EnumValue = 10,
				},
				{
					n = "LeftRightOutside",
					t = "ScreenLocationType",
					EnumValue = 11,
				},
			},
			max = 11,
			min = 0,
			num = 12,
		},
	},
}
systems[#systems + 1] = {
	name = "ScriptWarnings",
	type = "System",
	ns = "C_ScriptWarnings",
	env = "All",
	file = "ScriptWarningsDocumentation.lua",
	hash = "7ead8da61c7b8291d44352e6dc1085cbd4851304dac7fef6166e215174dda64d",
	events = {
		{
			n = "LuaWarning",
			k = "Event",
			payload = {
				{
					n = "warningText",
					t = "cstring",
					nilable = false,
				},
			},
			SynchronousEvent = true,
			literal = "LUA_WARNING",
		},
	},
}
systems[#systems + 1] = {
	name = "ScriptedAnimations",
	type = "System",
	ns = "C_ScriptedAnimations",
	env = "All",
	file = "ScriptedAnimationsDocumentation.lua",
	hash = "1156b1f0125eb151352bd618cf84f2d37ef61f78d6bff3245a4b450b7c9c0c6a",
	functions = {
		{
			n = "GetAllScriptedAnimationEffects",
			k = "Function",
			rets = {
				{
					n = "scriptedAnimationEffects",
					t = "table",
					nilable = false,
					it = "ScriptedAnimationEffect",
				},
			},
		},
	},
	events = {
		{
			n = "ScriptedAnimationsUpdate",
			k = "Event",
			SynchronousEvent = true,
			literal = "SCRIPTED_ANIMATIONS_UPDATE",
		},
	},
	tables = {
		{
			n = "ScriptedAnimationBehavior",
			k = "Enumeration",
			fields = {
				{
					n = "None",
					t = "ScriptedAnimationBehavior",
					EnumValue = 0,
				},
				{
					n = "TargetShake",
					t = "ScriptedAnimationBehavior",
					EnumValue = 1,
				},
				{
					n = "TargetKnockBack",
					t = "ScriptedAnimationBehavior",
					EnumValue = 2,
				},
				{
					n = "SourceRecoil",
					t = "ScriptedAnimationBehavior",
					EnumValue = 3,
				},
				{
					n = "SourceCollideWithTarget",
					t = "ScriptedAnimationBehavior",
					EnumValue = 4,
				},
				{
					n = "UIParentShake",
					t = "ScriptedAnimationBehavior",
					EnumValue = 5,
				},
			},
			max = 5,
			min = 0,
			num = 6,
		},
		{
			n = "ScriptedAnimationFlags",
			k = "Enumeration",
			fields = {
				{
					n = "UseTargetAsSource",
					t = "ScriptedAnimationFlags",
					EnumValue = 1,
				},
			},
			max = 1,
			min = 1,
			num = 1,
		},
		{
			n = "ScriptedAnimationTrajectory",
			k = "Enumeration",
			fields = {
				{
					n = "AtSource",
					t = "ScriptedAnimationTrajectory",
					EnumValue = 0,
				},
				{
					n = "AtTarget",
					t = "ScriptedAnimationTrajectory",
					EnumValue = 1,
				},
				{
					n = "Straight",
					t = "ScriptedAnimationTrajectory",
					EnumValue = 2,
				},
				{
					n = "CurveLeft",
					t = "ScriptedAnimationTrajectory",
					EnumValue = 3,
				},
				{
					n = "CurveRight",
					t = "ScriptedAnimationTrajectory",
					EnumValue = 4,
				},
				{
					n = "CurveRandom",
					t = "ScriptedAnimationTrajectory",
					EnumValue = 5,
				},
				{
					n = "HalfwayBetween",
					t = "ScriptedAnimationTrajectory",
					EnumValue = 6,
				},
			},
			max = 6,
			min = 0,
			num = 7,
		},
		{
			n = "ScriptedAnimationEffect",
			k = "Structure",
			fields = {
				{
					n = "id",
					t = "number",
					nilable = false,
				},
				{
					n = "visual",
					t = "fileID",
					nilable = false,
				},
				{
					n = "visualScale",
					t = "number",
					nilable = false,
				},
				{
					n = "duration",
					t = "number",
					nilable = false,
				},
				{
					n = "trajectory",
					t = "ScriptedAnimationTrajectory",
					nilable = false,
				},
				{
					n = "yawRadians",
					t = "number",
					nilable = false,
				},
				{
					n = "pitchRadians",
					t = "number",
					nilable = false,
				},
				{
					n = "rollRadians",
					t = "number",
					nilable = false,
				},
				{
					n = "offsetX",
					t = "number",
					nilable = false,
				},
				{
					n = "offsetY",
					t = "number",
					nilable = false,
				},
				{
					n = "offsetZ",
					t = "number",
					nilable = false,
				},
				{
					n = "animation",
					t = "number",
					nilable = false,
				},
				{
					n = "animationSpeed",
					t = "number",
					nilable = false,
				},
				{
					n = "alpha",
					t = "number",
					nilable = false,
				},
				{
					n = "useTargetAsSource",
					t = "bool",
					nilable = false,
				},
				{
					n = "startBehavior",
					t = "ScriptedAnimationBehavior",
					nilable = true,
				},
				{
					n = "startSoundKitID",
					t = "number",
					nilable = true,
				},
				{
					n = "finishEffectID",
					t = "number",
					nilable = true,
				},
				{
					n = "finishBehavior",
					t = "ScriptedAnimationBehavior",
					nilable = true,
				},
				{
					n = "finishSoundKitID",
					t = "number",
					nilable = true,
				},
				{
					n = "startAlphaFade",
					t = "number",
					nilable = true,
				},
				{
					n = "startAlphaFadeDuration",
					t = "number",
					nilable = true,
				},
				{
					n = "endAlphaFade",
					t = "number",
					nilable = true,
				},
				{
					n = "endAlphaFadeDuration",
					t = "number",
					nilable = true,
				},
				{
					n = "animationStartOffset",
					t = "number",
					nilable = true,
				},
				{
					n = "loopingSoundKitID",
					t = "number",
					nilable = true,
				},
				{
					n = "particleOverrideScale",
					t = "number",
					nilable = true,
				},
			},
		},
	},
}
systems[#systems + 1] = {
	name = "SeasonInfo",
	type = "System",
	ns = "C_SeasonInfo",
	env = "All",
	file = "SeasonInfoDocumentation.lua",
	hash = "03d53f646f435e4435a13662532e2efd0f6b7ce9a84cc4e519d0e17c291338ee",
	functions = {
		{
			n = "GetCurrentDisplaySeasonExpansion",
			k = "Function",
			rets = {
				{
					n = "expansionID",
					t = "number",
					nilable = true,
				},
			},
		},
		{
			n = "GetCurrentDisplaySeasonID",
			k = "Function",
			rets = {
				{
					n = "seasonID",
					t = "number",
					nilable = false,
				},
			},
		},
	},
}
systems[#systems + 1] = {
	name = "",
	type = "",
	ns = "",
	env = "",
	file = "SeasonsConstantsDocumentation.lua",
	hash = "5a3da49d67c15e666b2e346d92512830bfdc8fe1fe601d2adc49884c5967877a",
	tables = {
		{
			n = "SeasonID",
			k = "Enumeration",
			fields = {
				{
					n = "NoSeason",
					t = "SeasonID",
					EnumValue = 0,
				},
				{
					n = "SeasonOfMastery",
					t = "SeasonID",
					EnumValue = 1,
				},
				{
					n = "SeasonOfDiscovery",
					t = "SeasonID",
					EnumValue = 2,
				},
				{
					n = "Hardcore",
					t = "SeasonID",
					EnumValue = 3,
				},
				{
					n = "Fresh",
					t = "SeasonID",
					EnumValue = 11,
				},
				{
					n = "FreshHardcore",
					t = "SeasonID",
					EnumValue = 12,
				},
			},
			max = 12,
			min = 0,
			num = 6,
		},
	},
}
systems[#systems + 1] = {
	name = "SecondsFormatterAPI",
	type = "ScriptObject",
	ns = "",
	env = "All",
	file = "SecondsFormatterAPIDocumentation.lua",
	hash = "66494ec01153bae1e1b082dcfd8a0da7baee3d0e90c3a6b97cbb7304a5559bde",
	functions = {
		{
			n = "CanApproximate",
			k = "Function",
			doc = {
				"Returns true if the given number of seconds is within an appropriate range for approximated formatting.",
			},
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "seconds",
					t = "DurationSecondsDouble",
					nilable = false,
				},
			},
			rets = {
				{
					n = "canApproximate",
					t = "bool",
					nilable = false,
				},
			},
		},
		{
			n = "CanRoundUpIntervals",
			k = "Function",
			doc = {
				"Returns true if the formatter can promote values to higher interval bands.",
			},
			rets = {
				{
					n = "canRound",
					t = "bool",
					nilable = false,
				},
			},
		},
		{
			n = "CanRoundUpLastUnit",
			k = "Function",
			doc = {
				"Returns true if the formatter should round the final unit up rather than down.",
			},
			rets = {
				{
					n = "canRound",
					t = "bool",
					nilable = false,
				},
			},
		},
		{
			n = "EvaluateDesiredUnitCount",
			k = "Function",
			doc = {
				"Returns the unit count that a given number of seconds will use for formatting.",
			},
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "seconds",
					t = "DurationSecondsDouble",
					nilable = false,
				},
			},
			rets = {
				{
					n = "count",
					t = "number",
					nilable = false,
				},
			},
		},
		{
			n = "EvaluateMaxInterval",
			k = "Function",
			doc = {
				"Returns the maximum interval band that a given number of seconds will use for formatting.",
			},
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "seconds",
					t = "DurationSecondsDouble",
					nilable = false,
				},
			},
			rets = {
				{
					n = "interval",
					t = "SecondsFormatterInterval",
					nilable = false,
				},
			},
		},
		{
			n = "EvaluateMinInterval",
			k = "Function",
			doc = {
				"Returns the minimum interval band that a given number of seconds will use for formatting.",
			},
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "seconds",
					t = "DurationSecondsDouble",
					nilable = false,
				},
			},
			rets = {
				{
					n = "interval",
					t = "SecondsFormatterInterval",
					nilable = false,
				},
			},
		},
		{
			n = "Format",
			k = "Function",
			doc = {
				"Formats a number of seconds and returns the resulting string.",
			},
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "seconds",
					t = "DurationSecondsDouble",
					nilable = false,
				},
				{
					n = "abbreviation",
					t = "SecondsFormatterAbbreviation",
					nilable = true,
					doc = {
						"Optional abbreviation mode to use in-place of the default.",
					},
				},
			},
			rets = {
				{
					n = "formattedSeconds",
					t = "string",
					nilable = false,
				},
			},
		},
		{
			n = "FormatZero",
			k = "Function",
			doc = {
				"Returns formatted string representing a zero second duration.",
			},
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "abbreviation",
					t = "SecondsFormatterAbbreviation",
					nilable = true,
					doc = {
						"Optional abbreviation mode to use in-place of the default.",
					},
				},
			},
			rets = {
				{
					n = "formattedSeconds",
					t = "string",
					nilable = false,
				},
			},
		},
		{
			n = "GetApproximationSeconds",
			k = "Function",
			doc = {
				"Returns the threshold below which numeric values are formatted as approximated strings.",
			},
			rets = {
				{
					n = "approximationSeconds",
					t = "DurationSecondsDouble",
					nilable = false,
				},
			},
		},
		{
			n = "GetConvertToLower",
			k = "Function",
			doc = {
				"Returns true if the formatter should lowercase all unit format strings.",
			},
			rets = {
				{
					n = "convert",
					t = "bool",
					nilable = false,
				},
			},
		},
		{
			n = "GetDefaultAbbreviation",
			k = "Function",
			doc = {
				"Returns the default abbreviation mode used for formatting.",
			},
			rets = {
				{
					n = "abbreviation",
					t = "SecondsFormatterAbbreviation",
					nilable = true,
				},
			},
		},
		{
			n = "GetDesiredUnitCount",
			k = "Function",
			doc = {
				"Returns the desired unit count for formatting.",
			},
			rets = {
				{
					n = "count",
					t = "number",
					nilable = true,
					doc = {
						"Nil if configured to use a curve.",
					},
				},
			},
		},
		{
			n = "GetDesiredUnitCountCurve",
			k = "Function",
			doc = {
				"Returns the desired unit count curve for formatting.",
			},
			rets = {
				{
					n = "curve",
					t = "LuaCurveObject",
					nilable = true,
					doc = {
						"Nil if configured to static unit count.",
					},
				},
			},
		},
		{
			n = "GetMaxInterval",
			k = "Function",
			doc = {
				"Returns the maximum interval band permitted for formatting.",
			},
			rets = {
				{
					n = "interval",
					t = "SecondsFormatterInterval",
					nilable = true,
					doc = {
						"Nil if configured to use a curve.",
					},
				},
			},
		},
		{
			n = "GetMaxIntervalCurve",
			k = "Function",
			doc = {
				"Returns the maximum interval band curve permitted for formatting.",
			},
			rets = {
				{
					n = "curve",
					t = "LuaCurveObject",
					nilable = true,
					doc = {
						"Nil if configured to static interval band.",
					},
				},
			},
		},
		{
			n = "GetMillisecondsThreshold",
			k = "Function",
			doc = {
				"Returns the threshold below which a value will be formatted as a decimal number of seconds with one place for milliseconds (eg. '3.4')",
			},
			rets = {
				{
					n = "threshold",
					t = "DurationSecondsDouble",
					nilable = false,
				},
			},
		},
		{
			n = "GetMinInterval",
			k = "Function",
			doc = {
				"Returns the minimum interval band permitted for formatting.",
			},
			rets = {
				{
					n = "interval",
					t = "SecondsFormatterInterval",
					nilable = true,
					doc = {
						"Nil if configured to use a curve.",
					},
				},
			},
		},
		{
			n = "GetMinIntervalCurve",
			k = "Function",
			doc = {
				"Returns the minimum interval band curve permitted for formatting.",
			},
			rets = {
				{
					n = "curve",
					t = "LuaCurveObject",
					nilable = true,
					doc = {
						"Nil if configured to static interval band.",
					},
				},
			},
		},
		{
			n = "GetStripIntervalWhitespace",
			k = "Function",
			doc = {
				"Returns the whitespace stripping mode of the formatter.",
			},
			rets = {
				{
					n = "strip",
					t = "SecondsFormatterIntervalWhitespace",
					nilable = false,
				},
			},
		},
		{
			n = "Reset",
			k = "Function",
			doc = {
				"Resets all stored configuration of the formatter.",
			},
		},
		{
			n = "SetApproximationSeconds",
			k = "Function",
			doc = {
				"Configures the formatter to render numeric values between zero and this value as approximated strings (eg. '< 1m').",
			},
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "seconds",
					t = "DurationSecondsDouble",
					nilable = false,
				},
			},
		},
		{
			n = "SetCanRoundUpIntervals",
			k = "Function",
			doc = {
				"Configures the formatter to promote intervals if values are large enough (eg. '60m' -> '1h').",
			},
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "canRound",
					t = "bool",
					nilable = false,
				},
			},
		},
		{
			n = "SetCanRoundUpLastUnit",
			k = "Function",
			doc = {
				"Configures the formatter to round the last formatted unit up, rather than down.",
			},
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "canRound",
					t = "bool",
					nilable = false,
				},
			},
		},
		{
			n = "SetConvertToLower",
			k = "Function",
			doc = {
				"Configures the formatter to convert all interval format strings to lowercase.",
			},
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "convert",
					t = "bool",
					nilable = false,
				},
			},
		},
		{
			n = "SetDefaultAbbreviation",
			k = "Function",
			doc = {
				"Sets the default abbreviation mode used for formatting.",
			},
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "abbreviation",
					t = "SecondsFormatterAbbreviation",
					nilable = false,
				},
			},
		},
		{
			n = "SetDesiredUnitCount",
			k = "Function",
			doc = {
				"Sets the desired unit count used for formatting.",
			},
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "count",
					t = "number",
					nilable = false,
				},
			},
		},
		{
			n = "SetDesiredUnitCountCurve",
			k = "Function",
			doc = {
				"Sets the desired unit count used for formatting to a curve that will be evaluated with seconds values to produce a desired unit count.",
			},
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "curve",
					t = "LuaCurveObject",
					nilable = false,
				},
			},
		},
		{
			n = "SetMaxInterval",
			k = "Function",
			doc = {
				"Sets the maximum interval band used for formatting.",
			},
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "interval",
					t = "SecondsFormatterInterval",
					nilable = false,
				},
			},
		},
		{
			n = "SetMaxIntervalCurve",
			k = "Function",
			doc = {
				"Sets the maximum interval band used for formatting to a curve that will be evaluated with seconds values to produce a value matching a SecondsFormatterInterval enum member.",
			},
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "curve",
					t = "LuaCurveObject",
					nilable = false,
				},
			},
		},
		{
			n = "SetMillisecondsThreshold",
			k = "Function",
			doc = {
				"Sets the threshold below which a value will be formatted as a decimal number of seconds with one place for milliseconds (eg. '3.4')",
			},
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "threshold",
					t = "DurationSecondsDouble",
					nilable = false,
				},
			},
		},
		{
			n = "SetMinInterval",
			k = "Function",
			doc = {
				"Sets the minimum interval band used for formatting.",
			},
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "interval",
					t = "SecondsFormatterInterval",
					nilable = false,
				},
			},
		},
		{
			n = "SetMinIntervalCurve",
			k = "Function",
			doc = {
				"Sets the minimum interval band used for formatting to a curve that will be evaluated with seconds values to produce a value matching a SecondsFormatterInterval enum member.",
			},
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "curve",
					t = "LuaCurveObject",
					nilable = false,
				},
			},
		},
		{
			n = "SetStripIntervalWhitespace",
			k = "Function",
			doc = {
				"Sets the whitespace stripping mode for the formatter.",
			},
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "strip",
					t = "SecondsFormatterIntervalWhitespace",
					nilable = false,
				},
			},
		},
	},
}
systems[#systems + 1] = {
	name = "",
	type = "",
	ns = "",
	env = "",
	file = "SecondsFormatterSharedDocumentation.lua",
	hash = "d6d577baddcef2ac93cf4da727ddc4451add5a4d0edb1b3ce91e7bdd88061087",
	tables = {
		{
			n = "SecondsFormatterAbbreviation",
			k = "Enumeration",
			fields = {
				{
					n = "None",
					t = "SecondsFormatterAbbreviation",
					EnumValue = 0,
				},
				{
					n = "Truncate",
					t = "SecondsFormatterAbbreviation",
					EnumValue = 1,
				},
				{
					n = "OneLetter",
					t = "SecondsFormatterAbbreviation",
					EnumValue = 2,
				},
			},
			max = 2,
			min = 0,
			num = 3,
		},
		{
			n = "SecondsFormatterInterval",
			k = "Enumeration",
			fields = {
				{
					n = "Seconds",
					t = "SecondsFormatterInterval",
					EnumValue = 0,
				},
				{
					n = "Minutes",
					t = "SecondsFormatterInterval",
					EnumValue = 1,
				},
				{
					n = "Hours",
					t = "SecondsFormatterInterval",
					EnumValue = 2,
				},
				{
					n = "Days",
					t = "SecondsFormatterInterval",
					EnumValue = 3,
				},
			},
			max = 3,
			min = 0,
			num = 4,
		},
		{
			n = "SecondsFormatterIntervalWhitespace",
			k = "Enumeration",
			fields = {
				{
					n = "Preserve",
					t = "SecondsFormatterIntervalWhitespace",
					doc = {
						"Do not strip any whitespace from interval unit strings.",
					},
					EnumValue = 0,
				},
				{
					n = "Strip",
					t = "SecondsFormatterIntervalWhitespace",
					doc = {
						"Strip whitespace from interval unit strings. Some locales override this setting (eg. deDE, ruRU).",
					},
					EnumValue = 1,
				},
				{
					n = "StripIgnoreLocale",
					t = "SecondsFormatterIntervalWhitespace",
					doc = {
						"Always strip whitespace from interval unit strings even if the client locale should normally preserve whitespace.",
					},
					EnumValue = 2,
				},
			},
			max = 2,
			min = 0,
			num = 3,
		},
	},
}
systems[#systems + 1] = {
	name = "",
	type = "",
	ns = "",
	env = "",
	file = "SecretAspectConstantsDocumentation.lua",
	hash = "24c409641e2cc3cb11534a5e21e251e1dd98493da6bd12082345bfd191ed93ef",
	tables = {
		{
			n = "SecretAspect",
			k = "Enumeration",
			fields = {
				{
					n = "ObjectDebug",
					t = "SecretAspect",
					EnumValue = 1,
				},
				{
					n = "ObjectName",
					t = "SecretAspect",
					EnumValue = 1,
				},
				{
					n = "ObjectType",
					t = "SecretAspect",
					EnumValue = 1,
				},
				{
					n = "ObjectSecrets",
					t = "SecretAspect",
					EnumValue = 1,
				},
				{
					n = "ObjectSecurity",
					t = "SecretAspect",
					EnumValue = 1,
				},
				{
					n = "Attributes",
					t = "SecretAspect",
					EnumValue = 1,
				},
				{
					n = "Hierarchy",
					t = "SecretAspect",
					EnumValue = 1,
				},
				{
					n = "ID",
					t = "SecretAspect",
					EnumValue = 2,
				},
				{
					n = "Toplevel",
					t = "SecretAspect",
					EnumValue = 4,
				},
				{
					n = "Text",
					t = "SecretAspect",
					EnumValue = 8,
				},
				{
					n = "SecureText",
					t = "SecretAspect",
					EnumValue = 16,
				},
				{
					n = "Shown",
					t = "SecretAspect",
					EnumValue = 32,
				},
				{
					n = "Scale",
					t = "SecretAspect",
					EnumValue = 64,
				},
				{
					n = "Alpha",
					t = "SecretAspect",
					EnumValue = 128,
				},
				{
					n = "FrameLevel",
					t = "SecretAspect",
					EnumValue = 256,
				},
				{
					n = "ScrollRange",
					t = "SecretAspect",
					EnumValue = 512,
				},
				{
					n = "Cursor",
					t = "SecretAspect",
					EnumValue = 1024,
				},
				{
					n = "VertexColor",
					t = "SecretAspect",
					EnumValue = 2048,
				},
				{
					n = "Desaturation",
					t = "SecretAspect",
					EnumValue = 4096,
				},
				{
					n = "TexCoords",
					t = "SecretAspect",
					EnumValue = 8192,
				},
				{
					n = "BarValue",
					t = "SecretAspect",
					EnumValue = 16384,
				},
				{
					n = "Cooldown",
					t = "SecretAspect",
					EnumValue = 32768,
				},
				{
					n = "Rotation",
					t = "SecretAspect",
					EnumValue = 65536,
				},
				{
					n = "MinimumWidth",
					t = "SecretAspect",
					EnumValue = 131072,
				},
				{
					n = "Padding",
					t = "SecretAspect",
					EnumValue = 262144,
				},
				{
					n = "CooldownStyle",
					t = "SecretAspect",
					EnumValue = 524288,
				},
				{
					n = "TooltipTexture",
					t = "SecretAspect",
					EnumValue = 1048576,
				},
				{
					n = "ButtonState",
					t = "SecretAspect",
					EnumValue = 2097152,
				},
				{
					n = "ScrollOffset",
					t = "SecretAspect",
					EnumValue = 4194304,
				},
			},
			max = 4194304,
			min = 1,
			num = 29,
		},
	},
}
systems[#systems + 1] = {
	name = "SecretUtil",
	type = "System",
	ns = "C_Secrets",
	env = "All",
	file = "SecretPredicateAPIDocumentation.lua",
	hash = "01ec6fdea1aef17cc5603edae6f61f8922d5b2546fb9f3d551cf4d3e7c6a2bc8",
	doc = {
		"'How is it a secret if we can C it?'",
	},
	functions = {
		{
			n = "CanCompareUnitTokens",
			k = "Function",
			doc = {
				"Returns true if queries to compare two input unit tokens are permitted. If this returns false, APIs guarded by the RequiresComparableUnitTokens predicate will fail.",
			},
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "unit1",
					t = "UnitToken",
					nilable = false,
				},
				{
					n = "unit2",
					t = "UnitToken",
					nilable = false,
				},
			},
			rets = {
				{
					n = "isUnitComparisonPermitted",
					t = "bool",
					nilable = false,
				},
			},
		},
		{
			n = "GetPowerTypeSecrecy",
			k = "Function",
			doc = {
				"Queries the base secrecy for a power type.",
			},
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "powerType",
					t = "PowerType",
					nilable = false,
				},
			},
			rets = {
				{
					n = "secrecy",
					t = "SecrecyLevel",
					nilable = false,
				},
			},
		},
		{
			n = "GetSpellAuraSecrecy",
			k = "Function",
			doc = {
				"Queries the base secrecy for a spell if queried as an aura.",
			},
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "spellIdentifier",
					t = "SpellIdentifier",
					nilable = false,
				},
			},
			rets = {
				{
					n = "secrecy",
					t = "SecrecyLevel",
					nilable = false,
				},
			},
		},
		{
			n = "GetSpellCastSecrecy",
			k = "Function",
			doc = {
				"Queries the base secrecy for a spell if queried as a cast.",
			},
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "spellIdentifier",
					t = "SpellIdentifier",
					nilable = false,
				},
			},
			rets = {
				{
					n = "secrecy",
					t = "SecrecyLevel",
					nilable = false,
				},
			},
		},
		{
			n = "GetSpellCooldownSecrecy",
			k = "Function",
			doc = {
				"Queries the base secrecy for a spell if queried as a cooldown.",
			},
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "spellIdentifier",
					t = "SpellIdentifier",
					nilable = false,
				},
			},
			rets = {
				{
					n = "secrecy",
					t = "SecrecyLevel",
					nilable = false,
				},
			},
		},
		{
			n = "HasSecretRestrictions",
			k = "Function",
			doc = {
				"Returns true if this client build has secret value restrictions enabled. If false, all APIs that are tagged as potentially returning secrets will never do so.",
			},
			rets = {
				{
					n = "hasSecretRestrictions",
					t = "bool",
					nilable = false,
				},
			},
		},
		{
			n = "ShouldActionCooldownBeSecret",
			k = "Function",
			doc = {
				"Returns true if a given action bar slot ID will produce secret values for cooldowns if queried.",
			},
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "actionID",
					t = "luaIndex",
					nilable = false,
				},
			},
			rets = {
				{
					n = "isCooldownSecret",
					t = "bool",
					nilable = false,
				},
			},
		},
		{
			n = "ShouldAurasBeSecret",
			k = "Function",
			doc = {
				"Returns true if queries for aura data will generally produce secret values.",
			},
			rets = {
				{
					n = "hasSecretAuras",
					t = "bool",
					nilable = false,
				},
			},
		},
		{
			n = "ShouldCooldownsBeSecret",
			k = "Function",
			doc = {
				"Returns true if queries for cooldown data will generally produce secret values.",
			},
			rets = {
				{
					n = "hasSecretCooldowns",
					t = "bool",
					nilable = false,
				},
			},
		},
		{
			n = "ShouldSpellAuraBeSecret",
			k = "Function",
			doc = {
				"Returns true if a given spell identifier would, if applied as an aura, produce secret values when queried.",
			},
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "spellIdentifier",
					t = "SpellIdentifier",
					nilable = false,
				},
			},
			rets = {
				{
					n = "isAuraSecret",
					t = "bool",
					nilable = false,
				},
			},
		},
		{
			n = "ShouldSpellBookItemCooldownBeSecret",
			k = "Function",
			doc = {
				"Returns true if a given spellbook item will produce secret values for cooldowns if queried.",
			},
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "spellBookItemSlotIndex",
					t = "luaIndex",
					nilable = false,
				},
				{
					n = "spellBookItemSpellBank",
					t = "SpellBookSpellBank",
					nilable = false,
				},
			},
			rets = {
				{
					n = "isCooldownSecret",
					t = "bool",
					nilable = false,
				},
			},
		},
		{
			n = "ShouldSpellCooldownBeSecret",
			k = "Function",
			doc = {
				"Returns true if a given spell identifier will produce secret values for cooldowns if queried.",
			},
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "spellIdentifier",
					t = "SpellIdentifier",
					nilable = false,
				},
			},
			rets = {
				{
					n = "isCooldownSecret",
					t = "bool",
					nilable = false,
				},
			},
		},
		{
			n = "ShouldTotemSlotBeSecret",
			k = "Function",
			doc = {
				"Returns true if information about a totem slot will produce secret values if queried.",
			},
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "slot",
					t = "luaIndex",
					nilable = false,
				},
			},
			rets = {
				{
					n = "isTotemSecret",
					t = "bool",
					nilable = false,
				},
			},
		},
		{
			n = "ShouldTotemSpellBeSecret",
			k = "Function",
			doc = {
				"Returns true if information about a spell when associated with a totem slot will produce secret values if queried.",
			},
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "spellID",
					t = "number",
					nilable = false,
				},
			},
			rets = {
				{
					n = "isTotemSecret",
					t = "bool",
					nilable = false,
				},
			},
		},
		{
			n = "ShouldUnitAuraIndexBeSecret",
			k = "Function",
			doc = {
				"Returns true if a given aura index will produce secret values if queried.",
			},
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "unit",
					t = "UnitToken",
					nilable = false,
				},
				{
					n = "index",
					t = "luaIndex",
					nilable = false,
				},
				{
					n = "filter",
					t = "AuraFilters",
					nilable = true,
				},
			},
			rets = {
				{
					n = "isAuraSecret",
					t = "bool",
					nilable = false,
				},
			},
		},
		{
			n = "ShouldUnitAuraInstanceBeSecret",
			k = "Function",
			doc = {
				"Returns true if a given aura instance ID will produce secret values if queried.",
			},
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "unit",
					t = "UnitToken",
					nilable = false,
				},
				{
					n = "auraInstanceID",
					t = "number",
					nilable = false,
				},
			},
			rets = {
				{
					n = "isAuraSecret",
					t = "bool",
					nilable = false,
				},
			},
		},
		{
			n = "ShouldUnitAuraSlotBeSecret",
			k = "Function",
			doc = {
				"Returns true if a given aura slot ID will produce secret values if queried.",
			},
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "unit",
					t = "UnitToken",
					nilable = false,
				},
				{
					n = "slot",
					t = "number",
					nilable = false,
				},
			},
			rets = {
				{
					n = "isAuraSecret",
					t = "bool",
					nilable = false,
				},
			},
		},
		{
			n = "ShouldUnitComparisonBeSecret",
			k = "Function",
			doc = {
				"Returns true if queries that compare units will produce secret values.",
			},
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "unit1",
					t = "UnitToken",
					nilable = false,
				},
				{
					n = "unit2",
					t = "UnitToken",
					nilable = false,
				},
			},
			rets = {
				{
					n = "isUnitComparisonSecret",
					t = "bool",
					nilable = false,
				},
			},
		},
		{
			n = "ShouldUnitHealthMaxBeSecret",
			k = "Function",
			doc = {
				"Returns true if queries for maximum unit health will produce secret values.",
			},
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "unit",
					t = "UnitToken",
					nilable = false,
				},
			},
			rets = {
				{
					n = "isUnitHealthMaxSecret",
					t = "bool",
					nilable = false,
				},
			},
		},
		{
			n = "ShouldUnitIdentityBeSecret",
			k = "Function",
			doc = {
				"Returns true if queries for unit identity (such as name or GUID) will produce secret values.",
			},
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "unit",
					t = "UnitToken",
					nilable = false,
				},
			},
			rets = {
				{
					n = "isUnitIdentitySecret",
					t = "bool",
					nilable = false,
				},
			},
		},
		{
			n = "ShouldUnitPowerBeSecret",
			k = "Function",
			doc = {
				"Returns true if queries for unit power will produce secret values.",
			},
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "unit",
					t = "UnitToken",
					nilable = false,
				},
				{
					n = "powerType",
					t = "PowerType",
					nilable = true,
				},
			},
			rets = {
				{
					n = "isUnitPowerSecret",
					t = "bool",
					nilable = false,
				},
			},
		},
		{
			n = "ShouldUnitPowerMaxBeSecret",
			k = "Function",
			doc = {
				"Returns true if queries for maximum unit power will produce secret values.",
			},
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "unit",
					t = "UnitToken",
					nilable = false,
				},
				{
					n = "powerType",
					t = "PowerType",
					nilable = true,
				},
			},
			rets = {
				{
					n = "isUnitPowerMaxSecret",
					t = "bool",
					nilable = false,
				},
			},
		},
		{
			n = "ShouldUnitSpellCastBeSecret",
			k = "Function",
			doc = {
				"Returns true if queries for spell casting information for a unit would produce secret values when queried.",
			},
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "unit",
					t = "UnitToken",
					nilable = false,
				},
				{
					n = "spellIdentifier",
					t = "SpellIdentifier",
					nilable = false,
				},
			},
			rets = {
				{
					n = "isSpellCastSecret",
					t = "bool",
					nilable = false,
				},
			},
		},
		{
			n = "ShouldUnitSpellCastingBeSecret",
			k = "Function",
			doc = {
				"Returns true if queries for spell casting information for a specific unit will generally produce secret values.",
			},
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "unit",
					t = "UnitToken",
					nilable = false,
				},
			},
			rets = {
				{
					n = "isSpellCastingSecret",
					t = "bool",
					nilable = false,
				},
			},
		},
		{
			n = "ShouldUnitStatsBeSecret",
			k = "Function",
			doc = {
				"Returns true if queries for unit statistics will produce secret values.",
			},
			rets = {
				{
					n = "hasSecretStats",
					t = "bool",
					nilable = false,
				},
			},
		},
		{
			n = "ShouldUnitThreatStateBeSecret",
			k = "Function",
			doc = {
				"Returns true if queries for unit threat status will produce secret values.",
			},
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "unit",
					t = "UnitToken",
					nilable = false,
				},
				{
					n = "mobUnit",
					t = "UnitToken",
					nilable = true,
				},
			},
			rets = {
				{
					n = "isUnitThreatSecret",
					t = "bool",
					nilable = false,
				},
			},
		},
		{
			n = "ShouldUnitThreatValuesBeSecret",
			k = "Function",
			doc = {
				"Returns true if queries for unit threat values will produce secret values.",
			},
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "unit",
					t = "UnitToken",
					nilable = false,
				},
				{
					n = "mobUnit",
					t = "UnitToken",
					nilable = false,
				},
			},
			rets = {
				{
					n = "isUnitThreatSecret",
					t = "bool",
					nilable = false,
				},
			},
		},
	},
}
systems[#systems + 1] = {
	name = "",
	type = "",
	ns = "",
	env = "",
	file = "SecretPredicatesDocumentation.lua",
	hash = "c25b7bfa03328208ce87aad27b5e78de7c580ce6ca57f2b6be1fd1921df98275",
	predicates = {
		{
			Documentation = {
				"Guarded APIs only accept unit token pairs that can be compared with one another. For example, comparisons where either unit is 'player' or 'target' are permitted, but comparisons between 'nameplate3' and 'boss1' are not.",
			},
			FailureMode = "ReturnNothing",
			Name = "RequiresComparableUnitTokens",
			Type = "Precondition",
		},
		{
			Documentation = {
				"Guarded APIs and events require that callers have access to the identity of a supplied unit token.",
			},
			FailureMode = "ReturnWithError",
			Name = "RequiresDeclassifiedUnitIdentity",
			Type = "Precondition",
		},
		{
			Documentation = {
				"Guarded APIs reject access for tainted callers if the object has the secret Text aspect assigned.",
			},
			FailureMode = "ReturnNothing",
			Name = "RequiresFontStringTextAccess",
			Type = "Precondition",
		},
		{
			FailureMode = "ReturnWithError",
			Name = "RequiresScriptObjectAlphaAccess",
			Type = "Precondition",
		},
		{
			FailureMode = "ReturnWithError",
			Name = "RequiresScriptObjectDesaturationAccess",
			Type = "Precondition",
		},
		{
			FailureMode = "ReturnWithError",
			Name = "RequiresStatusBarDesaturationAccess",
			Type = "Precondition",
		},
		{
			Documentation = {
				"Guarded APIs and events require that callers have access to unit identity values. This does not raise a blocked action error - instead, protected APIs will return no values.",
			},
			FailureMode = "ReturnWithError",
			Name = "RequiresUnitIdentityAccess",
			Type = "Precondition",
		},
		{
			Documentation = {
				"Guarded APIs and events produce secret values when PvP match addon restrictions are in effect.",
			},
			Name = "SecretInActivePvPMatch",
			Type = "Secret",
		},
		{
			Documentation = {
				"Guarded APIs and events produce secret values when encounter, challenge mode, or PvP match addon restrictions are in effect, and when the player is on a communication-restricted map such as a dungeon or raid.",
			},
			Name = "SecretInChatMessagingLockdown",
			Type = "Secret",
		},
		{
			Documentation = {
				"Guarded APIs and events produce secret values when the player is on an addon-restricted map such as a dungeon or raid.",
			},
			Name = "SecretOnRestrictedMaps",
			Type = "Secret",
		},
		{
			Documentation = {
				"Guarded APIs and events produce secret values when an object has secret anchoring information.",
			},
			Name = "SecretWhenAnchoringSecret",
			Type = "Secret",
		},
		{
			Documentation = {
				"Guarded APIs and events produce secret values when combat, encounter, challenge mode, or PvP match addon restrictions are in effect. Individual spells may be flagged as never or always secret, which takes priority over restrictions.",
			},
			Name = "SecretWhenUnitAuraRestricted",
			Type = "Secret",
		},
		{
			Documentation = {
				"Guarded APIs and events produce secret values when combat, encounter, challenge mode, or PvP match addon restrictions are in effect. Individual spells may be flagged as never or always secret, which takes priority over restrictions.",
			},
			Name = "SecretWhenCooldownsRestricted",
			Type = "Secret",
		},
		{
			Documentation = {
				"Guarded APIs and events produce secret values when combat addon restrictions are in effect.",
			},
			Name = "SecretWhenInCombat",
			Type = "Secret",
		},
		{
			Documentation = {
				"Guarded APIs and events produce secret values if the subject unit is not the active player, unless they are an active spectator or commentator of a PvP match.",
			},
			Name = "SecretWhenLossOfControlInfoRestricted",
			Type = "Secret",
		},
		{
			Documentation = {
				"Guarded APIs and events produce secret values when combat, encounter, challenge mode, or PvP match addon restrictions are in effect. Individual totem spell auras may be flagged as never or always secret, which takes priority over restrictions.",
			},
			Name = "SecretWhenTotemSlotSecret",
			Type = "Secret",
		},
		{
			Documentation = {
				"Guarded APIs and events produce secret values if the unit being queried for cast information is not the player or their pet. Individual spells may be flagged as never or always secret, which takes priority.",
			},
			Name = "SecretWhenUnitSpellCastRestricted",
			Type = "Secret",
		},
		{
			Documentation = {
				"Guarded APIs and events produce secret values based upon supplied unit tokens. Comparisons involving compound unit tokens (eg. 'boss1target') are always secret. This restriction only applies when the player is on an addon-restricted map.",
			},
			Name = "SecretWhenUnitComparisonRestricted",
			Type = "Secret",
		},
		{
			Documentation = {
				"Guarded APIs and events produce secret values when the unit isn't player-controlled.",
			},
			Name = "SecretWhenUnitHealthMaxRestricted",
			Type = "Secret",
		},
		{
			Documentation = {
				"Guarded APIs and events produce secret values when the unit isn't player-controlled or in the party/raid. For compound tokens (eg. 'boss1target'), results are secret if any unit in the chain fails this.",
			},
			Name = "SecretWhenUnitIdentityRestricted",
			Type = "Secret",
		},
		{
			Documentation = {
				"Guarded APIs and events produce secret values when the unit isn't player-controlled. Individual power types may be flagged as never or always secret, which takes priority.",
			},
			Name = "SecretWhenUnitPowerMaxRestricted",
			Type = "Secret",
		},
		{
			Documentation = {
				"Guarded APIs and events produce secret values for power types not explicitly flagged as being never secret, unless the subject unit does not have a power of this type.",
			},
			Name = "SecretWhenUnitPowerRestricted",
			Type = "Secret",
		},
		{
			Documentation = {
				"Guarded APIs and events produce secret values when access to unit auras would generally produce secret values.",
			},
			Name = "SecretWhenUnitStatsRestricted",
			Type = "Secret",
		},
		{
			Documentation = {
				"Guarded APIs and events produce secret values based upon supplied unit tokens. Queries where only one unit token is specified, or where one unit token is the player, their pet, or an ally while the other is a nameplate, boss, target, etc., are generally not secret.",
			},
			Name = "SecretWhenUnitThreatStateRestricted",
			Type = "Secret",
		},
		{
			Documentation = {
				"Guarded APIs and events produce secret values based upon supplied unit tokens. Queries where only one unit token is specified, or where one unit token is the player, their pet, or an ally while the other is a non-boss or nameplate target, are generally not secret.",
			},
			Name = "SecretWhenUnitThreatValuesRestricted",
			Type = "Secret",
		},
	},
}
systems[#systems + 1] = {
	name = "",
	type = "",
	ns = "",
	env = "",
	file = "SecretWrapperConstantsDocumentation.lua",
	hash = "23ee63f68cc10d9125f2cdd221f31a9e229461fec630f50260439c3bb1a632af",
	tables = {
		{
			n = "SecrecyLevel",
			k = "Enumeration",
			fields = {
				{
					n = "NeverSecret",
					t = "SecrecyLevel",
					doc = {
						"Will never yield secret values when queried.",
					},
					EnumValue = 0,
				},
				{
					n = "AlwaysSecret",
					t = "SecrecyLevel",
					doc = {
						"Will always yield secret values when queried.",
					},
					EnumValue = 1,
				},
				{
					n = "ContextuallySecret",
					t = "SecrecyLevel",
					doc = {
						"May yield secret values when queried depending upon factors such as addon restriction states, unit disposition, etc.",
					},
					EnumValue = 2,
				},
			},
			max = 2,
			min = 0,
			num = 3,
		},
	},
}
systems[#systems + 1] = {
	name = "SecureTransfer",
	type = "System",
	ns = "C_SecureTransfer",
	env = "All",
	file = "SecureTransferDocumentation.lua",
	hash = "78e9fb303d662201eeb0dcad54dc2aa62815ef2c81bb1889df0dabd27b3f8c93",
	functions = {
		{
			n = "AcceptTrade",
			k = "Function",
			HasRestrictions = true,
		},
		{
			n = "Cancel",
			k = "Function",
			HasRestrictions = true,
		},
		{
			n = "CompleteHousingPurchase",
			k = "Function",
			HasRestrictions = true,
		},
		{
			n = "CompleteHousingVCPurchase",
			k = "Function",
			HasRestrictions = true,
		},
		{
			n = "GetHousingPurchaseCost",
			k = "Function",
			rets = {
				{
					n = "totalCost",
					t = "number",
					nilable = false,
				},
			},
			HasRestrictions = true,
		},
		{
			n = "GetHousingPurchaseQuantity",
			k = "Function",
			rets = {
				{
					n = "quantity",
					t = "number",
					nilable = false,
				},
			},
			HasRestrictions = true,
		},
		{
			n = "GetHousingVCPurchaseProductID",
			k = "Function",
			rets = {
				{
					n = "productID",
					t = "number",
					nilable = false,
				},
			},
			HasRestrictions = true,
		},
		{
			n = "GetMailInfo",
			k = "Function",
			rets = {
				{
					n = "mailInfo",
					t = "MailInfo",
					nilable = false,
				},
			},
			HasRestrictions = true,
		},
		{
			n = "GetTradePartner",
			k = "Function",
			rets = {
				{
					n = "name",
					t = "cstring",
					nilable = true,
				},
			},
			HasRestrictions = true,
		},
		{
			n = "SendMail",
			k = "Function",
			HasRestrictions = true,
		},
		{
			n = "ShouldShowTradeOfferWarning",
			k = "Function",
			rets = {
				{
					n = "shouldShow",
					t = "bool",
					nilable = false,
				},
			},
			HasRestrictions = true,
		},
	},
	events = {
		{
			n = "SecureTransferCancel",
			k = "Event",
			SynchronousEvent = true,
			literal = "SECURE_TRANSFER_CANCEL",
		},
		{
			n = "SecureTransferConfirmHousingPurchase",
			k = "Event",
			SynchronousEvent = true,
			literal = "SECURE_TRANSFER_CONFIRM_HOUSING_PURCHASE",
		},
		{
			n = "SecureTransferConfirmSendMail",
			k = "Event",
			SynchronousEvent = true,
			literal = "SECURE_TRANSFER_CONFIRM_SEND_MAIL",
		},
		{
			n = "SecureTransferConfirmTradeAccept",
			k = "Event",
			SynchronousEvent = true,
			literal = "SECURE_TRANSFER_CONFIRM_TRADE_ACCEPT",
		},
		{
			n = "SecureTransferHousingCurrencyPurchaseConfirmation",
			k = "Event",
			SynchronousEvent = true,
			literal = "SECURE_TRANSFER_HOUSING_CURRENCY_PURCHASE_CONFIRMATION",
		},
	},
	tables = {
		{
			n = "MailInfo",
			k = "Structure",
			fields = {
				{
					n = "target",
					t = "string",
					nilable = false,
				},
				{
					n = "sendMoney",
					t = "number",
					nilable = false,
				},
			},
		},
	},
}
systems[#systems + 1] = {
	name = "SettingsUtil",
	type = "System",
	ns = "C_SettingsUtil",
	env = "All",
	file = "SettingsUtilDocumentation.lua",
	hash = "8d44c8633cb0eb0010ba0154003fe102815426f100df138a75d01ec6ec20992a",
	functions = {
		{
			n = "NotifySettingsLoaded",
			k = "Function",
		},
		{
			n = "OpenSettingsPanel",
			k = "Function",
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "openToCategoryID",
					t = "number",
					nilable = true,
				},
				{
					n = "scrollToElementName",
					t = "stringView",
					nilable = true,
				},
			},
			HasRestrictions = true,
		},
	},
	events = {
		{
			n = "SettingsLoaded",
			k = "Event",
			SynchronousEvent = true,
			literal = "SETTINGS_LOADED",
		},
		{
			n = "SettingsPanelOpen",
			k = "Event",
			payload = {
				{
					n = "openToCategoryID",
					t = "number",
					nilable = true,
				},
				{
					n = "scrollToElementName",
					t = "stringView",
					nilable = true,
				},
			},
			SynchronousEvent = true,
			literal = "SETTINGS_PANEL_OPEN",
		},
	},
}
systems[#systems + 1] = {
	name = "",
	type = "",
	ns = "",
	env = "",
	file = "SharedScriptObjectModelLightDocumentation.lua",
	hash = "0a4272b3064ba955dfac70be0d519cf01570244e345ce45e9212dfd632afbab3",
	tables = {
		{
			n = "ModelLight",
			k = "Structure",
			fields = {
				{
					n = "omnidirectional",
					t = "bool",
					nilable = false,
					def = false,
				},
				{
					n = "point",
					t = "vector3",
					nilable = false,
					mix = "Vector3DMixin",
					doc = {
						"If this light is omnidirectional then point refers to a position, otherwise it refers to a direction",
					},
				},
				{
					n = "ambientIntensity",
					t = "number",
					nilable = false,
					def = 0,
				},
				{
					n = "ambientColor",
					t = "colorRGB",
					nilable = true,
					mix = "ColorMixin",
				},
				{
					n = "diffuseIntensity",
					t = "number",
					nilable = false,
					def = 0,
				},
				{
					n = "diffuseColor",
					t = "colorRGB",
					nilable = true,
					mix = "ColorMixin",
				},
			},
		},
	},
}
systems[#systems + 1] = {
	name = "",
	type = "",
	ns = "",
	env = "",
	file = "SharedScriptObjectNamePlateFrameDocumentation.lua",
	hash = "93cb5fd702eeae7b21a11d8bc88e8ea90782e82de8f7b95f751c253f1f1b34f9",
}
systems[#systems + 1] = {
	name = "",
	type = "",
	ns = "",
	env = "",
	file = "SharedScriptObjectUnitPositionFrameDocumentation.lua",
	hash = "fb9b5a1b5d5f6780e59bc0b3f1ed06febb307cdad92413bc0dc2bd908cd13bca",
	tables = {
		{
			n = "PingTextureType",
			k = "Enumeration",
			fields = {
				{
					n = "Center",
					t = "PingTextureType",
					EnumValue = 0,
				},
				{
					n = "Expand",
					t = "PingTextureType",
					EnumValue = 1,
				},
				{
					n = "Rotation",
					t = "PingTextureType",
					EnumValue = 2,
				},
			},
			max = 2,
			min = 0,
			num = 3,
		},
	},
}
systems[#systems + 1] = {
	name = "SharedTraits",
	type = "System",
	ns = "C_Traits",
	env = "All",
	file = "SharedTraitsDocumentation.lua",
	hash = "ea60282e77ec208b96218dfaae6e076826510714204b36a7b7aff9c2aa4187e1",
	functions = {
		{
			n = "CanEditConfig",
			k = "Function",
			doc = {
				"Returns whether the player can make changes to the specified talent config.",
			},
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "configID",
					t = "number",
					nilable = false,
				},
			},
			rets = {
				{
					n = "canEdit",
					t = "bool",
					nilable = false,
				},
				{
					n = "errorMessage",
					t = "cstring",
					nilable = false,
					doc = {
						"If canEdit is false, this will be filled out with text explaining why the player can not make changes.",
					},
				},
			},
		},
		{
			n = "CanPurchaseRank",
			k = "Function",
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "configID",
					t = "number",
					nilable = false,
				},
				{
					n = "nodeID",
					t = "number",
					nilable = false,
				},
				{
					n = "nodeEntryID",
					t = "number",
					nilable = false,
				},
			},
			rets = {
				{
					n = "canPurchase",
					t = "bool",
					nilable = false,
				},
			},
		},
		{
			n = "CanRefundRank",
			k = "Function",
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "configID",
					t = "number",
					nilable = false,
				},
				{
					n = "nodeID",
					t = "number",
					nilable = false,
				},
			},
			rets = {
				{
					n = "canRefund",
					t = "bool",
					nilable = false,
				},
			},
		},
		{
			n = "CascadeRepurchaseRanks",
			k = "Function",
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "configID",
					t = "number",
					nilable = false,
				},
				{
					n = "nodeID",
					t = "number",
					nilable = false,
				},
				{
					n = "entryID",
					t = "number",
					nilable = true,
				},
			},
			rets = {
				{
					n = "success",
					t = "bool",
					nilable = false,
				},
			},
		},
		{
			n = "ClearCascadeRepurchaseHistory",
			k = "Function",
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "configID",
					t = "number",
					nilable = false,
				},
			},
		},
		{
			n = "CloseTraitSystemInteraction",
			k = "Function",
		},
		{
			n = "CommitConfig",
			k = "Function",
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "configID",
					t = "number",
					nilable = false,
				},
			},
			rets = {
				{
					n = "success",
					t = "bool",
					nilable = false,
				},
			},
		},
		{
			n = "ConfigHasStagedChanges",
			k = "Function",
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "configID",
					t = "number",
					nilable = false,
				},
			},
			rets = {
				{
					n = "hasChanges",
					t = "bool",
					nilable = false,
				},
			},
		},
		{
			n = "GenerateImportString",
			k = "Function",
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "configID",
					t = "number",
					nilable = false,
				},
			},
			rets = {
				{
					n = "importString",
					t = "string",
					nilable = false,
				},
			},
		},
		{
			n = "GenerateInspectImportString",
			k = "Function",
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "target",
					t = "cstring",
					nilable = false,
				},
			},
			rets = {
				{
					n = "importString",
					t = "string",
					nilable = false,
				},
			},
		},
		{
			n = "GetConditionInfo",
			k = "Function",
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "configID",
					t = "number",
					nilable = false,
				},
				{
					n = "condID",
					t = "number",
					nilable = false,
				},
			},
			rets = {
				{
					n = "condInfo",
					t = "TraitCondInfo",
					nilable = false,
				},
			},
			mayReturnNothing = true,
		},
		{
			n = "GetConfigIDBySystemID",
			k = "Function",
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "systemID",
					t = "number",
					nilable = false,
				},
			},
			rets = {
				{
					n = "configID",
					t = "number",
					nilable = false,
				},
			},
			mayReturnNothing = true,
		},
		{
			n = "GetConfigIDByTreeID",
			k = "Function",
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "treeID",
					t = "number",
					nilable = false,
				},
			},
			rets = {
				{
					n = "configID",
					t = "number",
					nilable = false,
				},
			},
			mayReturnNothing = true,
		},
		{
			n = "GetConfigInfo",
			k = "Function",
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "configID",
					t = "number",
					nilable = false,
				},
			},
			rets = {
				{
					n = "configInfo",
					t = "TraitConfigInfo",
					nilable = false,
				},
			},
			mayReturnNothing = true,
		},
		{
			n = "GetConfigVariationID",
			k = "Function",
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "systemID",
					t = "number",
					nilable = false,
				},
			},
			rets = {
				{
					n = "variationID",
					t = "number",
					nilable = false,
				},
			},
			mayReturnNothing = true,
		},
		{
			n = "GetConfigsByType",
			k = "Function",
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "configType",
					t = "TraitConfigType",
					nilable = false,
				},
			},
			rets = {
				{
					n = "configIDs",
					t = "table",
					nilable = false,
					it = "number",
				},
			},
		},
		{
			n = "GetDefinitionInfo",
			k = "Function",
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "definitionID",
					t = "number",
					nilable = false,
				},
			},
			rets = {
				{
					n = "definitionInfo",
					t = "TraitDefinitionInfo",
					nilable = false,
				},
			},
			mayReturnNothing = true,
		},
		{
			n = "GetEntryInfo",
			k = "Function",
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "configID",
					t = "number",
					nilable = false,
				},
				{
					n = "entryID",
					t = "number",
					nilable = false,
				},
			},
			rets = {
				{
					n = "entryInfo",
					t = "TraitEntryInfo",
					nilable = false,
				},
			},
			mayReturnNothing = true,
		},
		{
			n = "GetIncreasedTraitData",
			k = "Function",
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "nodeID",
					t = "number",
					nilable = false,
				},
				{
					n = "entryID",
					t = "number",
					nilable = false,
				},
			},
			rets = {
				{
					n = "itemName",
					t = "table",
					nilable = false,
					it = "IncreasedTraitData",
				},
			},
			mayReturnNothing = true,
		},
		{
			n = "GetLoadoutSerializationVersion",
			k = "Function",
			rets = {
				{
					n = "serializationVersion",
					t = "number",
					nilable = false,
				},
			},
		},
		{
			n = "GetNodeCost",
			k = "Function",
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "configID",
					t = "number",
					nilable = false,
				},
				{
					n = "nodeID",
					t = "number",
					nilable = false,
				},
			},
			rets = {
				{
					n = "costs",
					t = "table",
					nilable = false,
					it = "TraitCurrencyCost",
				},
			},
		},
		{
			n = "GetNodeInfo",
			k = "Function",
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "configID",
					t = "number",
					nilable = false,
				},
				{
					n = "nodeID",
					t = "number",
					nilable = false,
				},
			},
			rets = {
				{
					n = "nodeInfo",
					t = "TraitNodeInfo",
					nilable = false,
				},
			},
			mayReturnNothing = true,
		},
		{
			n = "GetStagedChanges",
			k = "Function",
			doc = {
				"Returns IDs of Trait Nodes with pending changes, grouped by the type of change; Returns nothing if there are no pending changes",
			},
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "configID",
					t = "number",
					nilable = false,
				},
			},
			rets = {
				{
					n = "nodeIDsWithPurchases",
					t = "table",
					nilable = false,
					it = "number",
				},
				{
					n = "nodeIDsWithRefunds",
					t = "table",
					nilable = false,
					it = "number",
				},
				{
					n = "nodeIDsWithSelectionSwaps",
					t = "table",
					nilable = false,
					it = "number",
					doc = {
						"Selection nodes that had a previously committed selected entry, and now have a different selected entry pending",
					},
				},
			},
			mayReturnNothing = true,
		},
		{
			n = "GetStagedChangesCost",
			k = "Function",
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "configID",
					t = "number",
					nilable = false,
				},
			},
			rets = {
				{
					n = "costs",
					t = "table",
					nilable = false,
					it = "TraitCurrencyCost",
				},
			},
		},
		{
			n = "GetSubTreeInfo",
			k = "Function",
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "configID",
					t = "number",
					nilable = false,
				},
				{
					n = "subTreeID",
					t = "number",
					nilable = false,
				},
			},
			rets = {
				{
					n = "subTreeInfo",
					t = "TraitSubTreeInfo",
					nilable = false,
				},
			},
			mayReturnNothing = true,
		},
		{
			n = "GetSystemIDByTreeID",
			k = "Function",
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "treeID",
					t = "number",
					nilable = false,
				},
			},
			rets = {
				{
					n = "systemID",
					t = "number",
					nilable = false,
				},
			},
			mayReturnNothing = true,
		},
		{
			n = "GetTraitCurrencyInfo",
			k = "Function",
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "traitCurrencyID",
					t = "number",
					nilable = false,
				},
			},
			rets = {
				{
					n = "flags",
					t = "number",
					nilable = false,
				},
				{
					n = "type",
					t = "number",
					nilable = false,
				},
				{
					n = "currencyTypesID",
					t = "number",
					nilable = true,
				},
				{
					n = "icon",
					t = "number",
					nilable = true,
				},
			},
		},
		{
			n = "GetTraitDescription",
			k = "Function",
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "entryID",
					t = "number",
					nilable = false,
				},
				{
					n = "rank",
					t = "number",
					nilable = false,
				},
			},
			rets = {
				{
					n = "description",
					t = "string",
					nilable = false,
				},
			},
			mayReturnNothing = true,
		},
		{
			n = "GetTraitSystemFlags",
			k = "Function",
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "configID",
					t = "number",
					nilable = false,
				},
			},
			rets = {
				{
					n = "flags",
					t = "number",
					nilable = false,
				},
			},
			mayReturnNothing = true,
		},
		{
			n = "GetTraitSystemWidgetSetID",
			k = "Function",
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "configID",
					t = "number",
					nilable = false,
				},
			},
			rets = {
				{
					n = "uiWidgetSetID",
					t = "number",
					nilable = false,
				},
			},
			mayReturnNothing = true,
		},
		{
			n = "GetTreeCurrencyInfo",
			k = "Function",
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "configID",
					t = "number",
					nilable = false,
				},
				{
					n = "treeID",
					t = "number",
					nilable = false,
				},
				{
					n = "excludeStagedChanges",
					t = "bool",
					nilable = false,
				},
			},
			rets = {
				{
					n = "treeCurrencyInfo",
					t = "table",
					nilable = false,
					it = "TreeCurrencyInfo",
				},
			},
		},
		{
			n = "GetTreeHash",
			k = "Function",
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "treeID",
					t = "number",
					nilable = false,
				},
			},
			rets = {
				{
					n = "result",
					t = "table",
					nilable = false,
					it = "number",
				},
			},
		},
		{
			n = "GetTreeInfo",
			k = "Function",
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "configID",
					t = "number",
					nilable = false,
				},
				{
					n = "treeID",
					t = "number",
					nilable = false,
				},
			},
			rets = {
				{
					n = "treeInfo",
					t = "TraitTreeInfo",
					nilable = false,
				},
			},
			mayReturnNothing = true,
		},
		{
			n = "GetTreeNodes",
			k = "Function",
			doc = {
				"Returns a list of nodeIDs, sorted ascending, for a given treeID. Contains nodes for all class specializations.",
			},
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "treeID",
					t = "number",
					nilable = false,
				},
			},
			rets = {
				{
					n = "nodeIDs",
					t = "table",
					nilable = false,
					it = "number",
				},
			},
			mayReturnNothing = true,
		},
		{
			n = "HasValidInspectData",
			k = "Function",
			rets = {
				{
					n = "hasValidInspectData",
					t = "bool",
					nilable = false,
				},
			},
		},
		{
			n = "IsReadyForCommit",
			k = "Function",
			rets = {
				{
					n = "isReadyForCommit",
					t = "bool",
					nilable = false,
				},
			},
		},
		{
			n = "PurchaseAllRanks",
			k = "Function",
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "configID",
					t = "number",
					nilable = false,
				},
				{
					n = "nodeID",
					t = "number",
					nilable = false,
				},
				{
					n = "ignoreCost",
					t = "bool",
					nilable = false,
				},
			},
			rets = {
				{
					n = "success",
					t = "bool",
					nilable = false,
				},
			},
		},
		{
			n = "PurchaseRank",
			k = "Function",
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "configID",
					t = "number",
					nilable = false,
				},
				{
					n = "nodeID",
					t = "number",
					nilable = false,
				},
			},
			rets = {
				{
					n = "success",
					t = "bool",
					nilable = false,
				},
			},
		},
		{
			n = "RefundAllRanks",
			k = "Function",
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "configID",
					t = "number",
					nilable = false,
				},
				{
					n = "nodeID",
					t = "number",
					nilable = false,
				},
			},
			rets = {
				{
					n = "success",
					t = "bool",
					nilable = false,
				},
			},
		},
		{
			n = "RefundRank",
			k = "Function",
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "configID",
					t = "number",
					nilable = false,
				},
				{
					n = "nodeID",
					t = "number",
					nilable = false,
				},
				{
					n = "clearEdges",
					t = "bool",
					nilable = true,
				},
			},
			rets = {
				{
					n = "success",
					t = "bool",
					nilable = false,
				},
			},
		},
		{
			n = "ResetTree",
			k = "Function",
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "configID",
					t = "number",
					nilable = false,
				},
				{
					n = "treeID",
					t = "number",
					nilable = false,
				},
			},
			rets = {
				{
					n = "success",
					t = "bool",
					nilable = false,
				},
			},
		},
		{
			n = "ResetTreeByCurrency",
			k = "Function",
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "configID",
					t = "number",
					nilable = false,
				},
				{
					n = "treeID",
					t = "number",
					nilable = false,
				},
				{
					n = "traitCurrencyID",
					t = "number",
					nilable = false,
				},
			},
			rets = {
				{
					n = "success",
					t = "bool",
					nilable = false,
				},
			},
		},
		{
			n = "RollbackConfig",
			k = "Function",
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "configID",
					t = "number",
					nilable = false,
				},
			},
			rets = {
				{
					n = "success",
					t = "bool",
					nilable = false,
				},
			},
		},
		{
			n = "SetSelection",
			k = "Function",
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "configID",
					t = "number",
					nilable = false,
				},
				{
					n = "nodeID",
					t = "number",
					nilable = false,
				},
				{
					n = "nodeEntryID",
					t = "number",
					nilable = true,
				},
				{
					n = "clearEdges",
					t = "bool",
					nilable = true,
				},
			},
			rets = {
				{
					n = "success",
					t = "bool",
					nilable = false,
				},
			},
		},
		{
			n = "StageConfig",
			k = "Function",
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "configID",
					t = "number",
					nilable = false,
				},
			},
			rets = {
				{
					n = "success",
					t = "bool",
					nilable = false,
				},
			},
		},
		{
			n = "TalentTestUnlearnSpells",
			k = "Function",
		},
		{
			n = "TryPurchaseAllRanks",
			k = "Function",
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "configID",
					t = "number",
					nilable = false,
				},
				{
					n = "nodeID",
					t = "number",
					nilable = false,
				},
			},
			rets = {
				{
					n = "success",
					t = "bool",
					nilable = false,
				},
			},
		},
		{
			n = "TryPurchaseToNode",
			k = "Function",
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "configID",
					t = "number",
					nilable = false,
				},
				{
					n = "nodeID",
					t = "number",
					nilable = false,
				},
			},
			rets = {
				{
					n = "success",
					t = "bool",
					nilable = false,
				},
			},
		},
		{
			n = "TryRefundToNode",
			k = "Function",
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "configID",
					t = "number",
					nilable = false,
				},
				{
					n = "nodeID",
					t = "number",
					nilable = false,
				},
				{
					n = "entryID",
					t = "number",
					nilable = false,
				},
			},
			rets = {
				{
					n = "success",
					t = "bool",
					nilable = false,
				},
			},
		},
	},
	events = {
		{
			n = "ConfigCommitFailed",
			k = "Event",
			payload = {
				{
					n = "configID",
					t = "number",
					nilable = false,
				},
			},
			SynchronousEvent = true,
			literal = "CONFIG_COMMIT_FAILED",
		},
		{
			n = "TraitCondInfoChanged",
			k = "Event",
			payload = {
				{
					n = "condID",
					t = "number",
					nilable = false,
				},
			},
			SynchronousEvent = true,
			literal = "TRAIT_COND_INFO_CHANGED",
		},
		{
			n = "TraitConfigCreated",
			k = "Event",
			payload = {
				{
					n = "configInfo",
					t = "TraitConfigInfo",
					nilable = false,
				},
			},
			SynchronousEvent = true,
			literal = "TRAIT_CONFIG_CREATED",
		},
		{
			n = "TraitConfigDeleted",
			k = "Event",
			payload = {
				{
					n = "configID",
					t = "number",
					nilable = false,
				},
			},
			SynchronousEvent = true,
			literal = "TRAIT_CONFIG_DELETED",
		},
		{
			n = "TraitConfigListUpdated",
			k = "Event",
			SynchronousEvent = true,
			literal = "TRAIT_CONFIG_LIST_UPDATED",
		},
		{
			n = "TraitConfigUpdated",
			k = "Event",
			payload = {
				{
					n = "configID",
					t = "number",
					nilable = false,
				},
			},
			SynchronousEvent = true,
			literal = "TRAIT_CONFIG_UPDATED",
		},
		{
			n = "TraitNodeChanged",
			k = "Event",
			payload = {
				{
					n = "nodeID",
					t = "number",
					nilable = false,
				},
			},
			SynchronousEvent = true,
			literal = "TRAIT_NODE_CHANGED",
		},
		{
			n = "TraitNodeChangedPartial",
			k = "Event",
			payload = {
				{
					n = "ID",
					t = "number",
					nilable = false,
				},
				{
					n = "info",
					t = "TraitNodeInfoPartial",
					nilable = false,
				},
			},
			SynchronousEvent = true,
			literal = "TRAIT_NODE_CHANGED_PARTIAL",
		},
		{
			n = "TraitNodeEntryUpdated",
			k = "Event",
			payload = {
				{
					n = "nodeEntryID",
					t = "number",
					nilable = false,
				},
			},
			SynchronousEvent = true,
			literal = "TRAIT_NODE_ENTRY_UPDATED",
		},
		{
			n = "TraitSubTreeChanged",
			k = "Event",
			payload = {
				{
					n = "subTreeID",
					t = "number",
					nilable = false,
				},
			},
			SynchronousEvent = true,
			literal = "TRAIT_SUB_TREE_CHANGED",
		},
		{
			n = "TraitSystemInteractionStarted",
			k = "Event",
			payload = {
				{
					n = "treeID",
					t = "number",
					nilable = false,
				},
			},
			SynchronousEvent = true,
			literal = "TRAIT_SYSTEM_INTERACTION_STARTED",
		},
		{
			n = "TraitSystemNpcClosed",
			k = "Event",
			SynchronousEvent = true,
			literal = "TRAIT_SYSTEM_NPC_CLOSED",
		},
		{
			n = "TraitTreeChanged",
			k = "Event",
			payload = {
				{
					n = "treeID",
					t = "number",
					nilable = false,
				},
			},
			SynchronousEvent = true,
			literal = "TRAIT_TREE_CHANGED",
		},
		{
			n = "TraitTreeCurrencyInfoUpdated",
			k = "Event",
			payload = {
				{
					n = "treeID",
					t = "number",
					nilable = false,
				},
			},
			SynchronousEvent = true,
			literal = "TRAIT_TREE_CURRENCY_INFO_UPDATED",
		},
		{
			n = "TryPurchaseToNodePartialSuccess",
			k = "Event",
			payload = {
				{
					n = "nodeFinishedOn",
					t = "number",
					nilable = false,
				},
			},
			SynchronousEvent = true,
			literal = "TRY_PURCHASE_TO_NODE_PARTIAL_SUCCESS",
		},
	},
	tables = {
		{
			n = "IncreasedTraitData",
			k = "Structure",
			fields = {
				{
					n = "itemNameIncreasing",
					t = "string",
					nilable = false,
				},
				{
					n = "itemQualityIncreasing",
					t = "ItemQuality",
					nilable = false,
				},
				{
					n = "numPointsIncreased",
					t = "number",
					nilable = false,
				},
			},
		},
		{
			n = "TraitCondInfo",
			k = "Structure",
			fields = {
				{
					n = "condID",
					t = "number",
					nilable = false,
				},
				{
					n = "ranksGranted",
					t = "number",
					nilable = true,
				},
				{
					n = "isAlwaysMet",
					t = "bool",
					nilable = false,
				},
				{
					n = "isMet",
					t = "bool",
					nilable = false,
					doc = {
						"True if the source for the condition has been fulfilled.",
					},
				},
				{
					n = "isGate",
					t = "bool",
					nilable = false,
				},
				{
					n = "isSufficient",
					t = "bool",
					nilable = false,
					doc = {
						"True if meeting the requirements for the condition means any nodes using this condition are considered fulfilled if the condition is met.",
					},
				},
				{
					n = "type",
					t = "number",
					nilable = false,
					doc = {
						"The value from the TraitConditionType enum the condition uses.",
					},
				},
				{
					n = "questID",
					t = "number",
					nilable = true,
				},
				{
					n = "achievementID",
					t = "number",
					nilable = true,
				},
				{
					n = "specSetID",
					t = "number",
					nilable = true,
				},
				{
					n = "playerLevel",
					t = "number",
					nilable = true,
				},
				{
					n = "traitCurrencyID",
					t = "number",
					nilable = true,
				},
				{
					n = "spentAmountRequired",
					t = "number",
					nilable = true,
				},
				{
					n = "tooltipFormat",
					t = "string",
					nilable = true,
				},
				{
					n = "traitCondAccountElementID",
					t = "number",
					nilable = true,
				},
			},
		},
		{
			n = "TraitConfigInfo",
			k = "Structure",
			fields = {
				{
					n = "ID",
					t = "number",
					nilable = false,
				},
				{
					n = "type",
					t = "TraitConfigType",
					nilable = false,
				},
				{
					n = "name",
					t = "string",
					nilable = false,
				},
				{
					n = "treeIDs",
					t = "table",
					nilable = false,
					it = "number",
				},
				{
					n = "usesSharedActionBars",
					t = "bool",
					nilable = false,
				},
			},
		},
		{
			n = "TraitCurrencyCost",
			k = "Structure",
			fields = {
				{
					n = "ID",
					t = "number",
					nilable = false,
				},
				{
					n = "amount",
					t = "number",
					nilable = false,
				},
			},
		},
		{
			n = "TraitDefinitionInfo",
			k = "Structure",
			fields = {
				{
					n = "spellID",
					t = "number",
					nilable = true,
				},
				{
					n = "overrideName",
					t = "string",
					nilable = true,
				},
				{
					n = "overrideSubtext",
					t = "string",
					nilable = true,
				},
				{
					n = "overrideDescription",
					t = "string",
					nilable = true,
				},
				{
					n = "overrideIcon",
					t = "number",
					nilable = true,
				},
				{
					n = "overriddenSpellID",
					t = "number",
					nilable = true,
				},
				{
					n = "subType",
					t = "TraitDefinitionSubType",
					nilable = true,
				},
			},
		},
		{
			n = "TraitEntryInfo",
			k = "Structure",
			fields = {
				{
					n = "definitionID",
					t = "number",
					nilable = true,
					doc = {
						"Nil on SubTreeSelection Node Entries",
					},
				},
				{
					n = "subTreeID",
					t = "number",
					nilable = true,
					doc = {
						"Populated only on SubTreeSelection Node Entries; This is the SubTree that is activated if this Entry is chosen",
					},
				},
				{
					n = "type",
					t = "TraitNodeEntryType",
					nilable = false,
				},
				{
					n = "maxRanks",
					t = "number",
					nilable = false,
				},
				{
					n = "isAvailable",
					t = "bool",
					nilable = false,
				},
				{
					n = "isDisplayError",
					t = "bool",
					nilable = false,
					doc = {
						"True if this entry fails the TRAIT_CONDITION_TYPE_DISPLAY_ERROR condition check. Used to communicate a problem with the node to the player (e.g. A prerequisite node has not been purchased.) but will not prevent the player from spending points on the node.",
					},
				},
				{
					n = "conditionIDs",
					t = "table",
					nilable = false,
					it = "number",
				},
			},
		},
		{
			n = "TraitEntryRankInfo",
			k = "Structure",
			fields = {
				{
					n = "entryID",
					t = "number",
					nilable = false,
				},
				{
					n = "rank",
					t = "number",
					nilable = false,
				},
			},
		},
		{
			n = "TraitGateInfo",
			k = "Structure",
			fields = {
				{
					n = "topLeftNodeID",
					t = "number",
					nilable = false,
				},
				{
					n = "conditionID",
					t = "number",
					nilable = false,
				},
			},
		},
		{
			n = "TraitNodeInfo",
			k = "Structure",
			fields = {
				{
					n = "ID",
					t = "number",
					nilable = false,
				},
				{
					n = "posX",
					t = "number",
					nilable = false,
				},
				{
					n = "posY",
					t = "number",
					nilable = false,
				},
				{
					n = "flags",
					t = "number",
					nilable = false,
				},
				{
					n = "entryIDs",
					t = "table",
					nilable = false,
					it = "number",
				},
				{
					n = "entryIDsWithCommittedRanks",
					t = "table",
					nilable = false,
					it = "number",
				},
				{
					n = "canPurchaseRank",
					t = "bool",
					nilable = false,
				},
				{
					n = "canRefundRank",
					t = "bool",
					nilable = false,
				},
				{
					n = "isAvailable",
					t = "bool",
					nilable = false,
				},
				{
					n = "isVisible",
					t = "bool",
					nilable = false,
				},
				{
					n = "isDisplayError",
					t = "bool",
					nilable = false,
					doc = {
						"True if this node fails the TRAIT_CONDITION_TYPE_DISPLAY_ERROR condition check. Used to communicate a problem with the node to the player (e.g. A prerequisite node has not been purchased.) but will not prevent the player from spending points on the node.",
					},
				},
				{
					n = "ranksPurchased",
					t = "number",
					nilable = false,
				},
				{
					n = "ranksIncreased",
					t = "number",
					nilable = false,
				},
				{
					n = "entryIDToRanksIncreased",
					t = "LuaValueVariant",
					nilable = false,
					doc = {
						"A map of the entry IDs on this node to the number of ranks increased. This covers all entries on the node, which is important in the case of selection nodes where we have more than one option that could be increased.",
					},
				},
				{
					n = "activeRank",
					t = "number",
					nilable = false,
				},
				{
					n = "currentRank",
					t = "number",
					nilable = false,
				},
				{
					n = "activeEntry",
					t = "TraitEntryRankInfo",
					nilable = true,
				},
				{
					n = "nextEntry",
					t = "TraitEntryRankInfo",
					nilable = true,
				},
				{
					n = "maxRanks",
					t = "number",
					nilable = false,
				},
				{
					n = "totalMaxRanks",
					t = "number",
					nilable = false,
				},
				{
					n = "type",
					t = "TraitNodeType",
					nilable = false,
				},
				{
					n = "visibleEdges",
					t = "table",
					nilable = false,
					it = "TraitOutEdgeInfo",
				},
				{
					n = "meetsEdgeRequirements",
					t = "bool",
					nilable = false,
				},
				{
					n = "groupIDs",
					t = "table",
					nilable = false,
					it = "number",
				},
				{
					n = "conditionIDs",
					t = "table",
					nilable = false,
					it = "number",
				},
				{
					n = "isCascadeRepurchasable",
					t = "bool",
					nilable = false,
				},
				{
					n = "cascadeRepurchaseEntryID",
					t = "number",
					nilable = true,
				},
				{
					n = "subTreeID",
					t = "number",
					nilable = true,
					doc = {
						"The SubTree this Node belongs to; Nil if it is not part of a SubTree",
					},
				},
				{
					n = "subTreeActive",
					t = "bool",
					nilable = true,
					doc = {
						"True if this node has a SubTreeID, and the SubTree is chosen or staged; May be nil if not part of a SubTree at all",
					},
				},
			},
		},
		{
			n = "TraitNodeInfoPartial",
			k = "Structure",
			fields = {
				{
					n = "canPurchaseRank",
					t = "bool",
					nilable = true,
				},
				{
					n = "canRefundRank",
					t = "bool",
					nilable = true,
				},
				{
					n = "isAvailable",
					t = "bool",
					nilable = true,
				},
				{
					n = "isVisible",
					t = "bool",
					nilable = true,
				},
				{
					n = "ranksPurchased",
					t = "number",
					nilable = true,
				},
				{
					n = "activeRank",
					t = "number",
					nilable = true,
				},
				{
					n = "currentRank",
					t = "number",
					nilable = true,
				},
				{
					n = "meetsEdgeRequirements",
					t = "bool",
					nilable = true,
				},
				{
					n = "isCascadeRepurchasable",
					t = "bool",
					nilable = true,
				},
				{
					n = "activeEntryID",
					t = "number",
					nilable = true,
				},
				{
					n = "subTreeActive",
					t = "bool",
					nilable = true,
				},
			},
		},
		{
			n = "TraitOutEdgeInfo",
			k = "Structure",
			fields = {
				{
					n = "targetNode",
					t = "number",
					nilable = false,
				},
				{
					n = "type",
					t = "number",
					nilable = false,
				},
				{
					n = "visualStyle",
					t = "number",
					nilable = false,
				},
				{
					n = "isActive",
					t = "bool",
					nilable = false,
				},
			},
		},
		{
			n = "TraitSubTreeInfo",
			k = "Structure",
			fields = {
				{
					n = "ID",
					t = "number",
					nilable = false,
				},
				{
					n = "name",
					t = "string",
					nilable = true,
				},
				{
					n = "description",
					t = "string",
					nilable = true,
				},
				{
					n = "iconElementID",
					t = "textureAtlas",
					nilable = true,
				},
				{
					n = "traitCurrencyID",
					t = "number",
					nilable = true,
				},
				{
					n = "isActive",
					t = "bool",
					nilable = false,
				},
				{
					n = "subTreeSelectionNodeIDs",
					t = "table",
					nilable = false,
					it = "number",
					doc = {
						"SubTreeSelectionNodes whose choice entries include this SubTree",
					},
				},
				{
					n = "posX",
					t = "number",
					nilable = false,
					doc = {
						"Center X node position calculated from the posX values of all of this subTree's nodes",
					},
				},
				{
					n = "posY",
					t = "number",
					nilable = false,
					doc = {
						"Topmost Y node position taken from the posY values of all of this subTree's nodes",
					},
				},
			},
		},
		{
			n = "TraitTreeInfo",
			k = "Structure",
			fields = {
				{
					n = "ID",
					t = "number",
					nilable = false,
				},
				{
					n = "gates",
					t = "table",
					nilable = false,
					it = "TraitGateInfo",
				},
				{
					n = "hideSingleRankNumbers",
					t = "bool",
					nilable = false,
				},
				{
					n = "rootNodeID",
					t = "number",
					nilable = true,
				},
				{
					n = "uiTextureKit",
					t = "textureKit",
					nilable = false,
				},
				{
					n = "titleText",
					t = "string",
					nilable = true,
				},
			},
		},
		{
			n = "TreeCurrencyInfo",
			k = "Structure",
			fields = {
				{
					n = "traitCurrencyID",
					t = "number",
					nilable = false,
				},
				{
					n = "quantity",
					t = "number",
					nilable = false,
				},
				{
					n = "maxQuantity",
					t = "number",
					nilable = true,
				},
				{
					n = "spent",
					t = "number",
					nilable = false,
				},
			},
		},
	},
}
systems[#systems + 1] = {
	name = "",
	type = "",
	ns = "",
	env = "",
	file = "SharedTraitsEnumsDocumentation.lua",
	hash = "eedcc1370651dc8da4a2a3c1fae6ebe17424f187b6c4cc0e142a54e518a3945b",
}
systems[#systems + 1] = {
	name = "SimpleAnimAPI",
	type = "ScriptObject",
	ns = "",
	env = "All",
	file = "SimpleAnimAPIDocumentation.lua",
	hash = "7604becddc5268b857bd5fc20a1242151b5680a91cc208733ea1f49df7af625f",
	functions = {
		{
			n = "GetDuration",
			k = "Function",
			rets = {
				{
					n = "durationSec",
					t = "number",
					nilable = false,
				},
			},
		},
		{
			n = "GetElapsed",
			k = "Function",
			rets = {
				{
					n = "elapsedSec",
					t = "number",
					nilable = false,
				},
			},
		},
		{
			n = "GetEndDelay",
			k = "Function",
			rets = {
				{
					n = "delaySec",
					t = "number",
					nilable = false,
				},
			},
		},
		{
			n = "GetOrder",
			k = "Function",
			rets = {
				{
					n = "order",
					t = "number",
					nilable = false,
				},
			},
		},
		{
			n = "GetProgress",
			k = "Function",
			rets = {
				{
					n = "progress",
					t = "number",
					nilable = false,
				},
			},
		},
		{
			n = "GetRegionParent",
			k = "Function",
			rets = {
				{
					n = "region",
					t = "CScriptObject",
					nilable = false,
				},
			},
		},
		{
			n = "GetScript",
			k = "Function",
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "scriptTypeName",
					t = "cstring",
					nilable = false,
				},
				{
					n = "bindingType",
					t = "number",
					nilable = true,
				},
			},
			rets = {
				{
					n = "script",
					t = "luaFunction",
					nilable = false,
				},
			},
			ConstSecretAccessor = true,
		},
		{
			n = "GetSmoothProgress",
			k = "Function",
			rets = {
				{
					n = "progress",
					t = "number",
					nilable = false,
				},
			},
		},
		{
			n = "GetSmoothing",
			k = "Function",
			rets = {
				{
					n = "weights",
					t = "SmoothingType",
					nilable = false,
				},
			},
		},
		{
			n = "GetStartDelay",
			k = "Function",
			rets = {
				{
					n = "delaySec",
					t = "number",
					nilable = false,
				},
			},
		},
		{
			n = "GetTarget",
			k = "Function",
			rets = {
				{
					n = "target",
					t = "CScriptObject",
					nilable = false,
				},
			},
		},
		{
			n = "HasScript",
			k = "Function",
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "scriptName",
					t = "cstring",
					nilable = false,
				},
			},
			rets = {
				{
					n = "hasScript",
					t = "bool",
					nilable = false,
				},
			},
			ConstSecretAccessor = true,
			SecretReturnsForAspect = {
				"Enum.SecretAspect.ObjectType",
			},
		},
		{
			n = "HookScript",
			k = "Function",
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "scriptTypeName",
					t = "cstring",
					nilable = false,
				},
				{
					n = "script",
					t = "luaFunction",
					nilable = false,
				},
				{
					n = "bindingType",
					t = "number",
					nilable = true,
				},
			},
		},
		{
			n = "IsDelaying",
			k = "Function",
			rets = {
				{
					n = "isDelaying",
					t = "bool",
					nilable = false,
				},
			},
		},
		{
			n = "IsDone",
			k = "Function",
			rets = {
				{
					n = "isDone",
					t = "bool",
					nilable = false,
				},
			},
		},
		{
			n = "IsPaused",
			k = "Function",
			rets = {
				{
					n = "isPaused",
					t = "bool",
					nilable = false,
				},
			},
		},
		{
			n = "IsPlaying",
			k = "Function",
			rets = {
				{
					n = "isPlaying",
					t = "bool",
					nilable = false,
				},
			},
		},
		{
			n = "IsStopped",
			k = "Function",
			rets = {
				{
					n = "isStopped",
					t = "bool",
					nilable = false,
				},
			},
		},
		{
			n = "Pause",
			k = "Function",
		},
		{
			n = "Play",
			k = "Function",
		},
		{
			n = "Restart",
			k = "Function",
		},
		{
			n = "SetChildKey",
			k = "Function",
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "childKey",
					t = "cstring",
					nilable = false,
				},
			},
			rets = {
				{
					n = "success",
					t = "bool",
					nilable = false,
				},
			},
		},
		{
			n = "SetDuration",
			k = "Function",
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "durationSec",
					t = "number",
					nilable = false,
				},
				{
					n = "recomputeGroupDuration",
					t = "bool",
					nilable = false,
					def = true,
				},
			},
		},
		{
			n = "SetEndDelay",
			k = "Function",
			sec = "NotAllowed",
			args = {
				{
					n = "delaySec",
					t = "number",
					nilable = false,
				},
				{
					n = "recomputeGroupDuration",
					t = "bool",
					nilable = false,
					def = true,
				},
			},
		},
		{
			n = "SetOrder",
			k = "Function",
			sec = "NotAllowed",
			args = {
				{
					n = "newOrder",
					t = "number",
					nilable = false,
				},
			},
		},
		{
			n = "SetParent",
			k = "Function",
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "parent",
					t = "SimpleAnimGroup",
					nilable = false,
				},
				{
					n = "order",
					t = "number",
					nilable = true,
				},
			},
		},
		{
			n = "SetPlaying",
			k = "Function",
			sec = "NotAllowed",
			args = {
				{
					n = "play",
					t = "bool",
					nilable = false,
				},
			},
		},
		{
			n = "SetScript",
			k = "Function",
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "scriptTypeName",
					t = "cstring",
					nilable = false,
				},
				{
					n = "script",
					t = "luaFunction",
					nilable = true,
				},
			},
		},
		{
			n = "SetSmoothProgress",
			k = "Function",
			sec = "NotAllowed",
			args = {
				{
					n = "durationSec",
					t = "number",
					nilable = false,
				},
			},
		},
		{
			n = "SetSmoothing",
			k = "Function",
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "weights",
					t = "SmoothingType",
					nilable = false,
				},
			},
		},
		{
			n = "SetStartDelay",
			k = "Function",
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "delaySec",
					t = "number",
					nilable = false,
				},
				{
					n = "recomputeGroupDuration",
					t = "bool",
					nilable = false,
					def = true,
				},
			},
		},
		{
			n = "SetTarget",
			k = "Function",
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "target",
					t = "CScriptObject",
					nilable = false,
				},
			},
			rets = {
				{
					n = "success",
					t = "bool",
					nilable = false,
				},
			},
		},
		{
			n = "SetTargetKey",
			k = "Function",
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "key",
					t = "cstring",
					nilable = false,
				},
			},
			rets = {
				{
					n = "success",
					t = "bool",
					nilable = false,
				},
			},
		},
		{
			n = "SetTargetName",
			k = "Function",
			sec = "AllowedWhenUntainted",
			args = {
				{
					n = "name",
					t = "cstring",
					nilable = false,
				},
			},
			rets = {
				{
					n = "success",
					t = "bool",
					nilable = false,
				},
			},
		},
		{
			n = "SetTargetParent",
			k = "Function",
			rets = {
				{
					n = "success",
					t = "bool",
					nilable = false,
				},
			},
		},
		{
			n = "Stop",
			k = "Function",
		},
	},
}
