{
  "resource_name": "ALTHEIA Archetype Candidate Rules 2.0",
  "version": "altheia_archetype_candidate_rules_2.0",
  "module": "identity_corpus_archetyping_2.0",
  "module_version": "2.0",
  "input_contract": {
    "profile_schema_version": "altheia_profile_2.0",
    "product_catalog_version": "altheia_financial_products_2.0",
    "taxonomy_file": "taxonomies/altheia_archetype_taxonomy_compact_v0_2.json",
    "required_dimensions": "D01-D45",
    "target_brand_path": "/base_data/banking_relationship/target_brand"
  },
  "candidate_pipeline": [
    "Validate the complete canonical profile before classification.",
    "Evaluate taxonomy main_dimensions against D01-D45.",
    "Apply factual eligibility gates from base_data and canonical multivalue products.",
    "Rank eligible candidates without assigning archetypes automatically.",
    "Allow the classifier to use only the eligible list for each profile.",
    "Validate evidence, confidence, assignment type and taxonomy membership before merge."
  ],
  "factual_gates": {
    "investment": "ALT-ARQ-011 to ALT-ARQ-020 require at least one value in financial_products.investment_products.",
    "insurance": "Insurance ownership archetypes require values in financial_products.insurance; ALT-ARQ-034 is excluded when active insurance exists.",
    "cards": "ALT-ARQ-042 requires financial_products.credit_card=true.",
    "mortgage": "ALT-ARQ-059 requires financial_products.mortgage=true.",
    "property_investment": "ALT-ARQ-061 requires REIT, real-estate fund or wealth-management evidence.",
    "digital": "ALT-ARQ-071, ALT-ARQ-072 and ALT-ARQ-074 require compatible digital literacy, preferred channel and usage facts.",
    "brand_relationship": "ALT-ARQ-079, ALT-ARQ-080, ALT-ARQ-082 and ALT-ARQ-083 use only the focal-brand relationship fields and D20/D21/D22/D25.",
    "neobank": "ALT-ARQ-085 requires N26, Revolut or Wise as primary_bank_name or other_banks.",
    "life_stage": "ALT-ARQ-095, ALT-ARQ-096 and ALT-ARQ-098 require compatible age, income and life-stage evidence."
  },
  "assignment_contract": {
    "minimum_archetypes": 1,
    "maximum_archetypes": 4,
    "exact_primary_assignments": 1,
    "minimum_evidence_items": 2,
    "individual_confidence": true,
    "confidence_range": [0, 1],
    "allowed_assignment_types": ["primary", "secondary"],
    "output_path": "/archetyping/assignments"
  },
  "merge_contract": {
    "primary_key": "profile_uuid",
    "fallback_key": "profile_id",
    "preserve_fields": ["base_data", "dimensions", "dimension_evidence", "quality_check", "governance"],
    "diagnostic_extension": "altheia.archetyping",
    "forbidden_legacy_fields": ["ing_customer", "archetypes", "archetype_confidence", "archetype_rules_version", "classification_metadata"]
  },
  "coverage_policy": {
    "mode_natural": "Report observed coverage without quotas.",
    "mode_controlled": "Raise alerts when coverage is low; never force an unsupported assignment."
  }
}
