from typing import Any, Tuple def validate_submission(obj: Any) -> Tuple[bool, str]: """Validate VQA Answer Therapy submission format.""" if not isinstance(obj, list): return False, "Submission must be a JSON list of result objects." if len(obj) == 0: return False, "Submission list is empty." for i, item in enumerate(obj): if not isinstance(item, dict): return False, f"Entry at index {i} must be a JSON object." if "question_id" not in item: return False, f"Entry at index {i} missing 'question_id'." if "single_grounding" not in item: return False, f"Entry at index {i} missing 'single_grounding'." if not isinstance(item["question_id"], str): return False, f"'question_id' at index {i} must be a string." sg = item["single_grounding"] if not isinstance(sg, (int, float)): return False, f"'single_grounding' at index {i} must be a float (0=multiple, 1=single)." if not (0.0 <= float(sg) <= 1.0): return False, f"'single_grounding' at index {i} must be between 0.0 and 1.0." return True, "OK"