GetAllQuestIds called CheckQuestSourceItem(questId, true) for all
non-failed quests. When a consumable key is used and leaves the bag,
this created a fake 'get the item' objective pointing to the drop NPC
even when the quest was already complete (complete == 1).
Guard the call: only run CheckQuestSourceItem when complete != 1.
Complete quests route through PopulateObjectiveNotes which correctly
shows the finisher instead.
Event-type objectives (triggerEnd with no coordinates) silently skip.
All other objective types with missing spawnList keep Questie:Error
so players can see and report missing spawn data.
_RegisterObjectiveTooltips: silently return for Type='event' objectives
with no spawnList (e.g. triggerEnd with nil coordinates). These have no
tooltip to register, so mark hasRegisteredTooltips=true and bail out.
For other types, demote from Error to Debug.