from typing import List from pydantic import BaseModel, ConfigDict, constr Timestamp = constr(pattern=r'^\d{1,2}:\d{2}$') RangeTimestamp = constr(pattern=r'^\d{1,2}:\d{2}-\d{1,2}:\d{2}$') Score010 = constr(pattern=r'^(?:[0-9]|10)/10$') class ScriptTable(BaseModel): timestamp: Timestamp script_voiceover: str visual_direction: str psychological_trigger: str cta_action: str class ScriptVariations(BaseModel): variation_name: str script_table: List[ScriptTable] class ScriptResponse(BaseModel): # Accept & ignore any extra fields the model might emit model_config = ConfigDict(extra="ignore") script_variations: List[ScriptVariations]