4.0 KiB
Education
The Education context owns the language for educational content, practice, assessment, and student learning state.
Language
Question Content: The complete versioned educational prompt presented for answering, including its stem and any answer choices required by its question type. Avoid: Payload, raw question
Option-backed Question:
A question whose answer must be selected from a finite, student-visible set of labeled options. The supported family is choice, multi, multi_choice, judge, and image.
Avoid: Objective question when referring only to storage shape
Optionless Question:
A question answered without selecting from a finite option list. The recognized family includes fill, text, terms, short_answer, composition, discuss, translation, case_analysis, brief_analysis, calculation, analysis_design, combination, and solution.
Avoid: Subjective question when the distinction being made is only whether options are present
Composite Question:
A container question, such as reading, whose answerable units are sub-questions rather than top-level options. It is not a valid standalone practice question until the sub-question model is supported by the target contract.
Avoid: Reading question when other composite forms may use the same model
Safe Question: A student-visible projection of Question Content that contains only display fields and never contains an answer, explanation, analysis, scoring rule, correctness flag, or administrative metadata. Avoid: Sanitized DO, frontend question
Question Option: One distinct choice in an Option-backed Question, identified by a non-blank label and containing non-blank display content. Labels are unique within the question. Avoid: Answer, choice answer
Question Snapshot: The immutable, student-visible Question Content captured when a practice session is created so that later content edits do not change that session. It excludes answers and explanations; protected scoring data is not part of this projection even when stored beside it. Avoid: Question cache
Protected Answer Key: Server-only correctness and explanation data captured for stable scoring of a practice session. It is never included in a Safe Question, Question Snapshot JSON, or pre-submit response. Avoid: Question Snapshot, frontend answer
Unavailable Question Content: Question Content that cannot safely be displayed or restored because its type, required options, option structure, publication state, or snapshot encoding is invalid or unsupported. Avoid: Empty question, best-effort question
Tenant Locator Claim: An unauthenticated pre-login value used to request tenant selection: either a browser-context hostname claim or an explicit Public Tenant Handle. It is not proof of caller identity or tenant authorization. Avoid: Trusted identity, authenticated hostname, tenant ID
Browser-context Evidence:
A hostname claim derived from Origin, falling back to Referer, and used to keep browser login-routing inputs consistent. Any HTTP client can forge it, so it is not an authentication boundary.
Avoid: Trusted browser identity, verified origin
Public Tenant Handle: The exact, published pre-login handle used by a headless client to request one tenant. In the current target it is the System tenant's unique name under a constrained, case-sensitive, operationally immutable contract; it is not the source system's distinct Tenant Code. Avoid: Tenant Code, display-name search, tenantName query
Student Principal: An authenticated Member identity acting as a student. An administrator or generic authenticated account is not a Student Principal. Avoid: User, account, logged-in principal
Public Tenant Resolution: The unauthenticated pre-login mapping of a Tenant Locator Claim to minimal login-routing fields. A successful result discloses that an available tenant exists; failed unknown, disabled, and expired tenants remain indistinguishable. Avoid: Tenant authentication, tenant administration lookup, non-enumerating discovery