{"ok":true,"checkedAt":"2026-07-17T20:54:54.896Z","contractVersion":"moral-trade-participant-confirmations-v0.1-2026-06","purpose":"Public contract for first-class participant confirmation records: confirmations bind a participant to a frozen baseline, terms snapshot, policy snapshot bundle, maximum exposure, notice state, consent-quality state, eligible-set/fallback hashes where relevant, and a narrow confirmation scope before routing, clearing, capture, payout release, privacy disclosure, or material-term changes can proceed.","validation":{"status":"pass","validatorName":"moral-trade-participant-confirmation-contract","validatorVersion":"moral-trade-participant-confirmation-validator-v0.1","contractVersion":"moral-trade-participant-confirmations-v0.1-2026-06","checks":[{"id":"subject-scope-coverage","label":"Subjects and scopes cover budget activation, lock, cleared agreement, amendments, money movement, privacy grants, and exposure increases","status":"pass","evidence":"10 subject(s), 10 scope(s)."},{"id":"first-class-record-tables","label":"Confirmation and consent-quality records are first-class tables","status":"pass","evidence":"moral_trade_participant_confirmation_records, moral_trade_consent_quality_records"},{"id":"required-hash-binding","label":"Confirmations require frozen baseline, terms, policy bundle, and confirmation hashes","status":"pass","evidence":"baselineHash, confirmationHash, policySnapshotBundleHash, termsSnapshotHash"},{"id":"fail-closed-statuses","label":"Draft, missing, expired, revoked, superseded, and stale confirmations fail closed","status":"pass","evidence":"draft, missing, expired, revoked, superseded, stale"},{"id":"consent-quality-coverage","label":"High-risk scopes require consent-quality checks","status":"pass","evidence":"final_lock, cleared_agreement, renewed_material_change, payment_capture, payout_release, privacy_disclosure, exposure_increase"},{"id":"eligible-set-scope-coverage","label":"Budget activation, round lock, and project-set changes require eligible-set hashes","status":"pass","evidence":"budget_activation, round_lock, project_set_change_approval"},{"id":"sample-pass-and-block","label":"Samples include one passing final-lock record and one blocked stale/expired money-movement record","status":"pass","evidence":"final_lock:pass, payment_capture:blocked"},{"id":"contract-tests","label":"Contract test hooks are named","status":"pass","evidence":"participant_confirmation_contract_validator, participant_confirmation_missing_stale_expired_block, participant_confirmation_hash_snapshot_binding, participant_confirmation_consent_quality_required_for_high_risk, participant_confirmation_project_set_reconfirmation, participant_confirmation_api_route_contract"}],"blockers":[]},"publicContract":{"firstClassRecordTables":["moral_trade_participant_confirmation_records","moral_trade_consent_quality_records"],"subjectTypes":["common_ground_budget","marketplace_round","matched_trade_lock_proposal","cleared_trade_agreement","agreement_amendment_record","project_set_change","payment_capture","payout_release","privacy_grant","exposure_increase"],"confirmationScopes":["budget_activation","round_lock","final_lock","cleared_agreement","renewed_material_change","project_set_change_approval","payment_capture","payout_release","privacy_disclosure","exposure_increase"],"failClosedStatuses":["draft","missing","expired","revoked","superseded","stale"],"consentQualityStatuses":["passed","not_required_for_stage","missing","failed","stale","under_review"],"noticeRecordStatuses":["delivered","not_required_for_stage","missing","failed","stale"],"requiredHashFields":["baselineHash","confirmationHash","policySnapshotBundleHash","termsSnapshotHash"],"highRiskScopesRequiringConsentQuality":["final_lock","cleared_agreement","renewed_material_change","payment_capture","payout_release","privacy_disclosure","exposure_increase"],"eligibleSetScopes":["budget_activation","round_lock","project_set_change_approval"],"sampleEvaluations":[{"subjectType":"matched_trade_lock_proposal","confirmationScope":"final_lock","status":"pass","blockers":[]},{"subjectType":"matched_trade_lock_proposal","confirmationScope":"payment_capture","status":"blocked","blockers":["confirmation_not_recorded:expired","notice_not_non_blocking:failed","consent_quality_not_passed:missing","confirmation_expired"]}],"contractTests":["participant_confirmation_contract_validator","participant_confirmation_missing_stale_expired_block","participant_confirmation_hash_snapshot_binding","participant_confirmation_consent_quality_required_for_high_risk","participant_confirmation_project_set_reconfirmation","participant_confirmation_api_route_contract"]},"blockers":[]}