WorldValidator only checked id syntax, startRoom and NPC greetings. Quests,
endings and combinations were never even passed to it, so a broken world could
load "successfully" and then fail during play:
- A room without a 'name' loaded cleanly and threw an NPE in ConsoleIO.frameTop
the moment the player walked in.
- A typo'd item id in a quest condition silently evaluated to false forever,
leaving the stage uncompletable with no diagnostic.
The validator now receives quests, endings and combinations, and resolves every
item and quest id used in conditions, effects and recipes. Rooms and items must
carry a non-blank name and description. All problems are collected and reported
together instead of one per run.