{"ok":false,"checkedAt":"2026-06-02T19:21:08.551Z","profileVersion":"moral-trade-api-contract-v0.24-2026-06","purpose":"Public route catalog for the core Moral Trade API surfaces, including privacy class, schema orientation, rate-limit surface, cache posture, and safe fallback behavior.","validation":{"status":"fail","validatorName":"moral-trade-api-contract-profile","validatorVersion":"moral-trade-api-contract-validator-v0.3","profileVersion":"moral-trade-api-contract-v0.24-2026-06","checks":[{"id":"core-api-routes","label":"Core API routes","status":"pass","evidence":"moral_trade_health, moral_trade_api_contract, public_offers_collection, public_offer_detail, public_offers_facets, saved_search_create, public_offer_follow, public_offer_create_similar, moral_trade_data_model_contract, moral_trade_policy_bundle_contract, moral_trade_provenance_schema, moral_trade_schema_registry, moral_trade_copilot_contract, moral_trade_copilot_review, moral_trade_match_signal_contract, moral_trade_match_signal_evaluate, moral_trade_challenge_appeal_contract, moral_trade_challenge_appeal_evaluate, moral_trade_disclosure_contract, moral_trade_disclosure_evaluate, moral_trade_review_workflow_contract, moral_trade_reasoning_packets, moral_trade_review_workflow_evaluate, moral_trade_operations_health, moral_trade_security_health, moral_trade_incident_response_health, moral_trade_evaluation_health, moral_trade_performance_health, moral_trade_externality_health, moral_trade_ai_governance_health, moral_trade_document_coverage_health, moral_trade_ai_shadow_contract, moral_trade_background_capability_gates_contract, moral_trade_private_overlap_contract, moral_trade_background_rls_audit_contract, moral_trade_transparency_report, profile_schema, profile_export, profile_import, background_source_connection_create, background_source_connection_revoke, background_source_summary_draft, background_source_summary_approve, background_profile_signal_recompute, background_source_summary_create, background_intro_packet_create, background_intro_request_create, background_intro_request_appeal, background_intro_request_approve_contact, background_opportunity_brief_list, background_opportunity_list, background_opportunity_feedback_create, background_opportunity_feedback_create_alias, wish_registry_search, funnel_events"},{"id":"schema-definitions","label":"Named request and response schemas","status":"pass","evidence":"empty_request, moral_trade_aggregate_health_response, api_contract_response, public_offers_collection_request, public_offers_collection_response, public_offer_detail_request, public_offer_detail_response, public_offers_facets_request, public_offers_facets_response, saved_search_create_request, saved_search_create_response, public_offer_follow_request, public_offer_follow_response, public_offer_create_similar_request, public_offer_create_similar_response, data_model_contract_response, policy_bundle_contract_response, provenance_schema_response, schema_registry_response, copilot_contract_response, copilot_review_request, copilot_review_response, match_signal_contract_response, match_signal_evaluate_request, match_signal_evaluate_response, challenge_appeal_contract_response, challenge_appeal_evaluate_request, challenge_appeal_evaluate_response, disclosure_contract_response, disclosure_evaluate_request, disclosure_evaluate_response, review_workflow_contract_response, reasoning_packets_request, reasoning_packets_response, review_workflow_evaluate_request, review_workflow_evaluate_response, operations_health_response, security_health_response, incident_response_health_response, evaluation_health_response, performance_health_response, externality_health_response, ai_governance_health_response, document_coverage_health_response, ai_shadow_contract_response, background_capability_gates_contract_response, private_overlap_contract_response, background_rls_audit_contract_response, transparency_report_response, profile_portability_schema_response, authenticated_export_request, profile_export_response, profile_import_request, profile_import_response, background_source_connection_create_request, background_source_connection_create_response, background_source_connection_revoke_response, background_source_summary_draft_request, background_source_summary_draft_response, background_source_summary_approve_request, background_source_summary_approve_response, background_profile_signal_recompute_response, background_source_summary_create_request, background_source_summary_create_response, background_intro_packet_create_request, background_intro_packet_create_response, background_intro_request_create_request, background_intro_request_create_response, background_intro_request_appeal_request, background_intro_request_appeal_response, background_intro_request_contact_approval_response, background_opportunity_brief_list_response, background_opportunity_feedback_create_request, background_opportunity_feedback_create_response, wish_registry_search_request, wish_registry_search_response, funnel_event_request, empty_204_response"},{"id":"field-level-schema-contracts","label":"Field-level schema contracts","status":"pass","evidence":"79 schema definition(s) with field contracts."},{"id":"privacy-classes","label":"Privacy classes","status":"pass","evidence":"public_contract, public_schema, authenticated_private, authenticated_private_step_up, privacy_thresholded_public_preview, redacted_analytics, ephemeral_private_draft_review"},{"id":"private-cache-controls","label":"Authenticated private routes fail closed","status":"pass","evidence":"saved_search_create, public_offer_follow, public_offer_create_similar, profile_export, profile_import, background_source_connection_create, background_source_connection_revoke, background_source_summary_draft, background_source_summary_approve, background_profile_signal_recompute, background_source_summary_create, background_intro_packet_create, background_intro_request_create, background_intro_request_appeal, background_intro_request_approve_contact, background_opportunity_brief_list, background_opportunity_list, background_opportunity_feedback_create, background_opportunity_feedback_create_alias"},{"id":"profile-portability-routes","label":"Profile export and import fail closed with private cache and rate limits","status":"pass","evidence":"profile_export:profile_portability:private_no_store, profile_import:profile_portability:private_no_store"},{"id":"privacy-thresholded-search","label":"Wish-registry search privacy and rate limits","status":"pass","evidence":"wish_registry_search:wish_registry_search"},{"id":"api-contract-route","label":"API contract route is cataloged and implementation-audited","status":"fail","evidence":"moral_trade_api_contract:public_contract_read:no_store_dynamic:fail"},{"id":"implementation-backed-rate-limits-and-cache","label":"Published rate-limit and cache names have executable tables","status":"fail","evidence":"routes=55, missingRateLimits=none, missingCacheControls=none, orphanedRateLimits=none"},{"id":"provenance-schema-validator","label":"Provenance schema route is validator-backed","status":"pass","evidence":"moral_trade_provenance_schema:no_store_dynamic"},{"id":"schema-registry-route","label":"Schema registry route publishes exact JSON Schema documents","status":"pass","evidence":"moral_trade_schema_registry:no_store_dynamic"},{"id":"public-offers-collection-route","label":"Public offers collection route exposes filtered listings and facets safely","status":"pass","evidence":"public_offers_collection:offer_collection_read:no_store_dynamic"},{"id":"public-offer-detail-route","label":"Public offer detail route exposes one public listing without private state","status":"pass","evidence":"public_offer_detail:offer_detail_read:no_store_dynamic"},{"id":"public-offers-facets-route","label":"Public offer facets route exposes positive-count browse facets safely","status":"pass","evidence":"public_offers_facets:offer_facets_read:no_store_dynamic"},{"id":"saved-search-create-route","label":"Saved-search create route stores viewer-owned browse memory only","status":"pass","evidence":"saved_search_create:saved_search_write:private_no_store"},{"id":"public-offer-follow-route","label":"Offer follow route stores viewer-owned saved-offer state only","status":"pass","evidence":"public_offer_follow:offer_follow_write:private_no_store"},{"id":"public-offer-create-similar-route","label":"Offer create-similar route returns only review-required draft prefills","status":"pass","evidence":"public_offer_create_similar:offer_create_similar:private_no_store"},{"id":"data-model-contract-route","label":"Data model contract route is validator-backed and privacy-preserving","status":"pass","evidence":"moral_trade_data_model_contract:no_store_dynamic"},{"id":"policy-bundle-contract-route","label":"Policy bundle contract route is validator-backed and strict-bundle scoped","status":"pass","evidence":"moral_trade_policy_bundle_contract:no_store_dynamic"},{"id":"copilot-review-nonmutating","label":"Copilot draft review is ephemeral and non-mutating","status":"pass","evidence":"moral_trade_copilot_review:private_no_store, moral_trade_match_signal_evaluate:private_no_store, moral_trade_challenge_appeal_evaluate:private_no_store, moral_trade_disclosure_evaluate:private_no_store, moral_trade_review_workflow_evaluate:private_no_store"},{"id":"review-workflow-evaluate-nonmutating","label":"Review workflow evaluation is ephemeral and non-mutating","status":"pass","evidence":"moral_trade_review_workflow_evaluate:private_no_store:review_workflow_evaluate"},{"id":"match-signal-routes","label":"Match signal contract and evaluate routes are validator-backed and non-mutating","status":"pass","evidence":"moral_trade_match_signal_evaluate:private_no_store:match_signal_evaluate"},{"id":"challenge-appeal-routes","label":"Challenge appeal contract and evaluate routes are validator-backed, scoped, and non-mutating","status":"pass","evidence":"moral_trade_challenge_appeal_evaluate:private_no_store:challenge_appeal_evaluate"},{"id":"disclosure-grant-routes","label":"Disclosure grant contract and evaluate routes are validator-backed, staged, and non-mutating","status":"pass","evidence":"moral_trade_disclosure_evaluate:private_no_store:disclosure_evaluate"},{"id":"incident-response-health-route","label":"Incident response health route is validator-backed and privacy-redacted","status":"pass","evidence":"moral_trade_incident_response_health:no_store_dynamic"},{"id":"transparency-report-route","label":"Transparency report route is aggregate-only, thresholded, and health-audited","status":"pass","evidence":"moral_trade_transparency_report:no_store_dynamic:public_contract_read"},{"id":"reasoning-packets-validator","label":"Reasoning packets route is public and validator-backed","status":"pass","evidence":"moral_trade_reasoning_packets:no_store_dynamic"},{"id":"analytics-redaction","label":"Analytics ingest redaction","status":"pass","evidence":"funnel_events"},{"id":"api-tests","label":"API contract test hooks","status":"pass","evidence":"api_contract_profile_validator, api_contract_route_contract, health_route_contract_smoke, technical_spec_api_contract_smoke, security_route_contract, incident_response_route_contract, performance_route_contract, externality_route_contract, ai_governance_route_contract, data_model_contract_route, policy_bundle_contract_route, public_offers_collection_route, public_offer_detail_route, public_offers_facets_route, saved_search_create_route, public_offer_follow_route, public_offer_create_similar_route, reasoning_packet_route_contract, match_signal_route_contract, challenge_appeal_route_contract, disclosure_grant_route_contract, copilot_review_route_contract, profile_portability_route_contract, wish_registry_rate_limit_contract, analytics_redaction_contract"}],"blockers":["api-contract-route: API contract route is cataloged and implementation-audited","implementation-backed-rate-limits-and-cache: Published rate-limit and cache names have executable tables"]},"implementationAudit":{"status":"fail","validatorName":"moral-trade-api-implementation","validatorVersion":"moral-trade-api-implementation-audit-v0.2","profileVersion":"moral-trade-api-contract-v0.24-2026-06","routeCount":55,"implementedRateLimitSurfaces":["analytics_ingest","background_intro_packet_write","background_opportunity_brief_read","background_opportunity_feedback_write","background_source_summary_write","challenge_appeal_evaluate","copilot_draft_review","disclosure_evaluate","match_signal_evaluate","offer_collection_read","offer_create_similar","offer_detail_read","offer_facets_read","offer_follow_write","profile_portability","public_contract_read","review_workflow_evaluate","saved_search_write","wish_registry_search"],"implementedCacheControls":["no_store_dynamic","private_no_store","public_contract_static"],"missingRateLimitSurfaces":[],"missingCacheControls":[],"missingRouteFiles":["background_intro_packet_create:/api/background/intro-packets","background_intro_request_appeal:/api/background/intro-requests/:id/appeal","background_intro_request_approve_contact:/api/background/intro-requests/:id/approve-contact","background_intro_request_create:/api/background/intro-requests","background_opportunity_brief_list:/api/background/opportunity-briefs","background_opportunity_feedback_create:/api/background/opportunity-briefs/:id/feedback","background_opportunity_feedback_create_alias:/api/background/opportunities/:id/feedback","background_opportunity_list:/api/background/opportunities","background_profile_signal_recompute:/api/background/profile-signals/recompute","background_source_connection_create:/api/background/source-connections","background_source_connection_revoke:/api/background/source-connections/:id","background_source_summary_approve:/api/background/source-summaries/:id/approve","background_source_summary_create:/api/background/source-summaries","background_source_summary_draft:/api/background/source-connections/:id/draft-summary","funnel_events:/api/funnel-events","moral_trade_ai_governance_health:/api/moral-trade/ai-governance/health","moral_trade_ai_shadow_contract:/api/moral-trade/ai-shadow/contract","moral_trade_api_contract:/api/moral-trade/api-contract","moral_trade_background_capability_gates_contract:/api/moral-trade/background-capability-gates/contract","moral_trade_background_rls_audit_contract:/api/moral-trade/background-rls-audit/contract","moral_trade_challenge_appeal_contract:/api/moral-trade/challenge-appeal/contract","moral_trade_challenge_appeal_evaluate:/api/moral-trade/challenge-appeal/evaluate","moral_trade_copilot_contract:/api/moral-trade/copilot/contract","moral_trade_copilot_review:/api/moral-trade/copilot/review","moral_trade_data_model_contract:/api/moral-trade/data-model/contract","moral_trade_disclosure_contract:/api/moral-trade/disclosure/contract","moral_trade_disclosure_evaluate:/api/moral-trade/disclosure/evaluate","moral_trade_document_coverage_health:/api/moral-trade/document-coverage/health","moral_trade_evaluation_health:/api/moral-trade/evaluation/health","moral_trade_externality_health:/api/moral-trade/externality/health","moral_trade_health:/api/moral-trade/health","moral_trade_incident_response_health:/api/moral-trade/incident-response/health","moral_trade_match_signal_contract:/api/moral-trade/match-signal/contract","moral_trade_match_signal_evaluate:/api/moral-trade/match-signal/evaluate","moral_trade_operations_health:/api/moral-trade/operations/health","moral_trade_performance_health:/api/moral-trade/performance/health","moral_trade_policy_bundle_contract:/api/moral-trade/policy-bundle/contract","moral_trade_private_overlap_contract:/api/moral-trade/private-overlap/contract","moral_trade_provenance_schema:/api/moral-trade/provenance/schema","moral_trade_reasoning_packets:/api/moral-trade/reasoning/packets","moral_trade_review_workflow_contract:/api/moral-trade/review-workflow/contract","moral_trade_review_workflow_evaluate:/api/moral-trade/review-workflow/evaluate","moral_trade_schema_registry:/api/moral-trade/schemas","moral_trade_security_health:/api/moral-trade/security/health","moral_trade_transparency_report:/api/moral-trade/transparency/report","profile_export:/api/profile/export","profile_import:/api/profile/import","profile_schema:/api/profile/schema","public_offer_create_similar:/api/offers/:id/create-similar","public_offer_detail:/api/offers/:slug","public_offer_follow:/api/offers/:id/follow","public_offers_collection:/api/offers","public_offers_facets:/api/offers/facets","saved_search_create:/api/saved-searches","wish_registry_search:/api/wish-registry/search"],"orphanedRateLimitSurfaces":[],"routeFindings":[{"routeKey":"moral_trade_health","routePath":"/api/moral-trade/health","routeFilePresent":false,"candidateRouteFiles":["src/app/api/moral-trade/health/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"public_contract_read","rateLimitLimit":240,"rateLimitWindowMs":60000,"cacheControl":"no_store_dynamic","cacheControlHeader":"no-store","status":"fail"},{"routeKey":"moral_trade_api_contract","routePath":"/api/moral-trade/api-contract","routeFilePresent":false,"candidateRouteFiles":["src/app/api/moral-trade/api-contract/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"public_contract_read","rateLimitLimit":240,"rateLimitWindowMs":60000,"cacheControl":"no_store_dynamic","cacheControlHeader":"no-store","status":"fail"},{"routeKey":"public_offers_collection","routePath":"/api/offers","routeFilePresent":false,"candidateRouteFiles":["src/app/api/offers/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"offer_collection_read","rateLimitLimit":120,"rateLimitWindowMs":60000,"cacheControl":"no_store_dynamic","cacheControlHeader":"no-store","status":"fail"},{"routeKey":"public_offer_detail","routePath":"/api/offers/:slug","routeFilePresent":false,"candidateRouteFiles":["src/app/api/offers/[slug]/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"offer_detail_read","rateLimitLimit":120,"rateLimitWindowMs":60000,"cacheControl":"no_store_dynamic","cacheControlHeader":"no-store","status":"fail"},{"routeKey":"public_offers_facets","routePath":"/api/offers/facets","routeFilePresent":false,"candidateRouteFiles":["src/app/api/offers/facets/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"offer_facets_read","rateLimitLimit":120,"rateLimitWindowMs":60000,"cacheControl":"no_store_dynamic","cacheControlHeader":"no-store","status":"fail"},{"routeKey":"saved_search_create","routePath":"/api/saved-searches","routeFilePresent":false,"candidateRouteFiles":["src/app/api/saved-searches/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"saved_search_write","rateLimitLimit":30,"rateLimitWindowMs":60000,"cacheControl":"private_no_store","cacheControlHeader":"private, no-store","status":"fail"},{"routeKey":"public_offer_follow","routePath":"/api/offers/:id/follow","routeFilePresent":false,"candidateRouteFiles":["src/app/api/offers/[id]/follow/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"offer_follow_write","rateLimitLimit":30,"rateLimitWindowMs":60000,"cacheControl":"private_no_store","cacheControlHeader":"private, no-store","status":"fail"},{"routeKey":"public_offer_create_similar","routePath":"/api/offers/:id/create-similar","routeFilePresent":false,"candidateRouteFiles":["src/app/api/offers/[id]/create-similar/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"offer_create_similar","rateLimitLimit":30,"rateLimitWindowMs":60000,"cacheControl":"private_no_store","cacheControlHeader":"private, no-store","status":"fail"},{"routeKey":"moral_trade_data_model_contract","routePath":"/api/moral-trade/data-model/contract","routeFilePresent":false,"candidateRouteFiles":["src/app/api/moral-trade/data-model/contract/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"public_contract_read","rateLimitLimit":240,"rateLimitWindowMs":60000,"cacheControl":"no_store_dynamic","cacheControlHeader":"no-store","status":"fail"},{"routeKey":"moral_trade_policy_bundle_contract","routePath":"/api/moral-trade/policy-bundle/contract","routeFilePresent":false,"candidateRouteFiles":["src/app/api/moral-trade/policy-bundle/contract/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"public_contract_read","rateLimitLimit":240,"rateLimitWindowMs":60000,"cacheControl":"no_store_dynamic","cacheControlHeader":"no-store","status":"fail"},{"routeKey":"moral_trade_provenance_schema","routePath":"/api/moral-trade/provenance/schema","routeFilePresent":false,"candidateRouteFiles":["src/app/api/moral-trade/provenance/schema/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"public_contract_read","rateLimitLimit":240,"rateLimitWindowMs":60000,"cacheControl":"no_store_dynamic","cacheControlHeader":"no-store","status":"fail"},{"routeKey":"moral_trade_schema_registry","routePath":"/api/moral-trade/schemas","routeFilePresent":false,"candidateRouteFiles":["src/app/api/moral-trade/schemas/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"public_contract_read","rateLimitLimit":240,"rateLimitWindowMs":60000,"cacheControl":"no_store_dynamic","cacheControlHeader":"no-store","status":"fail"},{"routeKey":"moral_trade_copilot_contract","routePath":"/api/moral-trade/copilot/contract","routeFilePresent":false,"candidateRouteFiles":["src/app/api/moral-trade/copilot/contract/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"public_contract_read","rateLimitLimit":240,"rateLimitWindowMs":60000,"cacheControl":"no_store_dynamic","cacheControlHeader":"no-store","status":"fail"},{"routeKey":"moral_trade_copilot_review","routePath":"/api/moral-trade/copilot/review","routeFilePresent":false,"candidateRouteFiles":["src/app/api/moral-trade/copilot/review/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"copilot_draft_review","rateLimitLimit":30,"rateLimitWindowMs":60000,"cacheControl":"private_no_store","cacheControlHeader":"private, no-store","status":"fail"},{"routeKey":"moral_trade_match_signal_contract","routePath":"/api/moral-trade/match-signal/contract","routeFilePresent":false,"candidateRouteFiles":["src/app/api/moral-trade/match-signal/contract/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"public_contract_read","rateLimitLimit":240,"rateLimitWindowMs":60000,"cacheControl":"no_store_dynamic","cacheControlHeader":"no-store","status":"fail"},{"routeKey":"moral_trade_match_signal_evaluate","routePath":"/api/moral-trade/match-signal/evaluate","routeFilePresent":false,"candidateRouteFiles":["src/app/api/moral-trade/match-signal/evaluate/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"match_signal_evaluate","rateLimitLimit":60,"rateLimitWindowMs":60000,"cacheControl":"private_no_store","cacheControlHeader":"private, no-store","status":"fail"},{"routeKey":"moral_trade_challenge_appeal_contract","routePath":"/api/moral-trade/challenge-appeal/contract","routeFilePresent":false,"candidateRouteFiles":["src/app/api/moral-trade/challenge-appeal/contract/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"public_contract_read","rateLimitLimit":240,"rateLimitWindowMs":60000,"cacheControl":"no_store_dynamic","cacheControlHeader":"no-store","status":"fail"},{"routeKey":"moral_trade_challenge_appeal_evaluate","routePath":"/api/moral-trade/challenge-appeal/evaluate","routeFilePresent":false,"candidateRouteFiles":["src/app/api/moral-trade/challenge-appeal/evaluate/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"challenge_appeal_evaluate","rateLimitLimit":30,"rateLimitWindowMs":60000,"cacheControl":"private_no_store","cacheControlHeader":"private, no-store","status":"fail"},{"routeKey":"moral_trade_disclosure_contract","routePath":"/api/moral-trade/disclosure/contract","routeFilePresent":false,"candidateRouteFiles":["src/app/api/moral-trade/disclosure/contract/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"public_contract_read","rateLimitLimit":240,"rateLimitWindowMs":60000,"cacheControl":"no_store_dynamic","cacheControlHeader":"no-store","status":"fail"},{"routeKey":"moral_trade_disclosure_evaluate","routePath":"/api/moral-trade/disclosure/evaluate","routeFilePresent":false,"candidateRouteFiles":["src/app/api/moral-trade/disclosure/evaluate/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"disclosure_evaluate","rateLimitLimit":30,"rateLimitWindowMs":60000,"cacheControl":"private_no_store","cacheControlHeader":"private, no-store","status":"fail"},{"routeKey":"moral_trade_review_workflow_contract","routePath":"/api/moral-trade/review-workflow/contract","routeFilePresent":false,"candidateRouteFiles":["src/app/api/moral-trade/review-workflow/contract/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"public_contract_read","rateLimitLimit":240,"rateLimitWindowMs":60000,"cacheControl":"no_store_dynamic","cacheControlHeader":"no-store","status":"fail"},{"routeKey":"moral_trade_reasoning_packets","routePath":"/api/moral-trade/reasoning/packets","routeFilePresent":false,"candidateRouteFiles":["src/app/api/moral-trade/reasoning/packets/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"public_contract_read","rateLimitLimit":240,"rateLimitWindowMs":60000,"cacheControl":"no_store_dynamic","cacheControlHeader":"no-store","status":"fail"},{"routeKey":"moral_trade_review_workflow_evaluate","routePath":"/api/moral-trade/review-workflow/evaluate","routeFilePresent":false,"candidateRouteFiles":["src/app/api/moral-trade/review-workflow/evaluate/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"review_workflow_evaluate","rateLimitLimit":60,"rateLimitWindowMs":60000,"cacheControl":"private_no_store","cacheControlHeader":"private, no-store","status":"fail"},{"routeKey":"moral_trade_operations_health","routePath":"/api/moral-trade/operations/health","routeFilePresent":false,"candidateRouteFiles":["src/app/api/moral-trade/operations/health/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"public_contract_read","rateLimitLimit":240,"rateLimitWindowMs":60000,"cacheControl":"no_store_dynamic","cacheControlHeader":"no-store","status":"fail"},{"routeKey":"moral_trade_security_health","routePath":"/api/moral-trade/security/health","routeFilePresent":false,"candidateRouteFiles":["src/app/api/moral-trade/security/health/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"public_contract_read","rateLimitLimit":240,"rateLimitWindowMs":60000,"cacheControl":"no_store_dynamic","cacheControlHeader":"no-store","status":"fail"},{"routeKey":"moral_trade_incident_response_health","routePath":"/api/moral-trade/incident-response/health","routeFilePresent":false,"candidateRouteFiles":["src/app/api/moral-trade/incident-response/health/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"public_contract_read","rateLimitLimit":240,"rateLimitWindowMs":60000,"cacheControl":"no_store_dynamic","cacheControlHeader":"no-store","status":"fail"},{"routeKey":"moral_trade_evaluation_health","routePath":"/api/moral-trade/evaluation/health","routeFilePresent":false,"candidateRouteFiles":["src/app/api/moral-trade/evaluation/health/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"public_contract_read","rateLimitLimit":240,"rateLimitWindowMs":60000,"cacheControl":"no_store_dynamic","cacheControlHeader":"no-store","status":"fail"},{"routeKey":"moral_trade_performance_health","routePath":"/api/moral-trade/performance/health","routeFilePresent":false,"candidateRouteFiles":["src/app/api/moral-trade/performance/health/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"public_contract_read","rateLimitLimit":240,"rateLimitWindowMs":60000,"cacheControl":"no_store_dynamic","cacheControlHeader":"no-store","status":"fail"},{"routeKey":"moral_trade_externality_health","routePath":"/api/moral-trade/externality/health","routeFilePresent":false,"candidateRouteFiles":["src/app/api/moral-trade/externality/health/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"public_contract_read","rateLimitLimit":240,"rateLimitWindowMs":60000,"cacheControl":"no_store_dynamic","cacheControlHeader":"no-store","status":"fail"},{"routeKey":"moral_trade_ai_governance_health","routePath":"/api/moral-trade/ai-governance/health","routeFilePresent":false,"candidateRouteFiles":["src/app/api/moral-trade/ai-governance/health/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"public_contract_read","rateLimitLimit":240,"rateLimitWindowMs":60000,"cacheControl":"no_store_dynamic","cacheControlHeader":"no-store","status":"fail"},{"routeKey":"moral_trade_document_coverage_health","routePath":"/api/moral-trade/document-coverage/health","routeFilePresent":false,"candidateRouteFiles":["src/app/api/moral-trade/document-coverage/health/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"public_contract_read","rateLimitLimit":240,"rateLimitWindowMs":60000,"cacheControl":"no_store_dynamic","cacheControlHeader":"no-store","status":"fail"},{"routeKey":"moral_trade_ai_shadow_contract","routePath":"/api/moral-trade/ai-shadow/contract","routeFilePresent":false,"candidateRouteFiles":["src/app/api/moral-trade/ai-shadow/contract/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"public_contract_read","rateLimitLimit":240,"rateLimitWindowMs":60000,"cacheControl":"no_store_dynamic","cacheControlHeader":"no-store","status":"fail"},{"routeKey":"moral_trade_background_capability_gates_contract","routePath":"/api/moral-trade/background-capability-gates/contract","routeFilePresent":false,"candidateRouteFiles":["src/app/api/moral-trade/background-capability-gates/contract/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"public_contract_read","rateLimitLimit":240,"rateLimitWindowMs":60000,"cacheControl":"no_store_dynamic","cacheControlHeader":"no-store","status":"fail"},{"routeKey":"moral_trade_private_overlap_contract","routePath":"/api/moral-trade/private-overlap/contract","routeFilePresent":false,"candidateRouteFiles":["src/app/api/moral-trade/private-overlap/contract/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"public_contract_read","rateLimitLimit":240,"rateLimitWindowMs":60000,"cacheControl":"no_store_dynamic","cacheControlHeader":"no-store","status":"fail"},{"routeKey":"moral_trade_background_rls_audit_contract","routePath":"/api/moral-trade/background-rls-audit/contract","routeFilePresent":false,"candidateRouteFiles":["src/app/api/moral-trade/background-rls-audit/contract/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"public_contract_read","rateLimitLimit":240,"rateLimitWindowMs":60000,"cacheControl":"no_store_dynamic","cacheControlHeader":"no-store","status":"fail"},{"routeKey":"moral_trade_transparency_report","routePath":"/api/moral-trade/transparency/report","routeFilePresent":false,"candidateRouteFiles":["src/app/api/moral-trade/transparency/report/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"public_contract_read","rateLimitLimit":240,"rateLimitWindowMs":60000,"cacheControl":"no_store_dynamic","cacheControlHeader":"no-store","status":"fail"},{"routeKey":"profile_schema","routePath":"/api/profile/schema","routeFilePresent":false,"candidateRouteFiles":["src/app/api/profile/schema/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"public_contract_read","rateLimitLimit":240,"rateLimitWindowMs":60000,"cacheControl":"public_contract_static","cacheControlHeader":"public, max-age=300, stale-while-revalidate=3600","status":"fail"},{"routeKey":"profile_export","routePath":"/api/profile/export","routeFilePresent":false,"candidateRouteFiles":["src/app/api/profile/export/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"profile_portability","rateLimitLimit":12,"rateLimitWindowMs":60000,"cacheControl":"private_no_store","cacheControlHeader":"private, no-store","status":"fail"},{"routeKey":"profile_import","routePath":"/api/profile/import","routeFilePresent":false,"candidateRouteFiles":["src/app/api/profile/import/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"profile_portability","rateLimitLimit":12,"rateLimitWindowMs":60000,"cacheControl":"private_no_store","cacheControlHeader":"private, no-store","status":"fail"},{"routeKey":"background_source_connection_create","routePath":"/api/background/source-connections","routeFilePresent":false,"candidateRouteFiles":["src/app/api/background/source-connections/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"background_source_summary_write","rateLimitLimit":12,"rateLimitWindowMs":60000,"cacheControl":"private_no_store","cacheControlHeader":"private, no-store","status":"fail"},{"routeKey":"background_source_connection_revoke","routePath":"/api/background/source-connections/:id","routeFilePresent":false,"candidateRouteFiles":["src/app/api/background/source-connections/[id]/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"background_source_summary_write","rateLimitLimit":12,"rateLimitWindowMs":60000,"cacheControl":"private_no_store","cacheControlHeader":"private, no-store","status":"fail"},{"routeKey":"background_source_summary_draft","routePath":"/api/background/source-connections/:id/draft-summary","routeFilePresent":false,"candidateRouteFiles":["src/app/api/background/source-connections/[id]/draft-summary/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"background_source_summary_write","rateLimitLimit":12,"rateLimitWindowMs":60000,"cacheControl":"private_no_store","cacheControlHeader":"private, no-store","status":"fail"},{"routeKey":"background_source_summary_approve","routePath":"/api/background/source-summaries/:id/approve","routeFilePresent":false,"candidateRouteFiles":["src/app/api/background/source-summaries/[id]/approve/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"background_source_summary_write","rateLimitLimit":12,"rateLimitWindowMs":60000,"cacheControl":"private_no_store","cacheControlHeader":"private, no-store","status":"fail"},{"routeKey":"background_profile_signal_recompute","routePath":"/api/background/profile-signals/recompute","routeFilePresent":false,"candidateRouteFiles":["src/app/api/background/profile-signals/recompute/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"background_source_summary_write","rateLimitLimit":12,"rateLimitWindowMs":60000,"cacheControl":"private_no_store","cacheControlHeader":"private, no-store","status":"fail"},{"routeKey":"background_source_summary_create","routePath":"/api/background/source-summaries","routeFilePresent":false,"candidateRouteFiles":["src/app/api/background/source-summaries/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"background_source_summary_write","rateLimitLimit":12,"rateLimitWindowMs":60000,"cacheControl":"private_no_store","cacheControlHeader":"private, no-store","status":"fail"},{"routeKey":"background_intro_packet_create","routePath":"/api/background/intro-packets","routeFilePresent":false,"candidateRouteFiles":["src/app/api/background/intro-packets/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"background_intro_packet_write","rateLimitLimit":12,"rateLimitWindowMs":60000,"cacheControl":"private_no_store","cacheControlHeader":"private, no-store","status":"fail"},{"routeKey":"background_intro_request_create","routePath":"/api/background/intro-requests","routeFilePresent":false,"candidateRouteFiles":["src/app/api/background/intro-requests/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"background_intro_packet_write","rateLimitLimit":12,"rateLimitWindowMs":60000,"cacheControl":"private_no_store","cacheControlHeader":"private, no-store","status":"fail"},{"routeKey":"background_intro_request_appeal","routePath":"/api/background/intro-requests/:id/appeal","routeFilePresent":false,"candidateRouteFiles":["src/app/api/background/intro-requests/[id]/appeal/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"background_intro_packet_write","rateLimitLimit":12,"rateLimitWindowMs":60000,"cacheControl":"private_no_store","cacheControlHeader":"private, no-store","status":"fail"},{"routeKey":"background_intro_request_approve_contact","routePath":"/api/background/intro-requests/:id/approve-contact","routeFilePresent":false,"candidateRouteFiles":["src/app/api/background/intro-requests/[id]/approve-contact/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"background_intro_packet_write","rateLimitLimit":12,"rateLimitWindowMs":60000,"cacheControl":"private_no_store","cacheControlHeader":"private, no-store","status":"fail"},{"routeKey":"background_opportunity_brief_list","routePath":"/api/background/opportunity-briefs","routeFilePresent":false,"candidateRouteFiles":["src/app/api/background/opportunity-briefs/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"background_opportunity_brief_read","rateLimitLimit":60,"rateLimitWindowMs":60000,"cacheControl":"private_no_store","cacheControlHeader":"private, no-store","status":"fail"},{"routeKey":"background_opportunity_list","routePath":"/api/background/opportunities","routeFilePresent":false,"candidateRouteFiles":["src/app/api/background/opportunities/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"background_opportunity_brief_read","rateLimitLimit":60,"rateLimitWindowMs":60000,"cacheControl":"private_no_store","cacheControlHeader":"private, no-store","status":"fail"},{"routeKey":"background_opportunity_feedback_create","routePath":"/api/background/opportunity-briefs/:id/feedback","routeFilePresent":false,"candidateRouteFiles":["src/app/api/background/opportunity-briefs/[id]/feedback/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"background_opportunity_feedback_write","rateLimitLimit":30,"rateLimitWindowMs":60000,"cacheControl":"private_no_store","cacheControlHeader":"private, no-store","status":"fail"},{"routeKey":"background_opportunity_feedback_create_alias","routePath":"/api/background/opportunities/:id/feedback","routeFilePresent":false,"candidateRouteFiles":["src/app/api/background/opportunities/[id]/feedback/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"background_opportunity_feedback_write","rateLimitLimit":30,"rateLimitWindowMs":60000,"cacheControl":"private_no_store","cacheControlHeader":"private, no-store","status":"fail"},{"routeKey":"wish_registry_search","routePath":"/api/wish-registry/search","routeFilePresent":false,"candidateRouteFiles":["src/app/api/wish-registry/search/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"wish_registry_search","rateLimitLimit":60,"rateLimitWindowMs":60000,"cacheControl":"no_store_dynamic","cacheControlHeader":"no-store","status":"fail"},{"routeKey":"funnel_events","routePath":"/api/funnel-events","routeFilePresent":false,"candidateRouteFiles":["src/app/api/funnel-events/route.ts"],"resolvedRouteFile":null,"rateLimitSurface":"analytics_ingest","rateLimitLimit":120,"rateLimitWindowMs":60000,"cacheControl":"no_store_dynamic","cacheControlHeader":"no-store","status":"fail"}],"blockers":["missing_route_file:background_intro_packet_create:/api/background/intro-packets","missing_route_file:background_intro_request_appeal:/api/background/intro-requests/:id/appeal","missing_route_file:background_intro_request_approve_contact:/api/background/intro-requests/:id/approve-contact","missing_route_file:background_intro_request_create:/api/background/intro-requests","missing_route_file:background_opportunity_brief_list:/api/background/opportunity-briefs","missing_route_file:background_opportunity_feedback_create:/api/background/opportunity-briefs/:id/feedback","missing_route_file:background_opportunity_feedback_create_alias:/api/background/opportunities/:id/feedback","missing_route_file:background_opportunity_list:/api/background/opportunities","missing_route_file:background_profile_signal_recompute:/api/background/profile-signals/recompute","missing_route_file:background_source_connection_create:/api/background/source-connections","missing_route_file:background_source_connection_revoke:/api/background/source-connections/:id","missing_route_file:background_source_summary_approve:/api/background/source-summaries/:id/approve","missing_route_file:background_source_summary_create:/api/background/source-summaries","missing_route_file:background_source_summary_draft:/api/background/source-connections/:id/draft-summary","missing_route_file:funnel_events:/api/funnel-events","missing_route_file:moral_trade_ai_governance_health:/api/moral-trade/ai-governance/health","missing_route_file:moral_trade_ai_shadow_contract:/api/moral-trade/ai-shadow/contract","missing_route_file:moral_trade_api_contract:/api/moral-trade/api-contract","missing_route_file:moral_trade_background_capability_gates_contract:/api/moral-trade/background-capability-gates/contract","missing_route_file:moral_trade_background_rls_audit_contract:/api/moral-trade/background-rls-audit/contract","missing_route_file:moral_trade_challenge_appeal_contract:/api/moral-trade/challenge-appeal/contract","missing_route_file:moral_trade_challenge_appeal_evaluate:/api/moral-trade/challenge-appeal/evaluate","missing_route_file:moral_trade_copilot_contract:/api/moral-trade/copilot/contract","missing_route_file:moral_trade_copilot_review:/api/moral-trade/copilot/review","missing_route_file:moral_trade_data_model_contract:/api/moral-trade/data-model/contract","missing_route_file:moral_trade_disclosure_contract:/api/moral-trade/disclosure/contract","missing_route_file:moral_trade_disclosure_evaluate:/api/moral-trade/disclosure/evaluate","missing_route_file:moral_trade_document_coverage_health:/api/moral-trade/document-coverage/health","missing_route_file:moral_trade_evaluation_health:/api/moral-trade/evaluation/health","missing_route_file:moral_trade_externality_health:/api/moral-trade/externality/health","missing_route_file:moral_trade_health:/api/moral-trade/health","missing_route_file:moral_trade_incident_response_health:/api/moral-trade/incident-response/health","missing_route_file:moral_trade_match_signal_contract:/api/moral-trade/match-signal/contract","missing_route_file:moral_trade_match_signal_evaluate:/api/moral-trade/match-signal/evaluate","missing_route_file:moral_trade_operations_health:/api/moral-trade/operations/health","missing_route_file:moral_trade_performance_health:/api/moral-trade/performance/health","missing_route_file:moral_trade_policy_bundle_contract:/api/moral-trade/policy-bundle/contract","missing_route_file:moral_trade_private_overlap_contract:/api/moral-trade/private-overlap/contract","missing_route_file:moral_trade_provenance_schema:/api/moral-trade/provenance/schema","missing_route_file:moral_trade_reasoning_packets:/api/moral-trade/reasoning/packets","missing_route_file:moral_trade_review_workflow_contract:/api/moral-trade/review-workflow/contract","missing_route_file:moral_trade_review_workflow_evaluate:/api/moral-trade/review-workflow/evaluate","missing_route_file:moral_trade_schema_registry:/api/moral-trade/schemas","missing_route_file:moral_trade_security_health:/api/moral-trade/security/health","missing_route_file:moral_trade_transparency_report:/api/moral-trade/transparency/report","missing_route_file:profile_export:/api/profile/export","missing_route_file:profile_import:/api/profile/import","missing_route_file:profile_schema:/api/profile/schema","missing_route_file:public_offer_create_similar:/api/offers/:id/create-similar","missing_route_file:public_offer_detail:/api/offers/:slug","missing_route_file:public_offer_follow:/api/offers/:id/follow","missing_route_file:public_offers_collection:/api/offers","missing_route_file:public_offers_facets:/api/offers/facets","missing_route_file:saved_search_create:/api/saved-searches","missing_route_file:wish_registry_search:/api/wish-registry/search"]},"publicContract":{"routes":[{"key":"moral_trade_health","method":"GET","path":"/api/moral-trade/health","auth":"public","privacyClass":"public_contract","requestSchema":"empty_request","responseSchema":"moral_trade_aggregate_health_response","rateLimitSurface":"public_contract_read","cacheControl":"no_store_dynamic"},{"key":"moral_trade_api_contract","method":"GET","path":"/api/moral-trade/api-contract","auth":"public","privacyClass":"public_contract","requestSchema":"empty_request","responseSchema":"api_contract_response","rateLimitSurface":"public_contract_read","cacheControl":"no_store_dynamic"},{"key":"public_offers_collection","method":"GET","path":"/api/offers","auth":"public","privacyClass":"public_contract","requestSchema":"public_offers_collection_request","responseSchema":"public_offers_collection_response","rateLimitSurface":"offer_collection_read","cacheControl":"no_store_dynamic"},{"key":"public_offer_detail","method":"GET","path":"/api/offers/:slug","auth":"public","privacyClass":"public_contract","requestSchema":"public_offer_detail_request","responseSchema":"public_offer_detail_response","rateLimitSurface":"offer_detail_read","cacheControl":"no_store_dynamic"},{"key":"public_offers_facets","method":"GET","path":"/api/offers/facets","auth":"public","privacyClass":"public_contract","requestSchema":"public_offers_facets_request","responseSchema":"public_offers_facets_response","rateLimitSurface":"offer_facets_read","cacheControl":"no_store_dynamic"},{"key":"saved_search_create","method":"POST","path":"/api/saved-searches","auth":"authenticated","privacyClass":"authenticated_private","requestSchema":"saved_search_create_request","responseSchema":"saved_search_create_response","rateLimitSurface":"saved_search_write","cacheControl":"private_no_store"},{"key":"public_offer_follow","method":"POST","path":"/api/offers/:id/follow","auth":"authenticated","privacyClass":"authenticated_private","requestSchema":"public_offer_follow_request","responseSchema":"public_offer_follow_response","rateLimitSurface":"offer_follow_write","cacheControl":"private_no_store"},{"key":"public_offer_create_similar","method":"POST","path":"/api/offers/:id/create-similar","auth":"authenticated","privacyClass":"authenticated_private","requestSchema":"public_offer_create_similar_request","responseSchema":"public_offer_create_similar_response","rateLimitSurface":"offer_create_similar","cacheControl":"private_no_store"},{"key":"moral_trade_data_model_contract","method":"GET","path":"/api/moral-trade/data-model/contract","auth":"public","privacyClass":"public_contract","requestSchema":"empty_request","responseSchema":"data_model_contract_response","rateLimitSurface":"public_contract_read","cacheControl":"no_store_dynamic"},{"key":"moral_trade_policy_bundle_contract","method":"GET","path":"/api/moral-trade/policy-bundle/contract","auth":"public","privacyClass":"public_contract","requestSchema":"empty_request","responseSchema":"policy_bundle_contract_response","rateLimitSurface":"public_contract_read","cacheControl":"no_store_dynamic"},{"key":"moral_trade_provenance_schema","method":"GET","path":"/api/moral-trade/provenance/schema","auth":"public","privacyClass":"public_contract","requestSchema":"empty_request","responseSchema":"provenance_schema_response","rateLimitSurface":"public_contract_read","cacheControl":"no_store_dynamic"},{"key":"moral_trade_schema_registry","method":"GET","path":"/api/moral-trade/schemas","auth":"public","privacyClass":"public_schema","requestSchema":"empty_request","responseSchema":"schema_registry_response","rateLimitSurface":"public_contract_read","cacheControl":"no_store_dynamic"},{"key":"moral_trade_copilot_contract","method":"GET","path":"/api/moral-trade/copilot/contract","auth":"public","privacyClass":"public_contract","requestSchema":"empty_request","responseSchema":"copilot_contract_response","rateLimitSurface":"public_contract_read","cacheControl":"no_store_dynamic"},{"key":"moral_trade_copilot_review","method":"POST","path":"/api/moral-trade/copilot/review","auth":"optional","privacyClass":"ephemeral_private_draft_review","requestSchema":"copilot_review_request","responseSchema":"copilot_review_response","rateLimitSurface":"copilot_draft_review","cacheControl":"private_no_store"},{"key":"moral_trade_match_signal_contract","method":"GET","path":"/api/moral-trade/match-signal/contract","auth":"public","privacyClass":"public_contract","requestSchema":"empty_request","responseSchema":"match_signal_contract_response","rateLimitSurface":"public_contract_read","cacheControl":"no_store_dynamic"},{"key":"moral_trade_match_signal_evaluate","method":"POST","path":"/api/moral-trade/match-signal/evaluate","auth":"optional","privacyClass":"ephemeral_private_draft_review","requestSchema":"match_signal_evaluate_request","responseSchema":"match_signal_evaluate_response","rateLimitSurface":"match_signal_evaluate","cacheControl":"private_no_store"},{"key":"moral_trade_challenge_appeal_contract","method":"GET","path":"/api/moral-trade/challenge-appeal/contract","auth":"public","privacyClass":"public_contract","requestSchema":"empty_request","responseSchema":"challenge_appeal_contract_response","rateLimitSurface":"public_contract_read","cacheControl":"no_store_dynamic"},{"key":"moral_trade_challenge_appeal_evaluate","method":"POST","path":"/api/moral-trade/challenge-appeal/evaluate","auth":"optional","privacyClass":"ephemeral_private_draft_review","requestSchema":"challenge_appeal_evaluate_request","responseSchema":"challenge_appeal_evaluate_response","rateLimitSurface":"challenge_appeal_evaluate","cacheControl":"private_no_store"},{"key":"moral_trade_disclosure_contract","method":"GET","path":"/api/moral-trade/disclosure/contract","auth":"public","privacyClass":"public_contract","requestSchema":"empty_request","responseSchema":"disclosure_contract_response","rateLimitSurface":"public_contract_read","cacheControl":"no_store_dynamic"},{"key":"moral_trade_disclosure_evaluate","method":"POST","path":"/api/moral-trade/disclosure/evaluate","auth":"optional","privacyClass":"ephemeral_private_draft_review","requestSchema":"disclosure_evaluate_request","responseSchema":"disclosure_evaluate_response","rateLimitSurface":"disclosure_evaluate","cacheControl":"private_no_store"},{"key":"moral_trade_review_workflow_contract","method":"GET","path":"/api/moral-trade/review-workflow/contract","auth":"public","privacyClass":"public_contract","requestSchema":"empty_request","responseSchema":"review_workflow_contract_response","rateLimitSurface":"public_contract_read","cacheControl":"no_store_dynamic"},{"key":"moral_trade_reasoning_packets","method":"GET","path":"/api/moral-trade/reasoning/packets","auth":"public","privacyClass":"public_contract","requestSchema":"reasoning_packets_request","responseSchema":"reasoning_packets_response","rateLimitSurface":"public_contract_read","cacheControl":"no_store_dynamic"},{"key":"moral_trade_review_workflow_evaluate","method":"POST","path":"/api/moral-trade/review-workflow/evaluate","auth":"optional","privacyClass":"ephemeral_private_draft_review","requestSchema":"review_workflow_evaluate_request","responseSchema":"review_workflow_evaluate_response","rateLimitSurface":"review_workflow_evaluate","cacheControl":"private_no_store"},{"key":"moral_trade_operations_health","method":"GET","path":"/api/moral-trade/operations/health","auth":"public","privacyClass":"public_contract","requestSchema":"empty_request","responseSchema":"operations_health_response","rateLimitSurface":"public_contract_read","cacheControl":"no_store_dynamic"},{"key":"moral_trade_security_health","method":"GET","path":"/api/moral-trade/security/health","auth":"public","privacyClass":"public_contract","requestSchema":"empty_request","responseSchema":"security_health_response","rateLimitSurface":"public_contract_read","cacheControl":"no_store_dynamic"},{"key":"moral_trade_incident_response_health","method":"GET","path":"/api/moral-trade/incident-response/health","auth":"public","privacyClass":"public_contract","requestSchema":"empty_request","responseSchema":"incident_response_health_response","rateLimitSurface":"public_contract_read","cacheControl":"no_store_dynamic"},{"key":"moral_trade_evaluation_health","method":"GET","path":"/api/moral-trade/evaluation/health","auth":"public","privacyClass":"public_contract","requestSchema":"empty_request","responseSchema":"evaluation_health_response","rateLimitSurface":"public_contract_read","cacheControl":"no_store_dynamic"},{"key":"moral_trade_performance_health","method":"GET","path":"/api/moral-trade/performance/health","auth":"public","privacyClass":"public_contract","requestSchema":"empty_request","responseSchema":"performance_health_response","rateLimitSurface":"public_contract_read","cacheControl":"no_store_dynamic"},{"key":"moral_trade_externality_health","method":"GET","path":"/api/moral-trade/externality/health","auth":"public","privacyClass":"public_contract","requestSchema":"empty_request","responseSchema":"externality_health_response","rateLimitSurface":"public_contract_read","cacheControl":"no_store_dynamic"},{"key":"moral_trade_ai_governance_health","method":"GET","path":"/api/moral-trade/ai-governance/health","auth":"public","privacyClass":"public_contract","requestSchema":"empty_request","responseSchema":"ai_governance_health_response","rateLimitSurface":"public_contract_read","cacheControl":"no_store_dynamic"},{"key":"moral_trade_document_coverage_health","method":"GET","path":"/api/moral-trade/document-coverage/health","auth":"public","privacyClass":"public_contract","requestSchema":"empty_request","responseSchema":"document_coverage_health_response","rateLimitSurface":"public_contract_read","cacheControl":"no_store_dynamic"},{"key":"moral_trade_ai_shadow_contract","method":"GET","path":"/api/moral-trade/ai-shadow/contract","auth":"public","privacyClass":"public_contract","requestSchema":"empty_request","responseSchema":"ai_shadow_contract_response","rateLimitSurface":"public_contract_read","cacheControl":"no_store_dynamic"},{"key":"moral_trade_background_capability_gates_contract","method":"GET","path":"/api/moral-trade/background-capability-gates/contract","auth":"public","privacyClass":"public_contract","requestSchema":"empty_request","responseSchema":"background_capability_gates_contract_response","rateLimitSurface":"public_contract_read","cacheControl":"no_store_dynamic"},{"key":"moral_trade_private_overlap_contract","method":"GET","path":"/api/moral-trade/private-overlap/contract","auth":"public","privacyClass":"public_contract","requestSchema":"empty_request","responseSchema":"private_overlap_contract_response","rateLimitSurface":"public_contract_read","cacheControl":"no_store_dynamic"},{"key":"moral_trade_background_rls_audit_contract","method":"GET","path":"/api/moral-trade/background-rls-audit/contract","auth":"public","privacyClass":"public_contract","requestSchema":"empty_request","responseSchema":"background_rls_audit_contract_response","rateLimitSurface":"public_contract_read","cacheControl":"no_store_dynamic"},{"key":"moral_trade_transparency_report","method":"GET","path":"/api/moral-trade/transparency/report","auth":"public","privacyClass":"public_contract","requestSchema":"empty_request","responseSchema":"transparency_report_response","rateLimitSurface":"public_contract_read","cacheControl":"no_store_dynamic"},{"key":"profile_schema","method":"GET","path":"/api/profile/schema","auth":"public","privacyClass":"public_schema","requestSchema":"empty_request","responseSchema":"profile_portability_schema_response","rateLimitSurface":"public_contract_read","cacheControl":"public_contract_static"},{"key":"profile_export","method":"GET","path":"/api/profile/export","auth":"authenticated","privacyClass":"authenticated_private","requestSchema":"authenticated_export_request","responseSchema":"profile_export_response","rateLimitSurface":"profile_portability","cacheControl":"private_no_store"},{"key":"profile_import","method":"POST","path":"/api/profile/import","auth":"authenticated","privacyClass":"authenticated_private","requestSchema":"profile_import_request","responseSchema":"profile_import_response","rateLimitSurface":"profile_portability","cacheControl":"private_no_store"},{"key":"background_source_connection_create","method":"POST","path":"/api/background/source-connections","auth":"authenticated","privacyClass":"authenticated_private","requestSchema":"background_source_connection_create_request","responseSchema":"background_source_connection_create_response","rateLimitSurface":"background_source_summary_write","cacheControl":"private_no_store"},{"key":"background_source_connection_revoke","method":"DELETE","path":"/api/background/source-connections/:id","auth":"authenticated","privacyClass":"authenticated_private","requestSchema":"empty_request","responseSchema":"background_source_connection_revoke_response","rateLimitSurface":"background_source_summary_write","cacheControl":"private_no_store"},{"key":"background_source_summary_draft","method":"POST","path":"/api/background/source-connections/:id/draft-summary","auth":"authenticated","privacyClass":"authenticated_private","requestSchema":"background_source_summary_draft_request","responseSchema":"background_source_summary_draft_response","rateLimitSurface":"background_source_summary_write","cacheControl":"private_no_store"},{"key":"background_source_summary_approve","method":"POST","path":"/api/background/source-summaries/:id/approve","auth":"authenticated","privacyClass":"authenticated_private","requestSchema":"background_source_summary_approve_request","responseSchema":"background_source_summary_approve_response","rateLimitSurface":"background_source_summary_write","cacheControl":"private_no_store"},{"key":"background_profile_signal_recompute","method":"POST","path":"/api/background/profile-signals/recompute","auth":"authenticated","privacyClass":"authenticated_private","requestSchema":"empty_request","responseSchema":"background_profile_signal_recompute_response","rateLimitSurface":"background_source_summary_write","cacheControl":"private_no_store"},{"key":"background_source_summary_create","method":"POST","path":"/api/background/source-summaries","auth":"authenticated","privacyClass":"authenticated_private","requestSchema":"background_source_summary_create_request","responseSchema":"background_source_summary_create_response","rateLimitSurface":"background_source_summary_write","cacheControl":"private_no_store"},{"key":"background_intro_packet_create","method":"POST","path":"/api/background/intro-packets","auth":"authenticated","privacyClass":"authenticated_private","requestSchema":"background_intro_packet_create_request","responseSchema":"background_intro_packet_create_response","rateLimitSurface":"background_intro_packet_write","cacheControl":"private_no_store"},{"key":"background_intro_request_create","method":"POST","path":"/api/background/intro-requests","auth":"authenticated","privacyClass":"authenticated_private","requestSchema":"background_intro_request_create_request","responseSchema":"background_intro_request_create_response","rateLimitSurface":"background_intro_packet_write","cacheControl":"private_no_store"},{"key":"background_intro_request_appeal","method":"POST","path":"/api/background/intro-requests/:id/appeal","auth":"authenticated","privacyClass":"authenticated_private","requestSchema":"background_intro_request_appeal_request","responseSchema":"background_intro_request_appeal_response","rateLimitSurface":"background_intro_packet_write","cacheControl":"private_no_store"},{"key":"background_intro_request_approve_contact","method":"POST","path":"/api/background/intro-requests/:id/approve-contact","auth":"authenticated","privacyClass":"authenticated_private_step_up","requestSchema":"empty_request","responseSchema":"background_intro_request_contact_approval_response","rateLimitSurface":"background_intro_packet_write","cacheControl":"private_no_store"},{"key":"background_opportunity_brief_list","method":"GET","path":"/api/background/opportunity-briefs","auth":"authenticated","privacyClass":"authenticated_private","requestSchema":"empty_request","responseSchema":"background_opportunity_brief_list_response","rateLimitSurface":"background_opportunity_brief_read","cacheControl":"private_no_store"},{"key":"background_opportunity_list","method":"GET","path":"/api/background/opportunities","auth":"authenticated","privacyClass":"authenticated_private","requestSchema":"empty_request","responseSchema":"background_opportunity_brief_list_response","rateLimitSurface":"background_opportunity_brief_read","cacheControl":"private_no_store"},{"key":"background_opportunity_feedback_create","method":"POST","path":"/api/background/opportunity-briefs/:id/feedback","auth":"authenticated","privacyClass":"authenticated_private","requestSchema":"background_opportunity_feedback_create_request","responseSchema":"background_opportunity_feedback_create_response","rateLimitSurface":"background_opportunity_feedback_write","cacheControl":"private_no_store"},{"key":"background_opportunity_feedback_create_alias","method":"POST","path":"/api/background/opportunities/:id/feedback","auth":"authenticated","privacyClass":"authenticated_private","requestSchema":"background_opportunity_feedback_create_request","responseSchema":"background_opportunity_feedback_create_response","rateLimitSurface":"background_opportunity_feedback_write","cacheControl":"private_no_store"},{"key":"wish_registry_search","method":"GET","path":"/api/wish-registry/search","auth":"public","privacyClass":"privacy_thresholded_public_preview","requestSchema":"wish_registry_search_request","responseSchema":"wish_registry_search_response","rateLimitSurface":"wish_registry_search","cacheControl":"no_store_dynamic"},{"key":"funnel_events","method":"POST","path":"/api/funnel-events","auth":"optional","privacyClass":"redacted_analytics","requestSchema":"funnel_event_request","responseSchema":"empty_204_response","rateLimitSurface":"analytics_ingest","cacheControl":"no_store_dynamic"}],"schemaDefinitions":[{"key":"empty_request","purpose":"No request body or query contract beyond route path and auth context.","fields":[]},{"key":"public_offers_collection_request","purpose":"Public collection query parameters for browsing live offers and worked examples without exposing private/personally scoped state.","fields":[{"key":"q","type":"string","required":false,"privacy":"public","description":"Search text used to filter public listing fields; aliases search for the same value."},{"key":"tab","type":"enum","required":false,"privacy":"public","description":"live, examples, or all; defaults to examples when live inventory is zero."},{"key":"cause","type":"string_array","required":false,"privacy":"public","description":"Broad cause area filter using public cause labels or slugs."},{"key":"format","type":"enum_array","required":false,"privacy":"public","description":"pledge-swap, donation-offset, public-good, or paid-action filter."},{"key":"reviewState","type":"enum_array","required":false,"privacy":"public","description":"Public review-state filter such as manual-review-required."},{"key":"sort","type":"enum","required":false,"privacy":"public","description":"newest, reviewed, highest-offered-impact, or best-fit."},{"key":"page","type":"integer","required":false,"privacy":"public","description":"One-based page number."},{"key":"pageSize","type":"integer","required":false,"privacy":"public","description":"Requested page size capped by the endpoint."}]},{"key":"public_offers_collection_response","purpose":"Public validator-backed collection payload for live offers and worked examples, including visible facets, default-tab behavior, non-claims, and public listing items.","fields":[{"key":"ok","type":"boolean","required":true,"privacy":"public","description":"True when the public offers collection validator passes."},{"key":"checkedAt","type":"iso_datetime","required":true,"privacy":"public","description":"Server time for the public offers collection validation run."},{"key":"contractVersion","type":"string","required":true,"privacy":"public_contract","description":"Public offers API contract version."},{"key":"meta","type":"object","required":true,"privacy":"public_contract","description":"Tab, pagination, counts, sort, query, zero-live defaulting, hidden-zero-facet flag, and available facet counts."},{"key":"publicContract","type":"object","required":true,"privacy":"public_contract","description":"Source route, API route, public listing schema id, supported filters, and non-claims."},{"key":"items","type":"public_offer_listing_array","required":true,"privacy":"public_contract","description":"Public listing payloads with actions, review state, verification method, duration, baseline credibility bond badge field, canonical URL, and non-claims."},{"key":"validation","type":"validator_result","required":true,"privacy":"public","description":"Validation result for contract shape, default-tab behavior, listing shape, public-offer JSON Schema conformance, hidden zero-count facets, privacy, and non-claims."},{"key":"blockers","type":"string_array","required":true,"privacy":"public","description":"Public-offers blockers that prevent relying on the collection API."}]},{"key":"public_offer_detail_request","purpose":"Public offer detail slug path for a live public offer id or worked-example slug.","fields":[{"key":"slug","type":"path_slug","required":true,"privacy":"public","description":"Live offer id, worked example id, or examples/{id} slug."}]},{"key":"public_offer_detail_response","purpose":"Validator-backed public detail payload for one live offer or worked example, with sign-in/consent-gated actions and non-claims.","fields":[{"key":"ok","type":"boolean","required":true,"privacy":"public","description":"True when the public offer detail validator passes."},{"key":"checkedAt","type":"iso_datetime","required":true,"privacy":"public","description":"Server time for the public detail validation run."},{"key":"contractVersion","type":"string","required":true,"privacy":"public_contract","description":"Public offers API contract version."},{"key":"slug","type":"path_slug","required":true,"privacy":"public","description":"Requested public offer slug."},{"key":"publicContract","type":"object","required":true,"privacy":"public_contract","description":"Source route, detail API route, listing schema id, and non-claims."},{"key":"item","type":"public_offer_listing_or_null","required":true,"privacy":"public_contract","description":"Approved public listing fields only, including the nullable baseline credibility bond badge; null when the slug is not public."},{"key":"actions","type":"array","required":true,"privacy":"public_contract","description":"Sign-in and consent-gated public action descriptors for save, create-similar, and contact-after-sign-in."},{"key":"validation","type":"validator_result","required":true,"privacy":"public","description":"Validation result for detail route shape, listing shape, public-offer JSON Schema conformance, action gating, privacy, and non-claims."},{"key":"blockers","type":"string_array","required":true,"privacy":"public","description":"Public-offer detail blockers, including not-found blockers."}]},{"key":"public_offers_facets_request","purpose":"Public facet query parameters for the current tab/search scope without pagination.","fields":[{"key":"q","type":"string","required":false,"privacy":"public","description":"Search text used to scope visible facet counts."},{"key":"tab","type":"enum","required":false,"privacy":"public","description":"live, examples, or all; defaults to examples when live inventory is zero."},{"key":"cause","type":"string_array","required":false,"privacy":"public","description":"Optional cause scope for compatible collection queries."},{"key":"format","type":"enum_array","required":false,"privacy":"public","description":"Optional format scope for compatible collection queries."},{"key":"reviewState","type":"enum_array","required":false,"privacy":"public","description":"Optional review-state scope for compatible collection queries."},{"key":"sort","type":"enum","required":false,"privacy":"public","description":"Optional collection-compatible sort parameter; facet output remains count-based."}]},{"key":"public_offers_facets_response","purpose":"Validator-backed public facet payload with positive-count facets and zero-live default behavior.","fields":[{"key":"ok","type":"boolean","required":true,"privacy":"public","description":"True when the public facets validator passes."},{"key":"checkedAt","type":"iso_datetime","required":true,"privacy":"public","description":"Server time for the public facets validation run."},{"key":"contractVersion","type":"string","required":true,"privacy":"public_contract","description":"Public offers API contract version."},{"key":"meta","type":"object","required":true,"privacy":"public_contract","description":"Tab, query, counts, and hidden-zero-facet/defaulting state."},{"key":"publicContract","type":"object","required":true,"privacy":"public_contract","description":"Source route, facets API route, listing schema id, supported filters, and non-claims."},{"key":"availableFacets","type":"object","required":true,"privacy":"public_contract","description":"Positive-count cause, format, verification method, review state, and duration facets."},{"key":"validation","type":"validator_result","required":true,"privacy":"public","description":"Validation result for route shape, positive facets, zero-live defaulting, privacy, and non-claims."},{"key":"blockers","type":"string_array","required":true,"privacy":"public","description":"Public-offers facet blockers."}]},{"key":"saved_search_create_request","purpose":"Authenticated saved-search creation payload for offer browse memory, cause following, and live-offer notifications.","fields":[{"key":"query","type":"string","required":false,"privacy":"private_authenticated","description":"Viewer-owned public browse query copied from /offers, capped and stored only for the authenticated viewer."},{"key":"cause","type":"string_array","required":false,"privacy":"private_authenticated","description":"Public cause filters; a cause-only request functions as follow-cause browse memory."},{"key":"format","type":"enum_array","required":false,"privacy":"private_authenticated","description":"Public offer format filters such as pledge-swap or donation-offset."},{"key":"reviewState","type":"enum_array","required":false,"privacy":"private_authenticated","description":"Public review-state filters such as manual-review-required."},{"key":"notifyOnLiveMatch","type":"boolean","required":false,"privacy":"private_authenticated","description":"Whether the saved search should be eligible for live-offer notification workflows."},{"key":"cadence","type":"enum","required":false,"privacy":"private_authenticated","description":"manual, daily, weekly, or monthly scan cadence."}]},{"key":"saved_search_create_response","purpose":"Private no-store saved-search response with validator status, sign-in draft handling, and no public disclosure.","fields":[{"key":"ok","type":"boolean","required":true,"privacy":"private_authenticated","description":"True only when the saved-search payload is valid and stored for the authenticated viewer."},{"key":"checkedAt","type":"iso_datetime","required":true,"privacy":"private_authenticated","description":"Server time for the saved-search validation run."},{"key":"contractVersion","type":"string","required":true,"privacy":"public_contract","description":"Offer saved-search API contract version."},{"key":"mode","type":"enum","required":true,"privacy":"private_authenticated","description":"validated, auth_required, or created."},{"key":"savedSearch","type":"object","required":true,"privacy":"private_authenticated","description":"Viewer-owned saved-search draft or created summary with public filters only."},{"key":"signInUrl","type":"path_or_null","required":true,"privacy":"private_authenticated","description":"Returned only for unauthenticated sign-in draft mode; no search is stored before auth."},{"key":"validation","type":"validator_result","required":true,"privacy":"private_authenticated","description":"Validation result for browse scope, safe filter shape, logged-out boundary, privacy, and non-claims."},{"key":"blockers","type":"string_array","required":true,"privacy":"private_authenticated","description":"Saved-search blockers, including auth, rate-limit, validation, or storage blockers."}]},{"key":"public_offer_follow_request","purpose":"Authenticated saved-offer request for following or unfollowing one live public offer.","fields":[{"key":"id","type":"uuid_path","required":true,"privacy":"private_authenticated","description":"Live public offer id from the route path; worked-example slugs are rejected."},{"key":"action","type":"enum","required":false,"privacy":"private_authenticated","description":"follow, unfollow, or toggle; defaults to follow."}]},{"key":"public_offer_follow_response","purpose":"Private no-store saved-offer response backed by offer_carts and validator non-claims.","fields":[{"key":"ok","type":"boolean","required":true,"privacy":"private_authenticated","description":"True only when the offer-follow payload is valid and the viewer-owned saved-offer state is resolved."},{"key":"checkedAt","type":"iso_datetime","required":true,"privacy":"private_authenticated","description":"Server time for the offer-follow validation run."},{"key":"contractVersion","type":"string","required":true,"privacy":"public_contract","description":"Offer-follow API contract version."},{"key":"mode","type":"enum","required":true,"privacy":"private_authenticated","description":"validated, auth_required, followed, already_followed, unfollowed, or not_following."},{"key":"offerId","type":"uuid","required":true,"privacy":"private_authenticated","description":"Live public offer id."},{"key":"savedOffer","type":"object","required":true,"privacy":"private_authenticated","description":"Viewer-owned saved-offer state only; no public social counters or contact details."},{"key":"signInUrl","type":"path_or_null","required":true,"privacy":"private_authenticated","description":"Returned only for unauthenticated sign-in draft mode; no follow record is stored before auth."},{"key":"validation","type":"validator_result","required":true,"privacy":"private_authenticated","description":"Validation result for live-offer id shape, viewer-owned state, action bounds, privacy, and non-claims."},{"key":"blockers","type":"string_array","required":true,"privacy":"private_authenticated","description":"Offer-follow blockers, including auth, ownership, live-offer, rate-limit, or storage blockers."}]},{"key":"public_offer_create_similar_request","purpose":"Authenticated draft-prefill request for creating a similar offer from one live public offer.","fields":[{"key":"id","type":"uuid_path","required":true,"privacy":"private_authenticated","description":"Live public offer id from the route path; worked-example slugs are rejected."}]},{"key":"public_offer_create_similar_response","purpose":"Private no-store create-similar response with a review-required draft template and no storage side effects.","fields":[{"key":"ok","type":"boolean","required":true,"privacy":"private_authenticated","description":"True only when the create-similar payload is valid and a review-required draft prefill is ready."},{"key":"checkedAt","type":"iso_datetime","required":true,"privacy":"private_authenticated","description":"Server time for the create-similar validation run."},{"key":"contractVersion","type":"string","required":true,"privacy":"public_contract","description":"Offer create-similar API contract version."},{"key":"mode","type":"enum","required":true,"privacy":"private_authenticated","description":"validated, auth_required, ready, or source_unavailable."},{"key":"offerId","type":"uuid","required":true,"privacy":"private_authenticated","description":"Live public source offer id."},{"key":"draft","type":"object","required":true,"privacy":"private_authenticated","description":"Viewer-local draft URL, copied public fields, review-required flag, and stateMutation:false; no offer is stored before auth."},{"key":"signInUrl","type":"path_or_null","required":true,"privacy":"private_authenticated","description":"Returned only for unauthenticated sign-in draft mode; no draft or follow record is stored before auth."},{"key":"validation","type":"validator_result","required":true,"privacy":"private_authenticated","description":"Validation result for live-offer id shape, draft boundary, safe template shape, privacy, and non-claims."},{"key":"blockers","type":"string_array","required":true,"privacy":"private_authenticated","description":"Create-similar blockers, including auth, source-offer, rate-limit, validation, or storage-availability blockers."}]},{"key":"moral_trade_aggregate_health_response","purpose":"Aggregate protocol, data-model, policy-bundle, schema-registry, copilot, match-signal, challenge-appeal, disclosure-grant, reasoning-packet, operations, security, incident-response, evaluation, performance, externality, transparency, API-contract, AI-governance, and document-coverage validation response.","fields":[{"key":"ok","type":"boolean","required":true,"privacy":"public","description":"True only when every core validator passes."},{"key":"checkedAt","type":"iso_datetime","required":true,"privacy":"public","description":"Server time for the validation run."},{"key":"validation","type":"validator_result","required":true,"privacy":"public","description":"Core protocol validator result."},{"key":"dataModelValidation","type":"validator_result","required":true,"privacy":"public","description":"Core data model entity and privacy-boundary validator result."},{"key":"policyBundleValidation","type":"validator_result","required":true,"privacy":"public","description":"Strict copilot input bundle, policy registry, prohibited-pattern, factor-code, verification-method, and redaction-policy validator result."},{"key":"provenanceValidation","type":"validator_result","required":true,"privacy":"public","description":"Provenance object contract validator result."},{"key":"schemaRegistryValidation","type":"validator_result","required":true,"privacy":"public","description":"Public JSON Schema registry validator result, including the data-model profile schema and schema-document route coverage."},{"key":"copilotValidation","type":"validator_result","required":true,"privacy":"public","description":"Copilot contract validator result."},{"key":"matchSignalValidation","type":"validator_result","required":true,"privacy":"public","description":"Redacted match-signal contract validator result."},{"key":"challengeAppealValidation","type":"validator_result","required":true,"privacy":"public","description":"Challenge and appeal scope contract validator result."},{"key":"disclosureValidation","type":"validator_result","required":true,"privacy":"public","description":"Consent-gated disclosure grant contract validator result."},{"key":"reviewWorkflowValidation","type":"validator_result","required":true,"privacy":"public","description":"Review workflow card contract validator result."},{"key":"reasoningPacketValidation","type":"validator_result","required":true,"privacy":"public","description":"Reasoning Center packet contract validator result."},{"key":"operationsValidation","type":"validator_result","required":true,"privacy":"public","description":"Operations contract validator result."},{"key":"securityValidation","type":"validator_result","required":true,"privacy":"public","description":"Security posture validator result for headers, sessions, encryption boundaries, keys, MFA gates, and abuse controls."},{"key":"incidentResponseValidation","type":"validator_result","required":true,"privacy":"public","description":"Incident-response validator result for intake, severity, response phases, public disclosure boundaries, and readiness gates."},{"key":"evaluationValidation","type":"validator_result","required":true,"privacy":"public","description":"Evaluation contract validator result."},{"key":"performanceValidation","type":"validator_result","required":true,"privacy":"public","description":"Performance and route-resilience validator result."},{"key":"externalityValidation","type":"validator_result","required":true,"privacy":"public","description":"Externality due-diligence validator result."},{"key":"transparencyReportValidation","type":"validator_result","required":true,"privacy":"public","description":"Aggregate transparency report validator result for metric coverage, small-sample suppression, and private-field exclusion."},{"key":"apiContractValidation","type":"validator_result","required":true,"privacy":"public","description":"API contract validator result."},{"key":"aiGovernanceValidation","type":"validator_result","required":true,"privacy":"public","description":"AI governance validator result for documentation, redacted sample documentation packets, fairness, and human-control gates."},{"key":"documentCoverageValidation","type":"validator_result","required":true,"privacy":"public","description":"Document-coverage validator result mapping the improvement documents to source, implementation phrase, route, and test evidence."},{"key":"publicContract","type":"object","required":true,"privacy":"public","description":"Published codes, decision pipeline, route keys, schema keys, schema sample validation counts, schema sample failure counts, AI-governance sample documentation packet count, document-coverage evidence phrase count, transition rules, and metric names."},{"key":"blockers","type":"string_array","required":true,"privacy":"public","description":"Validator blockers that prevent readiness claims."}]},{"key":"api_contract_response","purpose":"Public validator-backed API route catalog, implementation audit, schema definitions, privacy classes, rate-limit surfaces, cache posture, and test hooks.","fields":[{"key":"ok","type":"boolean","required":true,"privacy":"public","description":"True only when the API contract profile validator and implementation audit both pass."},{"key":"checkedAt","type":"iso_datetime","required":true,"privacy":"public","description":"Server time for the API contract validation run."},{"key":"profileVersion","type":"string","required":true,"privacy":"public","description":"API contract profile version."},{"key":"purpose","type":"string","required":true,"privacy":"public","description":"Human-readable API contract purpose."},{"key":"validation","type":"validator_result","required":true,"privacy":"public","description":"Route catalog, schema coverage, privacy, cache, rate-limit, and fallback validator result."},{"key":"implementationAudit","type":"implementation_audit","required":true,"privacy":"public_contract","description":"Executable audit proving published rate-limit and cache-control names are backed by implementation tables."},{"key":"publicContract","type":"object","required":true,"privacy":"public_contract","description":"Published route catalog, schema definition keys, privacy classes, API tests, and implementation audit summary."},{"key":"blockers","type":"string_array","required":true,"privacy":"public","description":"Validator and implementation blockers that prevent relying on the API contract."}]},{"key":"data_model_contract_response","purpose":"Public validator-backed data model contract for core Moral Trade entities, required fields, privacy classes, relationship boundaries, non-claims, and test hooks.","fields":[{"key":"ok","type":"boolean","required":true,"privacy":"public","description":"True when the data-model contract validator passes."},{"key":"checkedAt","type":"iso_datetime","required":true,"privacy":"public","description":"Server time for the data-model validation run."},{"key":"profileVersion","type":"string","required":true,"privacy":"public","description":"Core data-model profile version."},{"key":"purpose","type":"string","required":true,"privacy":"public","description":"Human-readable contract purpose."},{"key":"validation","type":"validator_result","required":true,"privacy":"public","description":"Validation result for entity coverage, offer fields, privacy classes, relationship boundaries, non-claims, and test hooks."},{"key":"publicContract","type":"object","required":true,"privacy":"public_contract","description":"Entity keys, categories, privacy classes, required fields, relationships, offer fields, boundaries, non-claims, and contract-test hooks."},{"key":"blockers","type":"string_array","required":true,"privacy":"public","description":"Data-model blockers that prevent relying on entity contract coverage."}]},{"key":"policy_bundle_contract_response","purpose":"Public validator-backed policy bundle contract for strict copilot input sources, prohibited patterns, factor codes, verification methods, redactions, anti-threat rules, and verification loop.","fields":[{"key":"ok","type":"boolean","required":true,"privacy":"public","description":"True when the policy-bundle contract validator passes."},{"key":"checkedAt","type":"iso_datetime","required":true,"privacy":"public","description":"Server time for the policy-bundle validation run."},{"key":"contractVersion","type":"string","required":true,"privacy":"public","description":"Policy bundle contract version."},{"key":"purpose","type":"string","required":true,"privacy":"public","description":"Human-readable contract purpose."},{"key":"validation","type":"validator_result","required":true,"privacy":"public","description":"Validation result for strict bundle sources, policy registry, seeded prohibited patterns, factor-code dictionary, verification taxonomy, redaction policy, and verification loop."},{"key":"publicContract","type":"object","required":true,"privacy":"public_contract","description":"Policy codes, prohibited-pattern codes, factor-code counts, verification methods, redactions, anti-threat rules, and contract-test hooks."},{"key":"blockers","type":"string_array","required":true,"privacy":"public","description":"Policy-bundle blockers that prevent relying on the copilot input contract."}]},{"key":"provenance_schema_response","purpose":"Public validator-backed evidence object schema names, persistence tables, invariants, sample-bundle summary, and profile version.","fields":[{"key":"ok","type":"boolean","required":true,"privacy":"public","description":"True when the provenance object contract validator passes."},{"key":"checkedAt","type":"iso_datetime","required":true,"privacy":"public","description":"Server time for the provenance schema validation run."},{"key":"schemaVersion","type":"string","required":true,"privacy":"public","description":"Version label for the provenance object schema set."},{"key":"profileVersion","type":"string","required":true,"privacy":"public","description":"Core protocol profile version linked to the schemas."},{"key":"purpose","type":"string","required":true,"privacy":"public","description":"Human-readable contract purpose."},{"key":"validation","type":"validator_result","required":true,"privacy":"public","description":"Validation result for schema coverage, persistence-table coverage, validation-rule coverage, synthetic sample execution, reviewer-agent links, and test hooks."},{"key":"publicContract","type":"object","required":true,"privacy":"public_contract","description":"Object schemas, owner-scoped persistence tables, named validation rules, sample-bundle summary, and contract-test hooks without submitted evidence artifacts."},{"key":"objectSchemas","type":"array","required":true,"privacy":"public","description":"Typed evidence artifact, external entity reference, claim, privacy-safe match signal, interoperable traceability event, decision, activity, and agent schemas."},{"key":"persistenceTables","type":"array","required":true,"privacy":"public_contract","description":"Append-only owner-scoped tables that persist provenance agents, artifacts, claims, claim-artifact links, external references, review decisions, activities, traceability events, and state transition events."},{"key":"validationRules","type":"string_array","required":true,"privacy":"public","description":"Public invariants such as one-proof-one-claim, scope alignment, and external entity dedupe."},{"key":"validationRuleCodes","type":"string_array","required":true,"privacy":"public_contract","description":"Stable rule codes used by the provenance validator."},{"key":"sampleBundleSummary","type":"object","required":true,"privacy":"public_contract","description":"Synthetic non-user evidence bundle counts and validation status proving the contract is executable without exposing submitted evidence."},{"key":"blockers","type":"string_array","required":true,"privacy":"public","description":"Provenance contract blockers that prevent reliance on evidence-object claims."}]},{"key":"schema_registry_response","purpose":"Public validator-backed registry for exact Moral Trade JSON Schema documents and canonical schema URLs.","fields":[{"key":"ok","type":"boolean","required":true,"privacy":"public","description":"True when the schema registry validator passes."},{"key":"checkedAt","type":"iso_datetime","required":true,"privacy":"public","description":"Server time for the schema-registry validation run."},{"key":"registryVersion","type":"string","required":true,"privacy":"public","description":"Schema registry version."},{"key":"purpose","type":"string","required":true,"privacy":"public","description":"Human-readable schema-registry purpose."},{"key":"validation","type":"validator_result","required":true,"privacy":"public","description":"Validation result for schema coverage, public paths, canonical IDs, strict schema shapes, profile/schema parity, current profile JSON/schema conformance, public payload sample conformance, and test hooks."},{"key":"publicContract","type":"object","required":true,"privacy":"public_schema","description":"Schema document manifest, count, aggregate public payload sample validation counts, aggregate public payload sample failure counts, profile/schema parity evidence, profile JSON/schema conformance evidence, public payload sample conformance evidence, and registry-test hooks."},{"key":"schemaDocuments","type":"schema_document_array","required":true,"privacy":"public_schema","description":"Public paths, canonical IDs, titles, top-level required fields, schema property keys, profile top-level fields, property counts, and public sample validation counts for every Moral Trade schema document."},{"key":"blockers","type":"string_array","required":true,"privacy":"public","description":"Schema-registry blockers that prevent relying on public JSON Schema coverage."}]},{"key":"copilot_contract_response","purpose":"Strict input bundle, approved output sections, guardrails, verification loop, and fallback rule.","fields":[{"key":"ok","type":"boolean","required":true,"privacy":"public","description":"True when the copilot contract validator passes."},{"key":"contractVersion","type":"string","required":true,"privacy":"public","description":"Copilot contract version."},{"key":"validation","type":"validator_result","required":true,"privacy":"public","description":"Schema-bound copilot contract validation."},{"key":"publicContract","type":"object","required":true,"privacy":"public","description":"Permitted roles, input bundle, output sections, guardrails, and rollout stages."},{"key":"blockers","type":"string_array","required":true,"privacy":"public","description":"Missing copilot-contract controls."}]},{"key":"copilot_review_request","purpose":"Ephemeral schema-bound draft review request for deterministic copilot critique without live state mutation.","fields":[{"key":"draft","type":"structured_draft","required":true,"privacy":"private_request","description":"Known Moral Trade draft fields only; unknown fields are ignored and the body is not stored."},{"key":"citations","type":"string_array","required":false,"privacy":"private_request","description":"Optional local evidence labels or source pointers returned only to the requester."},{"key":"evidenceMetadata","type":"evidence_metadata_array","required":false,"privacy":"private_request","description":"Optional already-submitted evidence metadata only: id, claim label, evidence type, citation label, status, scope, redaction level, and submitted timestamp; raw artifact content, private notes, exact wishes, and contact details are rejected or ignored."}]},{"key":"copilot_review_response","purpose":"Approved copilot output packet, validation result, and no-state-change fallback metadata.","fields":[{"key":"ok","type":"boolean","required":true,"privacy":"private_response","description":"True only when contract and output validators pass."},{"key":"checkedAt","type":"iso_datetime","required":true,"privacy":"private_response","description":"Server time for the deterministic review."},{"key":"contractVersion","type":"string","required":true,"privacy":"public_contract","description":"Copilot contract version used for the review."},{"key":"decisioningMode","type":"string","required":true,"privacy":"public_contract","description":"States that the route performs deterministic draft review only."},{"key":"stateMutation","type":"boolean","required":true,"privacy":"public_contract","description":"Always false; the route cannot publish, match, disclose, or change proposal state."},{"key":"inputBundleUsed","type":"string_array","required":true,"privacy":"public_contract","description":"Strict local bundle sources used to produce the review output."},{"key":"evidenceMetadataSummary","type":"object","required":true,"privacy":"private_response","description":"Accepted, rejected, and ignored-field counts for already-submitted evidence metadata plus redactions applied; raw artifacts and private notes are never returned."},{"key":"output","type":"moral_trade_copilot_output","required":false,"privacy":"private_response","description":"Approved status, completeness, trust assessment, match explanation, fixed verification loop, checklist, evidence table, review instructions, and reviewer summary when the request contains a structured draft."},{"key":"outputValidation","type":"validator_result","required":false,"privacy":"public_contract","description":"Validation result for the generated output packet when one is produced."},{"key":"contractValidation","type":"validator_result","required":false,"privacy":"public_contract","description":"Validation result for the copilot contract itself."},{"key":"fallback","type":"string","required":false,"privacy":"public_contract","description":"Safe fallback reason for malformed or missing request bodies."},{"key":"blockers","type":"string_array","required":true,"privacy":"public_contract","description":"Request, contract, or output blockers that prevent relying on the packet."}]},{"key":"match_signal_contract_response","purpose":"Public redacted-profile match-signal input boundary, factor-code set, redaction list, invariants, sample signal, and validator result.","fields":[{"key":"ok","type":"boolean","required":true,"privacy":"public","description":"True when the match-signal contract validator passes."},{"key":"checkedAt","type":"iso_datetime","required":true,"privacy":"public","description":"Server time for the contract validation run."},{"key":"contractVersion","type":"string","required":true,"privacy":"public","description":"Match signal contract version."},{"key":"purpose","type":"string","required":true,"privacy":"public","description":"Human-readable match-signal purpose."},{"key":"validation","type":"validator_result","required":true,"privacy":"public","description":"Validation result for input boundaries, redactions, approved factor codes, non-mutating preview, human review, and no private inference."},{"key":"publicContract","type":"object","required":true,"privacy":"public_contract","description":"Required input fields, optional input fields, privacy policy id, disclosure stages, approved factor codes, redacted fields, participant explanation template, invariants, sample signal, and contract tests."},{"key":"blockers","type":"string_array","required":true,"privacy":"public","description":"Contract blockers that prevent relying on redacted match previews."}]},{"key":"ai_shadow_contract_response","purpose":"Public AI shadow-mode boundary for approved, redacted source summaries, prohibited effects, invariants, sample ready and blocked evaluations, and validator result.","fields":[{"key":"ok","type":"boolean","required":true,"privacy":"public","description":"True when the AI shadow contract validator passes."},{"key":"checkedAt","type":"iso_datetime","required":true,"privacy":"public","description":"Server time for the contract validation run."},{"key":"contractVersion","type":"string","required":true,"privacy":"public","description":"AI shadow contract version."},{"key":"purpose","type":"string","required":true,"privacy":"public","description":"Human-readable AI shadow-mode purpose."},{"key":"validation","type":"validator_result","required":true,"privacy":"public","description":"Validation result for approved-summary input boundaries, blockers, redaction, prohibited effects, and non-mutating shadow-only behavior."},{"key":"publicContract","type":"object","required":true,"privacy":"public_contract","description":"Allowed use, decisioning mode, state mutation flag, required source fields, prohibited effects, invariants, sample ready evaluation, sample blocked evaluation, and test hooks."},{"key":"blockers","type":"string_array","required":true,"privacy":"public","description":"Contract blockers that prevent relying on AI shadow evaluation."}]},{"key":"background_capability_gates_contract_response","purpose":"Public staged-expansion gate for source connectors, AI summarization, and privacy-preserving overlap computation, with DPIA, lawful-basis, privacy-design, external-review, and human-control requirements.","fields":[{"key":"ok","type":"boolean","required":true,"privacy":"public","description":"True when the background capability gate validator passes."},{"key":"checkedAt","type":"iso_datetime","required":true,"privacy":"public","description":"Server time for the gate validation run."},{"key":"contractVersion","type":"string","required":true,"privacy":"public","description":"Background capability gate contract version."},{"key":"purpose","type":"string","required":true,"privacy":"public","description":"Human-readable expansion-gate purpose."},{"key":"validation","type":"validator_result","required":true,"privacy":"public","description":"Validation result for required gates, DPIA requirements, separate consent, raw-content boundaries, staging, and human control."},{"key":"publicContract","type":"object","required":true,"privacy":"public_contract","description":"Gate list, release state, lawful basis, retention rule, prohibited effects, required reviews before expansion, current blockers, invariants, and test hooks."},{"key":"blockers","type":"string_array","required":true,"privacy":"public","description":"Contract blockers that prevent capability expansion."}]},{"key":"private_overlap_contract_response","purpose":"Public design-only private-overlap contract for curated sensitive tags, blocked live endpoints, no persistent overlap tables, no free text, no raw tags, counts-only output, and required cryptographic/privacy reviews.","fields":[{"key":"ok","type":"boolean","required":true,"privacy":"public","description":"True when the private-overlap design contract validator passes."},{"key":"checkedAt","type":"iso_datetime","required":true,"privacy":"public","description":"Server time for the contract validation run."},{"key":"contractVersion","type":"string","required":true,"privacy":"public","description":"Private-overlap design contract version."},{"key":"purpose","type":"string","required":true,"privacy":"public","description":"Human-readable design-only private-overlap purpose."},{"key":"validation","type":"validator_result","required":true,"privacy":"public","description":"Validation result for design-only release state, review gates, curated namespaces, blinded-only future storage, blocked endpoints, counts-only output, and deterministic fallback."},{"key":"publicContract","type":"object","required":true,"privacy":"public_contract","description":"Release state, blocked live endpoint plan, allowed tag namespaces, forbidden inputs, forbidden stored fields, future blinded-token fields, participant output limits, required reviews, and fallback behavior."},{"key":"publicNonClaim","type":"string","required":true,"privacy":"public_contract","description":"Plain-language public non-claim that private overlap is not live and future checks must not use free text or reveal raw tags."},{"key":"blockers","type":"string_array","required":true,"privacy":"public","description":"Contract blockers that prevent shipping private-overlap endpoints or storage."}]},{"key":"background_rls_audit_contract_response","purpose":"Public background-networking RLS and sensitive-storage audit contract for private tables, participant-linked match tables, operator-review records, helper records, notifications, risk signals, audit events, and ciphertext/version storage.","fields":[{"key":"ok","type":"boolean","required":true,"privacy":"public","description":"True when the background RLS audit contract validator passes."},{"key":"checkedAt","type":"iso_datetime","required":true,"privacy":"public","description":"Server time for the RLS audit contract validation run."},{"key":"contractVersion","type":"string","required":true,"privacy":"public","description":"Background RLS audit contract version."},{"key":"purpose","type":"string","required":true,"privacy":"public","description":"Human-readable RLS and sensitive-storage audit purpose."},{"key":"validation","type":"validator_result","required":true,"privacy":"public","description":"Validation result for table coverage, sensitive-storage coverage, anonymous-policy exclusion, participant helper boundaries, and regression-test hooks."},{"key":"publicContract","type":"object","required":true,"privacy":"public_contract","description":"RLS table requirements, policy-name requirements, required policy fragments, sensitive storage requirements, invariants, schema audit mode, and contract-test hooks."},{"key":"blockers","type":"string_array","required":true,"privacy":"public","description":"Contract blockers that prevent relying on the background-networking RLS audit."}]},{"key":"transparency_report_response","purpose":"Aggregate-only review outcomes, declined introductions, safety records, disclosure grants, reports, appeals, evidence review, unresolved disputes, median review times, and SLA attainment.","fields":[{"key":"ok","type":"boolean","required":true,"privacy":"public","description":"True when the transparency contract and report snapshot validators pass."},{"key":"checkedAt","type":"iso_datetime","required":true,"privacy":"public","description":"Server time for the transparency report read."},{"key":"contractVersion","type":"string","required":true,"privacy":"public","description":"Transparency report contract version."},{"key":"purpose","type":"string","required":true,"privacy":"public","description":"Human-readable purpose for aggregate trust reporting."},{"key":"validation","type":"validator_result","required":true,"privacy":"public","description":"Contract and report validation results for metric coverage, small-sample suppression, and private-field exclusion."},{"key":"publicContract","type":"object","required":true,"privacy":"public_contract","description":"Publication cadence, minimum public count, metric definitions, privacy rules, and contract-test hooks."},{"key":"report","type":"object","required":true,"privacy":"public_contract","description":"Thresholded aggregate metrics only; small nonzero samples are suppressed and no private case records are returned."},{"key":"blockers","type":"string_array","required":true,"privacy":"public","description":"Blockers that prevent relying on the aggregate transparency report."}]},{"key":"match_signal_evaluate_request","purpose":"Ephemeral redacted-profile pair for deterministic match preview without private inference or live state mutation.","fields":[{"key":"profilePair","type":"redacted_profile_pair","required":true,"privacy":"private_request","description":"Left and right profiles containing only broad cause areas, trade modes, verification preferences, location sensitivity, privacy stage, privacy constraints, and stated exclusions."}]},{"key":"match_signal","purpose":"Field-level schema for a privacy-safe match preview generated from redacted profile pairs without disclosure, contact, reliance, or state mutation.","fields":[{"key":"id","type":"stable_hash_id","required":true,"privacy":"private_response","description":"Stable match_signal hash id derived from redacted profile ids, factor codes, blockers, disclosure stage, and signal version."},{"key":"signalVersion","type":"string","required":true,"privacy":"public_contract","description":"Version of the match-signal contract used to build the preview."},{"key":"leftProfileId","type":"string","required":true,"privacy":"private_response","description":"Left redacted profile id; exact wishes and contact details remain absent."},{"key":"rightProfileId","type":"string","required":true,"privacy":"private_response","description":"Right redacted profile id; exact wishes and contact details remain absent."},{"key":"privacyPolicyId","type":"string","required":true,"privacy":"public_contract","description":"Approved redacted-preview privacy policy id for the match signal."},{"key":"status","type":"matchable_status","required":true,"privacy":"private_response","description":"matchable or not_matchable preview status; it does not authorize disclosure or state changes."},{"key":"confidenceBand","type":"confidence_band","required":true,"privacy":"private_response","description":"low, medium, or high review prompt generated from explicit compatibility factors."},{"key":"factorCodes","type":"factor_code_array","required":true,"privacy":"public_contract","description":"Approved factor codes only: cause overlap or complementarity, trade-mode compatibility, verification compatibility, location, privacy stage, exclusions, and human-review requirement."},{"key":"redactedFields","type":"string_array","required":true,"privacy":"public_contract","description":"Fields kept out of the preview, including exact private wishes, contact details, sensitive constraints, raw profile notes, protected traits, and ideology or psychology inferences."},{"key":"disclosureStage","type":"disclosure_stage","required":true,"privacy":"public_contract","description":"broad_preview, detail_request, or mutual_consent stage label; no stage bypasses the separate disclosure-grant workflow."},{"key":"humanReviewRequired","type":"boolean","required":true,"privacy":"public_contract","description":"Always required for matchable previews before disclosure, contact, reliance, or state changes."},{"key":"createdAt","type":"iso_datetime","required":true,"privacy":"private_response","description":"Server timestamp for the ephemeral preview."},{"key":"participantExplanation","type":"participant_explanation","required":true,"privacy":"private_response","description":"Participant-facing factor-code explanation, redaction notice, and human-review notice."},{"key":"counts","type":"object","required":true,"privacy":"private_response","description":"Aggregate compatibility counts only; no raw profile text."},{"key":"blockers","type":"string_array","required":true,"privacy":"public_contract","description":"Unresolved compatibility, privacy, location, or stated-exclusion blockers."}]},{"key":"match_signal_evaluate_response","purpose":"Deterministic redacted-profile match signal, validator results, and no-state-change metadata.","fields":[{"key":"ok","type":"boolean","required":true,"privacy":"private_response","description":"True only when the contract and signal validators pass."},{"key":"checkedAt","type":"iso_datetime","required":true,"privacy":"private_response","description":"Server time for the deterministic match preview."},{"key":"contractVersion","type":"string","required":true,"privacy":"public_contract","description":"Match signal contract version used for the preview."},{"key":"decisioningMode","type":"string","required":true,"privacy":"public_contract","description":"Always redacted_profile_match_preview_only; the route cannot disclose, contact, rely, or change state."},{"key":"stateMutation","type":"boolean","required":true,"privacy":"public_contract","description":"Always false."},{"key":"inputBundleUsed","type":"string_array","required":true,"privacy":"public_contract","description":"Strict local bundle sources used to produce the match signal."},{"key":"profilePair","type":"redacted_profile_pair","required":false,"privacy":"private_response","description":"Normalized redacted profiles returned only to the requester for inspection."},{"key":"signal","type":"match_signal","required":false,"privacy":"private_response","description":"Stable signal id, left and right profile ids, privacy policy id, status, confidence band, factor codes, disclosure stage, participant explanation copy, redacted fields, human review flag, created timestamp, counts, and blockers."},{"key":"signalValidation","type":"validator_result","required":false,"privacy":"public_contract","description":"Validation result for the generated match signal."},{"key":"contractValidation","type":"validator_result","required":true,"privacy":"public_contract","description":"Validation result for the match-signal contract."},{"key":"fallback","type":"string","required":false,"privacy":"public_contract","description":"Safe fallback reason for malformed, missing, or incomplete redacted profile requests."},{"key":"blockers","type":"string_array","required":true,"privacy":"public_contract","description":"Request, contract, or signal blockers that prevent relying on the preview."}]},{"key":"challenge_appeal_contract_response","purpose":"Public challenge-window and appeal-scope contract for subjects, standing categories, appeal triggers, outcomes, factor codes, invariants, sample decision, and validator result.","fields":[{"key":"ok","type":"boolean","required":true,"privacy":"public","description":"True when the challenge-appeal contract validator passes."},{"key":"checkedAt","type":"iso_datetime","required":true,"privacy":"public","description":"Server time for the contract validation run."},{"key":"contractVersion","type":"string","required":true,"privacy":"public","description":"Challenge appeal contract version."},{"key":"purpose","type":"string","required":true,"privacy":"public","description":"Human-readable challenge and appeal contract purpose."},{"key":"validation","type":"validator_result","required":true,"privacy":"public","description":"Validation result for subject coverage, standing, triggers, outcomes, narrow appeal scope, remedy, privacy, provenance, and human control."},{"key":"publicContract","type":"object","required":true,"privacy":"public_contract","description":"Decisioning mode, state mutation flag, subjects, standing categories, triggers, outcomes, factor codes, invariants, sample decision, and test hooks."},{"key":"blockers","type":"string_array","required":true,"privacy":"public","description":"Contract blockers that prevent relying on challenge or appeal routing."}]},{"key":"challenge_appeal_evaluate_request","purpose":"Ephemeral challenge or appeal packet for deterministic scope, standing, privacy, remedy, and provenance routing without live state mutation.","fields":[{"key":"appeal","type":"challenge_appeal_packet","required":true,"privacy":"private_request","description":"Request id, subject, standing category, appeal trigger, scoped claim or evidence ids, summary, affected-party standing, remedy request, requested outcome, and private-detail flag."}]},{"key":"challenge_appeal_evaluate_response","purpose":"Deterministic challenge-appeal scope decision, validator results, and no-state-change metadata.","fields":[{"key":"ok","type":"boolean","required":true,"privacy":"private_response","description":"True only when contract, decision validation, and request blockers pass."},{"key":"checkedAt","type":"iso_datetime","required":true,"privacy":"private_response","description":"Server time for the deterministic challenge or appeal evaluation."},{"key":"contractVersion","type":"string","required":true,"privacy":"public_contract","description":"Challenge appeal contract version used for the evaluation."},{"key":"decisioningMode","type":"string","required":true,"privacy":"public_contract","description":"Always deterministic_challenge_appeal_scope_only; the route scopes appeal packets only."},{"key":"stateMutation","type":"boolean","required":true,"privacy":"public_contract","description":"Always false; the route cannot open, close, uphold, reverse, disclose, complete, or change proposal state."},{"key":"inputBundleUsed","type":"string_array","required":true,"privacy":"public_contract","description":"Strict local bundle sources used to produce the challenge-appeal decision."},{"key":"appeal","type":"challenge_appeal_packet","required":true,"privacy":"private_response","description":"Normalized challenge or appeal packet returned only to the requester for inspection."},{"key":"decision","type":"challenge_appeal_decision","required":false,"privacy":"private_response","description":"Scoped status, outcome, factor codes, standing, review scope, artifacts, privacy actions, provenance activity, traceability step, and blockers."},{"key":"decisionValidation","type":"validator_result","required":false,"privacy":"public_contract","description":"Validation result for the generated challenge-appeal decision."},{"key":"contractValidation","type":"validator_result","required":true,"privacy":"public_contract","description":"Validation result for the challenge-appeal contract itself."},{"key":"fallback","type":"string","required":false,"privacy":"public_contract","description":"Safe fallback reason for malformed or missing challenge-appeal packets."},{"key":"blockers","type":"string_array","required":true,"privacy":"public_contract","description":"Request, contract, or decision blockers that prevent relying on challenge or appeal routing."}]},{"key":"disclosure_contract_response","purpose":"Public consent-gated disclosure and privacy-grant contract for access levels, audience stages, field boundaries, redactions, search privacy controls, invariants, sample decision, and validator result.","fields":[{"key":"ok","type":"boolean","required":true,"privacy":"public","description":"True when the disclosure grant contract validator passes."},{"key":"checkedAt","type":"iso_datetime","required":true,"privacy":"public","description":"Server time for the contract validation run."},{"key":"contractVersion","type":"string","required":true,"privacy":"public","description":"Disclosure grant contract version."},{"key":"purpose","type":"string","required":true,"privacy":"public","description":"Human-readable disclosure contract purpose."},{"key":"validation","type":"validator_result","required":true,"privacy":"public","description":"Validation result for disclosure lattice, field boundaries, sample decision, stage/contact rules, redactions, owner control, and non-mutation."},{"key":"publicContract","type":"object","required":true,"privacy":"public_contract","description":"Decisioning mode, state mutation flag, access levels, audience stages, grant statuses, disclosure fields, redacted fields, search privacy controls, factor codes, invariants, sample decision, and test hooks."},{"key":"blockers","type":"string_array","required":true,"privacy":"public","description":"Contract blockers that prevent relying on disclosure grant routing."}]},{"key":"disclosure_evaluate_request","purpose":"Ephemeral disclosure-grant packet for deterministic field, stage, purpose, redaction, owner-approval, and expiry evaluation without live privacy-grant mutation.","fields":[{"key":"grant","type":"disclosure_grant_packet","required":true,"privacy":"private_request","description":"Request id, field keys, purpose, audience stage, access level, grant status, expiry window, scope flags, raw-source flag, and contact-detail flag."}]},{"key":"disclosure_evaluate_response","purpose":"Deterministic disclosure-grant decision, validator results, and no-state-change metadata.","fields":[{"key":"ok","type":"boolean","required":true,"privacy":"private_response","description":"True only when contract, decision validation, and request blockers pass."},{"key":"checkedAt","type":"iso_datetime","required":true,"privacy":"private_response","description":"Server time for the deterministic disclosure evaluation."},{"key":"contractVersion","type":"string","required":true,"privacy":"public_contract","description":"Disclosure grant contract version used for the evaluation."},{"key":"decisioningMode","type":"string","required":true,"privacy":"public_contract","description":"Always deterministic_disclosure_grant_scope_only; the route scopes disclosure grant packets only."},{"key":"stateMutation","type":"boolean","required":true,"privacy":"public_contract","description":"Always false; the route cannot reveal, introduce, approve, revoke, contact, or change privacy-grant records."},{"key":"inputBundleUsed","type":"string_array","required":true,"privacy":"public_contract","description":"Strict local bundle sources used to produce the disclosure decision."},{"key":"grant","type":"disclosure_grant_packet","required":true,"privacy":"private_response","description":"Normalized disclosure grant packet returned only to the requester for inspection."},{"key":"decision","type":"disclosure_decision","required":false,"privacy":"private_response","description":"Scoped status, allowed fields, denied fields, factor codes, owner approval, stage, access level, expiry window, privacy actions, and blockers."},{"key":"decisionValidation","type":"validator_result","required":false,"privacy":"public_contract","description":"Validation result for the generated disclosure decision."},{"key":"contractValidation","type":"validator_result","required":true,"privacy":"public_contract","description":"Validation result for the disclosure grant contract itself."},{"key":"fallback","type":"string","required":false,"privacy":"public_contract","description":"Safe fallback reason for malformed or missing disclosure packets."},{"key":"blockers","type":"string_array","required":true,"privacy":"public_contract","description":"Request, contract, or decision blockers that prevent relying on disclosure grant routing."}]},{"key":"review_workflow_contract_response","purpose":"Public review-card contract for detail workflow cards, marketplace factor-code cards, participant copy templates, next-step rules, and non-ranking invariants.","fields":[{"key":"ok","type":"boolean","required":true,"privacy":"public","description":"True when the review workflow contract validator passes."},{"key":"checkedAt","type":"iso_datetime","required":true,"privacy":"public","description":"Server time for the contract validation run."},{"key":"contractVersion","type":"string","required":true,"privacy":"public","description":"Review workflow contract version."},{"key":"validation","type":"validator_result","required":true,"privacy":"public","description":"Validation result for card key coverage, factor-code coverage, marketplace priority, non-ranking, appeal scope, and trust-dimension separation."},{"key":"publicContract","type":"object","required":true,"privacy":"public","description":"Statuses, detail workflow cards, marketplace factor priority, participant copy templates, invariants, sample keys, and contract tests."},{"key":"blockers","type":"string_array","required":true,"privacy":"public","description":"Review workflow blockers that prevent relying on card instrumentation."}]},{"key":"reasoning_packets_request","purpose":"Public Reasoning Center packet filter query for validator-backed worked-example packets.","fields":[{"key":"status","type":"enum","required":false,"privacy":"public","description":"Optional public filter: all, needs-evidence, human-review, blocked, or pass-with-limits. Unknown values fall back to all."}]},{"key":"reasoning_packets_response","purpose":"Public validator-backed Reasoning Center packet contract and deterministic worked-example packets with step-by-step decision gates.","fields":[{"key":"ok","type":"boolean","required":true,"privacy":"public","description":"True when the reasoning-packet contract validator passes."},{"key":"checkedAt","type":"iso_datetime","required":true,"privacy":"public","description":"Server time for the reasoning-packet validation run."},{"key":"recoveryMode","type":"enum","required":true,"privacy":"public","description":"normal for healthy packet generation, or packet_generation_failed when the route returns validator blockers without packet bodies."},{"key":"contractVersion","type":"string","required":true,"privacy":"public","description":"Reasoning packet contract version."},{"key":"purpose","type":"string","required":true,"privacy":"public","description":"Human-readable contract purpose."},{"key":"activeFilter","type":"enum","required":true,"privacy":"public","description":"Applied public packet filter after normalizing the status query."},{"key":"packetCount","type":"integer","required":true,"privacy":"public","description":"Total public worked-example packet count before filtering."},{"key":"filteredPacketCount","type":"integer","required":true,"privacy":"public","description":"Returned public packet count after applying the active filter."},{"key":"filterCounts","type":"object","required":true,"privacy":"public_contract","description":"Counts for all public Reasoning Center filters."},{"key":"validation","type":"validator_result","required":true,"privacy":"public","description":"Validation result for packet count, field shape, cited evidence rows, decision gates, uncertainty flags, factor codes, privacy, and linked contracts."},{"key":"publicContract","type":"object","required":true,"privacy":"public_contract","description":"Required packet fields, supported filters, filter counts, linked contract versions, invariants, sample packet ids, and contract-test hooks."},{"key":"packets","type":"reasoning_packet_array","required":true,"privacy":"public_contract","description":"Filtered deterministic public worked-example packets with structured summaries, evidence rows, decision steps, uncertainty flags, reviewer scope, and next steps."},{"key":"blockers","type":"string_array","required":true,"privacy":"public","description":"Reasoning-packet blockers that prevent relying on public review explanations."}]},{"key":"review_workflow_evaluate_request","purpose":"Ephemeral structured review workflow evaluation request for deterministic workflow cards without live state mutation.","fields":[{"key":"reviewInput","type":"structured_review_input","required":true,"privacy":"private_request","description":"Known offer review fields only; unknown fields are ignored and the body is not stored."}]},{"key":"review_workflow_evaluate_response","purpose":"Deterministic workflow cards, marketplace card factors, contract validation, and no-state-change metadata.","fields":[{"key":"ok","type":"boolean","required":true,"privacy":"private_response","description":"True only when the review workflow contract validator passes."},{"key":"checkedAt","type":"iso_datetime","required":true,"privacy":"private_response","description":"Server time for the deterministic workflow evaluation."},{"key":"contractVersion","type":"string","required":true,"privacy":"public_contract","description":"Review workflow contract version used for the evaluation."},{"key":"decisioningMode","type":"string","required":true,"privacy":"public_contract","description":"Always deterministic_review_workflow_only; the route performs deterministic review-workflow evaluation only."},{"key":"stateMutation","type":"boolean","required":true,"privacy":"public_contract","description":"Always false; the route cannot publish, match, disclose, complete, or change proposal state."},{"key":"inputBundleUsed","type":"string_array","required":true,"privacy":"public_contract","description":"Strict local bundle sources used to produce the workflow cards."},{"key":"reviewInput","type":"structured_review_input","required":true,"privacy":"private_response","description":"Normalized review input returned only to the requester for inspection."},{"key":"workflowCards","type":"review_workflow_card_array","required":true,"privacy":"private_response","description":"Status, factor codes, participant copy, summary, and next step for status, evidence, baseline, externality, participant-relative scores, and appeal scope."},{"key":"marketplaceCard","type":"review_marketplace_card","required":true,"privacy":"private_response","description":"Prioritized factor codes and next action used by marketplace cards."},{"key":"contractValidation","type":"validator_result","required":true,"privacy":"public_contract","description":"Validation result for the review workflow contract itself."},{"key":"blockers","type":"string_array","required":true,"privacy":"public_contract","description":"Contract blockers that prevent relying on the workflow packet."}]},{"key":"operations_health_response","purpose":"Security headers, rate-limit surfaces, privacy/session controls, retention lifecycle controls, metrics, fallbacks, and rollout gates.","fields":[{"key":"ok","type":"boolean","required":true,"privacy":"public","description":"True when operations validator passes."},{"key":"profileVersion","type":"string","required":true,"privacy":"public","description":"Operations profile version."},{"key":"validation","type":"validator_result","required":true,"privacy":"public","description":"Security, rate-limit, retention, fallback, and rollout validation."},{"key":"publicContract","type":"object","required":true,"privacy":"public","description":"Published security headers, rate-limit surfaces, retention controls, metrics, and tests."},{"key":"blockers","type":"string_array","required":true,"privacy":"public","description":"Operations blockers."}]},{"key":"security_health_response","purpose":"Security posture controls, provider boundaries, public non-claims, and scale-gate readiness.","fields":[{"key":"ok","type":"boolean","required":true,"privacy":"public","description":"True when security profile validator passes."},{"key":"validation","type":"validator_result","required":true,"privacy":"public","description":"Security profile validation result."},{"key":"publicContract","type":"object","required":true,"privacy":"public","description":"Published controls, statuses, scale-gate readiness, and non-claims."},{"key":"blockers","type":"string_array","required":true,"privacy":"public","description":"Security profile blockers."}]},{"key":"incident_response_health_response","purpose":"Public incident-response intake, severity, response-phase, disclosure-rule, readiness-gate, and non-claim contract.","fields":[{"key":"ok","type":"boolean","required":true,"privacy":"public","description":"True when the incident-response profile validator passes."},{"key":"checkedAt","type":"iso_datetime","required":true,"privacy":"public","description":"Server time for the incident-response validation run."},{"key":"profileVersion","type":"string","required":true,"privacy":"public","description":"Incident-response profile version."},{"key":"purpose","type":"string","required":true,"privacy":"public","description":"Human-readable incident-response contract purpose."},{"key":"validation","type":"validator_result","required":true,"privacy":"public","description":"Validation result for intake channels, categories, severity SLAs, phases, disclosure rules, readiness gates, and non-claims."},{"key":"publicContract","type":"object","required":true,"privacy":"public_contract","description":"Published intake channel keys, category owners, severity SLAs, response phases, disclosure rules, readiness gates, and incident tests."},{"key":"blockers","type":"string_array","required":true,"privacy":"public","description":"Incident-response blockers that prevent relying on public incident-lane readiness."}]},{"key":"evaluation_health_response","purpose":"Evaluation metrics, privacy boundaries, cohort slices, promotion gates, and blockers.","fields":[{"key":"ok","type":"boolean","required":true,"privacy":"public","description":"True when evaluation validator passes."},{"key":"cadence","type":"string","required":true,"privacy":"public","description":"Evaluation reporting cadence."},{"key":"validation","type":"validator_result","required":true,"privacy":"public","description":"Quality, privacy, fairness, and rollout-gate validation."},{"key":"publicContract","type":"object","required":true,"privacy":"public","description":"Published metrics, slices, privacy boundaries, and promotion gates."},{"key":"blockers","type":"string_array","required":true,"privacy":"public","description":"Evaluation blockers."}]},{"key":"performance_health_response","purpose":"Performance and route-resilience targets, instrumentation controls, route families, route segment error-boundary evidence, release gates, and public non-claims.","fields":[{"key":"ok","type":"boolean","required":true,"privacy":"public","description":"True when performance profile validator passes."},{"key":"measurementCadence","type":"string","required":true,"privacy":"public","description":"Performance measurement cadence."},{"key":"validation","type":"validator_result","required":true,"privacy":"public","description":"Performance profile validation result."},{"key":"publicContract","type":"object","required":true,"privacy":"public","description":"Published metric targets, instrumentation controls, route families, route segment error-boundary evidence, release gates, and non-claims."},{"key":"blockers","type":"string_array","required":true,"privacy":"public","description":"Performance profile blockers."}]},{"key":"externality_health_response","purpose":"Due-diligence steps, externality trigger codes, trigger-standard matrix, review standards, affected-party remedy controls, and allowed outcomes.","fields":[{"key":"ok","type":"boolean","required":true,"privacy":"public","description":"True when externality validator passes."},{"key":"validation","type":"validator_result","required":true,"privacy":"public","description":"Externality due-diligence validation result."},{"key":"publicContract","type":"object","required":true,"privacy":"public","description":"Published due-diligence steps, triggers, trigger-standard matrix, standards, remedy controls, and outcomes."},{"key":"blockers","type":"string_array","required":true,"privacy":"public","description":"Externality blockers."}]},{"key":"ai_governance_health_response","purpose":"AI governance controls for deterministic decisioning, model-card and datasheet requirements, documentation templates, fairness documentation, explanation controls, prohibited uses, and human-controlled decisions.","fields":[{"key":"ok","type":"boolean","required":true,"privacy":"public","description":"True when AI governance validator passes."},{"key":"decisioningMode","type":"string","required":true,"privacy":"public","description":"Current decision mode; core matching and state transitions must remain deterministic/rule governed."},{"key":"mlEnabledForMatching","type":"boolean","required":true,"privacy":"public","description":"False unless documented ML matching is explicitly approved."},{"key":"mlEnabledForStateChanges","type":"boolean","required":true,"privacy":"public","description":"False because safety, disclosure, completion, and disputes remain human-controlled."},{"key":"validation","type":"validator_result","required":true,"privacy":"public","description":"AI governance validation result."},{"key":"publicContract","type":"object","required":true,"privacy":"public","description":"Required documentation, machine-checkable documentation templates, redacted sample documentation packets, permitted automation, prohibited uses, fairness documentation, explanation controls, and external standards."},{"key":"blockers","type":"string_array","required":true,"privacy":"public","description":"AI governance blockers."}]},{"key":"document_coverage_health_response","purpose":"Public coverage map from the Moral Trade improvement documents to concrete validators, implementation files, route evidence, and tests.","fields":[{"key":"ok","type":"boolean","required":true,"privacy":"public","description":"True when the document coverage validator passes."},{"key":"checkedAt","type":"iso_datetime","required":true,"privacy":"public","description":"Server time for the document coverage validation run."},{"key":"profileVersion","type":"string","required":true,"privacy":"public","description":"Document coverage profile version."},{"key":"purpose","type":"string","required":true,"privacy":"public","description":"Human-readable purpose for the document coverage contract."},{"key":"validation","type":"validator_result","required":true,"privacy":"public","description":"Validation result for source documents, source artifact hashes, recommendation families, testing-plan layers, implementation evidence files, required implementation evidence phrases, test files, route evidence, and non-claims."},{"key":"sourceDocumentArtifacts","type":"source_artifact_array","required":true,"privacy":"public_contract","description":"Hash-checked Markdown and PDF source artifacts used as the authoritative improvement documents."},{"key":"sourceStackReferences","type":"recommended_source_stack_array","required":true,"privacy":"public_contract","description":"Recommended source-stack traceability records that map Ord, MoralTrade.org public materials, OECD, UNGP, ILO, ETI/Fairtrade, Open Supply Hub, W3C PROV, GS1 EPCIS, NIST, fairness, documentation, and HCI guidance to concrete implementation files and public routes."},{"key":"testingPlanCoverage","type":"testing_plan_layer_array","required":true,"privacy":"public_contract","description":"Report testing-plan layer records for schema, policy, evidence, privacy, fairness, UX, and resilience checks with mapped evidence files, test files, route evidence, and pass conditions."},{"key":"publicContract","type":"object","required":true,"privacy":"public_contract","description":"Published source-document records with SHA-256 artifact hashes, recommended source-stack traceability, testing-plan coverage, canonical build instruction artifact hash, verification commands, requirement mappings, evidence files, required implementation evidence phrases, test files, route evidence, and non-claims."},{"key":"canonicalInstruction","type":"object","required":true,"privacy":"public_contract","description":"Nested under publicContract: canonical Core Moral Trade build-instruction path, required phrase count, verification commands, route evidence, and SHA-256 artifact hash."},{"key":"blockers","type":"string_array","required":true,"privacy":"public","description":"Document coverage blockers that prevent claiming the improvement documents are implemented."}]},{"key":"profile_portability_schema_response","purpose":"Portable profile fields and explicit counterparty-linked import/export exclusions.","fields":[{"key":"exportVersion","type":"string","required":true,"privacy":"public","description":"Profile portability contract version."},{"key":"importableCollections","type":"string_array","required":true,"privacy":"public","description":"Collections accepted by profile import."},{"key":"notes","type":"string_array","required":true,"privacy":"public","description":"Import boundaries, including counterparty-linked exclusions."}]},{"key":"authenticated_export_request","purpose":"Authenticated profile export request with no public query or body fields.","fields":[{"key":"viewer","type":"authenticated_session","required":true,"privacy":"private_authenticated","description":"The signed-in viewer whose records may be exported."}]},{"key":"profile_export_response","purpose":"Viewer-owned profile portability bundle with schema URL and import URL.","fields":[{"key":"exportedAt","type":"iso_datetime","required":true,"privacy":"private_authenticated","description":"Export creation time."},{"key":"profile","type":"object_or_null","required":true,"privacy":"private_authenticated","description":"Viewer-owned public profile row."},{"key":"wishProfile","type":"object_or_null","required":true,"privacy":"private_authenticated","description":"Viewer-owned wish profile row."},{"key":"wishEntries","type":"array","required":true,"privacy":"private_authenticated","description":"Viewer-owned wish entries only."},{"key":"backgroundProfileSignals","type":"array","required":false,"privacy":"private_authenticated","description":"Viewer-owned approved source-derived profile signals."},{"key":"backgroundShadowRuns","type":"array","required":false,"privacy":"private_authenticated","description":"Viewer-owned redacted shadow source-assist runs; raw external source text is not exported because it is not stored."},{"key":"schemaUrl","type":"path","required":true,"privacy":"private_authenticated","description":"Public schema endpoint for import/export shape."},{"key":"importUrl","type":"path","required":true,"privacy":"private_authenticated","description":"Authenticated import endpoint."},{"key":"privacyNotice","type":"string","required":true,"privacy":"private_authenticated","description":"Boundary note: other users' private wish data is not exported."}]},{"key":"profile_import_request","purpose":"Validated profile portability import payload and replace-existing flag.","fields":[{"key":"replaceExisting","type":"boolean","required":false,"privacy":"private_authenticated","description":"Whether viewer-owned importable records should be replaced."},{"key":"wishProfile","type":"object","required":false,"privacy":"private_authenticated","description":"Portable wish profile fields scoped to the viewer."},{"key":"wishEntries","type":"array","required":false,"privacy":"private_authenticated","description":"Portable wish entries; counterparty-linked records are excluded."},{"key":"sourceConnections","type":"array","required":false,"privacy":"private_authenticated","description":"Viewer-owned manually reviewed source connection metadata."},{"key":"savedSearches","type":"array","required":false,"privacy":"private_authenticated","description":"Viewer-owned saved searches without external counterparty records."}]},{"key":"profile_import_response","purpose":"Import result counts and deterministic synthesis refresh status.","fields":[{"key":"ok","type":"boolean","required":true,"privacy":"private_authenticated","description":"True when import and synthesis refresh complete."},{"key":"importedCounts","type":"object","required":true,"privacy":"private_authenticated","description":"Counts by imported collection."},{"key":"schemaUrl","type":"path","required":true,"privacy":"private_authenticated","description":"Public schema endpoint for the import contract."},{"key":"privacyNotice","type":"string","required":true,"privacy":"private_authenticated","description":"Counterparty-linked records are not imported."}]},{"key":"background_source_connection_create_request","purpose":"Authenticated source-connection consent record for review-first source-assisted profiling.","fields":[{"key":"label","type":"string","required":true,"privacy":"private_authenticated","description":"Owner-visible source connection label."},{"key":"provider","type":"enum","required":false,"privacy":"private_authenticated","description":"Manual, social, blog, email/email_export, calendar/calendar_export, chat_history/chat_export, search_profile, webpage, or other."},{"key":"allowedFieldKeys","type":"string_array","required":true,"privacy":"private_authenticated","description":"Allowed broad source fields that any later reviewed summary may influence."},{"key":"retentionDays","type":"integer","required":false,"privacy":"private_authenticated","description":"Retention window normalized to the supported source-permission options."},{"key":"aiShadowModeAllowed","type":"boolean","required":false,"privacy":"private_authenticated","description":"Optional consent for shadow-only evaluation of approved summaries; it cannot mutate matching or disclosure state."},{"key":"rawIngestionAllowed","type":"boolean","required":false,"privacy":"public_contract","description":"Ignored unless false; raw ingestion remains disabled."}]},{"key":"background_source_connection_create_response","purpose":"Private no-store source connection creation result.","fields":[{"key":"id","type":"uuid","required":true,"privacy":"private_authenticated","description":"Viewer-owned source connection id."},{"key":"stateMutation","type":"enum","required":true,"privacy":"public_contract","description":"source_connection_recorded when consent scope is saved."},{"key":"rawIngestionAllowed","type":"boolean","required":true,"privacy":"public_contract","description":"Always false for this pass."},{"key":"retentionExpiresAt","type":"iso_datetime","required":true,"privacy":"private_authenticated","description":"Computed expiry for this source permission."}]},{"key":"background_source_connection_revoke_response","purpose":"Private no-store source connection revocation result.","fields":[{"key":"id","type":"uuid","required":true,"privacy":"private_authenticated","description":"Revoked viewer-owned source connection id."},{"key":"stateMutation","type":"enum","required":true,"privacy":"public_contract","description":"source_connection_revoked when the connection and dependent matching signals are disabled."},{"key":"downstreamSignalsExcluded","type":"boolean","required":true,"privacy":"public_contract","description":"True when derived profile signals are marked out of future matching."}]},{"key":"background_source_summary_draft_request","purpose":"Authenticated ephemeral raw-text intake for review-first source summary drafting.","fields":[{"key":"id","type":"path_uuid","required":true,"privacy":"private_authenticated","description":"Viewer-owned source connection id."},{"key":"rawText","type":"string","required":true,"privacy":"private_authenticated_ephemeral","description":"Raw source text used only in request memory to produce a redacted draft summary; it is never stored."}]},{"key":"background_source_summary_draft_response","purpose":"Private no-store redacted source summary draft and shadow run id.","fields":[{"key":"shadowRunId","type":"uuid","required":true,"privacy":"private_authenticated","description":"Viewer-owned shadow run containing redacted output only."},{"key":"draftSummary","type":"string","required":true,"privacy":"private_authenticated","description":"Redacted draft summary the user must approve before it can influence profile signals."},{"key":"redactionReport","type":"object","required":true,"privacy":"private_authenticated","description":"Counts for removed emails, phones, URLs, direct quotes, and precise locations."},{"key":"rawTextPersisted","type":"boolean","required":true,"privacy":"public_contract","description":"Always false."}]},{"key":"background_source_summary_approve_request","purpose":"Authenticated approval of a redacted source summary shadow run.","fields":[{"key":"id","type":"path_uuid","required":true,"privacy":"private_authenticated","description":"Viewer-owned shadow run id from draft-summary response."},{"key":"purpose","type":"string","required":false,"privacy":"private_authenticated","description":"Narrow purpose for promoting this approved summary into matching signals."},{"key":"retentionDays","type":"integer","required":false,"privacy":"private_authenticated","description":"Retention window that cannot outlive the associated source connection permission."}]},{"key":"background_source_summary_approve_response","purpose":"Private no-store approval result for encrypted source summary and active profile signals.","fields":[{"key":"sourceSummaryId","type":"uuid","required":true,"privacy":"private_authenticated","description":"Encrypted reviewed source summary row id."},{"key":"profileSignalsCreated","type":"integer","required":true,"privacy":"private_authenticated","description":"Count of active derived profile-signal rows created from the approved summary."},{"key":"rawTextPersisted","type":"boolean","required":true,"privacy":"public_contract","description":"Always false."},{"key":"stateMutation","type":"enum","required":true,"privacy":"public_contract","description":"approved_source_summary_promoted when approval succeeds."}]},{"key":"background_profile_signal_recompute_response","purpose":"Private no-store recomputation result for derived profile signal lifecycle state.","fields":[{"key":"expired","type":"integer","required":true,"privacy":"private_authenticated","description":"Count of active profile signals marked expired."},{"key":"revoked","type":"integer","required":true,"privacy":"private_authenticated","description":"Count of active profile signals marked revoked."},{"key":"stale","type":"integer","required":true,"privacy":"private_authenticated","description":"Count of active profile signals marked stale."},{"key":"stateMutation","type":"enum","required":true,"privacy":"public_contract","description":"profile_signals_recomputed when lifecycle enforcement completes."}]},{"key":"background_source_summary_create_request","purpose":"Authenticated reviewed source-summary intake for approved manual summaries only, with field-bounded consent and retention controls.","fields":[{"key":"summaryText","type":"string","required":true,"privacy":"private_authenticated","description":"Owner-reviewed summary text encrypted before storage; raw feed payloads, hidden instructions, and unapproved source bodies are not accepted as public data."},{"key":"label","type":"string","required":true,"privacy":"private_authenticated","description":"Owner-visible source summary label."},{"key":"purpose","type":"string","required":true,"privacy":"private_authenticated","description":"Narrow purpose for using the summary in deterministic matching."},{"key":"allowedFieldKeys","type":"string_array","required":true,"privacy":"private_authenticated","description":"Allowed broad field keys after source-permission normalization; when sourceConnectionId is supplied, fields must stay within that viewer-owned connection's approved field list."},{"key":"retentionDays","type":"integer","required":false,"privacy":"private_authenticated","description":"Retention window normalized to the approved background source retention options; when sourceConnectionId is supplied, the resulting expiry cannot outlive that source connection's permission expiry."},{"key":"sourceConnectionId","type":"uuid_or_null","required":false,"privacy":"private_authenticated","description":"Optional viewer-owned source connection that records consent scope and allowed fields; unknown, inactive, expired, or cross-profile connections fail closed and never authorize raw ingestion."},{"key":"sourceType","type":"enum","required":false,"privacy":"private_authenticated","description":"Manual, social, blog, email, calendar, chat_history, search_profile, or other."},{"key":"sourceUrl","type":"url_or_empty","required":false,"privacy":"private_authenticated","description":"Optional source locator for the viewer-owned reviewed note; raw source content is not copied to analytics or public previews."}]},{"key":"background_source_summary_create_response","purpose":"Private no-store result for a reviewed source summary, consent receipt, and matching source note.","fields":[{"key":"consentReceiptId","type":"uuid","required":true,"privacy":"private_authenticated","description":"Viewer-owned receipt recording consent fields, purpose, audience stage, status, and expiry."},{"key":"sourceSummaryId","type":"uuid","required":true,"privacy":"private_authenticated","description":"Viewer-owned encrypted source-summary row id."},{"key":"stateMutation","type":"enum","required":true,"privacy":"public_contract","description":"reviewed_source_summary_saved when storage succeeds; rate-limited or invalid requests produce no storage result."},{"key":"rawIngestionAllowed","type":"boolean","required":true,"privacy":"public_contract","description":"Always false; source connectors remain manual-summary and reviewed-summary only."}]},{"key":"background_intro_packet_create_request","purpose":"Authenticated introduction-review packet request that asks for field-bounded details without disclosure or outreach.","fields":[{"key":"purpose","type":"string","required":true,"privacy":"private_authenticated","description":"Concrete purpose for the reviewed introduction packet."},{"key":"requestedFieldKeys","type":"string_array","required":true,"privacy":"private_authenticated","description":"Requested disclosure fields to be reviewed; at least one field is required and duplicates are removed."},{"key":"counterpartyProfileId","type":"uuid_or_null","required":false,"privacy":"private_authenticated","description":"Optional counterparty profile id for reviewer context; it does not reveal identity or contact details by itself."},{"key":"matchId","type":"uuid_or_null","required":false,"privacy":"private_authenticated","description":"Optional match suggestion id for audit context."},{"key":"opportunityBriefId","type":"uuid_or_null","required":false,"privacy":"private_authenticated","description":"Optional opportunity brief id updated only for the authenticated requester."},{"key":"requesterAnswers","type":"object","required":false,"privacy":"private_authenticated","description":"Structured answers to reviewer questions; raw private notes and contact details remain gated by the intro review process."}]},{"key":"background_intro_packet_create_response","purpose":"Private no-store result for a queued intro packet with no autonomous outreach.","fields":[{"key":"introPacketId","type":"uuid","required":true,"privacy":"private_authenticated","description":"Viewer-owned reviewed introduction packet id."},{"key":"stateMutation","type":"enum","required":true,"privacy":"public_contract","description":"reviewed_intro_packet_requested when the packet is queued for review; rate-limited or invalid requests create no packet."},{"key":"outreachSent","type":"boolean","required":true,"privacy":"public_contract","description":"Always false; the endpoint queues review and never contacts a counterparty."}]},{"key":"background_intro_request_create_request","purpose":"Authenticated reviewed-introduction request with field-bounded details, optional opportunity context, and anti-probing controls.","fields":[{"key":"purpose","type":"string","required":true,"privacy":"private_authenticated","description":"Concrete purpose for reviewer triage."},{"key":"requestedFieldKeys","type":"string_array","required":true,"privacy":"private_authenticated","description":"Disclosure-lattice field keys only; unsupported fields are ignored and at least one supported field is required."},{"key":"opportunityBriefId","type":"uuid_or_null","required":false,"privacy":"private_authenticated","description":"Optional viewer-owned opportunity brief used to derive safe match context."},{"key":"counterpartyProfileId","type":"uuid_or_null","required":false,"privacy":"private_authenticated","description":"Optional target profile for repeated-target probe checks and reviewer context."},{"key":"proposedTradeShape","type":"object","required":false,"privacy":"private_authenticated","description":"Structured proposal context for operator review, not an outbound message."},{"key":"privacyConstraints","type":"object","required":false,"privacy":"private_authenticated","description":"Participant-stated boundaries for reviewer triage."}]},{"key":"background_intro_request_create_response","purpose":"Private no-store result for a reviewed intro request with no autonomous outreach or disclosure.","fields":[{"key":"introRequestId","type":"uuid","required":true,"privacy":"private_authenticated","description":"Viewer-owned intro request id backed by the reviewed intro packet workflow."},{"key":"slaDueAt","type":"iso_datetime","required":true,"privacy":"private_authenticated","description":"Operator review SLA target."},{"key":"stateMutation","type":"enum","required":true,"privacy":"public_contract","description":"reviewed_intro_request_submitted when the request is queued."},{"key":"outreachSent","type":"boolean","required":true,"privacy":"public_contract","description":"Always false."},{"key":"privateDetailsReturned","type":"boolean","required":true,"privacy":"public_contract","description":"Always false."}]},{"key":"background_intro_request_appeal_request","purpose":"Authenticated participant appeal of a declined or changes-requested intro review.","fields":[{"key":"id","type":"path_uuid","required":true,"privacy":"private_authenticated","description":"Participant-visible intro request id from the route path."},{"key":"reason","type":"string","required":true,"privacy":"private_authenticated","description":"Brief participant reason for operator re-review; raw contact details are not required."}]},{"key":"background_intro_request_appeal_response","purpose":"Private no-store result for reopening intro request operator review.","fields":[{"key":"introRequestId","type":"uuid","required":true,"privacy":"private_authenticated","description":"Participant-visible intro request id."},{"key":"appealStatus","type":"enum","required":true,"privacy":"private_authenticated","description":"requested when operator re-review is queued."},{"key":"stateMutation","type":"enum","required":true,"privacy":"public_contract","description":"intro_request_appeal_requested when the appeal is recorded."},{"key":"outreachSent","type":"boolean","required":true,"privacy":"public_contract","description":"Always false."}]},{"key":"background_intro_request_contact_approval_response","purpose":"Private no-store result for MFA-gated introduced-stage contact approval.","fields":[{"key":"introRequestId","type":"uuid","required":true,"privacy":"private_authenticated","description":"Participant-visible intro request id."},{"key":"contactApprovalStatus","type":"enum","required":true,"privacy":"private_authenticated","description":"requester_approved, counterparty_approved, or mutual_approved after participant approval is recorded."},{"key":"stateMutation","type":"enum","required":true,"privacy":"public_contract","description":"intro_request_contact_approval_recorded when approval is stored."},{"key":"contactDetailsReturned","type":"boolean","required":true,"privacy":"public_contract","description":"Always false; details move through the introduced-stage disclosure workflow, not this response."}]},{"key":"background_opportunity_brief_list_response","purpose":"Authenticated broad-preview opportunity brief inbox with redacted summaries and no exact private details.","fields":[{"key":"briefs","type":"opportunity_brief_card_array","required":true,"privacy":"private_authenticated","description":"Viewer-owned cards with broad factor codes, confidence band, safe summary, shared counts, redacted field labels, status, and next safe step only."},{"key":"privacyNotice","type":"string","required":true,"privacy":"public_contract","description":"States that exact wishes, private asks, source notes, constraints, and contact details remain outside the API response."}]},{"key":"background_opportunity_feedback_create_request","purpose":"Authenticated opportunity feedback over closed reason and outcome codes.","fields":[{"key":"id","type":"path_uuid","required":true,"privacy":"private_authenticated","description":"Viewer-owned opportunity brief id from the route path; cross-profile ids fail closed."},{"key":"reason","type":"enum","required":true,"privacy":"private_authenticated","description":"Closed reason code only: not_relevant, bad_timing, too_vague, safety_concern, maybe_later, or interested. Free-text feedback is not accepted."},{"key":"outcome","type":"enum","required":false,"privacy":"private_authenticated","description":"Closed outcome code: dismissed, maybe_later, or interested. Interested outcome requires interested reason; maybe_later outcome requires maybe_later reason; dismissed outcome cannot use interested or maybe_later reason."}]},{"key":"background_opportunity_feedback_create_response","purpose":"Private no-store result for owner-only opportunity feedback with no autonomous outreach.","fields":[{"key":"ok","type":"boolean","required":true,"privacy":"public_contract","description":"True only after the owner-scoped feedback row and brief status update succeed."},{"key":"stateMutation","type":"enum","required":true,"privacy":"public_contract","description":"opportunity_feedback_recorded when feedback is stored; rate-limited or invalid requests create no state change."},{"key":"outreachSent","type":"boolean","required":true,"privacy":"public_contract","description":"Always false; feedback never contacts a counterparty."}]},{"key":"wish_registry_search_request","purpose":"Privacy-thresholded public wish-registry query parameters.","fields":[{"key":"q","type":"string","required":false,"privacy":"redacted_public","description":"Search text used only for matching; exact text is not echoed."},{"key":"cause","type":"string","required":false,"privacy":"public_summary","description":"Broad cause filter."},{"key":"limit","type":"integer","required":false,"privacy":"public_summary","description":"Requested result count capped by the endpoint."},{"key":"payment","type":"boolean_flag","required":false,"privacy":"public_summary","description":"Broad openness-to-payment filter."},{"key":"pledges","type":"boolean_flag","required":false,"privacy":"public_summary","description":"Broad openness-to-pledges filter."},{"key":"privacy","type":"string","required":false,"privacy":"public_summary","description":"Broad privacy-stage filter."}]},{"key":"wish_registry_search_response","purpose":"Privacy-thresholded public wish previews with broad causes and disclosure stage.","fields":[{"key":"results","type":"array","required":true,"privacy":"privacy_thresholded_public_preview","description":"Broad previews only; may be empty when sparse privacy floor applies."},{"key":"privacyNotice","type":"string","required":true,"privacy":"public","description":"Explanation of public-preview and sparse-result privacy boundaries."}]},{"key":"funnel_event_request","purpose":"Redacted analytics event type, path, profile id if available, and metadata without private source text.","fields":[{"key":"eventType","type":"enum","required":true,"privacy":"redacted_analytics","description":"Whitelisted funnel event type."},{"key":"metadata","type":"redacted_object","required":false,"privacy":"redacted_analytics","description":"Sanitized key/value metadata; raw wishes, contact details, source notes, and private text are forbidden."},{"key":"path","type":"path","required":false,"privacy":"redacted_analytics","description":"Path only; query strings and hashes are stripped."},{"key":"referrer","type":"origin_path","required":false,"privacy":"redacted_analytics","description":"Origin and path only; query strings and hashes are stripped."}]},{"key":"empty_204_response","purpose":"No response body; the endpoint either accepts asynchronously or safely no-ops.","fields":[]}],"privacyClasses":["public_contract","public_schema","authenticated_private","authenticated_private_step_up","privacy_thresholded_public_preview","redacted_analytics","ephemeral_private_draft_review"],"apiTests":["api_contract_profile_validator","api_contract_route_contract","health_route_contract_smoke","technical_spec_api_contract_smoke","security_route_contract","incident_response_route_contract","performance_route_contract","externality_route_contract","ai_governance_route_contract","data_model_contract_route","policy_bundle_contract_route","public_offers_collection_route","public_offer_detail_route","public_offers_facets_route","saved_search_create_route","public_offer_follow_route","public_offer_create_similar_route","reasoning_packet_route_contract","match_signal_route_contract","challenge_appeal_route_contract","disclosure_grant_route_contract","copilot_review_route_contract","profile_portability_route_contract","wish_registry_rate_limit_contract","analytics_redaction_contract"],"implementationAudit":{"status":"fail","routeCount":55,"implementedRateLimitSurfaces":["analytics_ingest","background_intro_packet_write","background_opportunity_brief_read","background_opportunity_feedback_write","background_source_summary_write","challenge_appeal_evaluate","copilot_draft_review","disclosure_evaluate","match_signal_evaluate","offer_collection_read","offer_create_similar","offer_detail_read","offer_facets_read","offer_follow_write","profile_portability","public_contract_read","review_workflow_evaluate","saved_search_write","wish_registry_search"],"implementedCacheControls":["no_store_dynamic","private_no_store","public_contract_static"],"blockers":["missing_route_file:background_intro_packet_create:/api/background/intro-packets","missing_route_file:background_intro_request_appeal:/api/background/intro-requests/:id/appeal","missing_route_file:background_intro_request_approve_contact:/api/background/intro-requests/:id/approve-contact","missing_route_file:background_intro_request_create:/api/background/intro-requests","missing_route_file:background_opportunity_brief_list:/api/background/opportunity-briefs","missing_route_file:background_opportunity_feedback_create:/api/background/opportunity-briefs/:id/feedback","missing_route_file:background_opportunity_feedback_create_alias:/api/background/opportunities/:id/feedback","missing_route_file:background_opportunity_list:/api/background/opportunities","missing_route_file:background_profile_signal_recompute:/api/background/profile-signals/recompute","missing_route_file:background_source_connection_create:/api/background/source-connections","missing_route_file:background_source_connection_revoke:/api/background/source-connections/:id","missing_route_file:background_source_summary_approve:/api/background/source-summaries/:id/approve","missing_route_file:background_source_summary_create:/api/background/source-summaries","missing_route_file:background_source_summary_draft:/api/background/source-connections/:id/draft-summary","missing_route_file:funnel_events:/api/funnel-events","missing_route_file:moral_trade_ai_governance_health:/api/moral-trade/ai-governance/health","missing_route_file:moral_trade_ai_shadow_contract:/api/moral-trade/ai-shadow/contract","missing_route_file:moral_trade_api_contract:/api/moral-trade/api-contract","missing_route_file:moral_trade_background_capability_gates_contract:/api/moral-trade/background-capability-gates/contract","missing_route_file:moral_trade_background_rls_audit_contract:/api/moral-trade/background-rls-audit/contract","missing_route_file:moral_trade_challenge_appeal_contract:/api/moral-trade/challenge-appeal/contract","missing_route_file:moral_trade_challenge_appeal_evaluate:/api/moral-trade/challenge-appeal/evaluate","missing_route_file:moral_trade_copilot_contract:/api/moral-trade/copilot/contract","missing_route_file:moral_trade_copilot_review:/api/moral-trade/copilot/review","missing_route_file:moral_trade_data_model_contract:/api/moral-trade/data-model/contract","missing_route_file:moral_trade_disclosure_contract:/api/moral-trade/disclosure/contract","missing_route_file:moral_trade_disclosure_evaluate:/api/moral-trade/disclosure/evaluate","missing_route_file:moral_trade_document_coverage_health:/api/moral-trade/document-coverage/health","missing_route_file:moral_trade_evaluation_health:/api/moral-trade/evaluation/health","missing_route_file:moral_trade_externality_health:/api/moral-trade/externality/health","missing_route_file:moral_trade_health:/api/moral-trade/health","missing_route_file:moral_trade_incident_response_health:/api/moral-trade/incident-response/health","missing_route_file:moral_trade_match_signal_contract:/api/moral-trade/match-signal/contract","missing_route_file:moral_trade_match_signal_evaluate:/api/moral-trade/match-signal/evaluate","missing_route_file:moral_trade_operations_health:/api/moral-trade/operations/health","missing_route_file:moral_trade_performance_health:/api/moral-trade/performance/health","missing_route_file:moral_trade_policy_bundle_contract:/api/moral-trade/policy-bundle/contract","missing_route_file:moral_trade_private_overlap_contract:/api/moral-trade/private-overlap/contract","missing_route_file:moral_trade_provenance_schema:/api/moral-trade/provenance/schema","missing_route_file:moral_trade_reasoning_packets:/api/moral-trade/reasoning/packets","missing_route_file:moral_trade_review_workflow_contract:/api/moral-trade/review-workflow/contract","missing_route_file:moral_trade_review_workflow_evaluate:/api/moral-trade/review-workflow/evaluate","missing_route_file:moral_trade_schema_registry:/api/moral-trade/schemas","missing_route_file:moral_trade_security_health:/api/moral-trade/security/health","missing_route_file:moral_trade_transparency_report:/api/moral-trade/transparency/report","missing_route_file:profile_export:/api/profile/export","missing_route_file:profile_import:/api/profile/import","missing_route_file:profile_schema:/api/profile/schema","missing_route_file:public_offer_create_similar:/api/offers/:id/create-similar","missing_route_file:public_offer_detail:/api/offers/:slug","missing_route_file:public_offer_follow:/api/offers/:id/follow","missing_route_file:public_offers_collection:/api/offers","missing_route_file:public_offers_facets:/api/offers/facets","missing_route_file:saved_search_create:/api/saved-searches","missing_route_file:wish_registry_search:/api/wish-registry/search"]}},"blockers":["api-contract-route: API contract route is cataloged and implementation-audited","implementation-backed-rate-limits-and-cache: Published rate-limit and cache names have executable tables","missing_route_file:background_intro_packet_create:/api/background/intro-packets","missing_route_file:background_intro_request_appeal:/api/background/intro-requests/:id/appeal","missing_route_file:background_intro_request_approve_contact:/api/background/intro-requests/:id/approve-contact","missing_route_file:background_intro_request_create:/api/background/intro-requests","missing_route_file:background_opportunity_brief_list:/api/background/opportunity-briefs","missing_route_file:background_opportunity_feedback_create:/api/background/opportunity-briefs/:id/feedback","missing_route_file:background_opportunity_feedback_create_alias:/api/background/opportunities/:id/feedback","missing_route_file:background_opportunity_list:/api/background/opportunities","missing_route_file:background_profile_signal_recompute:/api/background/profile-signals/recompute","missing_route_file:background_source_connection_create:/api/background/source-connections","missing_route_file:background_source_connection_revoke:/api/background/source-connections/:id","missing_route_file:background_source_summary_approve:/api/background/source-summaries/:id/approve","missing_route_file:background_source_summary_create:/api/background/source-summaries","missing_route_file:background_source_summary_draft:/api/background/source-connections/:id/draft-summary","missing_route_file:funnel_events:/api/funnel-events","missing_route_file:moral_trade_ai_governance_health:/api/moral-trade/ai-governance/health","missing_route_file:moral_trade_ai_shadow_contract:/api/moral-trade/ai-shadow/contract","missing_route_file:moral_trade_api_contract:/api/moral-trade/api-contract","missing_route_file:moral_trade_background_capability_gates_contract:/api/moral-trade/background-capability-gates/contract","missing_route_file:moral_trade_background_rls_audit_contract:/api/moral-trade/background-rls-audit/contract","missing_route_file:moral_trade_challenge_appeal_contract:/api/moral-trade/challenge-appeal/contract","missing_route_file:moral_trade_challenge_appeal_evaluate:/api/moral-trade/challenge-appeal/evaluate","missing_route_file:moral_trade_copilot_contract:/api/moral-trade/copilot/contract","missing_route_file:moral_trade_copilot_review:/api/moral-trade/copilot/review","missing_route_file:moral_trade_data_model_contract:/api/moral-trade/data-model/contract","missing_route_file:moral_trade_disclosure_contract:/api/moral-trade/disclosure/contract","missing_route_file:moral_trade_disclosure_evaluate:/api/moral-trade/disclosure/evaluate","missing_route_file:moral_trade_document_coverage_health:/api/moral-trade/document-coverage/health","missing_route_file:moral_trade_evaluation_health:/api/moral-trade/evaluation/health","missing_route_file:moral_trade_externality_health:/api/moral-trade/externality/health","missing_route_file:moral_trade_health:/api/moral-trade/health","missing_route_file:moral_trade_incident_response_health:/api/moral-trade/incident-response/health","missing_route_file:moral_trade_match_signal_contract:/api/moral-trade/match-signal/contract","missing_route_file:moral_trade_match_signal_evaluate:/api/moral-trade/match-signal/evaluate","missing_route_file:moral_trade_operations_health:/api/moral-trade/operations/health","missing_route_file:moral_trade_performance_health:/api/moral-trade/performance/health","missing_route_file:moral_trade_policy_bundle_contract:/api/moral-trade/policy-bundle/contract","missing_route_file:moral_trade_private_overlap_contract:/api/moral-trade/private-overlap/contract","missing_route_file:moral_trade_provenance_schema:/api/moral-trade/provenance/schema","missing_route_file:moral_trade_reasoning_packets:/api/moral-trade/reasoning/packets","missing_route_file:moral_trade_review_workflow_contract:/api/moral-trade/review-workflow/contract","missing_route_file:moral_trade_review_workflow_evaluate:/api/moral-trade/review-workflow/evaluate","missing_route_file:moral_trade_schema_registry:/api/moral-trade/schemas","missing_route_file:moral_trade_security_health:/api/moral-trade/security/health","missing_route_file:moral_trade_transparency_report:/api/moral-trade/transparency/report","missing_route_file:profile_export:/api/profile/export","missing_route_file:profile_import:/api/profile/import","missing_route_file:profile_schema:/api/profile/schema","missing_route_file:public_offer_create_similar:/api/offers/:id/create-similar","missing_route_file:public_offer_detail:/api/offers/:slug","missing_route_file:public_offer_follow:/api/offers/:id/follow","missing_route_file:public_offers_collection:/api/offers","missing_route_file:public_offers_facets:/api/offers/facets","missing_route_file:saved_search_create:/api/saved-searches","missing_route_file:wish_registry_search:/api/wish-registry/search"]}