| from __future__ import annotations | |
| from typing import Literal | |
| from pydantic import BaseModel | |
| class RouteResponse(BaseModel): | |
| sectors: list[str] | |
| lens: list[str] | |
| type: list[str] | |
| class BindResponse(BaseModel): | |
| indicator_id: str | |
| variables: list[str] | |
| measurable: Literal["MEASURABLE", "PROXY", "NOT_MEASURABLE"] | |
| reasons: str | |
| result_ids: list[str] = [] | |
| class PickVarsResponse(BaseModel): | |
| candidate_variables: list[str] # 1–2 Kobo variable names; empty if no match found | |