{"ok":true,"checkedAt":"2026-06-02T19:21:07.679Z","profileVersion":"moral-trade-data-model-v0.1.5-2026-06","purpose":"Public contract for the core Moral Trade domain entities, required fields, privacy classes, relationship boundaries, and non-claims named by the product audit.","validation":{"status":"pass","validatorName":"moral-trade-data-model-profile","validatorVersion":"moral-trade-data-model-validator-v0.3","profileVersion":"moral-trade-data-model-v0.1.5-2026-06","checks":[{"id":"entity-coverage","label":"Core data model entities","status":"pass","evidence":"27 entity/entities; duplicates: none; deprecated: none."},{"id":"entity-field-coverage","label":"Entities publish required field contracts","status":"pass","evidence":"27 entity/entities have four or more required fields."},{"id":"provenance-audit-questions","label":"Provenance events answer what, who, and when","status":"pass","evidence":"traceability=id,subject_id,event_time,recorded_at,action,business_step,disposition,what,where_recorded,why,agent_ids,redaction_level,audit_question_answers,sha256; state_transition=id,subject_id,from_status,to_status,provenance_activity,actor_agent_id,idempotency_key,audit_question_answers,event_hash,recorded_at"},{"id":"match-suggestion-disclosure-policy","label":"Match suggestions name disclosure stage, privacy policy, redactions, and human review","status":"pass","evidence":"id, left_profile_id, right_profile_id, status, factor_codes, confidence_band, redacted_fields, disclosure_stage, privacy_policy_id, human_review_required, created_at"},{"id":"offer-required-fields","label":"Offer fields match the audit data model","status":"pass","evidence":"cause_areas, offered_action, requested_action, expected_impact, verification_method, duration, exit_conditions, baseline_statement"},{"id":"privacy-classes","label":"Privacy classes cover public, private, consent, and operations records","status":"pass","evidence":"9 privacy class(es)."},{"id":"private-entity-boundaries","label":"Private records are not public by default","status":"pass","evidence":"private_wish_profile:private_authenticated, source_connection:private_authenticated, source_note:private_authenticated, saved_search:private_authenticated, privacy_grant:consent_granted, notification:operational_private, payment_record:operational_private, payment_update:operational_private"},{"id":"relationship-boundaries","label":"Relationship boundaries prevent hidden disclosure or automatic reliance","status":"pass","evidence":"5 boundary rule(s)."},{"id":"non-claims","label":"Public non-claims prevent overclaiming","status":"pass","evidence":"5 non-claim(s)."},{"id":"contract-tests","label":"Contract test hooks","status":"pass","evidence":"data_model_profile_validator, data_model_entity_coverage, data_model_profile_json_schema, offer_required_field_contract, source_note_privacy_boundary, public_data_model_contract_route, api_contract_data_model_route, health_data_model_smoke, technical_spec_data_model_smoke"}],"blockers":[]},"publicContract":{"entities":[{"key":"participant","category":"identity","privacyClass":"authenticated_private","requiredFields":["id","display_name","roles","created_at"],"relationships":["public_profile","private_wish_profile","offer","privacy_grant"]},{"key":"public_profile","category":"profile","privacyClass":"public_preview","requiredFields":["profile_id","display_name","cause_area_previews","trade_mode_previews","visibility_control_id"],"relationships":["participant","profile_visibility_control"]},{"key":"private_wish_profile","category":"profile","privacyClass":"private_authenticated","requiredFields":["profile_id","owner_id","exact_wishes","constraints","verification_preferences","updated_at"],"relationships":["participant","source_note","saved_search","privacy_grant"]},{"key":"profile_visibility_control","category":"privacy","privacyClass":"private_authenticated","requiredFields":["id","owner_id","public_profile_id","location_visibility","profile_visibility","updated_at"],"relationships":["participant","public_profile"]},{"key":"source_connection","category":"privacy","privacyClass":"private_authenticated","requiredFields":["id","owner_id","source_kind","consent_scope","import_mode","manual_summary","updated_at"],"relationships":["participant","source_note","private_wish_profile"]},{"key":"source_note","category":"privacy","privacyClass":"private_authenticated","requiredFields":["id","owner_id","source_connection_id","summary","redaction_level","created_at"],"relationships":["source_connection","private_wish_profile","evidence_claim"]},{"key":"saved_search","category":"matching","privacyClass":"private_authenticated","requiredFields":["id","owner_id","query_scope","cause_filters","filters_json","notify_on_live_match","source_route","privacy_threshold","created_at"],"relationships":["participant","private_wish_profile","match_suggestion","notification"]},{"key":"trade_format","category":"proposal","privacyClass":"public_contract","requiredFields":["key","label","evidence_schema_key","allowed_statuses"],"relationships":["offer","evidence_claim"]},{"key":"offer","category":"proposal","privacyClass":"public_or_private_by_status","requiredFields":["id","participant_id","format","cause_areas","offered_action","requested_action","expected_impact","verification_method","duration","exit_conditions","baseline_statement","status"],"relationships":["participant","trade_format","baseline_statement","evidence_claim","review_decision","challenge","appeal"]},{"key":"baseline_statement","category":"proposal","privacyClass":"review_scoped","requiredFields":["id","offer_id","no_trade_default","prior_intent_evidence","credibility_status","review_scope"],"relationships":["offer","evidence_claim","challenge"]},{"key":"evidence_claim","category":"evidence","privacyClass":"review_scoped","requiredFields":["id","proposal_id","claim_type","artifact_ids","claim_scope","reviewer_confidence","uniqueness_checked"],"relationships":["offer","evidence_artifact","review_decision"]},{"key":"evidence_artifact","category":"evidence","privacyClass":"review_scoped","requiredFields":["id","kind","normalized_locator","claim_scopes","submitted_at","redaction_level","sha256"],"relationships":["evidence_claim","agreement_event"]},{"key":"external_entity_reference","category":"provenance","privacyClass":"review_scoped","requiredFields":["id","entity_type","identifier_system","normalized_identifier","dedupe_key","verification_status","redaction_level","sha256"],"relationships":["evidence_artifact","traceability_event","provenance_activity"]},{"key":"traceability_event","category":"provenance","privacyClass":"review_scoped","requiredFields":["id","subject_id","event_time","recorded_at","action","business_step","disposition","what","where_recorded","why","agent_ids","redaction_level","audit_question_answers","sha256"],"relationships":["evidence_artifact","external_entity_reference","provenance_agent","provenance_activity","review_decision"]},{"key":"provenance_activity","category":"provenance","privacyClass":"review_scoped","requiredFields":["id","subject_id","kind","activity_at","used_entity_ids","generated_entity_ids","agent_ids","activity_hash"],"relationships":["evidence_artifact","evidence_claim","review_decision","provenance_agent","traceability_event","state_transition_event_record"]},{"key":"provenance_agent","category":"provenance","privacyClass":"review_scoped","requiredFields":["id","owner_profile_id","agent_key","kind","label","redaction_level","created_at"],"relationships":["participant","review_decision","provenance_activity","traceability_event","state_transition_event_record"]},{"key":"state_transition_event_record","category":"provenance","privacyClass":"review_scoped","requiredFields":["id","subject_id","from_status","to_status","provenance_activity","actor_agent_id","idempotency_key","audit_question_answers","event_hash","recorded_at"],"relationships":["offer","review_decision","provenance_activity","provenance_agent","agreement_event"]},{"key":"review_decision","category":"review","privacyClass":"review_scoped","requiredFields":["id","proposal_id","outcome","reason_codes","summary","reviewer_id","idempotency_key","decision_hash","created_at"],"relationships":["offer","evidence_claim","challenge","appeal","agreement_event","provenance_agent","provenance_activity","state_transition_event_record"]},{"key":"challenge","category":"review","privacyClass":"review_scoped","requiredFields":["id","subject","standing_category","trigger","scoped_claim_ids","status","created_at"],"relationships":["offer","baseline_statement","review_decision","dispute"]},{"key":"appeal","category":"review","privacyClass":"review_scoped","requiredFields":["id","challenge_id","appeal_trigger","remedy_request","standing_category","status","created_at"],"relationships":["challenge","review_decision","dispute"]},{"key":"dispute","category":"review","privacyClass":"review_scoped","requiredFields":["id","proposal_id","dispute_scope","status","human_review_state","created_at"],"relationships":["offer","challenge","appeal","agreement_event"]},{"key":"privacy_grant","category":"privacy","privacyClass":"consent_granted","requiredFields":["id","owner_id","counterparty_id","field_keys","purpose","audience_stage","access_level","status","expires_at"],"relationships":["participant","private_wish_profile","match_suggestion"]},{"key":"match_suggestion","category":"matching","privacyClass":"privacy_thresholded_public_preview","requiredFields":["id","left_profile_id","right_profile_id","status","factor_codes","confidence_band","redacted_fields","disclosure_stage","privacy_policy_id","human_review_required","created_at"],"relationships":["public_profile","private_wish_profile","privacy_grant","notification"]},{"key":"notification","category":"operations","privacyClass":"operational_private","requiredFields":["id","recipient_id","notification_kind","subject_id","redaction_template","created_at"],"relationships":["participant","match_suggestion","saved_search","agreement_event"]},{"key":"payment_record","category":"payment","privacyClass":"operational_private","requiredFields":["id","proposal_id","provider","external_reference","amount_or_unit","status","created_at"],"relationships":["offer","payment_update","evidence_claim","agreement_event"]},{"key":"payment_update","category":"payment","privacyClass":"operational_private","requiredFields":["id","payment_record_id","update_kind","provider_timestamp","review_status","created_at"],"relationships":["payment_record","evidence_claim","agreement_event"]},{"key":"agreement_event","category":"provenance","privacyClass":"review_scoped","requiredFields":["id","agreement_id","event_kind","actor_id","entity_ids","created_at","previous_event_hash"],"relationships":["offer","review_decision","payment_record","notification","dispute","state_transition_event_record","provenance_activity"]}],"privacyClasses":["public_contract","public_preview","privacy_thresholded_public_preview","public_or_private_by_status","private_authenticated","authenticated_private","review_scoped","consent_granted","operational_private"],"offerRequiredFields":["cause_areas","offered_action","requested_action","expected_impact","verification_method","duration","exit_conditions","baseline_statement"],"relationshipBoundaries":["profile_privacy_boundary","source_note_boundary","match_disclosure_boundary","review_state_boundary","payment_non_custody_boundary"],"nonClaims":["The data model does not create objective platform moral rankings.","The data model does not authorize autonomous outreach or surprise disclosure.","The data model does not ingest, scrape, mine, train on, or expose raw private feeds.","The data model does not treat payment references as escrow, custody, tax, legal, or investment advice.","The data model does not make reviewed completion durable without scoped evidence, human review, and provenance events."],"contractTests":["data_model_profile_validator","data_model_entity_coverage","data_model_profile_json_schema","offer_required_field_contract","source_note_privacy_boundary","public_data_model_contract_route","api_contract_data_model_route","health_data_model_smoke","technical_spec_data_model_smoke"]},"blockers":[]}