Check your question package
Validate your manual game questions locally. Nothing you paste or upload is sent to a server. This tool checks structure and launch counts; you still review the teaching content and play a full test run.
Manual faculty guide · Working sample JSON · Blank game
1. Add your questions
For Excel, copy Question_Bank from its header row through your last question, including all columns. The tool converts the documented columns to JSON. For JSON, paste the package object without a JavaScript wrapper.
2. Review the results
No package checked yet.
Field guide
Every question needs an id (or questionId), q, exactly four nonempty string options, feedback, tag, type, objective, primarySkill and repairSkill. Use a unique string or number ID. Type is a nonempty text label, not a closed list.
Provide numeric a from 0 to 3, or a published aHash. Difficulty is easy, medium, hard, elite or legendary and must match the pool; repair and bridge may omit it. Boss pools use their stage difficulty, never “boss.”
Current aliases are supported: questionType, outcomeIds[0] or conceptId, skillId, repairSkillId, and canonicalDifficulty. Optional teaching metadata may remain on question objects. Unknown top-level package fields are errors because the manual adapter would not consume them.
For an image, set image to a local asset path and provide matching questionAssetMetadata with imageAlt and graphDescription. Add an embedded image data URL under embeddedQuestionAssets to make the HTML portable. Trial by Graph also requires graphRequired: true. Local image existence cannot be verified from pasted JSON; test it in the actual game.
Repeated text and missing adaptive routes produce review warnings. Duplicate IDs, malformed fields and missing image accessibility descriptions produce errors. The tool does not judge factual accuracy, distractor quality, or verify an answer hash against its choices; test each keyed answer in the game.