Field Reference
This page is the single reference for question JSON fields used by Nobius. It combines:
- the validation schema
- the authoring documentation
- the current render and import behavior
Required means required by the validation schema for authored Nobius JSON. Implemented means the field affects current validation, rendering, preview, export, or import behavior.
Question-level fields
| Field |
Type |
Required |
Implemented |
Notes |
title |
string |
Yes |
Yes |
Question title shown in rendered output. |
master_statement |
string |
No |
Yes |
Introductory question statement shown above parts. |
media |
string[] |
No |
Yes |
Rendered as <img> / <video> in the question header and bundled into Mobius packages when present. |
icon_data |
object |
No |
Yes |
Controls the difficulty and par-time icons. |
icon_data.difficulty |
integer |
Required inside icon_data |
Yes |
Allowed values are 1, 2, 3. |
icon_data.par_time |
integer[2] |
Required inside icon_data |
Yes |
Used for the icon display and time analysis summary. |
icon_data.statement |
string |
No |
Yes |
Rendered as the icon guidance blurb in themed question output. |
parts |
object[] |
Yes |
Yes |
Main question content. Each item is a part object. |
uid |
string |
Yes |
Yes |
Source identifier used in rendered/exported Mobius packages. |
algorithm |
string |
No |
Yes |
Included in rendered question XML when present. |
adaptive |
object |
No |
Partly |
Used by validation to enforce response restrictions for adaptive questions. It does not enable a separate adaptive render mode. |
adaptive.enabled |
boolean |
Required inside adaptive |
Yes |
Turns adaptive validation checks on. |
adaptive.notes |
string |
No |
Yes |
Metadata only. Preserved for authoring context. |
Part-level fields
| Field |
Type |
Required |
Implemented |
Notes |
statement |
string |
Yes |
Yes |
Main statement for the part. |
media |
string[] |
No |
Yes |
Rendered below the part statement and bundled into Mobius packages. |
response |
object |
No |
Yes |
Single response area for the part. Mutually exclusive with responses and custom_response. |
responses |
object[] |
No |
Yes |
Multiple response areas shown within the same part. |
custom_response |
object |
No |
Yes |
Custom HTML layout that places one or more standard response areas. |
pre_response_text |
string |
No |
Yes |
Text rendered immediately before a response area. |
post_response_text |
string |
No |
Yes |
Text rendered immediately after a response area. |
input_symbols |
string[][] |
No |
Yes |
Rendered into the equation-help panel for symbolic inputs. |
final_answer |
object |
No |
Yes |
Adds the final-answer help panel. |
final_answer.text |
string |
No |
Yes |
Rendered in the final-answer panel. |
final_answer.equation |
string |
No |
Yes |
Rendered in the final-answer panel as equation content. |
final_answer.media |
string[] |
No |
Yes |
Media shown inside the final-answer panel. |
worked_solutions |
object[] |
No |
Yes |
Step-by-step worked solutions panel. |
worked_solutions[].text |
string |
No |
Yes |
Per-step explanatory text. |
worked_solutions[].equation |
string |
No |
Yes |
Per-step equation content. |
worked_solutions[].media |
string[] |
No |
Yes |
Per-step media. |
worked_solutions[].is_final_answer |
boolean |
No |
Yes |
When true, renders the part final answer in the step-by-step flow. |
structured_tutorial |
object[] |
No |
Yes |
Step-by-step tutorial/help flow. |
structured_tutorial[].text |
string |
No |
Yes |
Per-step tutorial text. |
structured_tutorial[].equation |
string |
No |
Yes |
Per-step equation content. |
structured_tutorial[].h5p_link |
string |
No |
Yes |
Embedded activity link when present. |
structured_tutorial[].media |
string[] |
No |
Yes |
Per-step tutorial media. |
structured_tutorial[].response |
object |
No |
Yes |
Single response area inside a tutorial step. |
structured_tutorial[].responses |
object[] |
No |
Yes |
Multiple response areas inside a tutorial step. |
structured_tutorial[].custom_response |
object |
No |
Yes |
Custom response layout inside a tutorial step. |
id |
string |
No |
No |
Seen in some imported JSON, but not used in current validation or rendered/exported Mobius output. Nobius generates its own DOM ids such as part1, part2. |
Response object fields
These fields belong inside response, items inside responses, or response objects nested in structured_tutorial.
Common response fields
| Field |
Type |
Required |
Implemented |
Notes |
name |
string |
Yes |
Yes |
Logical response name in the rendered Mobius XML. Missing or invalid values are normalised during export where needed. |
mode |
string |
Yes |
Yes |
Selects the response type. |
weighting |
number |
Yes |
Yes |
Marks weighting passed through to Mobius response definitions. |
comment |
string |
Yes |
Yes |
Passed through to response definitions. |
Maple
| Field |
Required |
Implemented |
Notes |
type |
Yes |
Yes |
formula or maple. |
plot |
Yes |
Yes |
Currently expected to be an empty string. |
allow2d |
Yes |
Yes |
Controls Maple input mode. |
mathConversionMode |
Yes |
Yes |
Expected schema value is 0. |
mapleAnswer |
Yes |
Yes |
Correct expression. |
maple |
Yes |
Yes |
Grading code. |
custompreview |
Yes |
Yes |
Preview hook. |
libname |
No |
Yes |
Optional library path. |
List
| Field |
Required |
Implemented |
Notes |
display |
Yes |
Yes |
Object with display and permute. |
grader |
Yes |
Yes |
exact, relaxed, or regex. |
answers |
Yes |
Yes |
Accepted answers. |
credits |
Yes |
Yes |
Mark allocation per answer. |
Non Permuting Multiple Choice / Multiple Selection / True False
| Field |
Required |
Implemented |
Notes |
display |
Yes except True False |
Yes |
vertical or horizontal. |
choices |
Yes |
Yes |
Answer labels or true/false labels. |
answer |
Yes |
Yes |
Correct option or encoded selection string. |
Numeric
| Field |
Required |
Implemented |
Notes |
negStyle |
Yes |
Yes |
minus, paren, or both. |
numStyle |
Yes |
Yes |
Mobius number formatting options. |
grading |
Yes |
Yes |
Exact or tolerance-based grading mode. |
showUnits |
Yes |
Yes |
Controls whether the units input is shown. |
answer.num |
Yes |
Yes |
Numeric answer value. |
answer.units |
Yes |
Yes |
Units string. Empty when showUnits is false. |
digit |
Conditional |
Yes |
Required for significant-digit grading modes. |
err |
Conditional |
Yes |
Required for absolute or significant-digit tolerance modes. |
perc |
Conditional |
Yes |
Required for percentage tolerance mode. |
Matching
| Field |
Required |
Implemented |
Notes |
matchings |
Yes |
Yes |
List of terms and definitions. |
format |
Yes |
Yes |
Integer or one-item integer list. |
Essay
| Field |
Required |
Implemented |
Notes |
keywords |
Yes |
Yes |
Author keywords list. |
maxWordcount |
Yes |
Yes |
Maximum word count. |
HTML
| Field |
Required |
Implemented |
Notes |
gradingType |
Yes |
Yes |
auto or manual. |
html / css / javascript |
One supported trio required |
Yes |
Current concise field names. |
questionHTML / questionCSS / questionJavaScript |
Alternative supported trio |
Yes |
Legacy Mobius-style field names accepted by schema and importer. |
answer |
Conditional |
Yes |
Required for auto-graded HTML questions. |
gradingCode or grading_code |
Conditional |
Yes |
Required for auto-graded HTML questions. |
Document Upload
| Field |
Required |
Implemented |
Notes |
uploadMode |
Yes |
Yes |
direct or code. |
fileExtensions |
Yes |
Yes |
Allowed upload extensions. |
forceUpload |
Yes |
Yes |
Whether a file must be uploaded. |
nonGradeable |
Yes |
Yes |
Upload is submitted without automatic grading. |
notGraded |
No |
Yes |
Accepted as additional metadata. |
codeType |
No |
Yes |
Optional code classification. |
Notes on effective support
- A field may be present in imported JSON without being part of the supported authored interface.
part.id is the main current example of that: it can appear in imported data, but the renderer and real Mobius exports do not use it.
- Figure/media support is part of the effective authored interface: referenced media files are bundled into
web_folders/<sheet name>/... and referenced from the manifest with __BASE_URI__<sheet name>/... paths, matching current Möbius package structure.