VetsLearn — Build & automate — 03: Handle structured output and provider failure states Revision 2026-10-03; fictional training fixture. OUTCOME Validate syntax, fields, evidence and status separately. INDEPENDENT TASK Independent lab stage: implement validate_answer in starter.py. Exact fields id and time must be non-empty strings and agree with the supplied source. Run it against wrong time, extra fields, refusal and incomplete envelopes. STEPS 1. Separate envelope status from payload validation. 2. Check exact fields and source agreement. 3. Keep a failure reason and run the checker. ACCEPTANCE CRITERIA - Only status ok with correct evidence passes. - Wrong time and extra fields fail. - Refusal and incomplete output remain failures without inferred replacements. EXPLAIN YOUR APPROACH What changes would a real provider adapter need beyond this fictional envelope? Keep your artifact, corrections, evidence and limitations yourself. Self-review is not independent assessment. No paid model calls are required. Review notes: /paths/builder/03/#practice