local F=(game:GetService("\082\101\112\108\105\099\097\116\101\100\083\116\111\114\097\103\101")):WaitForChild("\087\111\114\108\100\069\110\103\105\110\101")local t=require(F:WaitForChild("\079\098\106\101\099\116"))local l=require(F:WaitForChild("\116"))local B=l.tuple(l.integer,l.string)local A=t:Extend("\081\117\101\115\116\079\098\106\101\099\116\105\118\101",{abstract=true})function A.constructor(l,F,t)assert(B(F,t))l._stage=F l._description=t end function A.GetDescription(F)return F._description end function A.GetStage(F)return F._stage end return A
local Libraries = game:GetService("ReplicatedStorage"):WaitForChild("WorldEngine")
local Object = require(Libraries:WaitForChild("Object"))
local t = require(Libraries:WaitForChild("t"))
-- local qt = require(script.Parent.validator)

local questObjectiveConstructorValidator = t.tuple(t.integer, t.string)

local QuestObjective = Object:Extend("QuestObjective", {abstract = true})
function QuestObjective:constructor(stage, description)
	assert(questObjectiveConstructorValidator(stage, description))
	self._stage = stage
	self._description = description
end

function QuestObjective:GetDescription()
	return self._description
end

function QuestObjective:GetStage()
	return self._stage
end

return QuestObjective
