"""Canonical question record for TemporalBench MCQ episodes.""" from __future__ import annotations from typing import Any from pydantic import BaseModel, Field class TSQuestion(BaseModel): """One MCQ item from a pre-built question bank.""" question_id: str = Field(..., description="Unique identifier") dataset: str = Field( ..., description="Source dataset, e.g. PSML, freshretailnet, MIMIC, causal_chambers", ) task_type: str = Field(..., description="T1U | T3 | T2_MCQ") family: str | None = Field(default=None, description="T3 family, e.g. S1:A") prompt: str = Field(..., description="Full question text with context") options: list[str] = Field(..., min_length=2, description="Answer choices") answer: str = Field(..., description="Ground-truth label (matches one option after normalize)") capability_tags: list[str] = Field(default_factory=list) difficulty: str | None = Field(default=None) metadata: dict[str, Any] = Field(default_factory=dict)