public void FinishQuest(Quest quest)
    {
        var owner = OwnerOf(quest);

        Debug.Assert(owner);
        Debug.Assert(quest.Status == QuestStatus.Completed, "Only call FinishQuest on quests that are definitely finished");
        quest.OnFinish();

        owner.AddMoney(quest.MoneyReward);
        owner.Ship.GrantCrewXP(quest.XPReward);

        DestroyQuest(quest);
    }