from pathlib import Path
import json
R=Path(__file__).resolve().parent
cases=json.loads((R/'fixtures/cases.json').read_text(encoding='utf-8'))['cases']
req={'id','form_id','form_version','submission_id','idempotency_key','field_validation','processing_purpose','legal_basis_record','consent_required','displayed_consent_text_version','stored_consent_text_version','affirmative_action','withdrawal_path','data_minimized','retention_class','rate_limit_key','rate_limit_window','rate_limit_decision','abuse_decision','handoff_envelope_id','inbox_destination','delivery_attempt','delivery_status','delivery_receipt_exists','retry_count','idempotency_key_stable','logical_intake_count','pii_redaction','provenance'}
assert len(cases)==8
for c in cases:
    assert req.issubset(c)
    assert c['form_id'] and c['form_version'] and c['submission_id'] and c['idempotency_key']
print('PASS 8/8 learner fixture structural checks')
