{
  "product": "Lugemi Baobab",
  "national_models": [
    "baobab-twi",
    "baobab-ga",
    "baobab-ha",
    "baobab-ee",
    "baobab-fante",
    "baobab-yo",
    "baobab-fil",
    "baobab-fr-sn",
    "baobab-fr-ci",
    "baobab-ig",
    "baobab-ha-ng",
    "baobab-sw",
    "baobab-am",
    "baobab-af",
    "baobab-zu"
  ],
  "speech_clarity": "spectral_gate_v2",
  "apis": {
    "baobab_twi": "GET /v1/models/baobab-twi",
    "twi_national": "GET /v1/baobab/twi/national",
    "twi_research": "GET /v1/baobab/twi/research",
    "twi_unlock": "GET /v1/baobab/twi/unlock",
    "twi_slo": "GET /v1/baobab/twi/slo",
    "baobab_ga": "GET /v1/models/baobab-ga",
    "ga_national": "GET /v1/baobab/ga/national",
    "ga_research": "GET /v1/baobab/ga/research",
    "ga_unlock": "GET /v1/baobab/ga/unlock",
    "ga_slo": "GET /v1/baobab/ga/slo",
    "baobab_ha": "GET /v1/models/baobab-ha",
    "ha_national": "GET /v1/baobab/ha/national",
    "ha_research": "GET /v1/baobab/ha/research",
    "ha_unlock": "GET /v1/baobab/ha/unlock",
    "ha_slo": "GET /v1/baobab/ha/slo",
    "baobab_ee": "GET /v1/models/baobab-ee",
    "ee_national": "GET /v1/baobab/ee/national",
    "ee_research": "GET /v1/baobab/ee/research",
    "ee_unlock": "GET /v1/baobab/ee/unlock",
    "ee_slo": "GET /v1/baobab/ee/slo",
    "baobab_fante": "GET /v1/models/baobab-fante",
    "fante_national": "GET /v1/baobab/fante/national",
    "fante_research": "GET /v1/baobab/fante/research",
    "fante_unlock": "GET /v1/baobab/fante/unlock",
    "fante_slo": "GET /v1/baobab/fante/slo",
    "baobab_yo": "GET /v1/models/baobab-yo",
    "yo_national": "GET /v1/baobab/yo/national",
    "yo_research": "GET /v1/baobab/yo/research",
    "yo_unlock": "GET /v1/baobab/yo/unlock",
    "yo_slo": "GET /v1/baobab/yo/slo",
    "baobab_fil": "GET /v1/models/baobab-fil",
    "fil_national": "GET /v1/baobab/fil/national",
    "fil_research": "GET /v1/baobab/fil/research",
    "fil_unlock": "GET /v1/baobab/fil/unlock",
    "fil_slo": "GET /v1/baobab/fil/slo",
    "baobab_fr_sn": "GET /v1/models/baobab-fr-sn",
    "fr_sn_national": "GET /v1/baobab/fr-sn/national",
    "fr_sn_research": "GET /v1/baobab/fr-sn/research",
    "fr_sn_unlock": "GET /v1/baobab/fr-sn/unlock",
    "fr_sn_slo": "GET /v1/baobab/fr-sn/slo",
    "baobab_fr_ci": "GET /v1/models/baobab-fr-ci",
    "fr_ci_national": "GET /v1/baobab/fr-ci/national",
    "fr_ci_research": "GET /v1/baobab/fr-ci/research",
    "fr_ci_unlock": "GET /v1/baobab/fr-ci/unlock",
    "fr_ci_slo": "GET /v1/baobab/fr-ci/slo",
    "baobab_ig": "GET /v1/models/baobab-ig",
    "ig_national": "GET /v1/baobab/ig/national",
    "ig_research": "GET /v1/baobab/ig/research",
    "ig_unlock": "GET /v1/baobab/ig/unlock",
    "ig_slo": "GET /v1/baobab/ig/slo",
    "baobab_ha_ng": "GET /v1/models/baobab-ha-ng",
    "ha_ng_national": "GET /v1/baobab/ha-ng/national",
    "ha_ng_research": "GET /v1/baobab/ha-ng/research",
    "ha_ng_unlock": "GET /v1/baobab/ha-ng/unlock",
    "ha_ng_slo": "GET /v1/baobab/ha-ng/slo",
    "baobab_sw": "GET /v1/models/baobab-sw",
    "sw_national": "GET /v1/baobab/sw/national",
    "sw_research": "GET /v1/baobab/sw/research",
    "sw_unlock": "GET /v1/baobab/sw/unlock",
    "sw_slo": "GET /v1/baobab/sw/slo",
    "baobab_am": "GET /v1/models/baobab-am",
    "am_national": "GET /v1/baobab/am/national",
    "am_research": "GET /v1/baobab/am/research",
    "am_unlock": "GET /v1/baobab/am/unlock",
    "am_slo": "GET /v1/baobab/am/slo",
    "baobab_af": "GET /v1/models/baobab-af",
    "af_national": "GET /v1/baobab/af/national",
    "af_research": "GET /v1/baobab/af/research",
    "af_unlock": "GET /v1/baobab/af/unlock",
    "af_slo": "GET /v1/baobab/af/slo",
    "baobab_zu": "GET /v1/models/baobab-zu",
    "zu_national": "GET /v1/baobab/zu/national",
    "zu_research": "GET /v1/baobab/zu/research",
    "zu_unlock": "GET /v1/baobab/zu/unlock",
    "zu_slo": "GET /v1/baobab/zu/slo",
    "catalogue": "GET /v1/baobab/models",
    "translate": "POST /v1/translate",
    "demo_speech": "POST /v1/demo/speech",
    "residency": "GET /v1/residency"
  },
  "honesty": {
    "twi": {
      "phrase_table_only": true,
      "phrase_coverage_expanded_phase_b": true,
      "national_api_tiers_phase_c": true,
      "phase_d_research_shipped": true,
      "post_d_national_readiness": true,
      "deferred_slice_shipped": true,
      "neural_speech_live": false,
      "neural_nmt": false,
      "generative_inference_live": false,
      "foundation_llm_weights": false,
      "ships_trained_baobab_foundation": false,
      "asante_akuapem_interchangeable": false,
      "variety_exclusive_speech_finetunes": false,
      "trainingEligible": false,
      "training_eligible_unlock": {
        "trainingEligible": false,
        "status": "locked",
        "unlock_doc": "docs/baobab/TRAINING_ELIGIBLE_UNLOCK.md",
        "gates": [
          {
            "id": "community_consent_asante",
            "required": true,
            "met": false,
            "evidence_required": "Signed Asante contributor agreements reconfirming training use",
            "description": "Asante community speakers must reconfirm training export consent."
          },
          {
            "id": "community_consent_akuapem",
            "required": true,
            "met": false,
            "evidence_required": "Signed Akuapem contributor agreements reconfirming training use",
            "description": "Akuapem community speakers must reconfirm training export consent."
          },
          {
            "id": "held_out_speaker_lists",
            "required": true,
            "met": false,
            "evidence_required": "Published held-out speaker IDs never present in train splits",
            "description": "Held-out evaluation speakers must never appear in training exports."
          },
          {
            "id": "dual_variety_native_review",
            "required": true,
            "met": false,
            "evidence_required": "Paid Asante + Akuapem native review records with trainingEligible fields",
            "description": "Native review must cover both varieties separately before any train export."
          },
          {
            "id": "rights_clear_for_export",
            "required": true,
            "met": false,
            "evidence_required": "Legal memo clearing commercial vs research split for export corpus",
            "description": "IP / commercial rights must clear before trainingEligible flips."
          }
        ],
        "note": "trainingEligible remains false until all gates are met with durable evidence. Do not invent consent."
      },
      "bare_ak_defaults_to": "ak-gh-asante",
      "bare_ak_warning": "Bare `ak` / `tw` / `twi` resolves to Asante (`ak-gh-asante`). Pass `ak-gh-akuapem` or `ak-akuapem` for Akuapem. Varieties are never interchangeable. Shared Akan checkpoints + orthography — not exclusive finetunes.",
      "nmt": {
        "neural_nmt": false,
        "disclosed_base_named": "nllb-200-distilled-600M",
        "disclosed_base_weights_in_repo": false,
        "commercial_license_cleared": false,
        "nllb_license": "CC-BY-NC",
        "adapter_status": "disabled_until_checkpoint",
        "checkpoint_shipped": false,
        "remote_mt_configured": false,
        "remote_mt_env": null,
        "baobab_twi_nmt_url_configured": false,
        "baobab_twi_nmt_env": null,
        "baobab_twi_nmt_live": false,
        "separate_variety_adapters": false,
        "note": "Baobab Twi NMT remote not live. Phrase/lexical packs remain the fail-closed default. Optional BAOBAB_TWI_NMT_URL / LUGEMI_MT_URL when set. NLLB base is CC-BY-NC."
      },
      "residency": {
        "serving_today": "jnb",
        "serving_today_label": "Africa-primary Fly region Johannesburg (jnb)",
        "affinity_target": "af-west-1",
        "affinity_city": "Accra",
        "affinity_country": "GH",
        "accra_gpu_island": false,
        "accra_gpu_island_status": "deferred",
        "hard_geo_fence": false,
        "preference_model": "affinity_not_hard_fence",
        "ministry_affinity_pin": "af-west-1",
        "affinity_enforcement": "soft_preference_recorded",
        "accra_island_runbook": "docs/baobab/ACCRA_RESIDENCY.md",
        "note": "Inference prefers matching person/org residency to nearby model hosting when ready — affinity, not a hard geo-fence. Accra (af-west-1) is the Ghana affinity target; live serving for verbalab + lugemi-asante + baobab-twi-mt is jnb today. No Accra GPU island is deployed. Ministry requests record X-Lugemi-Residency-Affinity soft pin."
      },
      "licenses": {
        "mms_tts_aka": "CC-BY-NC-4.0",
        "whisper_twi_v2": "Apache-2.0",
        "nllb_200_distilled": "CC-BY-NC",
        "mms_commercial_redistribution": "restricted_nc",
        "nllb_commercial_redistribution": "restricted_nc",
        "note": "MMS TTS and NLLB distilled are CC-BY-NC — commercial redistribution restricted. Whisper-twi-v2 is Apache-2.0. neural_nmt true only when NMT health probe succeeds."
      },
      "deferred": [
        "Commercially cleared NMT + variety-exclusive adapters (NLLB NC live path ≠ commercial clear)",
        "Accra GPU island / hard Ghana geo-fence (affinity af-west-1; serving jnb)",
        "Contractual ministry SLA signature (operational targets shipped)",
        "Generative Twi LM weights + inference (recipe + gates only)",
        "Variety-exclusive ASR/TTS finetunes (recipe shipped; shared checkpoints live)",
        "trainingEligible unlock evidence (checklist shipped; flag locked false)"
      ]
    },
    "ga": {
      "phrase_table_only": true,
      "national_api_tiers": true,
      "research_slot_shipped": true,
      "neural_speech_live": false,
      "neural_nmt": false,
      "generative_inference_live": false,
      "foundation_llm_weights": false,
      "ships_trained_baobab_foundation": false,
      "dangme_interchangeable": false,
      "irish_ga_interchangeable": false,
      "variety_exclusive_speech_finetunes": false,
      "trainingEligible": false,
      "training_eligible_unlock": {
        "trainingEligible": false,
        "status": "locked",
        "unlock_doc": "docs/baobab/TRAINING_ELIGIBLE_UNLOCK.md",
        "gates": [
          {
            "id": "community_consent_accra_ga",
            "required": true,
            "met": false,
            "evidence_required": "Signed Accra Ga contributor agreements reconfirming training use",
            "description": "Accra / Ga Mashie community speakers must reconfirm training export consent."
          },
          {
            "id": "held_out_speaker_lists",
            "required": true,
            "met": false,
            "evidence_required": "Published held-out speaker IDs never present in train splits",
            "description": "Held-out evaluation speakers must never appear in training exports."
          },
          {
            "id": "accra_ga_native_review",
            "required": true,
            "met": false,
            "evidence_required": "Paid Accra Ga native review records with trainingEligible fields",
            "description": "Native review must cover Accra Ga before any train export."
          },
          {
            "id": "dangme_not_conflated",
            "required": true,
            "met": false,
            "evidence_required": "Corpus metadata proving Dangme (ada) excluded from Ga train exports",
            "description": "Dangme is a separate language — never conflated with Gã training data."
          },
          {
            "id": "rights_clear_for_export",
            "required": true,
            "met": false,
            "evidence_required": "Legal memo clearing commercial vs research split for export corpus",
            "description": "IP / commercial rights must clear before trainingEligible flips."
          }
        ],
        "note": "trainingEligible remains false until all gates are met with durable evidence. Do not invent consent. Irish ga is never Ga."
      },
      "iso_code": "gaa",
      "bare_ga_warning": "Irish `ga` / `ga-IE` is not Gã. Pass ISO 639-3 `gaa` or `gaa-GH` / variety `gaa-gh`. Dangme (`ada`) is never interchangeable.",
      "nmt": {
        "neural_nmt": false,
        "disclosed_base_named": null,
        "disclosed_base_weights_in_repo": false,
        "commercial_license_cleared": false,
        "adapter_status": "phrase_table_only",
        "checkpoint_shipped": false,
        "phrase_table_live": true,
        "phrase_table_pairs": [
          "en↔gaa"
        ],
        "remote_mt_configured": false,
        "remote_mt_env": null,
        "baobab_ga_nmt_url_configured": false,
        "baobab_ga_nmt_env": null,
        "separate_variety_adapters": false,
        "note": "Ga MT is phrase/lexical only (en↔gaa). No baobab-ga-mt NLLB service. Fail-closed when uncovered. neural_nmt false."
      },
      "residency": {
        "serving_today": "jnb",
        "serving_today_label": "Africa-primary Fly region Johannesburg (jnb)",
        "affinity_target": "af-west-1",
        "affinity_city": "Accra",
        "affinity_country": "GH",
        "accra_gpu_island": false,
        "accra_gpu_island_status": "deferred",
        "hard_geo_fence": false,
        "preference_model": "affinity_not_hard_fence",
        "ministry_affinity_pin": "af-west-1",
        "affinity_enforcement": "soft_preference_recorded",
        "accra_island_runbook": "docs/baobab/ACCRA_RESIDENCY.md",
        "note": "Inference prefers matching person/org residency to nearby model hosting when ready — affinity, not a hard geo-fence. Accra (af-west-1) is the Ghana affinity target; live serving for verbalab + lugemi-ga is jnb today. No Accra GPU island is deployed. Ministry requests record X-Lugemi-Residency-Affinity soft pin."
      },
      "licenses": {
        "ga_corpus_tts": "CC-BY-NC-4.0",
        "whisper_medium_ga": "see_model_card",
        "mms_tts_gaa": "absent",
        "note": "Corpus TTS is CC-BY-NC-4.0. Meta did not publish mms-tts-gaa. neural_nmt stays false — no Ga NLLB remote shipped."
      },
      "deferred": [
        "Commercially cleared neural Ga NMT (phrase MT is the live fail-closed path)",
        "Accra GPU island / hard Ghana geo-fence (affinity af-west-1; serving jnb)",
        "Contractual ministry SLA signature (operational targets shipped)",
        "Generative Ga LM weights + inference (recipe + gates only)",
        "Variety-exclusive ASR/TTS finetunes beyond shared Accra checkpoints",
        "trainingEligible unlock evidence (checklist shipped; flag locked false)"
      ]
    },
    "ha": {
      "phrase_table_only": true,
      "national_api_tiers": true,
      "research_slot_shipped": true,
      "neural_speech_live": false,
      "neural_nmt": false,
      "generative_inference_live": false,
      "foundation_llm_weights": false,
      "ships_trained_baobab_foundation": false,
      "variety_exclusive_speech_finetunes": false,
      "trainingEligible": false,
      "training_eligible_unlock": {
        "trainingEligible": false,
        "status": "locked",
        "unlock_doc": "docs/baobab/TRAINING_ELIGIBLE_UNLOCK.md",
        "gates": [
          {
            "id": "community_consent_ha",
            "required": true,
            "met": false,
            "evidence_required": "Signed Accra / Kumasi Zongo contributor agreements reconfirming training use",
            "description": "Accra / Kumasi Zongo community speakers must reconfirm training export consent."
          },
          {
            "id": "held_out_speaker_lists",
            "required": true,
            "met": false,
            "evidence_required": "Published held-out speaker IDs never present in train splits",
            "description": "Held-out evaluation speakers must never appear in training exports."
          },
          {
            "id": "ha_native_review",
            "required": true,
            "met": false,
            "evidence_required": "Paid Hausa (Ghanaian Zongo) native review records with trainingEligible fields",
            "description": "Native review must cover Hausa (Ghanaian Zongo) before any train export."
          },
          {
            "id": "variety_not_conflated",
            "required": true,
            "met": false,
            "evidence_required": "Corpus metadata proving non-interchangeable varieties excluded from train exports",
            "description": "Kano (ha-ng-kano) is a secondary Nigerian variety — not the Ghana national default."
          },
          {
            "id": "rights_clear_for_export",
            "required": true,
            "met": false,
            "evidence_required": "Legal memo clearing commercial vs research split for export corpus",
            "description": "IP / commercial rights must clear before trainingEligible flips."
          }
        ],
        "note": "trainingEligible remains false until all gates are met with durable evidence. Do not invent consent."
      },
      "iso_code": "hau",
      "audio_clean": "spectral_gate_v2",
      "nmt": {
        "neural_nmt": false,
        "disclosed_base_named": null,
        "disclosed_base_weights_in_repo": false,
        "commercial_license_cleared": false,
        "adapter_status": "phrase_table_only",
        "checkpoint_shipped": false,
        "phrase_table_live": true,
        "phrase_table_pairs": [
          "en↔ha"
        ],
        "remote_mt_configured": false,
        "remote_mt_env": null,
        "baobab_ha_nmt_url_configured": false,
        "baobab_ha_nmt_env": null,
        "separate_variety_adapters": false,
        "note": "Baobab Hausa MT is phrase/lexical only (en↔ha). Fail-closed when uncovered. neural_nmt false."
      },
      "residency": {
        "serving_today": "jnb",
        "serving_today_label": "Africa-primary Fly region Johannesburg (jnb)",
        "affinity_target": "af-west-1",
        "affinity_city": "Accra",
        "affinity_country": "GH",
        "accra_gpu_island": false,
        "accra_gpu_island_status": "deferred",
        "hard_geo_fence": false,
        "preference_model": "affinity_not_hard_fence",
        "ministry_affinity_pin": "af-west-1",
        "affinity_enforcement": "soft_preference_recorded",
        "accra_island_runbook": "docs/baobab/ACCRA_RESIDENCY.md",
        "note": "Inference prefers matching person/org residency to nearby model hosting when ready — affinity, not a hard geo-fence. Accra (af-west-1) is the Ghana affinity target; live serving for verbalab + lugemi-hausa is jnb today. No Accra GPU island is deployed."
      },
      "licenses": {
        "tts": "CC-BY-NC-4.0",
        "asr": "see_model_card",
        "note": "TTS is CC-BY-NC-4.0. neural_nmt stays false — no dedicated NLLB remote shipped. Clarity path: spectral_gate_v2."
      },
      "deferred": [
        "Commercially cleared neural NMT (phrase MT is the live fail-closed path)",
        "Accra GPU island / hard Ghana geo-fence (affinity af-west-1; serving jnb)",
        "Contractual ministry SLA signature (operational targets shipped)",
        "Generative LM weights + inference (recipe + gates only)",
        "Variety-exclusive ASR/TTS finetunes beyond shared checkpoints",
        "trainingEligible unlock evidence (checklist shipped; flag locked false)"
      ]
    },
    "ee": {
      "phrase_table_only": true,
      "national_api_tiers": true,
      "research_slot_shipped": true,
      "neural_speech_live": false,
      "neural_nmt": false,
      "generative_inference_live": false,
      "foundation_llm_weights": false,
      "ships_trained_baobab_foundation": false,
      "variety_exclusive_speech_finetunes": false,
      "trainingEligible": false,
      "training_eligible_unlock": {
        "trainingEligible": false,
        "status": "locked",
        "unlock_doc": "docs/baobab/TRAINING_ELIGIBLE_UNLOCK.md",
        "gates": [
          {
            "id": "community_consent_ee",
            "required": true,
            "met": false,
            "evidence_required": "Signed Anlo / Ho / Volta contributor agreements reconfirming training use",
            "description": "Anlo / Ho / Volta community speakers must reconfirm training export consent."
          },
          {
            "id": "held_out_speaker_lists",
            "required": true,
            "met": false,
            "evidence_required": "Published held-out speaker IDs never present in train splits",
            "description": "Held-out evaluation speakers must never appear in training exports."
          },
          {
            "id": "ee_native_review",
            "required": true,
            "met": false,
            "evidence_required": "Paid Ewe (Anlo / Volta) native review records with trainingEligible fields",
            "description": "Native review must cover Ewe (Anlo / Volta) before any train export."
          },
          {
            "id": "variety_not_conflated",
            "required": true,
            "met": false,
            "evidence_required": "Corpus metadata proving non-interchangeable varieties excluded from train exports",
            "description": "Tongu and other Ewe varieties are not interchangeable with Anlo national default."
          },
          {
            "id": "rights_clear_for_export",
            "required": true,
            "met": false,
            "evidence_required": "Legal memo clearing commercial vs research split for export corpus",
            "description": "IP / commercial rights must clear before trainingEligible flips."
          }
        ],
        "note": "trainingEligible remains false until all gates are met with durable evidence. Do not invent consent."
      },
      "iso_code": "ewe",
      "audio_clean": "spectral_gate_v2",
      "nmt": {
        "neural_nmt": false,
        "disclosed_base_named": null,
        "disclosed_base_weights_in_repo": false,
        "commercial_license_cleared": false,
        "adapter_status": "phrase_table_only",
        "checkpoint_shipped": false,
        "phrase_table_live": true,
        "phrase_table_pairs": [
          "en↔ee"
        ],
        "remote_mt_configured": false,
        "remote_mt_env": null,
        "baobab_ee_nmt_url_configured": false,
        "baobab_ee_nmt_env": null,
        "separate_variety_adapters": false,
        "note": "Baobab Ewe MT is phrase/lexical only (en↔ee). Fail-closed when uncovered. neural_nmt false."
      },
      "residency": {
        "serving_today": "jnb",
        "serving_today_label": "Africa-primary Fly region Johannesburg (jnb)",
        "affinity_target": "af-west-1",
        "affinity_city": "Accra",
        "affinity_country": "GH",
        "accra_gpu_island": false,
        "accra_gpu_island_status": "deferred",
        "hard_geo_fence": false,
        "preference_model": "affinity_not_hard_fence",
        "ministry_affinity_pin": "af-west-1",
        "affinity_enforcement": "soft_preference_recorded",
        "accra_island_runbook": "docs/baobab/ACCRA_RESIDENCY.md",
        "note": "Inference prefers matching person/org residency to nearby model hosting when ready — affinity, not a hard geo-fence. Accra (af-west-1) is the Ghana affinity target; live serving for verbalab + lugemi-ewe is jnb today. No Accra GPU island is deployed."
      },
      "licenses": {
        "tts": "CC-BY-NC-4.0",
        "asr": "see_model_card",
        "note": "TTS is CC-BY-NC-4.0. neural_nmt stays false — no dedicated NLLB remote shipped. Clarity path: spectral_gate_v2."
      },
      "deferred": [
        "Commercially cleared neural NMT (phrase MT is the live fail-closed path)",
        "Accra GPU island / hard Ghana geo-fence (affinity af-west-1; serving jnb)",
        "Contractual ministry SLA signature (operational targets shipped)",
        "Generative LM weights + inference (recipe + gates only)",
        "Variety-exclusive ASR/TTS finetunes beyond shared checkpoints",
        "trainingEligible unlock evidence (checklist shipped; flag locked false)"
      ]
    },
    "fante": {
      "phrase_table_only": true,
      "national_api_tiers": true,
      "research_slot_shipped": true,
      "neural_speech_live": false,
      "neural_nmt": false,
      "generative_inference_live": false,
      "foundation_llm_weights": false,
      "ships_trained_baobab_foundation": false,
      "variety_exclusive_speech_finetunes": false,
      "trainingEligible": false,
      "training_eligible_unlock": {
        "trainingEligible": false,
        "status": "locked",
        "unlock_doc": "docs/baobab/TRAINING_ELIGIBLE_UNLOCK.md",
        "gates": [
          {
            "id": "community_consent_fante",
            "required": true,
            "met": false,
            "evidence_required": "Signed Cape Coast / Central Region contributor agreements reconfirming training use",
            "description": "Cape Coast / Central Region community speakers must reconfirm training export consent."
          },
          {
            "id": "held_out_speaker_lists",
            "required": true,
            "met": false,
            "evidence_required": "Published held-out speaker IDs never present in train splits",
            "description": "Held-out evaluation speakers must never appear in training exports."
          },
          {
            "id": "fante_native_review",
            "required": true,
            "met": false,
            "evidence_required": "Paid Fante / Mfantse (Cape Coast) native review records with trainingEligible fields",
            "description": "Native review must cover Fante / Mfantse (Cape Coast) before any train export."
          },
          {
            "id": "variety_not_conflated",
            "required": true,
            "met": false,
            "evidence_required": "Corpus metadata proving non-interchangeable varieties excluded from train exports",
            "description": "Asante and Akuapem are separate Akan varieties under baobab-twi — never interchangeable with Fante."
          },
          {
            "id": "rights_clear_for_export",
            "required": true,
            "met": false,
            "evidence_required": "Legal memo clearing commercial vs research split for export corpus",
            "description": "IP / commercial rights must clear before trainingEligible flips."
          }
        ],
        "note": "trainingEligible remains false until all gates are met with durable evidence. Do not invent consent."
      },
      "iso_code": "fat",
      "audio_clean": "spectral_gate_v2",
      "nmt": {
        "neural_nmt": false,
        "disclosed_base_named": null,
        "disclosed_base_weights_in_repo": false,
        "commercial_license_cleared": false,
        "adapter_status": "phrase_table_only",
        "checkpoint_shipped": false,
        "phrase_table_live": true,
        "phrase_table_pairs": [
          "en↔ak (Fante orthography honesty; shared Akan phrase table)"
        ],
        "remote_mt_configured": false,
        "remote_mt_env": null,
        "baobab_fante_nmt_url_configured": false,
        "baobab_fante_nmt_env": null,
        "separate_variety_adapters": false,
        "note": "Baobab Fante MT is phrase/lexical only (en↔ak (Fante orthography honesty; shared Akan phrase table)). Fail-closed when uncovered. neural_nmt false."
      },
      "residency": {
        "serving_today": "jnb",
        "serving_today_label": "Africa-primary Fly region Johannesburg (jnb)",
        "affinity_target": "af-west-1",
        "affinity_city": "Accra",
        "affinity_country": "GH",
        "accra_gpu_island": false,
        "accra_gpu_island_status": "deferred",
        "hard_geo_fence": false,
        "preference_model": "affinity_not_hard_fence",
        "ministry_affinity_pin": "af-west-1",
        "affinity_enforcement": "soft_preference_recorded",
        "accra_island_runbook": "docs/baobab/ACCRA_RESIDENCY.md",
        "note": "Inference prefers matching person/org residency to nearby model hosting when ready — affinity, not a hard geo-fence. Accra (af-west-1) is the Ghana affinity target; live serving for verbalab + lugemi-asante is jnb today. No Accra GPU island is deployed."
      },
      "licenses": {
        "tts": "CC-BY-NC-4.0",
        "asr": "see_model_card",
        "note": "TTS is CC-BY-NC-4.0. neural_nmt stays false — no dedicated NLLB remote shipped. Clarity path: spectral_gate_v2."
      },
      "deferred": [
        "Commercially cleared neural NMT (phrase MT is the live fail-closed path)",
        "Accra GPU island / hard Ghana geo-fence (affinity af-west-1; serving jnb)",
        "Contractual ministry SLA signature (operational targets shipped)",
        "Generative LM weights + inference (recipe + gates only)",
        "Variety-exclusive ASR/TTS finetunes beyond shared checkpoints",
        "trainingEligible unlock evidence (checklist shipped; flag locked false)"
      ]
    },
    "yo": {
      "phrase_table_only": true,
      "national_api_tiers": true,
      "research_slot_shipped": true,
      "neural_speech_live": false,
      "neural_nmt": false,
      "generative_inference_live": false,
      "foundation_llm_weights": false,
      "ships_trained_baobab_foundation": false,
      "variety_exclusive_speech_finetunes": false,
      "trainingEligible": false,
      "training_eligible_unlock": {
        "trainingEligible": false,
        "status": "locked",
        "unlock_doc": "docs/baobab/TRAINING_ELIGIBLE_UNLOCK.md",
        "gates": [
          {
            "id": "community_consent_yo",
            "required": true,
            "met": false,
            "evidence_required": "Signed Lagos / Southwest Nigeria contributor agreements reconfirming training use",
            "description": "Lagos / Southwest Nigeria community speakers must reconfirm training export consent."
          },
          {
            "id": "held_out_speaker_lists",
            "required": true,
            "met": false,
            "evidence_required": "Published held-out speaker IDs never present in train splits",
            "description": "Held-out evaluation speakers must never appear in training exports."
          },
          {
            "id": "yo_native_review",
            "required": true,
            "met": false,
            "evidence_required": "Paid Yoruba (Lagos / Oyo) native review records with trainingEligible fields",
            "description": "Native review must cover Yoruba (Lagos / Oyo) before any train export."
          },
          {
            "id": "variety_not_conflated",
            "required": true,
            "met": false,
            "evidence_required": "Corpus metadata proving non-interchangeable varieties excluded from train exports",
            "description": "Egba (yo-ng-egba) is a secondary Nigerian variety — not the Ghana national default."
          },
          {
            "id": "rights_clear_for_export",
            "required": true,
            "met": false,
            "evidence_required": "Legal memo clearing commercial vs research split for export corpus",
            "description": "IP / commercial rights must clear before trainingEligible flips."
          }
        ],
        "note": "trainingEligible remains false until all gates are met with durable evidence. Do not invent consent."
      },
      "iso_code": "yor",
      "audio_clean": "spectral_gate_v2",
      "nmt": {
        "neural_nmt": false,
        "disclosed_base_named": null,
        "disclosed_base_weights_in_repo": false,
        "commercial_license_cleared": false,
        "adapter_status": "phrase_table_only",
        "checkpoint_shipped": false,
        "phrase_table_live": true,
        "phrase_table_pairs": [
          "en↔yo"
        ],
        "remote_mt_configured": false,
        "remote_mt_env": null,
        "baobab_yo_nmt_url_configured": false,
        "baobab_yo_nmt_env": null,
        "separate_variety_adapters": false,
        "note": "Baobab Yoruba MT is phrase/lexical only (en↔yo). Fail-closed when uncovered. neural_nmt false."
      },
      "residency": {
        "serving_today": "jnb",
        "serving_today_label": "Africa-primary Fly region Johannesburg (jnb)",
        "affinity_target": "af-west-1",
        "affinity_city": "Lagos",
        "affinity_country": "NG",
        "accra_gpu_island": false,
        "accra_gpu_island_status": "deferred",
        "hard_geo_fence": false,
        "preference_model": "affinity_not_hard_fence",
        "ministry_affinity_pin": "af-west-1",
        "affinity_enforcement": "soft_preference_recorded",
        "accra_island_runbook": "docs/baobab/ACCRA_RESIDENCY.md",
        "note": "Inference prefers matching person/org residency to nearby model hosting when ready — affinity, not a hard geo-fence. Lagos is the Nigeria residency preference; Africa-west affinity pin remains af-west-1. Live serving for verbalab + lugemi-yoruba is jnb today. No Accra GPU island is deployed."
      },
      "licenses": {
        "tts": "CC-BY-NC-4.0",
        "asr": "see_model_card",
        "note": "TTS is CC-BY-NC-4.0. neural_nmt stays false — no dedicated NLLB remote shipped. Clarity path: spectral_gate_v2."
      },
      "deferred": [
        "Commercially cleared neural NMT (phrase MT is the live fail-closed path)",
        "Accra GPU island / hard Ghana geo-fence (affinity af-west-1; serving jnb)",
        "Contractual ministry SLA signature (operational targets shipped)",
        "Generative LM weights + inference (recipe + gates only)",
        "Variety-exclusive ASR/TTS finetunes beyond shared checkpoints",
        "trainingEligible unlock evidence (checklist shipped; flag locked false)"
      ]
    },
    "fil": {
      "phrase_table_only": true,
      "national_api_tiers": true,
      "research_slot_shipped": true,
      "neural_speech_live": false,
      "neural_nmt": false,
      "generative_inference_live": false,
      "foundation_llm_weights": false,
      "ships_trained_baobab_foundation": false,
      "variety_exclusive_speech_finetunes": false,
      "trainingEligible": false,
      "training_eligible_unlock": {
        "trainingEligible": false,
        "status": "locked",
        "unlock_doc": "docs/baobab/TRAINING_ELIGIBLE_UNLOCK.md",
        "gates": [
          {
            "id": "community_consent_yo",
            "required": true,
            "met": false,
            "evidence_required": "Signed Metro Manila / Philippines contributor agreements reconfirming training use",
            "description": "Metro Manila / Philippines community speakers must reconfirm training export consent."
          },
          {
            "id": "held_out_speaker_lists",
            "required": true,
            "met": false,
            "evidence_required": "Published held-out speaker IDs never present in train splits",
            "description": "Held-out evaluation speakers must never appear in training exports."
          },
          {
            "id": "yo_native_review",
            "required": true,
            "met": false,
            "evidence_required": "Paid Tagalog (Manila / Filipino) native review records with trainingEligible fields",
            "description": "Native review must cover Tagalog (Manila / Filipino) before any train export."
          },
          {
            "id": "variety_not_conflated",
            "required": true,
            "met": false,
            "evidence_required": "Corpus metadata proving non-interchangeable varieties excluded from train exports",
            "description": "Batangas (fil-ph-batangas) is a secondary Philippines variety — not the Manila national default."
          },
          {
            "id": "rights_clear_for_export",
            "required": true,
            "met": false,
            "evidence_required": "Legal memo clearing commercial vs research split for export corpus",
            "description": "IP / commercial rights must clear before trainingEligible flips."
          }
        ],
        "note": "trainingEligible remains false until all gates are met with durable evidence. Do not invent consent."
      },
      "iso_code": "tgl",
      "audio_clean": "spectral_gate_v2",
      "nmt": {
        "neural_nmt": false,
        "disclosed_base_named": null,
        "disclosed_base_weights_in_repo": false,
        "commercial_license_cleared": false,
        "adapter_status": "phrase_table_only",
        "checkpoint_shipped": false,
        "phrase_table_live": true,
        "phrase_table_pairs": [
          "en↔fil",
          "en↔tl"
        ],
        "remote_mt_configured": false,
        "remote_mt_env": null,
        "baobab_fil_nmt_url_configured": false,
        "baobab_fil_nmt_env": null,
        "separate_variety_adapters": false,
        "note": "Baobab Tagalog MT is phrase/lexical only (en↔fil / en↔tl). Fail-closed when uncovered. neural_nmt false."
      },
      "residency": {
        "serving_today": "jnb",
        "serving_today_label": "Africa-primary Fly region Johannesburg (jnb)",
        "affinity_target": "af-west-1",
        "affinity_city": "Manila",
        "affinity_country": "NG",
        "accra_gpu_island": false,
        "accra_gpu_island_status": "deferred",
        "hard_geo_fence": false,
        "preference_model": "affinity_not_hard_fence",
        "ministry_affinity_pin": "af-west-1",
        "affinity_enforcement": "soft_preference_recorded",
        "accra_island_runbook": "docs/baobab/ACCRA_RESIDENCY.md",
        "note": "Inference prefers matching person/org residency to nearby model hosting when ready — affinity, not a hard geo-fence. Manila is the Philippines residency preference; Africa-west affinity pin remains af-west-1. Live serving for verbalab + lugemi-tagalog is jnb today. No Accra GPU island is deployed."
      },
      "licenses": {
        "tts": "CC-BY-NC-4.0",
        "asr": "see_model_card",
        "note": "TTS is CC-BY-NC-4.0. neural_nmt stays false — no dedicated NLLB remote shipped. Clarity path: spectral_gate_v2."
      },
      "deferred": [
        "Commercially cleared neural NMT (phrase MT is the live fail-closed path)",
        "Accra GPU island / hard Ghana geo-fence (affinity af-west-1; serving jnb)",
        "Contractual ministry SLA signature (operational targets shipped)",
        "Generative LM weights + inference (recipe + gates only)",
        "Variety-exclusive ASR/TTS finetunes beyond shared checkpoints",
        "trainingEligible unlock evidence (checklist shipped; flag locked false)"
      ]
    },
    "fr_sn": {
      "phrase_table_only": true,
      "national_api_tiers": true,
      "research_slot_shipped": true,
      "neural_speech_live": false,
      "neural_nmt": false,
      "generative_inference_live": false,
      "foundation_llm_weights": false,
      "ships_trained_baobab_foundation": false,
      "variety_exclusive_speech_finetunes": false,
      "trainingEligible": false,
      "training_eligible_unlock": {
        "trainingEligible": false,
        "status": "locked",
        "unlock_doc": "docs/baobab/TRAINING_ELIGIBLE_UNLOCK.md",
        "gates": [
          {
            "id": "community_consent_yo",
            "required": true,
            "met": false,
            "evidence_required": "Signed Dakar / Senegal contributor agreements reconfirming training use",
            "description": "Dakar / Senegal community speakers must reconfirm training export consent."
          },
          {
            "id": "held_out_speaker_lists",
            "required": true,
            "met": false,
            "evidence_required": "Published held-out speaker IDs never present in train splits",
            "description": "Held-out evaluation speakers must never appear in training exports."
          },
          {
            "id": "yo_native_review",
            "required": true,
            "met": false,
            "evidence_required": "Paid Senegalese French (Dakar / Senegalese French) native review records with trainingEligible fields",
            "description": "Native review must cover Senegalese French (Dakar / Senegalese French) before any train export."
          },
          {
            "id": "variety_not_conflated",
            "required": true,
            "met": false,
            "evidence_required": "Corpus metadata proving non-interchangeable varieties excluded from train exports",
            "description": "France French (fr-FR) and Ivorian French (fr-CI) are not interchangeable with Dakar Senegalese French — not the national default."
          },
          {
            "id": "rights_clear_for_export",
            "required": true,
            "met": false,
            "evidence_required": "Legal memo clearing commercial vs research split for export corpus",
            "description": "IP / commercial rights must clear before trainingEligible flips."
          }
        ],
        "note": "trainingEligible remains false until all gates are met with durable evidence. Do not invent consent."
      },
      "iso_code": "fr",
      "audio_clean": "spectral_gate_v2",
      "nmt": {
        "neural_nmt": false,
        "disclosed_base_named": null,
        "disclosed_base_weights_in_repo": false,
        "commercial_license_cleared": false,
        "adapter_status": "phrase_table_only",
        "checkpoint_shipped": false,
        "phrase_table_live": true,
        "phrase_table_pairs": [
          "en↔fr"
        ],
        "remote_mt_configured": false,
        "remote_mt_env": null,
        "baobab_fr_sn_nmt_url_configured": false,
        "baobab_fr_sn_nmt_env": null,
        "separate_variety_adapters": false,
        "note": "Baobab Senegalese French MT is phrase/lexical only (en↔fr). Fail-closed when uncovered. neural_nmt false."
      },
      "residency": {
        "serving_today": "jnb",
        "serving_today_label": "Africa-primary Fly region Johannesburg (jnb)",
        "affinity_target": "af-west-1",
        "affinity_city": "Dakar",
        "affinity_country": "SN",
        "accra_gpu_island": false,
        "accra_gpu_island_status": "deferred",
        "hard_geo_fence": false,
        "preference_model": "affinity_not_hard_fence",
        "ministry_affinity_pin": "af-west-1",
        "affinity_enforcement": "soft_preference_recorded",
        "accra_island_runbook": "docs/baobab/ACCRA_RESIDENCY.md",
        "note": "Inference prefers matching person/org residency to nearby model hosting when ready — affinity, not a hard geo-fence. Dakar is the Senegal residency preference; Africa-west affinity pin remains af-west-1. Live serving for verbalab is jnb today; Senegalese French neural speech uses the optional shared Echo worker (no dedicated always-on Fly app). No Accra GPU island is deployed."
      },
      "licenses": {
        "tts": "CC-BY-NC-4.0",
        "asr": "see_model_card",
        "note": "TTS is CC-BY-NC-4.0. neural_nmt stays false — no dedicated NLLB remote shipped. Clarity path: spectral_gate_v2."
      },
      "deferred": [
        "Commercially cleared neural NMT (phrase MT is the live fail-closed path)",
        "Accra GPU island / hard Ghana geo-fence (affinity af-west-1; serving jnb)",
        "Contractual ministry SLA signature (operational targets shipped)",
        "Generative LM weights + inference (recipe + gates only)",
        "Variety-exclusive ASR/TTS finetunes beyond shared checkpoints",
        "trainingEligible unlock evidence (checklist shipped; flag locked false)"
      ]
    },
    "fr_ci": {
      "phrase_table_only": true,
      "national_api_tiers": true,
      "research_slot_shipped": true,
      "neural_speech_live": false,
      "neural_nmt": false,
      "generative_inference_live": false,
      "foundation_llm_weights": false,
      "ships_trained_baobab_foundation": false,
      "variety_exclusive_speech_finetunes": false,
      "trainingEligible": false,
      "training_eligible_unlock": {
        "trainingEligible": false,
        "status": "locked",
        "unlock_doc": "docs/baobab/TRAINING_ELIGIBLE_UNLOCK.md",
        "gates": [
          {
            "id": "community_consent_yo",
            "required": true,
            "met": false,
            "evidence_required": "Signed Abidjan / Côte d'Ivoire contributor agreements reconfirming training use",
            "description": "Abidjan / Côte d'Ivoire community speakers must reconfirm training export consent."
          },
          {
            "id": "held_out_speaker_lists",
            "required": true,
            "met": false,
            "evidence_required": "Published held-out speaker IDs never present in train splits",
            "description": "Held-out evaluation speakers must never appear in training exports."
          },
          {
            "id": "yo_native_review",
            "required": true,
            "met": false,
            "evidence_required": "Paid Ivorian French (Abidjan / Ivorian French) native review records with trainingEligible fields",
            "description": "Native review must cover Ivorian French (Abidjan / Ivorian French) before any train export."
          },
          {
            "id": "variety_not_conflated",
            "required": true,
            "met": false,
            "evidence_required": "Corpus metadata proving non-interchangeable varieties excluded from train exports",
            "description": "France French (fr-FR) and Senegalese French (fr-SN) are not interchangeable with Abidjan Ivorian French — not the national default."
          },
          {
            "id": "rights_clear_for_export",
            "required": true,
            "met": false,
            "evidence_required": "Legal memo clearing commercial vs research split for export corpus",
            "description": "IP / commercial rights must clear before trainingEligible flips."
          }
        ],
        "note": "trainingEligible remains false until all gates are met with durable evidence. Do not invent consent."
      },
      "iso_code": "fr",
      "audio_clean": "spectral_gate_v2",
      "nmt": {
        "neural_nmt": false,
        "disclosed_base_named": null,
        "disclosed_base_weights_in_repo": false,
        "commercial_license_cleared": false,
        "adapter_status": "phrase_table_only",
        "checkpoint_shipped": false,
        "phrase_table_live": true,
        "phrase_table_pairs": [
          "en↔fr"
        ],
        "remote_mt_configured": false,
        "remote_mt_env": null,
        "baobab_fr_ci_nmt_url_configured": false,
        "baobab_fr_ci_nmt_env": null,
        "separate_variety_adapters": false,
        "note": "Baobab Ivorian French MT is phrase/lexical only (en↔fr). Fail-closed when uncovered. neural_nmt false."
      },
      "residency": {
        "serving_today": "jnb",
        "serving_today_label": "Africa-primary Fly region Johannesburg (jnb)",
        "affinity_target": "af-west-1",
        "affinity_city": "Abidjan",
        "affinity_country": "CI",
        "accra_gpu_island": false,
        "accra_gpu_island_status": "deferred",
        "hard_geo_fence": false,
        "preference_model": "affinity_not_hard_fence",
        "ministry_affinity_pin": "af-west-1",
        "affinity_enforcement": "soft_preference_recorded",
        "accra_island_runbook": "docs/baobab/ACCRA_RESIDENCY.md",
        "note": "Inference prefers matching person/org residency to nearby model hosting when ready — affinity, not a hard geo-fence. Abidjan is the Côte d'Ivoire residency preference; Africa-west affinity pin remains af-west-1. Live serving for verbalab is jnb today; Ivorian French neural speech uses the optional shared Echo worker (no dedicated always-on Fly app). No Accra GPU island is deployed."
      },
      "licenses": {
        "tts": "CC-BY-NC-4.0",
        "asr": "see_model_card",
        "note": "TTS is CC-BY-NC-4.0. neural_nmt stays false — no dedicated NLLB remote shipped. Clarity path: spectral_gate_v2."
      },
      "deferred": [
        "Commercially cleared neural NMT (phrase MT is the live fail-closed path)",
        "Accra GPU island / hard Ghana geo-fence (affinity af-west-1; serving jnb)",
        "Contractual ministry SLA signature (operational targets shipped)",
        "Generative LM weights + inference (recipe + gates only)",
        "Variety-exclusive ASR/TTS finetunes beyond shared checkpoints",
        "trainingEligible unlock evidence (checklist shipped; flag locked false)"
      ]
    },
    "ig": {
      "phrase_table_only": true,
      "national_api_tiers": true,
      "research_slot_shipped": true,
      "neural_speech_live": false,
      "neural_nmt": false,
      "generative_inference_live": false,
      "foundation_llm_weights": false,
      "ships_trained_baobab_foundation": false,
      "variety_exclusive_speech_finetunes": false,
      "trainingEligible": false,
      "training_eligible_unlock": {
        "trainingEligible": false,
        "status": "locked",
        "unlock_doc": "docs/baobab/TRAINING_ELIGIBLE_UNLOCK.md",
        "gates": [
          {
            "id": "community_consent_yo",
            "required": true,
            "met": false,
            "evidence_required": "Signed Enugu / Southeast Nigeria contributor agreements reconfirming training use",
            "description": "Enugu / Southeast Nigeria community speakers must reconfirm training export consent."
          },
          {
            "id": "held_out_speaker_lists",
            "required": true,
            "met": false,
            "evidence_required": "Published held-out speaker IDs never present in train splits",
            "description": "Held-out evaluation speakers must never appear in training exports."
          },
          {
            "id": "yo_native_review",
            "required": true,
            "met": false,
            "evidence_required": "Paid Igbo (Enugu / Central) native review records with trainingEligible fields",
            "description": "Native review must cover Igbo (Enugu / Central) before any train export."
          },
          {
            "id": "variety_not_conflated",
            "required": true,
            "met": false,
            "evidence_required": "Corpus metadata proving non-interchangeable varieties excluded from train exports",
            "description": "Owerri (ig-ng-owerri) is a secondary Nigerian variety — not the Nigeria regional national default."
          },
          {
            "id": "rights_clear_for_export",
            "required": true,
            "met": false,
            "evidence_required": "Legal memo clearing commercial vs research split for export corpus",
            "description": "IP / commercial rights must clear before trainingEligible flips."
          }
        ],
        "note": "trainingEligible remains false until all gates are met with durable evidence. Do not invent consent."
      },
      "iso_code": "ibo",
      "audio_clean": "spectral_gate_v2",
      "nmt": {
        "neural_nmt": false,
        "disclosed_base_named": null,
        "disclosed_base_weights_in_repo": false,
        "commercial_license_cleared": false,
        "adapter_status": "phrase_table_only",
        "checkpoint_shipped": false,
        "phrase_table_live": true,
        "phrase_table_pairs": [
          "en↔ig"
        ],
        "remote_mt_configured": false,
        "remote_mt_env": null,
        "baobab_ig_nmt_url_configured": false,
        "baobab_ig_nmt_env": null,
        "separate_variety_adapters": false,
        "note": "Baobab Igbo MT is phrase/lexical only (en↔ig). Fail-closed when uncovered. neural_nmt false."
      },
      "residency": {
        "serving_today": "jnb",
        "serving_today_label": "Africa-primary Fly region Johannesburg (jnb)",
        "affinity_target": "af-west-1",
        "affinity_city": "Enugu",
        "affinity_country": "NG",
        "accra_gpu_island": false,
        "accra_gpu_island_status": "deferred",
        "hard_geo_fence": false,
        "preference_model": "affinity_not_hard_fence",
        "ministry_affinity_pin": "af-west-1",
        "affinity_enforcement": "soft_preference_recorded",
        "accra_island_runbook": "docs/baobab/ACCRA_RESIDENCY.md",
        "note": "Inference prefers matching person/org residency to nearby model hosting when ready — affinity, not a hard geo-fence. Enugu is the Nigeria residency preference; Africa-west affinity pin remains af-west-1. Live serving for verbalab + lugemi-igbo is jnb today. No Accra GPU island is deployed."
      },
      "licenses": {
        "tts": "CC-BY-NC-4.0",
        "asr": "see_model_card",
        "note": "TTS is CC-BY-NC-4.0. neural_nmt stays false — no dedicated NLLB remote shipped. Clarity path: spectral_gate_v2."
      },
      "deferred": [
        "Commercially cleared neural NMT (phrase MT is the live fail-closed path)",
        "Accra GPU island / hard Ghana geo-fence (affinity af-west-1; serving jnb)",
        "Contractual ministry SLA signature (operational targets shipped)",
        "Generative LM weights + inference (recipe + gates only)",
        "Variety-exclusive ASR/TTS finetunes beyond shared checkpoints",
        "trainingEligible unlock evidence (checklist shipped; flag locked false)"
      ]
    },
    "ha_ng": {
      "phrase_table_only": true,
      "national_api_tiers": true,
      "research_slot_shipped": true,
      "neural_speech_live": false,
      "neural_nmt": false,
      "generative_inference_live": false,
      "foundation_llm_weights": false,
      "ships_trained_baobab_foundation": false,
      "variety_exclusive_speech_finetunes": false,
      "trainingEligible": false,
      "training_eligible_unlock": {
        "trainingEligible": false,
        "status": "locked",
        "unlock_doc": "docs/baobab/TRAINING_ELIGIBLE_UNLOCK.md",
        "gates": [
          {
            "id": "community_consent_ha_ng",
            "required": true,
            "met": false,
            "evidence_required": "Signed Kano / Northern Nigeria contributor agreements reconfirming training use",
            "description": "Kano / Northern Nigeria community speakers must reconfirm training export consent."
          },
          {
            "id": "held_out_speaker_lists",
            "required": true,
            "met": false,
            "evidence_required": "Published held-out speaker IDs never present in train splits",
            "description": "Held-out evaluation speakers must never appear in training exports."
          },
          {
            "id": "ha_ng_native_review",
            "required": true,
            "met": false,
            "evidence_required": "Paid Hausa (Kano / Nigeria) native review records with trainingEligible fields",
            "description": "Native review must cover Hausa (Kano / Nigeria) before any train export."
          },
          {
            "id": "variety_not_conflated",
            "required": true,
            "met": false,
            "evidence_required": "Corpus metadata proving non-interchangeable varieties excluded from train exports",
            "description": "Katsina (ha-ng-katsina) is a secondary Nigerian variety — not the Nigeria regional national default."
          },
          {
            "id": "rights_clear_for_export",
            "required": true,
            "met": false,
            "evidence_required": "Legal memo clearing commercial vs research split for export corpus",
            "description": "IP / commercial rights must clear before trainingEligible flips."
          }
        ],
        "note": "trainingEligible remains false until all gates are met with durable evidence. Do not invent consent."
      },
      "iso_code": "hau",
      "audio_clean": "spectral_gate_v2",
      "nmt": {
        "neural_nmt": false,
        "disclosed_base_named": null,
        "disclosed_base_weights_in_repo": false,
        "commercial_license_cleared": false,
        "adapter_status": "phrase_table_only",
        "checkpoint_shipped": false,
        "phrase_table_live": true,
        "phrase_table_pairs": [
          "en↔ha"
        ],
        "remote_mt_configured": false,
        "remote_mt_env": null,
        "baobab_ha_ng_nmt_url_configured": false,
        "baobab_ha_ng_nmt_env": null,
        "separate_variety_adapters": false,
        "note": "Baobab Nigeria Hausa (Kano) MT is phrase/lexical only (en↔ha). Fail-closed when uncovered. neural_nmt false."
      },
      "residency": {
        "serving_today": "jnb",
        "serving_today_label": "Africa-primary Fly region Johannesburg (jnb)",
        "affinity_target": "af-west-1",
        "affinity_city": "Kano",
        "affinity_country": "NG",
        "accra_gpu_island": false,
        "accra_gpu_island_status": "deferred",
        "hard_geo_fence": false,
        "preference_model": "affinity_not_hard_fence",
        "ministry_affinity_pin": "af-west-1",
        "affinity_enforcement": "soft_preference_recorded",
        "accra_island_runbook": "docs/baobab/ACCRA_RESIDENCY.md",
        "note": "Inference prefers matching person/org residency to nearby model hosting when ready — affinity, not a hard geo-fence. Kano is the Nigeria residency preference; Africa-west affinity pin remains af-west-1. Live serving for verbalab + lugemi-hausa is jnb today. No Accra GPU island is deployed."
      },
      "licenses": {
        "tts": "CC-BY-NC-4.0",
        "asr": "see_model_card",
        "note": "TTS is CC-BY-NC-4.0. neural_nmt stays false — no dedicated NLLB remote shipped. Clarity path: spectral_gate_v2."
      },
      "deferred": [
        "Commercially cleared neural NMT (phrase MT is the live fail-closed path)",
        "Accra GPU island / hard Ghana geo-fence (affinity af-west-1; serving jnb)",
        "Contractual ministry SLA signature (operational targets shipped)",
        "Generative LM weights + inference (recipe + gates only)",
        "Variety-exclusive ASR/TTS finetunes beyond shared checkpoints",
        "trainingEligible unlock evidence (checklist shipped; flag locked false)"
      ]
    },
    "sw": {
      "phrase_table_only": true,
      "national_api_tiers": true,
      "research_slot_shipped": true,
      "neural_speech_live": false,
      "neural_nmt": false,
      "generative_inference_live": false,
      "foundation_llm_weights": false,
      "ships_trained_baobab_foundation": false,
      "variety_exclusive_speech_finetunes": false,
      "trainingEligible": false,
      "training_eligible_unlock": {
        "trainingEligible": false,
        "status": "locked",
        "unlock_doc": "docs/baobab/TRAINING_ELIGIBLE_UNLOCK.md",
        "gates": [
          {
            "id": "community_consent_sw",
            "required": true,
            "met": false,
            "evidence_required": "Signed Nairobi / Kenya contributor agreements reconfirming training use",
            "description": "Nairobi / Kenya community speakers must reconfirm training export consent."
          },
          {
            "id": "held_out_speaker_lists",
            "required": true,
            "met": false,
            "evidence_required": "Published held-out speaker IDs never present in train splits",
            "description": "Held-out evaluation speakers must never appear in training exports."
          },
          {
            "id": "sw_native_review",
            "required": true,
            "met": false,
            "evidence_required": "Paid Kiswahili (Nairobi / Kenyan) native review records with trainingEligible fields",
            "description": "Native review must cover Kiswahili (Nairobi / Kenyan) before any train export."
          },
          {
            "id": "variety_not_conflated",
            "required": true,
            "met": false,
            "evidence_required": "Corpus metadata proving non-interchangeable varieties excluded from train exports",
            "description": "Coastal Tanzania (sw-tz-coastal) is a secondary East African variety — not the Kenya national default."
          },
          {
            "id": "rights_clear_for_export",
            "required": true,
            "met": false,
            "evidence_required": "Legal memo clearing commercial vs research split for export corpus",
            "description": "IP / commercial rights must clear before trainingEligible flips."
          }
        ],
        "note": "trainingEligible remains false until all gates are met with durable evidence. Do not invent consent."
      },
      "iso_code": "swh",
      "audio_clean": "spectral_gate_v2",
      "nmt": {
        "neural_nmt": false,
        "disclosed_base_named": null,
        "disclosed_base_weights_in_repo": false,
        "commercial_license_cleared": false,
        "adapter_status": "phrase_table_only",
        "checkpoint_shipped": false,
        "phrase_table_live": true,
        "phrase_table_pairs": [
          "en↔sw"
        ],
        "remote_mt_configured": false,
        "remote_mt_env": null,
        "baobab_yo_nmt_url_configured": false,
        "baobab_yo_nmt_env": null,
        "separate_variety_adapters": false,
        "note": "Baobab Kiswahili MT is phrase/lexical only (en↔sw). Fail-closed when uncovered. neural_nmt false."
      },
      "residency": {
        "serving_today": "jnb",
        "serving_today_label": "Africa-primary Fly region Johannesburg (jnb)",
        "affinity_target": "af-east-1",
        "affinity_city": "Nairobi",
        "affinity_country": "KE",
        "accra_gpu_island": false,
        "accra_gpu_island_status": "deferred",
        "hard_geo_fence": false,
        "preference_model": "affinity_not_hard_fence",
        "ministry_affinity_pin": "af-east-1",
        "affinity_enforcement": "soft_preference_recorded",
        "accra_island_runbook": "docs/baobab/NAIROBI_RESIDENCY.md",
        "note": "Inference prefers matching person/org residency to nearby model hosting when ready — affinity, not a hard geo-fence. Nairobi is the Kenya residency preference; Africa-east affinity pin remains af-east-1. Live serving for verbalab + lugemi-swahili is jnb today. No Nairobi GPU island fiction is claimed."
      },
      "licenses": {
        "tts": "CC-BY-NC-4.0",
        "asr": "see_model_card",
        "note": "TTS is CC-BY-NC-4.0. neural_nmt stays false — no dedicated NLLB remote shipped. Clarity path: spectral_gate_v2."
      },
      "deferred": [
        "Commercially cleared neural NMT (phrase MT is the live fail-closed path)",
        "Nairobi GPU island / hard Kenya geo-fence (affinity af-east-1; serving jnb)",
        "Contractual ministry SLA signature (operational targets shipped)",
        "Generative LM weights + inference (recipe + gates only)",
        "Variety-exclusive ASR/TTS finetunes beyond shared checkpoints",
        "trainingEligible unlock evidence (checklist shipped; flag locked false)"
      ]
    },
    "am": {
      "phrase_table_only": true,
      "national_api_tiers": true,
      "research_slot_shipped": true,
      "neural_speech_live": false,
      "neural_nmt": false,
      "generative_inference_live": false,
      "foundation_llm_weights": false,
      "ships_trained_baobab_foundation": false,
      "variety_exclusive_speech_finetunes": false,
      "trainingEligible": false,
      "training_eligible_unlock": {
        "trainingEligible": false,
        "status": "locked",
        "unlock_doc": "docs/baobab/TRAINING_ELIGIBLE_UNLOCK.md",
        "gates": [
          {
            "id": "community_consent_sw",
            "required": true,
            "met": false,
            "evidence_required": "Signed Addis Ababa / Ethiopia contributor agreements reconfirming training use",
            "description": "Addis Ababa / Ethiopia community speakers must reconfirm training export consent."
          },
          {
            "id": "held_out_speaker_lists",
            "required": true,
            "met": false,
            "evidence_required": "Published held-out speaker IDs never present in train splits",
            "description": "Held-out evaluation speakers must never appear in training exports."
          },
          {
            "id": "sw_native_review",
            "required": true,
            "met": false,
            "evidence_required": "Paid Amharic (Addis Ababa / Ethiopian) native review records with trainingEligible fields",
            "description": "Native review must cover Amharic (Addis Ababa / Ethiopian) before any train export."
          },
          {
            "id": "variety_not_conflated",
            "required": true,
            "met": false,
            "evidence_required": "Corpus metadata proving non-interchangeable varieties excluded from train exports",
            "description": "Tigrinya (ti-et) is a secondary East African variety — not the Ethiopia national default."
          },
          {
            "id": "rights_clear_for_export",
            "required": true,
            "met": false,
            "evidence_required": "Legal memo clearing commercial vs research split for export corpus",
            "description": "IP / commercial rights must clear before trainingEligible flips."
          }
        ],
        "note": "trainingEligible remains false until all gates are met with durable evidence. Do not invent consent."
      },
      "iso_code": "amh",
      "audio_clean": "spectral_gate_v2",
      "nmt": {
        "neural_nmt": false,
        "disclosed_base_named": null,
        "disclosed_base_weights_in_repo": false,
        "commercial_license_cleared": false,
        "adapter_status": "phrase_table_only",
        "checkpoint_shipped": false,
        "phrase_table_live": true,
        "phrase_table_pairs": [
          "en↔am"
        ],
        "remote_mt_configured": false,
        "remote_mt_env": null,
        "baobab_yo_nmt_url_configured": false,
        "baobab_yo_nmt_env": null,
        "separate_variety_adapters": false,
        "note": "Baobab Amharic MT is phrase/lexical only (en↔am). Fail-closed when uncovered. neural_nmt false."
      },
      "residency": {
        "serving_today": "jnb",
        "serving_today_label": "Africa-primary Fly region Johannesburg (jnb)",
        "affinity_target": "af-east-1",
        "affinity_city": "Addis Ababa",
        "affinity_country": "ET",
        "accra_gpu_island": false,
        "accra_gpu_island_status": "deferred",
        "hard_geo_fence": false,
        "preference_model": "affinity_not_hard_fence",
        "ministry_affinity_pin": "af-east-1",
        "affinity_enforcement": "soft_preference_recorded",
        "accra_island_runbook": "docs/baobab/NAIROBI_RESIDENCY.md",
        "note": "Inference prefers matching person/org residency to nearby model hosting when ready — affinity, not a hard geo-fence. Addis Ababa is the Ethiopia residency preference; Africa-east affinity pin remains af-east-1. Live serving for verbalab + lugemi-amharic is jnb today. No Addis GPU island fiction is claimed."
      },
      "licenses": {
        "tts": "CC-BY-NC-4.0",
        "asr": "see_model_card",
        "note": "TTS is CC-BY-NC-4.0. neural_nmt stays false — no dedicated NLLB remote shipped. Clarity path: spectral_gate_v2."
      },
      "deferred": [
        "Commercially cleared neural NMT (phrase MT is the live fail-closed path)",
        "Addis GPU island / hard Ethiopia geo-fence (affinity af-east-1; serving jnb)",
        "Contractual ministry SLA signature (operational targets shipped)",
        "Generative LM weights + inference (recipe + gates only)",
        "Variety-exclusive ASR/TTS finetunes beyond shared checkpoints",
        "trainingEligible unlock evidence (checklist shipped; flag locked false)"
      ]
    },
    "af": {
      "phrase_table_only": true,
      "national_api_tiers": true,
      "research_slot_shipped": true,
      "neural_speech_live": false,
      "neural_nmt": false,
      "generative_inference_live": false,
      "foundation_llm_weights": false,
      "ships_trained_baobab_foundation": false,
      "variety_exclusive_speech_finetunes": false,
      "trainingEligible": false,
      "training_eligible_unlock": {
        "trainingEligible": false,
        "status": "locked",
        "unlock_doc": "docs/baobab/TRAINING_ELIGIBLE_UNLOCK.md",
        "gates": [
          {
            "id": "community_consent_sw",
            "required": true,
            "met": false,
            "evidence_required": "Signed Cape Town / South Africa contributor agreements reconfirming training use",
            "description": "Cape Town / South Africa community speakers must reconfirm training export consent."
          },
          {
            "id": "held_out_speaker_lists",
            "required": true,
            "met": false,
            "evidence_required": "Published held-out speaker IDs never present in train splits",
            "description": "Held-out evaluation speakers must never appear in training exports."
          },
          {
            "id": "sw_native_review",
            "required": true,
            "met": false,
            "evidence_required": "Paid Afrikaans (Cape Town / Standard Afrikaans) native review records with trainingEligible fields",
            "description": "Native review must cover Afrikaans (Cape Town / Standard Afrikaans) before any train export."
          },
          {
            "id": "variety_not_conflated",
            "required": true,
            "met": false,
            "evidence_required": "Corpus metadata proving non-interchangeable varieties excluded from train exports",
            "description": "Kaaps (ti-et) is a secondary East African variety — not the South Africa national default."
          },
          {
            "id": "rights_clear_for_export",
            "required": true,
            "met": false,
            "evidence_required": "Legal memo clearing commercial vs research split for export corpus",
            "description": "IP / commercial rights must clear before trainingEligible flips."
          }
        ],
        "note": "trainingEligible remains false until all gates are met with durable evidence. Do not invent consent."
      },
      "iso_code": "afr",
      "audio_clean": "spectral_gate_v2",
      "nmt": {
        "neural_nmt": false,
        "disclosed_base_named": null,
        "disclosed_base_weights_in_repo": false,
        "commercial_license_cleared": false,
        "adapter_status": "phrase_table_only",
        "checkpoint_shipped": false,
        "phrase_table_live": true,
        "phrase_table_pairs": [
          "en↔af"
        ],
        "remote_mt_configured": false,
        "remote_mt_env": null,
        "baobab_yo_nmt_url_configured": false,
        "baobab_yo_nmt_env": null,
        "separate_variety_adapters": false,
        "note": "Baobab Afrikaans MT is phrase/lexical only (en↔af). Fail-closed when uncovered. neural_nmt false."
      },
      "residency": {
        "serving_today": "jnb",
        "serving_today_label": "Africa-primary Fly region Johannesburg (jnb)",
        "affinity_target": "af-south-1",
        "affinity_city": "Cape Town",
        "affinity_country": "ZA",
        "accra_gpu_island": false,
        "accra_gpu_island_status": "deferred",
        "hard_geo_fence": false,
        "preference_model": "affinity_not_hard_fence",
        "ministry_affinity_pin": "af-south-1",
        "affinity_enforcement": "soft_preference_recorded",
        "accra_island_runbook": "docs/baobab/JNB_RESIDENCY.md",
        "note": "Inference prefers matching person/org residency to nearby model hosting when ready — affinity, not a hard geo-fence. Cape Town is the South Africa residency preference; Africa-south affinity pin is af-south-1. Live serving for verbalab + lugemi-afrikaans is jnb today. No fictional Cape Town GPU island is claimed live beyond jnb serving."
      },
      "licenses": {
        "tts": "CC-BY-4.0",
        "asr": "see_model_card",
        "note": "TTS is CC-BY-4.0 (Simba). neural_nmt stays false — no dedicated NLLB remote shipped. Clarity path: spectral_gate_v2."
      },
      "deferred": [
        "Commercially cleared neural NMT (phrase MT is the live fail-closed path)",
        "Cape Town / JNB GPU island / hard South Africa geo-fence (affinity af-south-1; serving jnb)",
        "Contractual ministry SLA signature (operational targets shipped)",
        "Generative LM weights + inference (recipe + gates only)",
        "Variety-exclusive ASR/TTS finetunes beyond shared checkpoints",
        "trainingEligible unlock evidence (checklist shipped; flag locked false)"
      ]
    },
    "zu": {
      "phrase_table_only": true,
      "national_api_tiers": true,
      "research_slot_shipped": true,
      "neural_speech_live": false,
      "neural_nmt": false,
      "generative_inference_live": false,
      "foundation_llm_weights": false,
      "ships_trained_baobab_foundation": false,
      "variety_exclusive_speech_finetunes": false,
      "trainingEligible": false,
      "training_eligible_unlock": {
        "trainingEligible": false,
        "status": "locked",
        "unlock_doc": "docs/baobab/TRAINING_ELIGIBLE_UNLOCK.md",
        "gates": [
          {
            "id": "community_consent_sw",
            "required": true,
            "met": false,
            "evidence_required": "Signed Durban / South Africa contributor agreements reconfirming training use",
            "description": "Durban / South Africa community speakers must reconfirm training export consent."
          },
          {
            "id": "held_out_speaker_lists",
            "required": true,
            "met": false,
            "evidence_required": "Published held-out speaker IDs never present in train splits",
            "description": "Held-out evaluation speakers must never appear in training exports."
          },
          {
            "id": "sw_native_review",
            "required": true,
            "met": false,
            "evidence_required": "Paid isiZulu (Durban / KwaZulu-Natal isiZulu) native review records with trainingEligible fields",
            "description": "Native review must cover isiZulu (Durban / KwaZulu-Natal isiZulu) before any train export."
          },
          {
            "id": "variety_not_conflated",
            "required": true,
            "met": false,
            "evidence_required": "Corpus metadata proving non-interchangeable varieties excluded from train exports",
            "description": "Johannesburg (ti-et) is a secondary East African variety — not the South Africa national default."
          },
          {
            "id": "rights_clear_for_export",
            "required": true,
            "met": false,
            "evidence_required": "Legal memo clearing commercial vs research split for export corpus",
            "description": "IP / commercial rights must clear before trainingEligible flips."
          }
        ],
        "note": "trainingEligible remains false until all gates are met with durable evidence. Do not invent consent."
      },
      "iso_code": "zul",
      "audio_clean": "spectral_gate_v2",
      "nmt": {
        "neural_nmt": false,
        "disclosed_base_named": null,
        "disclosed_base_weights_in_repo": false,
        "commercial_license_cleared": false,
        "adapter_status": "phrase_table_only",
        "checkpoint_shipped": false,
        "phrase_table_live": true,
        "phrase_table_pairs": [
          "en↔zu"
        ],
        "remote_mt_configured": false,
        "remote_mt_env": null,
        "baobab_yo_nmt_url_configured": false,
        "baobab_yo_nmt_env": null,
        "separate_variety_adapters": false,
        "note": "Baobab isiZulu MT is phrase/lexical only (en↔zu). Fail-closed when uncovered. neural_nmt false."
      },
      "residency": {
        "serving_today": "jnb",
        "serving_today_label": "Africa-primary Fly region Johannesburg (jnb)",
        "affinity_target": "af-south-1",
        "affinity_city": "Durban",
        "affinity_country": "ZA",
        "accra_gpu_island": false,
        "accra_gpu_island_status": "deferred",
        "hard_geo_fence": false,
        "preference_model": "affinity_not_hard_fence",
        "ministry_affinity_pin": "af-south-1",
        "affinity_enforcement": "soft_preference_recorded",
        "accra_island_runbook": "docs/baobab/JNB_RESIDENCY.md",
        "note": "Inference prefers matching person/org residency to nearby model hosting when ready — affinity, not a hard geo-fence. Durban is the South Africa residency preference; Africa-south affinity pin is af-south-1. Live serving for verbalab + lugemi-zulu is jnb today. No fictional Durban GPU island is claimed live beyond jnb serving."
      },
      "licenses": {
        "tts": "CC-BY-NC-4.0",
        "asr": "see_model_card",
        "note": "TTS is CC-BY-NC-4.0. neural_nmt stays false — no dedicated NLLB remote shipped. Clarity path: spectral_gate_v2."
      },
      "deferred": [
        "Commercially cleared neural NMT (phrase MT is the live fail-closed path)",
        "Durban GPU island / hard South Africa geo-fence (affinity af-south-1; serving jnb)",
        "Contractual ministry SLA signature (operational targets shipped)",
        "Generative LM weights + inference (recipe + gates only)",
        "Variety-exclusive ASR/TTS finetunes beyond shared checkpoints",
        "trainingEligible unlock evidence (checklist shipped; flag locked false)"
      ]
    }
  },
  "docs": {
    "twi": {
      "national_model": "docs/baobab/TWI_NATIONAL_MODEL.md",
      "model_card": "docs/baobab/baobab-twi.MODEL_CARD.md",
      "partnership_open_eval": "docs/baobab/PARTNERSHIP_OPEN_EVAL.md",
      "ministry_sla": "docs/baobab/MINISTRY_SLA.md",
      "training_eligible_unlock": "docs/baobab/TRAINING_ELIGIBLE_UNLOCK.md",
      "speech_finetune_recipe": "docs/baobab/SPEECH_FINETUNE_RECIPE.md",
      "generative_lm_recipe": "docs/baobab/GENERATIVE_LM_RECIPE.md",
      "accra_residency": "docs/baobab/ACCRA_RESIDENCY.md",
      "asante_corridor": "en-ak-asante",
      "akuapem_corridor": "en-ak-akuapem",
      "language_kit": "docs/models/05_LANGUAGE_KIT.md",
      "residency": "docs/residency.md"
    },
    "ga": {
      "national_model": "docs/baobab/GA_NATIONAL_MODEL.md",
      "model_card": "docs/baobab/baobab-ga.MODEL_CARD.md",
      "partnership_open_eval": "docs/baobab/PARTNERSHIP_OPEN_EVAL.md",
      "ministry_sla": "docs/baobab/MINISTRY_SLA.md",
      "training_eligible_unlock": "docs/baobab/TRAINING_ELIGIBLE_UNLOCK.md",
      "speech_finetune_recipe": "docs/baobab/SPEECH_FINETUNE_RECIPE.md",
      "generative_lm_recipe": "docs/baobab/GENERATIVE_LM_RECIPE.md",
      "accra_residency": "docs/baobab/ACCRA_RESIDENCY.md",
      "corridor": "en-gaa-accra",
      "language_kit": "docs/models/05_LANGUAGE_KIT.md",
      "residency": "docs/residency.md"
    },
    "ha": {
      "national_model": "docs/baobab/HAUSA_NATIONAL_MODEL.md",
      "model_card": "docs/baobab/baobab-ha.MODEL_CARD.md",
      "partnership_open_eval": "docs/baobab/PARTNERSHIP_OPEN_EVAL.md",
      "ministry_sla": "docs/baobab/MINISTRY_SLA.md",
      "training_eligible_unlock": "docs/baobab/TRAINING_ELIGIBLE_UNLOCK.md",
      "speech_finetune_recipe": "docs/baobab/SPEECH_FINETUNE_RECIPE.md",
      "generative_lm_recipe": "docs/baobab/GENERATIVE_LM_RECIPE.md",
      "accra_residency": "docs/baobab/ACCRA_RESIDENCY.md",
      "corridor": "en-ha-zongo",
      "language_kit": "docs/models/05_LANGUAGE_KIT.md",
      "residency": "docs/residency.md"
    },
    "ee": {
      "national_model": "docs/baobab/EWE_NATIONAL_MODEL.md",
      "model_card": "docs/baobab/baobab-ee.MODEL_CARD.md",
      "partnership_open_eval": "docs/baobab/PARTNERSHIP_OPEN_EVAL.md",
      "ministry_sla": "docs/baobab/MINISTRY_SLA.md",
      "training_eligible_unlock": "docs/baobab/TRAINING_ELIGIBLE_UNLOCK.md",
      "speech_finetune_recipe": "docs/baobab/SPEECH_FINETUNE_RECIPE.md",
      "generative_lm_recipe": "docs/baobab/GENERATIVE_LM_RECIPE.md",
      "accra_residency": "docs/baobab/ACCRA_RESIDENCY.md",
      "corridor": "en-ee-anlo",
      "language_kit": "docs/models/05_LANGUAGE_KIT.md",
      "residency": "docs/residency.md"
    },
    "fante": {
      "national_model": "docs/baobab/FANTE_NATIONAL_MODEL.md",
      "model_card": "docs/baobab/baobab-fante.MODEL_CARD.md",
      "partnership_open_eval": "docs/baobab/PARTNERSHIP_OPEN_EVAL.md",
      "ministry_sla": "docs/baobab/MINISTRY_SLA.md",
      "training_eligible_unlock": "docs/baobab/TRAINING_ELIGIBLE_UNLOCK.md",
      "speech_finetune_recipe": "docs/baobab/SPEECH_FINETUNE_RECIPE.md",
      "generative_lm_recipe": "docs/baobab/GENERATIVE_LM_RECIPE.md",
      "accra_residency": "docs/baobab/ACCRA_RESIDENCY.md",
      "corridor": "en-ak-fante",
      "language_kit": "docs/models/05_LANGUAGE_KIT.md",
      "residency": "docs/residency.md"
    },
    "yo": {
      "national_model": "docs/baobab/YORUBA_NATIONAL_MODEL.md",
      "model_card": "docs/baobab/baobab-yo.MODEL_CARD.md",
      "partnership_open_eval": "docs/baobab/PARTNERSHIP_OPEN_EVAL.md",
      "ministry_sla": "docs/baobab/MINISTRY_SLA.md",
      "training_eligible_unlock": "docs/baobab/TRAINING_ELIGIBLE_UNLOCK.md",
      "speech_finetune_recipe": "docs/baobab/SPEECH_FINETUNE_RECIPE.md",
      "generative_lm_recipe": "docs/baobab/GENERATIVE_LM_RECIPE.md",
      "accra_residency": "docs/baobab/ACCRA_RESIDENCY.md",
      "corridor": "en-yo-lagos",
      "language_kit": "docs/models/05_LANGUAGE_KIT.md",
      "residency": "docs/residency.md"
    },
    "fil": {
      "national_model": "docs/baobab/TAGALOG_NATIONAL_MODEL.md",
      "model_card": "docs/baobab/baobab-fil.MODEL_CARD.md",
      "partnership_open_eval": "docs/baobab/PARTNERSHIP_OPEN_EVAL.md",
      "ministry_sla": "docs/baobab/MINISTRY_SLA.md",
      "training_eligible_unlock": "docs/baobab/TRAINING_ELIGIBLE_UNLOCK.md",
      "speech_finetune_recipe": "docs/baobab/SPEECH_FINETUNE_RECIPE.md",
      "generative_lm_recipe": "docs/baobab/GENERATIVE_LM_RECIPE.md",
      "accra_residency": "docs/baobab/ACCRA_RESIDENCY.md",
      "corridor": "en-fil-manila",
      "language_kit": "docs/models/05_LANGUAGE_KIT.md",
      "residency": "docs/residency.md"
    },
    "fr_sn": {
      "national_model": "docs/baobab/FR_SN_NATIONAL_MODEL.md",
      "model_card": "docs/baobab/baobab-fr-sn.MODEL_CARD.md",
      "partnership_open_eval": "docs/baobab/PARTNERSHIP_OPEN_EVAL.md",
      "ministry_sla": "docs/baobab/MINISTRY_SLA.md",
      "training_eligible_unlock": "docs/baobab/TRAINING_ELIGIBLE_UNLOCK.md",
      "speech_finetune_recipe": "docs/baobab/SPEECH_FINETUNE_RECIPE.md",
      "generative_lm_recipe": "docs/baobab/GENERATIVE_LM_RECIPE.md",
      "accra_residency": "docs/baobab/ACCRA_RESIDENCY.md",
      "corridor": "en-fr-sn",
      "language_kit": "docs/models/05_LANGUAGE_KIT.md",
      "residency": "docs/residency.md"
    },
    "fr_ci": {
      "national_model": "docs/baobab/FR_CI_NATIONAL_MODEL.md",
      "model_card": "docs/baobab/baobab-fr-ci.MODEL_CARD.md",
      "partnership_open_eval": "docs/baobab/PARTNERSHIP_OPEN_EVAL.md",
      "ministry_sla": "docs/baobab/MINISTRY_SLA.md",
      "training_eligible_unlock": "docs/baobab/TRAINING_ELIGIBLE_UNLOCK.md",
      "speech_finetune_recipe": "docs/baobab/SPEECH_FINETUNE_RECIPE.md",
      "generative_lm_recipe": "docs/baobab/GENERATIVE_LM_RECIPE.md",
      "accra_residency": "docs/baobab/ACCRA_RESIDENCY.md",
      "corridor": "en-fr-ci",
      "language_kit": "docs/models/05_LANGUAGE_KIT.md",
      "residency": "docs/residency.md"
    },
    "ig": {
      "national_model": "docs/baobab/IGBO_NATIONAL_MODEL.md",
      "model_card": "docs/baobab/baobab-ig.MODEL_CARD.md",
      "partnership_open_eval": "docs/baobab/PARTNERSHIP_OPEN_EVAL.md",
      "ministry_sla": "docs/baobab/MINISTRY_SLA.md",
      "training_eligible_unlock": "docs/baobab/TRAINING_ELIGIBLE_UNLOCK.md",
      "speech_finetune_recipe": "docs/baobab/SPEECH_FINETUNE_RECIPE.md",
      "generative_lm_recipe": "docs/baobab/GENERATIVE_LM_RECIPE.md",
      "accra_residency": "docs/baobab/ACCRA_RESIDENCY.md",
      "corridor": "en-ig-enugu",
      "language_kit": "docs/models/05_LANGUAGE_KIT.md",
      "residency": "docs/residency.md"
    },
    "ha_ng": {
      "national_model": "docs/baobab/HAUSA_NG_NATIONAL_MODEL.md",
      "model_card": "docs/baobab/baobab-ha-ng.MODEL_CARD.md",
      "partnership_open_eval": "docs/baobab/PARTNERSHIP_OPEN_EVAL.md",
      "ministry_sla": "docs/baobab/MINISTRY_SLA.md",
      "training_eligible_unlock": "docs/baobab/TRAINING_ELIGIBLE_UNLOCK.md",
      "speech_finetune_recipe": "docs/baobab/SPEECH_FINETUNE_RECIPE.md",
      "generative_lm_recipe": "docs/baobab/GENERATIVE_LM_RECIPE.md",
      "accra_residency": "docs/baobab/ACCRA_RESIDENCY.md",
      "corridor": "en-ha-kano",
      "language_kit": "docs/models/05_LANGUAGE_KIT.md",
      "residency": "docs/residency.md"
    },
    "sw": {
      "national_model": "docs/baobab/SWAHILI_NATIONAL_MODEL.md",
      "model_card": "docs/baobab/baobab-sw.MODEL_CARD.md",
      "partnership_open_eval": "docs/baobab/PARTNERSHIP_OPEN_EVAL.md",
      "ministry_sla": "docs/baobab/MINISTRY_SLA.md",
      "training_eligible_unlock": "docs/baobab/TRAINING_ELIGIBLE_UNLOCK.md",
      "speech_finetune_recipe": "docs/baobab/SPEECH_FINETUNE_RECIPE.md",
      "generative_lm_recipe": "docs/baobab/GENERATIVE_LM_RECIPE.md",
      "nairobi_residency": "docs/residency.md",
      "corridor": "en-sw-nairobi",
      "language_kit": "docs/models/05_LANGUAGE_KIT.md",
      "residency": "docs/residency.md"
    },
    "am": {
      "national_model": "docs/baobab/AMHARIC_NATIONAL_MODEL.md",
      "model_card": "docs/baobab/baobab-am.MODEL_CARD.md",
      "partnership_open_eval": "docs/baobab/PARTNERSHIP_OPEN_EVAL.md",
      "ministry_sla": "docs/baobab/MINISTRY_SLA.md",
      "training_eligible_unlock": "docs/baobab/TRAINING_ELIGIBLE_UNLOCK.md",
      "speech_finetune_recipe": "docs/baobab/SPEECH_FINETUNE_RECIPE.md",
      "generative_lm_recipe": "docs/baobab/GENERATIVE_LM_RECIPE.md",
      "nairobi_residency": "docs/residency.md",
      "corridor": "en-am-addis",
      "language_kit": "docs/models/05_LANGUAGE_KIT.md",
      "residency": "docs/residency.md"
    },
    "af": {
      "national_model": "docs/baobab/AFRIKAANS_NATIONAL_MODEL.md",
      "model_card": "docs/baobab/baobab-af.MODEL_CARD.md",
      "partnership_open_eval": "docs/baobab/PARTNERSHIP_OPEN_EVAL.md",
      "ministry_sla": "docs/baobab/MINISTRY_SLA.md",
      "training_eligible_unlock": "docs/baobab/TRAINING_ELIGIBLE_UNLOCK.md",
      "speech_finetune_recipe": "docs/baobab/SPEECH_FINETUNE_RECIPE.md",
      "generative_lm_recipe": "docs/baobab/GENERATIVE_LM_RECIPE.md",
      "jnb_residency": "docs/residency.md",
      "corridor": "en-af-cape",
      "language_kit": "docs/models/05_LANGUAGE_KIT.md",
      "residency": "docs/residency.md"
    },
    "zu": {
      "national_model": "docs/baobab/ZULU_NATIONAL_MODEL.md",
      "model_card": "docs/baobab/baobab-zu.MODEL_CARD.md",
      "partnership_open_eval": "docs/baobab/PARTNERSHIP_OPEN_EVAL.md",
      "ministry_sla": "docs/baobab/MINISTRY_SLA.md",
      "training_eligible_unlock": "docs/baobab/TRAINING_ELIGIBLE_UNLOCK.md",
      "speech_finetune_recipe": "docs/baobab/SPEECH_FINETUNE_RECIPE.md",
      "generative_lm_recipe": "docs/baobab/GENERATIVE_LM_RECIPE.md",
      "jnb_residency": "docs/residency.md",
      "corridor": "en-zu-durban",
      "language_kit": "docs/models/05_LANGUAGE_KIT.md",
      "residency": "docs/residency.md"
    }
  }
}