{
  "format": "espanol2-content-outline",
  "version": 1,
  "generatedAt": "2026-05-06T09:21:37.285Z",
  "course": {
    "id": "latam-es-ko-absolute-beginner-90d",
    "title": "Spanish for Korean Adults: 90-Day Latin American Conversation",
    "learnerProfile": "Korean-speaking adult absolute beginner",
    "dialect": "Mexico-leaning neutral Latin American Spanish",
    "explanationLanguage": "ko-primary",
    "dailyMinutes": 60
  },
  "summaryKo": "한국인 성인 완전 초보자가 90일 동안 멕시코 중립 라틴아메리카 스페인어를 매일 60분씩 학습하도록 설계한 문장 중심 커리큘럼 개요입니다.",
  "designPrinciplesKo": [
    "문법 설명보다 먼저 재사용 가능한 문장 패턴을 익힙니다.",
    "단어는 항상 사용 문장, 읽기, 말하기 프롬프트와 연결합니다.",
    "테스트 모드는 회상 압력을 만들고, 코칭 모드는 자신감 회복을 돕습니다.",
    "한국어 설명은 발음과 표현 선택에서 한국인 학습자의 흔한 막힘을 줄이는 데 집중합니다."
  ],
  "totals": {
    "modules": 7,
    "weeks": 13,
    "days": 90,
    "vocabulary": 1620,
    "sentences": 1782,
    "cards": 5286
  },
  "modules": [
    {
      "moduleId": "m01-survival-foundations",
      "startDay": 1,
      "endDay": 10,
      "koreanName": "생존 회화 기초",
      "koreanGoal": "인사, 주문, 가격, 길 묻기처럼 첫 여행과 일상에서 바로 필요한 표현을 덩어리로 익힙니다.",
      "learnerPromiseKo": "스페인어가 처음이어도 짧은 문장으로 도움을 요청하고 기본 대화를 시작할 수 있습니다.",
      "englishThemes": [
        "First contact and polite survival",
        "Names, people, and simple identity",
        "Classroom Spanish and repair phrases",
        "Cafe ordering",
        "Food basics and hunger",
        "Restaurant requests",
        "Numbers and prices",
        "Directions on the street",
        "Transportation basics",
        "Shopping essentials"
      ],
      "grammarPatternIds": [
        "pat-001-me-llamo-soy-de",
        "pat-002-soy-vivo-en",
        "pat-003-como-se-dice",
        "pat-004-quiero-quisiera",
        "pat-005-tengo-hambre-esta-rico",
        "pat-006-con-sin-cuenta",
        "pat-007-cuesta-son-pesos",
        "pat-008-donde-esta",
        "pat-009-ir-llegar-tardar",
        "pat-010-busco-tiene"
      ],
      "dayIds": [
        "lesson-d01",
        "lesson-d02",
        "lesson-d03",
        "lesson-d04",
        "lesson-d05",
        "lesson-d06",
        "lesson-d07",
        "lesson-d08",
        "lesson-d09",
        "lesson-d10"
      ]
    },
    {
      "moduleId": "m02-city-body-social",
      "startDay": 11,
      "endDay": 20,
      "koreanName": "도시 생활, 몸, 사람",
      "koreanGoal": "시간, 가족, 감정, 건강, 숙소, 스몰토크를 연결해 도시에서 만나는 사람들과 짧게 소통합니다.",
      "learnerPromiseKo": "내 상태와 주변 상황을 설명하고, 친절한 질문으로 대화를 이어갈 수 있습니다.",
      "englishThemes": [
        "Time and weekly routine",
        "Calendar and plans",
        "Family and people",
        "Feelings and opinions",
        "Home and personal objects",
        "Weather and clothing",
        "Body and health",
        "Emergency language",
        "Hotel and lodging",
        "Small talk and social questions"
      ],
      "grammarPatternIds": [
        "pat-011-los-dias-y-frecuencia",
        "pat-012-tengo-una-cita",
        "pat-013-mi-tu-su",
        "pat-014-me-gusta-creo-que",
        "pat-015-hay-necesito",
        "pat-016-hace-esta",
        "pat-017-me-duele-estoy-enfermo",
        "pat-018-necesito-ayuda-llame",
        "pat-019-tengo-reservacion-hay",
        "pat-020-que-tal-de-donde"
      ],
      "dayIds": [
        "lesson-d11",
        "lesson-d12",
        "lesson-d13",
        "lesson-d14",
        "lesson-d15",
        "lesson-d16",
        "lesson-d17",
        "lesson-d18",
        "lesson-d19",
        "lesson-d20"
      ]
    },
    {
      "moduleId": "m03-output-and-repair",
      "startDay": 21,
      "endDay": 30,
      "koreanName": "말하기 출력과 대화 복구",
      "koreanGoal": "취미, 일, 메시지, 과거/미래 표현, 비교, 멕시코식 공손 표현을 섞어 실제 대화를 버팁니다.",
      "learnerPromiseKo": "막혔을 때 다시 묻고, 더 천천히 말해 달라고 요청하며, 첫 달 표현을 통합합니다.",
      "englishThemes": [
        "Hobbies and preferences",
        "Work and study",
        "Messaging and phone",
        "Asking for help and details",
        "Yesterday and recent actions",
        "Future intentions",
        "Comparisons and degree",
        "Politeness and Mexican social phrases",
        "Conversation repair",
        "Integrated survival mission"
      ],
      "grammarPatternIds": [
        "pat-021-me-encanta-los-fines",
        "pat-022-empiezo-termino-a-las",
        "pat-023-mandar-recibir-confirmar",
        "pat-024-puede-ayudarme",
        "pat-025-ayer-fui-hice",
        "pat-026-voy-a-tengo-que",
        "pat-027-mas-menos-que",
        "pat-028-frases-sociales",
        "pat-029-no-se-puede-repetir",
        "pat-030-integrated"
      ],
      "dayIds": [
        "lesson-d21",
        "lesson-d22",
        "lesson-d23",
        "lesson-d24",
        "lesson-d25",
        "lesson-d26",
        "lesson-d27",
        "lesson-d28",
        "lesson-d29",
        "lesson-d30"
      ]
    },
    {
      "moduleId": "m04-routines-and-travel",
      "startDay": 31,
      "endDay": 45,
      "koreanName": "루틴과 여행 확장",
      "koreanGoal": "아침/저녁 루틴, 장보기, 요리, 길거리 음식, 병원, 약국, 은행, 서류, 여행 절차를 다룹니다.",
      "learnerPromiseKo": "일상 루틴과 여행 절차를 시간 순서대로 말하고, 필요한 도움을 더 구체적으로 요청할 수 있습니다.",
      "englishThemes": [
        "Morning routine",
        "Evening routine",
        "Groceries in detail",
        "Cooking simple meals",
        "Cafe conversation",
        "Street food",
        "Doctor visit",
        "Pharmacy conversation",
        "Bank and money",
        "Documents and forms",
        "Travel planning",
        "Airport flow",
        "Neighborhood life",
        "Invitations",
        "Making plans with friends"
      ],
      "grammarPatternIds": [
        "pat-031-me-levanto-a-las",
        "pat-032-despues-de-antes-de",
        "pat-033-quiero-medio-kilo",
        "pat-034-hay-que-primero",
        "pat-035-que-vas-a-pedir",
        "pat-036-me-da-de",
        "pat-037-desde-hace",
        "pat-038-busco-algo-para",
        "pat-039-necesito-sacar",
        "pat-040-tengo-que-llenar",
        "pat-041-quiero-un-boleto-para",
        "pat-042-vuelo-puerta-equipaje",
        "pat-043-en-mi-barrio-hay",
        "pat-044-quieres-venir",
        "pat-045-nos-vemos-en"
      ],
      "dayIds": [
        "lesson-d31",
        "lesson-d32",
        "lesson-d33",
        "lesson-d34",
        "lesson-d35",
        "lesson-d36",
        "lesson-d37",
        "lesson-d38",
        "lesson-d39",
        "lesson-d40",
        "lesson-d41",
        "lesson-d42",
        "lesson-d43",
        "lesson-d44",
        "lesson-d45"
      ]
    },
    {
      "moduleId": "m05-expanded-daily-life",
      "startDay": 46,
      "endDay": 60,
      "koreanName": "확장된 일상 대화",
      "koreanGoal": "식당 대화, 장소 의견, 이야기 순서, 문제 해결, 집 구하기, 서비스 문제, 문화생활, 동기를 말합니다.",
      "learnerPromiseKo": "단순한 문장을 넘어 이유와 배경을 붙여 더 자연스럽게 설명할 수 있습니다.",
      "englishThemes": [
        "Restaurant conversation",
        "Opinions about places",
        "Storytelling with sequence",
        "Habit and frequency",
        "Problem solving",
        "Apartment search",
        "Utilities and internet",
        "Clothing shopping",
        "Returns and exchanges",
        "Public services",
        "Cultural events",
        "Personal background",
        "Goals and motivation",
        "Opinions with reasons",
        "Listening to stories"
      ],
      "grammarPatternIds": [
        "pat-046-que-lleva",
        "pat-047-me-parece-porque",
        "pat-048-primero-luego-al-final",
        "pat-049-suelo-casi-nunca",
        "pat-050-hay-un-problema-podemos",
        "pat-051-busco-un-departamento",
        "pat-052-no-funciona-el",
        "pat-053-me-queda",
        "pat-054-quiero-cambiar",
        "pat-055-donde-puedo",
        "pat-056-hay-un-evento",
        "pat-057-naci-creci-vivo",
        "pat-058-quiero-aprender-para",
        "pat-059-pienso-que-porque",
        "pat-060-escuche-y-responda"
      ],
      "dayIds": [
        "lesson-d46",
        "lesson-d47",
        "lesson-d48",
        "lesson-d49",
        "lesson-d50",
        "lesson-d51",
        "lesson-d52",
        "lesson-d53",
        "lesson-d54",
        "lesson-d55",
        "lesson-d56",
        "lesson-d57",
        "lesson-d58",
        "lesson-d59",
        "lesson-d60"
      ]
    },
    {
      "moduleId": "m06-a1-to-a2-bridge",
      "startDay": 61,
      "endDay": 75,
      "koreanName": "A1에서 A2로 넘어가기",
      "koreanGoal": "복습 시험, 현재 진행, 과거와 현재 비교, 조언, 허락, 사람/장소 묘사, 온라인 대화를 연습합니다.",
      "learnerPromiseKo": "익숙한 상황을 바꿔 제시해도 핵심 패턴을 재사용하며 대답할 수 있습니다.",
      "englishThemes": [
        "Speaking test 1",
        "Repair and review week",
        "Food and health review",
        "City navigation review",
        "Social review",
        "Present-progressive actions",
        "Comparing past and present",
        "Giving advice",
        "Requests and permissions",
        "Descriptions of people",
        "Descriptions of places",
        "Emotions in context",
        "Workplace small talk",
        "Study plan conversation",
        "Online conversation"
      ],
      "grammarPatternIds": [
        "pat-061-speaking-test-1",
        "pat-062-error-correccion",
        "pat-063-comida-salud-review",
        "pat-064-ciudad-review",
        "pat-065-social-review",
        "pat-066-estoy-gerundio",
        "pat-067-antes-ahora",
        "pat-068-deberias-necesitas",
        "pat-069-puedo-se-puede",
        "pat-070-es-tiene-parece",
        "pat-071-es-queda-tiene",
        "pat-072-me-siento-porque",
        "pat-073-trabajo-update",
        "pat-074-plan-de-estudio",
        "pat-075-mensajes-cortos"
      ],
      "dayIds": [
        "lesson-d61",
        "lesson-d62",
        "lesson-d63",
        "lesson-d64",
        "lesson-d65",
        "lesson-d66",
        "lesson-d67",
        "lesson-d68",
        "lesson-d69",
        "lesson-d70",
        "lesson-d71",
        "lesson-d72",
        "lesson-d73",
        "lesson-d74",
        "lesson-d75"
      ]
    },
    {
      "moduleId": "m07-integration-and-tests",
      "startDay": 76,
      "endDay": 90,
      "koreanName": "통합 미션과 최종 테스트",
      "koreanGoal": "의견 차이, 오해 정리, 미니 토론, 읽기/듣기/쓰기/대화 주간, 여행·사회·문제 미션을 통합합니다.",
      "learnerPromiseKo": "코칭 없이도 여러 상황을 이어 가며 스스로 대화를 복구하고 마무리할 수 있습니다.",
      "englishThemes": [
        "Polite disagreement",
        "Clarifying misunderstandings",
        "Mini debate",
        "Speaking test 2",
        "Reading week",
        "Listening week",
        "Writing week",
        "Conversation week",
        "Travel mission",
        "Social mission",
        "Problem mission",
        "Personal story mission",
        "Final review",
        "Final mixed rehearsal",
        "Final speaking test"
      ],
      "grammarPatternIds": [
        "pat-076-no-estoy-seguro-pero",
        "pat-077-queria-decir",
        "pat-078-opinion-dos-razones",
        "pat-079-speaking-test-2",
        "pat-080-reading-signs",
        "pat-081-listening-voice",
        "pat-082-writing-short",
        "pat-083-follow-up",
        "pat-084-travel-mission",
        "pat-085-social-mission",
        "pat-086-problem-mission",
        "pat-087-mi-semana",
        "pat-088-final-review",
        "pat-089-final-rehearsal",
        "pat-090-final-speaking-test"
      ],
      "dayIds": [
        "lesson-d76",
        "lesson-d77",
        "lesson-d78",
        "lesson-d79",
        "lesson-d80",
        "lesson-d81",
        "lesson-d82",
        "lesson-d83",
        "lesson-d84",
        "lesson-d85",
        "lesson-d86",
        "lesson-d87",
        "lesson-d88",
        "lesson-d89",
        "lesson-d90"
      ]
    }
  ],
  "weeks": [
    {
      "week": 1,
      "startDay": 1,
      "endDay": 7,
      "koreanTitle": "1주차: 첫 인사와 자기소개에서 숫자와 가격까지",
      "koreanGoal": "생존 회화 기초 흐름 안에서 인사하고 이름과 출신을 말하며 첫 대화를 시작합니다. 마지막에는 작은 가격을 알아듣고 얼마인지 묻습니다.",
      "englishFocus": "First contact and polite survival → Numbers and prices",
      "moduleIds": [
        "m01-survival-foundations"
      ],
      "grammarPatternIds": [
        "pat-001-me-llamo-soy-de",
        "pat-002-soy-vivo-en",
        "pat-003-como-se-dice",
        "pat-004-quiero-quisiera",
        "pat-005-tengo-hambre-esta-rico",
        "pat-006-con-sin-cuenta",
        "pat-007-cuesta-son-pesos"
      ],
      "days": [
        1,
        2,
        3,
        4,
        5,
        6,
        7
      ]
    },
    {
      "week": 2,
      "startDay": 8,
      "endDay": 14,
      "koreanTitle": "2주차: 거리에서 길 묻기에서 감정과 의견까지",
      "koreanGoal": "생존 회화 기초 / 도시 생활, 몸, 사람 흐름 안에서 장소가 어디 있는지 묻고 간단한 방향을 이해합니다. 마지막에는 기분과 간단한 의견을 말합니다.",
      "englishFocus": "Directions on the street → Feelings and opinions",
      "moduleIds": [
        "m01-survival-foundations",
        "m02-city-body-social"
      ],
      "grammarPatternIds": [
        "pat-008-donde-esta",
        "pat-009-ir-llegar-tardar",
        "pat-010-busco-tiene",
        "pat-011-los-dias-y-frecuencia",
        "pat-012-tengo-una-cita",
        "pat-013-mi-tu-su",
        "pat-014-me-gusta-creo-que"
      ],
      "days": [
        8,
        9,
        10,
        11,
        12,
        13,
        14
      ]
    },
    {
      "week": 3,
      "startDay": 15,
      "endDay": 21,
      "koreanTitle": "3주차: 집과 개인 물건에서 취미와 선호까지",
      "koreanGoal": "도시 생활, 몸, 사람 / 말하기 출력과 대화 복구 흐름 안에서 집 안 공간과 필요한 물건을 설명합니다. 마지막에는 여가 활동과 좋아하는 것을 말합니다.",
      "englishFocus": "Home and personal objects → Hobbies and preferences",
      "moduleIds": [
        "m02-city-body-social",
        "m03-output-and-repair"
      ],
      "grammarPatternIds": [
        "pat-015-hay-necesito",
        "pat-016-hace-esta",
        "pat-017-me-duele-estoy-enfermo",
        "pat-018-necesito-ayuda-llame",
        "pat-019-tengo-reservacion-hay",
        "pat-020-que-tal-de-donde",
        "pat-021-me-encanta-los-fines"
      ],
      "days": [
        15,
        16,
        17,
        18,
        19,
        20,
        21
      ]
    },
    {
      "week": 4,
      "startDay": 22,
      "endDay": 28,
      "koreanTitle": "4주차: 일과 공부에서 공손함과 멕시코식 표현까지",
      "koreanGoal": "말하기 출력과 대화 복구 흐름 안에서 일, 학교, 일정 상황을 간단히 설명합니다. 마지막에는 따뜻한 일상 표현으로 너무 딱딱하지 않게 말합니다.",
      "englishFocus": "Work and study → Politeness and Mexican social phrases",
      "moduleIds": [
        "m03-output-and-repair"
      ],
      "grammarPatternIds": [
        "pat-022-empiezo-termino-a-las",
        "pat-023-mandar-recibir-confirmar",
        "pat-024-puede-ayudarme",
        "pat-025-ayer-fui-hice",
        "pat-026-voy-a-tengo-que",
        "pat-027-mas-menos-que",
        "pat-028-frases-sociales"
      ],
      "days": [
        22,
        23,
        24,
        25,
        26,
        27,
        28
      ]
    },
    {
      "week": 5,
      "startDay": 29,
      "endDay": 35,
      "koreanTitle": "5주차: 대화 복구 집중에서 카페 대화까지",
      "koreanGoal": "말하기 출력과 대화 복구 / 루틴과 여행 확장 흐름 안에서 확신이 없을 때도 대화를 멈추지 않고 다시 이어갑니다. 마지막에는 주문 후 기다리는 동안 자연스럽게 짧은 대화를 합니다.",
      "englishFocus": "Conversation repair → Cafe conversation",
      "moduleIds": [
        "m03-output-and-repair",
        "m04-routines-and-travel"
      ],
      "grammarPatternIds": [
        "pat-029-no-se-puede-repetir",
        "pat-030-integrated",
        "pat-031-me-levanto-a-las",
        "pat-032-despues-de-antes-de",
        "pat-033-quiero-medio-kilo",
        "pat-034-hay-que-primero",
        "pat-035-que-vas-a-pedir"
      ],
      "days": [
        29,
        30,
        31,
        32,
        33,
        34,
        35
      ]
    },
    {
      "week": 6,
      "startDay": 36,
      "endDay": 42,
      "koreanTitle": "6주차: 길거리 음식에서 공항 절차까지",
      "koreanGoal": "루틴과 여행 확장 흐름 안에서 타코와 간식을 토핑과 취향에 맞게 주문합니다. 마지막에는 체크인, 보안검색, 탑승구, 수하물, 지연 표현을 사용합니다.",
      "englishFocus": "Street food → Airport flow",
      "moduleIds": [
        "m04-routines-and-travel"
      ],
      "grammarPatternIds": [
        "pat-036-me-da-de",
        "pat-037-desde-hace",
        "pat-038-busco-algo-para",
        "pat-039-necesito-sacar",
        "pat-040-tengo-que-llenar",
        "pat-041-quiero-un-boleto-para",
        "pat-042-vuelo-puerta-equipaje"
      ],
      "days": [
        36,
        37,
        38,
        39,
        40,
        41,
        42
      ]
    },
    {
      "week": 7,
      "startDay": 43,
      "endDay": 49,
      "koreanTitle": "7주차: 동네 생활에서 습관과 빈도까지",
      "koreanGoal": "루틴과 여행 확장 / 확장된 일상 대화 흐름 안에서 가게, 안전, 소음, 이웃에 대해 말합니다. 마지막에는 보통, 가끔, 절대 하지 않는 일을 말합니다.",
      "englishFocus": "Neighborhood life → Habit and frequency",
      "moduleIds": [
        "m04-routines-and-travel",
        "m05-expanded-daily-life"
      ],
      "grammarPatternIds": [
        "pat-043-en-mi-barrio-hay",
        "pat-044-quieres-venir",
        "pat-045-nos-vemos-en",
        "pat-046-que-lleva",
        "pat-047-me-parece-porque",
        "pat-048-primero-luego-al-final",
        "pat-049-suelo-casi-nunca"
      ],
      "days": [
        43,
        44,
        45,
        46,
        47,
        48,
        49
      ]
    },
    {
      "week": 8,
      "startDay": 50,
      "endDay": 56,
      "koreanTitle": "8주차: 문제 해결에서 문화 행사까지",
      "koreanGoal": "확장된 일상 대화 흐름 안에서 문제를 설명하고 해결책을 협의합니다. 마지막에는 공연, 축제, 박물관, 계획을 말합니다.",
      "englishFocus": "Problem solving → Cultural events",
      "moduleIds": [
        "m05-expanded-daily-life"
      ],
      "grammarPatternIds": [
        "pat-050-hay-un-problema-podemos",
        "pat-051-busco-un-departamento",
        "pat-052-no-funciona-el",
        "pat-053-me-queda",
        "pat-054-quiero-cambiar",
        "pat-055-donde-puedo",
        "pat-056-hay-un-evento"
      ],
      "days": [
        50,
        51,
        52,
        53,
        54,
        55,
        56
      ]
    },
    {
      "week": 9,
      "startDay": 57,
      "endDay": 63,
      "koreanTitle": "9주차: 개인 배경에서 음식과 건강 복습까지",
      "koreanGoal": "확장된 일상 대화 / A1에서 A2로 넘어가기 흐름 안에서 출신과 삶의 흐름을 간단히 말합니다. 마지막에는 주문, 증상, 취향 표현을 결합합니다.",
      "englishFocus": "Personal background → Food and health review",
      "moduleIds": [
        "m05-expanded-daily-life",
        "m06-a1-to-a2-bridge"
      ],
      "grammarPatternIds": [
        "pat-057-naci-creci-vivo",
        "pat-058-quiero-aprender-para",
        "pat-059-pienso-que-porque",
        "pat-060-escuche-y-responda",
        "pat-061-speaking-test-1",
        "pat-062-error-correccion",
        "pat-063-comida-salud-review"
      ],
      "days": [
        57,
        58,
        59,
        60,
        61,
        62,
        63
      ]
    },
    {
      "week": 10,
      "startDay": 64,
      "endDay": 70,
      "koreanTitle": "10주차: 도시 이동 복습에서 사람 묘사까지",
      "koreanGoal": "A1에서 A2로 넘어가기 흐름 안에서 길 묻기, 교통, 시간을 결합합니다. 마지막에는 외모, 성격, 관계를 설명합니다.",
      "englishFocus": "City navigation review → Descriptions of people",
      "moduleIds": [
        "m06-a1-to-a2-bridge"
      ],
      "grammarPatternIds": [
        "pat-064-ciudad-review",
        "pat-065-social-review",
        "pat-066-estoy-gerundio",
        "pat-067-antes-ahora",
        "pat-068-deberias-necesitas",
        "pat-069-puedo-se-puede",
        "pat-070-es-tiene-parece"
      ],
      "days": [
        64,
        65,
        66,
        67,
        68,
        69,
        70
      ]
    },
    {
      "week": 11,
      "startDay": 71,
      "endDay": 77,
      "koreanTitle": "11주차: 장소 묘사에서 오해 명확히 하기까지",
      "koreanGoal": "A1에서 A2로 넘어가기 / 통합 미션과 최종 테스트 흐름 안에서 크기, 분위기, 안전, 편리함을 설명합니다. 마지막에는 의미, 발음, 의도를 다시 확인합니다.",
      "englishFocus": "Descriptions of places → Clarifying misunderstandings",
      "moduleIds": [
        "m06-a1-to-a2-bridge",
        "m07-integration-and-tests"
      ],
      "grammarPatternIds": [
        "pat-071-es-queda-tiene",
        "pat-072-me-siento-porque",
        "pat-073-trabajo-update",
        "pat-074-plan-de-estudio",
        "pat-075-mensajes-cortos",
        "pat-076-no-estoy-seguro-pero",
        "pat-077-queria-decir"
      ],
      "days": [
        71,
        72,
        73,
        74,
        75,
        76,
        77
      ]
    },
    {
      "week": 12,
      "startDay": 78,
      "endDay": 84,
      "koreanTitle": "12주차: 미니 토론에서 여행 미션까지",
      "koreanGoal": "통합 미션과 최종 테스트 흐름 안에서 선호를 두 가지 이유로 방어합니다. 마지막에는 하루 여행 상황 전체를 스페인어로 처리합니다.",
      "englishFocus": "Mini debate → Travel mission",
      "moduleIds": [
        "m07-integration-and-tests"
      ],
      "grammarPatternIds": [
        "pat-078-opinion-dos-razones",
        "pat-079-speaking-test-2",
        "pat-080-reading-signs",
        "pat-081-listening-voice",
        "pat-082-writing-short",
        "pat-083-follow-up",
        "pat-084-travel-mission"
      ],
      "days": [
        78,
        79,
        80,
        81,
        82,
        83,
        84
      ]
    },
    {
      "week": 13,
      "startDay": 85,
      "endDay": 90,
      "koreanTitle": "13주차: 사회적 미션에서 최종 말하기 시험까지",
      "koreanGoal": "통합 미션과 최종 테스트 흐름 안에서 사람을 만나고 약속을 잡고 자신에 대해 말합니다. 마지막에는 코칭 없이 혼합 상황 대화를 끝까지 수행합니다.",
      "englishFocus": "Social mission → Final speaking test",
      "moduleIds": [
        "m07-integration-and-tests"
      ],
      "grammarPatternIds": [
        "pat-085-social-mission",
        "pat-086-problem-mission",
        "pat-087-mi-semana",
        "pat-088-final-review",
        "pat-089-final-rehearsal",
        "pat-090-final-speaking-test"
      ],
      "days": [
        85,
        86,
        87,
        88,
        89,
        90
      ]
    }
  ],
  "days": [
    {
      "day": 1,
      "lessonId": "lesson-d01",
      "moduleId": "m01-survival-foundations",
      "week": 1,
      "englishTheme": "First contact and polite survival",
      "englishOutcome": "Greet someone, say your name, and survive the first exchange.",
      "koreanTitle": "첫 인사와 자기소개",
      "koreanGoal": "인사하고 이름과 출신을 말하며 첫 대화를 시작합니다.",
      "grammar": {
        "id": "pat-001-me-llamo-soy-de",
        "name": "Me llamo __ / Soy de __",
        "koreanName": "이름과 출신 말하기",
        "anchorSpanish": "Hola, me llamo Mina y soy de Corea.",
        "anchorKorean": "안녕하세요, 제 이름은 미나이고 한국에서 왔어요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, greeting, identity, survival",
        "readingKo": "Day 1: First contact and polite survival 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Me llamo __ / Soy de __' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 9,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 62
      },
      "appChunks": {
        "lesson": "lessons/day-001.json",
        "audio": "audio/day-001.json",
        "review": "review/day-001.json"
      }
    },
    {
      "day": 2,
      "lessonId": "lesson-d02",
      "moduleId": "m01-survival-foundations",
      "week": 1,
      "englishTheme": "Names, people, and simple identity",
      "englishOutcome": "Introduce yourself and ask basic identity questions.",
      "koreanTitle": "이름, 사람, 기본 정체성",
      "koreanGoal": "내 신분과 사는 곳을 말하고 상대의 기본 정보를 묻습니다.",
      "grammar": {
        "id": "pat-002-soy-vivo-en",
        "name": "Soy __ / Vivo en __",
        "koreanName": "정체성과 사는 곳 말하기",
        "anchorSpanish": "Soy estudiante y vivo aquí ahora.",
        "anchorKorean": "저는 학생이고 지금 여기 살아요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, people, identity, time",
        "readingKo": "Day 2: Names, people, and simple identity 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Soy __ / Vivo en __' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 9,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 59
      },
      "appChunks": {
        "lesson": "lessons/day-002.json",
        "audio": "audio/day-002.json",
        "review": "review/day-002.json"
      }
    },
    {
      "day": 3,
      "lessonId": "lesson-d03",
      "moduleId": "m01-survival-foundations",
      "week": 1,
      "englishTheme": "Classroom Spanish and repair phrases",
      "englishOutcome": "Ask how to say something and recover when you do not understand.",
      "koreanTitle": "수업 표현과 대화 복구",
      "koreanGoal": "모르는 표현을 묻고 이해하지 못했을 때 다시 요청합니다.",
      "grammar": {
        "id": "pat-003-como-se-dice",
        "name": "¿Cómo se dice __? / No entiendo",
        "koreanName": "모를 때 질문하고 회복하기",
        "anchorSpanish": "No entiendo. ¿Puede repetir más despacio?",
        "anchorKorean": "이해하지 못했어요. 더 천천히 반복해 주실 수 있나요?"
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, classroom, skill, language",
        "readingKo": "Day 3: Classroom Spanish and repair phrases 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 '¿Cómo se dice __? / No entiendo' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 8,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 57
      },
      "appChunks": {
        "lesson": "lessons/day-003.json",
        "audio": "audio/day-003.json",
        "review": "review/day-003.json"
      }
    },
    {
      "day": 4,
      "lessonId": "lesson-d04",
      "moduleId": "m01-survival-foundations",
      "week": 1,
      "englishTheme": "Cafe ordering",
      "englishOutcome": "Order a simple drink or snack politely.",
      "koreanTitle": "카페에서 주문하기",
      "koreanGoal": "음료나 간식을 정중하게 주문하고 포장 여부를 말합니다.",
      "grammar": {
        "id": "pat-004-quiero-quisiera",
        "name": "Quiero __ / Quisiera __",
        "koreanName": "원하는 것 정중하게 말하기",
        "anchorSpanish": "Quisiera un café para llevar, por favor.",
        "anchorKorean": "커피 한 잔 포장으로 부탁드립니다."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, cafe, restaurant, description",
        "readingKo": "Day 4: Cafe ordering 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Quiero __ / Quisiera __' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 9,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 60
      },
      "appChunks": {
        "lesson": "lessons/day-004.json",
        "audio": "audio/day-004.json",
        "review": "review/day-004.json"
      }
    },
    {
      "day": 5,
      "lessonId": "lesson-d05",
      "moduleId": "m01-survival-foundations",
      "week": 1,
      "englishTheme": "Food basics and hunger",
      "englishOutcome": "Talk about basic food, taste, hunger, and thirst.",
      "koreanTitle": "음식과 배고픔",
      "koreanGoal": "배고픔, 목마름, 맛을 짧은 문장으로 표현합니다.",
      "grammar": {
        "id": "pat-005-tengo-hambre-esta-rico",
        "name": "Tengo hambre / Está rico",
        "koreanName": "배고픔과 맛 말하기",
        "anchorSpanish": "Tengo hambre. El taco está muy rico.",
        "anchorKorean": "배고파요. 타코가 정말 맛있어요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, food, body, taste",
        "readingKo": "Day 5: Food basics and hunger 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Tengo hambre / Está rico' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 9,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 60
      },
      "appChunks": {
        "lesson": "lessons/day-005.json",
        "audio": "audio/day-005.json",
        "review": "review/day-005.json"
      }
    },
    {
      "day": 6,
      "lessonId": "lesson-d06",
      "moduleId": "m01-survival-foundations",
      "week": 1,
      "englishTheme": "Restaurant requests",
      "englishOutcome": "Ask for a table, customize food, and pay.",
      "koreanTitle": "식당 요청과 계산",
      "koreanGoal": "음식 옵션을 바꾸고 계산을 부탁합니다.",
      "grammar": {
        "id": "pat-006-con-sin-cuenta",
        "name": "con __ / sin __ / La cuenta, por favor",
        "koreanName": "넣고 빼기와 계산 요청",
        "anchorSpanish": "Quisiera un taco sin salsa y la cuenta, por favor.",
        "anchorKorean": "살사 없이 타코 하나와 계산서 부탁드립니다."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, restaurant, money, degree",
        "readingKo": "Day 6: Restaurant requests 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'con __ / sin __ / La cuenta, por favor' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 10,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 63
      },
      "appChunks": {
        "lesson": "lessons/day-006.json",
        "audio": "audio/day-006.json",
        "review": "review/day-006.json"
      }
    },
    {
      "day": 7,
      "lessonId": "lesson-d07",
      "moduleId": "m01-survival-foundations",
      "week": 1,
      "englishTheme": "Numbers and prices",
      "englishOutcome": "Understand small prices and ask how much something costs.",
      "koreanTitle": "숫자와 가격",
      "koreanGoal": "작은 가격을 알아듣고 얼마인지 묻습니다.",
      "grammar": {
        "id": "pat-007-cuesta-son-pesos",
        "name": "¿Cuánto cuesta? / Son __ pesos",
        "koreanName": "가격 묻고 숫자 듣기",
        "anchorSpanish": "¿Cuánto cuesta? Son cincuenta pesos.",
        "anchorKorean": "얼마예요? 50페소입니다."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, numbers, money",
        "readingKo": "Day 7: Numbers and prices 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 '¿Cuánto cuesta? / Son __ pesos' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 8,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 56
      },
      "appChunks": {
        "lesson": "lessons/day-007.json",
        "audio": "audio/day-007.json",
        "review": "review/day-007.json"
      }
    },
    {
      "day": 8,
      "lessonId": "lesson-d08",
      "moduleId": "m01-survival-foundations",
      "week": 2,
      "englishTheme": "Directions on the street",
      "englishOutcome": "Ask where something is and understand simple directions.",
      "koreanTitle": "거리에서 길 묻기",
      "koreanGoal": "장소가 어디 있는지 묻고 간단한 방향을 이해합니다.",
      "grammar": {
        "id": "pat-008-donde-esta",
        "name": "¿Dónde está __? / Está cerca",
        "koreanName": "위치 묻기",
        "anchorSpanish": "¿Dónde está el baño? Está a la derecha.",
        "anchorKorean": "화장실이 어디에 있나요? 오른쪽에 있어요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, directions, place, question",
        "readingKo": "Day 8: Directions on the street 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 '¿Dónde está __? / Está cerca' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 9,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 59
      },
      "appChunks": {
        "lesson": "lessons/day-008.json",
        "audio": "audio/day-008.json",
        "review": "review/day-008.json"
      }
    },
    {
      "day": 9,
      "lessonId": "lesson-d09",
      "moduleId": "m01-survival-foundations",
      "week": 2,
      "englishTheme": "Transportation basics",
      "englishOutcome": "Use taxi, bus, metro, and airport phrases.",
      "koreanTitle": "교통 기본 표현",
      "koreanGoal": "택시, 버스, 지하철, 공항 이동 표현을 사용합니다.",
      "grammar": {
        "id": "pat-009-ir-llegar-tardar",
        "name": "Quiero ir a __ / ¿Cuánto tarda?",
        "koreanName": "이동 목적지와 걸리는 시간",
        "anchorSpanish": "Quiero ir al centro. ¿Cuánto tarda?",
        "anchorKorean": "중심가에 가고 싶어요. 얼마나 걸리나요?"
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, transport, time",
        "readingKo": "Day 9: Transportation basics 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Quiero ir a __ / ¿Cuánto tarda?' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 10,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 62
      },
      "appChunks": {
        "lesson": "lessons/day-009.json",
        "audio": "audio/day-009.json",
        "review": "review/day-009.json"
      }
    },
    {
      "day": 10,
      "lessonId": "lesson-d10",
      "moduleId": "m01-survival-foundations",
      "week": 2,
      "englishTheme": "Shopping essentials",
      "englishOutcome": "Ask for items, sizes, colors, and receipts.",
      "koreanTitle": "쇼핑 필수 표현",
      "koreanGoal": "물건, 사이즈, 색상, 영수증을 묻고 요청합니다.",
      "grammar": {
        "id": "pat-010-busco-tiene",
        "name": "Busco __ / ¿Tiene __?",
        "koreanName": "물건 찾기",
        "anchorSpanish": "Busco zapatos negros. ¿Tiene mi talla?",
        "anchorKorean": "검은 신발을 찾고 있어요. 제 사이즈가 있나요?"
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, shopping, color",
        "readingKo": "Day 10: Shopping essentials 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Busco __ / ¿Tiene __?' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 10,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 63
      },
      "appChunks": {
        "lesson": "lessons/day-010.json",
        "audio": "audio/day-010.json",
        "review": "review/day-010.json"
      }
    },
    {
      "day": 11,
      "lessonId": "lesson-d11",
      "moduleId": "m02-city-body-social",
      "week": 2,
      "englishTheme": "Time and weekly routine",
      "englishOutcome": "Say days, times, and simple frequency.",
      "koreanTitle": "시간과 주간 루틴",
      "koreanGoal": "요일, 시간, 빈도를 사용해 일상을 말합니다.",
      "grammar": {
        "id": "pat-011-los-dias-y-frecuencia",
        "name": "Los lunes / siempre / a veces",
        "koreanName": "요일과 빈도 말하기",
        "anchorSpanish": "Los lunes estudio español temprano.",
        "anchorKorean": "월요일마다 저는 일찍 스페인어를 공부해요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, time, weekday, frequency",
        "readingKo": "Day 11: Time and weekly routine 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Los lunes / siempre / a veces' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 8,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 56
      },
      "appChunks": {
        "lesson": "lessons/day-011.json",
        "audio": "audio/day-011.json",
        "review": "review/day-011.json"
      }
    },
    {
      "day": 12,
      "lessonId": "lesson-d12",
      "moduleId": "m02-city-body-social",
      "week": 2,
      "englishTheme": "Calendar and plans",
      "englishOutcome": "Talk about months, dates, appointments, and weekends.",
      "koreanTitle": "달력과 약속",
      "koreanGoal": "월, 날짜, 주말 계획과 약속을 말합니다.",
      "grammar": {
        "id": "pat-012-tengo-una-cita",
        "name": "Tengo una cita el __",
        "koreanName": "날짜와 약속 말하기",
        "anchorSpanish": "Tengo una cita el viernes en mayo.",
        "anchorKorean": "5월 금요일에 약속이 있어요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, month, calendar",
        "readingKo": "Day 12: Calendar and plans 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Tengo una cita el __' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 8,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 56
      },
      "appChunks": {
        "lesson": "lessons/day-012.json",
        "audio": "audio/day-012.json",
        "review": "review/day-012.json"
      }
    },
    {
      "day": 13,
      "lessonId": "lesson-d13",
      "moduleId": "m02-city-body-social",
      "week": 2,
      "englishTheme": "Family and people",
      "englishOutcome": "Describe family members and people around you.",
      "koreanTitle": "가족과 사람 소개",
      "koreanGoal": "가족과 주변 사람을 간단히 소개합니다.",
      "grammar": {
        "id": "pat-013-mi-tu-su",
        "name": "mi __ / tu __ / su __",
        "koreanName": "소유 표현",
        "anchorSpanish": "Mi familia vive en Corea.",
        "anchorKorean": "제 가족은 한국에 살아요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, family, people",
        "readingKo": "Day 13: Family and people 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'mi __ / tu __ / su __' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 9,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 59
      },
      "appChunks": {
        "lesson": "lessons/day-013.json",
        "audio": "audio/day-013.json",
        "review": "review/day-013.json"
      }
    },
    {
      "day": 14,
      "lessonId": "lesson-d14",
      "moduleId": "m02-city-body-social",
      "week": 2,
      "englishTheme": "Feelings and opinions",
      "englishOutcome": "Say how you feel and give simple opinions.",
      "koreanTitle": "감정과 의견",
      "koreanGoal": "기분과 간단한 의견을 말합니다.",
      "grammar": {
        "id": "pat-014-me-gusta-creo-que",
        "name": "Me gusta __ / Creo que __",
        "koreanName": "좋아함과 의견 말하기",
        "anchorSpanish": "Me gusta la comida mexicana porque es rica.",
        "anchorKorean": "멕시코 음식은 맛있어서 좋아해요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, feelings, opinion, description",
        "readingKo": "Day 14: Feelings and opinions 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Me gusta __ / Creo que __' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 8,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 56
      },
      "appChunks": {
        "lesson": "lessons/day-014.json",
        "audio": "audio/day-014.json",
        "review": "review/day-014.json"
      }
    },
    {
      "day": 15,
      "lessonId": "lesson-d15",
      "moduleId": "m02-city-body-social",
      "week": 3,
      "englishTheme": "Home and personal objects",
      "englishOutcome": "Name common spaces and things you need at home.",
      "koreanTitle": "집과 개인 물건",
      "koreanGoal": "집 안 공간과 필요한 물건을 설명합니다.",
      "grammar": {
        "id": "pat-015-hay-necesito",
        "name": "Hay __ / Necesito __",
        "koreanName": "있는 것과 필요한 것",
        "anchorSpanish": "Hay internet, pero necesito un cargador.",
        "anchorKorean": "인터넷은 있지만 충전기가 필요해요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, home, objects",
        "readingKo": "Day 15: Home and personal objects 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Hay __ / Necesito __' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 10,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 63
      },
      "appChunks": {
        "lesson": "lessons/day-015.json",
        "audio": "audio/day-015.json",
        "review": "review/day-015.json"
      }
    },
    {
      "day": 16,
      "lessonId": "lesson-d16",
      "moduleId": "m02-city-body-social",
      "week": 3,
      "englishTheme": "Weather and clothing",
      "englishOutcome": "Talk about weather and choose clothing.",
      "koreanTitle": "날씨와 옷차림",
      "koreanGoal": "날씨를 말하고 어울리는 옷을 고릅니다.",
      "grammar": {
        "id": "pat-016-hace-esta",
        "name": "Hace calor / Está nublado",
        "koreanName": "날씨 말하기",
        "anchorSpanish": "Hace frío y está nublado. Necesito una chamarra.",
        "anchorKorean": "춥고 흐려요. 재킷이 필요해요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, weather, clothing, description",
        "readingKo": "Day 16: Weather and clothing 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Hace calor / Está nublado' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 10,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 63
      },
      "appChunks": {
        "lesson": "lessons/day-016.json",
        "audio": "audio/day-016.json",
        "review": "review/day-016.json"
      }
    },
    {
      "day": 17,
      "lessonId": "lesson-d17",
      "moduleId": "m02-city-body-social",
      "week": 3,
      "englishTheme": "Body and health",
      "englishOutcome": "Explain simple symptoms and ask for help.",
      "koreanTitle": "몸과 건강",
      "koreanGoal": "증상을 설명하고 기본적인 도움을 요청합니다.",
      "grammar": {
        "id": "pat-017-me-duele-estoy-enfermo",
        "name": "Me duele __ / Estoy enfermo",
        "koreanName": "아픈 곳 설명하기",
        "anchorSpanish": "Me duele la cabeza y tengo fiebre.",
        "anchorKorean": "머리가 아프고 열이 있어요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, health, body",
        "readingKo": "Day 17: Body and health 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Me duele __ / Estoy enfermo' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 10,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 63
      },
      "appChunks": {
        "lesson": "lessons/day-017.json",
        "audio": "audio/day-017.json",
        "review": "review/day-017.json"
      }
    },
    {
      "day": 18,
      "lessonId": "lesson-d18",
      "moduleId": "m02-city-body-social",
      "week": 3,
      "englishTheme": "Emergency language",
      "englishOutcome": "Report a problem and ask for urgent assistance.",
      "koreanTitle": "긴급 상황 표현",
      "koreanGoal": "문제를 신고하고 급한 도움을 요청합니다.",
      "grammar": {
        "id": "pat-018-necesito-ayuda-llame",
        "name": "Necesito ayuda / Llame a __",
        "koreanName": "긴급 도움 요청",
        "anchorSpanish": "Necesito ayuda. Llame a la policía, por favor.",
        "anchorKorean": "도움이 필요해요. 경찰에 전화해 주세요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, emergency, travel, money",
        "readingKo": "Day 18: Emergency language 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Necesito ayuda / Llame a __' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 9,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 60
      },
      "appChunks": {
        "lesson": "lessons/day-018.json",
        "audio": "audio/day-018.json",
        "review": "review/day-018.json"
      }
    },
    {
      "day": 19,
      "lessonId": "lesson-d19",
      "moduleId": "m02-city-body-social",
      "week": 3,
      "englishTheme": "Hotel and lodging",
      "englishOutcome": "Check in, ask about room issues, and request amenities.",
      "koreanTitle": "호텔과 숙소",
      "koreanGoal": "체크인하고 방 문제나 편의시설을 요청합니다.",
      "grammar": {
        "id": "pat-019-tengo-reservacion-hay",
        "name": "Tengo reservación / Hay un problema",
        "koreanName": "숙소 체크인과 문제 말하기",
        "anchorSpanish": "Tengo una reservación, pero hay mucho ruido.",
        "anchorKorean": "예약이 있는데 소음이 많아요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, lodging, description, repair",
        "readingKo": "Day 19: Hotel and lodging 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Tengo reservación / Hay un problema' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 10,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 63
      },
      "appChunks": {
        "lesson": "lessons/day-019.json",
        "audio": "audio/day-019.json",
        "review": "review/day-019.json"
      }
    },
    {
      "day": 20,
      "lessonId": "lesson-d20",
      "moduleId": "m02-city-body-social",
      "week": 3,
      "englishTheme": "Small talk and social questions",
      "englishOutcome": "Keep a short friendly conversation going.",
      "koreanTitle": "스몰토크와 사회적 질문",
      "koreanGoal": "짧고 친근한 질문으로 대화를 이어갑니다.",
      "grammar": {
        "id": "pat-020-que-tal-de-donde",
        "name": "¿Qué tal? / ¿De dónde eres?",
        "koreanName": "스몰토크 시작하기",
        "anchorSpanish": "Estoy bien, ¿y tú? ¿De dónde eres?",
        "anchorKorean": "저는 잘 지내요, 당신은요? 어디 출신이에요?"
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, hobby, small-talk, people",
        "readingKo": "Day 20: Small talk and social questions 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 '¿Qué tal? / ¿De dónde eres?' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 9,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 59
      },
      "appChunks": {
        "lesson": "lessons/day-020.json",
        "audio": "audio/day-020.json",
        "review": "review/day-020.json"
      }
    },
    {
      "day": 21,
      "lessonId": "lesson-d21",
      "moduleId": "m03-output-and-repair",
      "week": 3,
      "englishTheme": "Hobbies and preferences",
      "englishOutcome": "Talk about what you like doing in free time.",
      "koreanTitle": "취미와 선호",
      "koreanGoal": "여가 활동과 좋아하는 것을 말합니다.",
      "grammar": {
        "id": "pat-021-me-encanta-los-fines",
        "name": "Me encanta __ / los fines de semana",
        "koreanName": "취미와 선호 말하기",
        "anchorSpanish": "Los fines de semana me encanta cocinar y tomar café.",
        "anchorKorean": "주말에는 요리하고 커피 마시는 것을 정말 좋아해요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, hobby, frequency, opinion",
        "readingKo": "Day 21: Hobbies and preferences 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Me encanta __ / los fines de semana' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 9,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 59
      },
      "appChunks": {
        "lesson": "lessons/day-021.json",
        "audio": "audio/day-021.json",
        "review": "review/day-021.json"
      }
    },
    {
      "day": 22,
      "lessonId": "lesson-d22",
      "moduleId": "m03-output-and-repair",
      "week": 4,
      "englishTheme": "Work and study",
      "englishOutcome": "Describe basic work, school, and schedule situations.",
      "koreanTitle": "일과 공부",
      "koreanGoal": "일, 학교, 일정 상황을 간단히 설명합니다.",
      "grammar": {
        "id": "pat-022-empiezo-termino-a-las",
        "name": "Empiezo a las __ / Termino a las __",
        "koreanName": "일과 공부 시간 말하기",
        "anchorSpanish": "Empiezo la clase a las nueve y termino a las diez.",
        "anchorKorean": "수업은 9시에 시작해서 10시에 끝나요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, study, work, communication",
        "readingKo": "Day 22: Work and study 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Empiezo a las __ / Termino a las __' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 10,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 62
      },
      "appChunks": {
        "lesson": "lessons/day-022.json",
        "audio": "audio/day-022.json",
        "review": "review/day-022.json"
      }
    },
    {
      "day": 23,
      "lessonId": "lesson-d23",
      "moduleId": "m03-output-and-repair",
      "week": 4,
      "englishTheme": "Messaging and phone",
      "englishOutcome": "Send, receive, confirm, and share phone information.",
      "koreanTitle": "메시지와 전화",
      "koreanGoal": "전화번호를 공유하고 메시지를 확인합니다.",
      "grammar": {
        "id": "pat-023-mandar-recibir-confirmar",
        "name": "Mando __ / Recibo __ / Confirmo __",
        "koreanName": "메시지 주고받기",
        "anchorSpanish": "Te mando mi ubicación por WhatsApp.",
        "anchorKorean": "왓츠앱으로 제 위치를 보낼게요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, phone",
        "readingKo": "Day 23: Messaging and phone 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Mando __ / Recibo __ / Confirmo __' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 10,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 63
      },
      "appChunks": {
        "lesson": "lessons/day-023.json",
        "audio": "audio/day-023.json",
        "review": "review/day-023.json"
      }
    },
    {
      "day": 24,
      "lessonId": "lesson-d24",
      "moduleId": "m03-output-and-repair",
      "week": 4,
      "englishTheme": "Asking for help and details",
      "englishOutcome": "Ask someone to explain, show, repeat, or check something.",
      "koreanTitle": "도움과 세부 정보 요청",
      "koreanGoal": "설명, 확인, 반복, 보여주기를 요청합니다.",
      "grammar": {
        "id": "pat-024-puede-ayudarme",
        "name": "¿Puede ayudarme? / ¿Puede mostrarme?",
        "koreanName": "도움과 설명 요청",
        "anchorSpanish": "¿Puede ayudarme y mostrarme la opción?",
        "anchorKorean": "도와주시고 옵션을 보여주실 수 있나요?"
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, help, repair, action",
        "readingKo": "Day 24: Asking for help and details 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 '¿Puede ayudarme? / ¿Puede mostrarme?' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 10,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 63
      },
      "appChunks": {
        "lesson": "lessons/day-024.json",
        "audio": "audio/day-024.json",
        "review": "review/day-024.json"
      }
    },
    {
      "day": 25,
      "lessonId": "lesson-d25",
      "moduleId": "m03-output-and-repair",
      "week": 4,
      "englishTheme": "Yesterday and recent actions",
      "englishOutcome": "Use common past chunks to talk about yesterday.",
      "koreanTitle": "어제와 최근 행동",
      "koreanGoal": "어제 한 일을 자주 쓰는 과거 덩어리로 말합니다.",
      "grammar": {
        "id": "pat-025-ayer-fui-hice",
        "name": "Ayer fui / hice / comí",
        "koreanName": "어제 한 일 말하기",
        "anchorSpanish": "Ayer fui al mercado y compré fruta.",
        "anchorKorean": "어제 시장에 가서 과일을 샀어요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, past, sequence",
        "readingKo": "Day 25: Yesterday and recent actions 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Ayer fui / hice / comí' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 9,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 59
      },
      "appChunks": {
        "lesson": "lessons/day-025.json",
        "audio": "audio/day-025.json",
        "review": "review/day-025.json"
      }
    },
    {
      "day": 26,
      "lessonId": "lesson-d26",
      "moduleId": "m03-output-and-repair",
      "week": 4,
      "englishTheme": "Future intentions",
      "englishOutcome": "Say what you are going to do and what you have to do.",
      "koreanTitle": "미래 의도",
      "koreanGoal": "앞으로 할 일과 해야 할 일을 말합니다.",
      "grammar": {
        "id": "pat-026-voy-a-tengo-que",
        "name": "Voy a __ / Tengo que __",
        "koreanName": "할 예정과 해야 할 일",
        "anchorSpanish": "Mañana voy a estudiar y tengo que llamar a mi amiga.",
        "anchorKorean": "내일 공부할 예정이고 친구에게 전화해야 해요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, future, ability",
        "readingKo": "Day 26: Future intentions 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Voy a __ / Tengo que __' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 9,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 59
      },
      "appChunks": {
        "lesson": "lessons/day-026.json",
        "audio": "audio/day-026.json",
        "review": "review/day-026.json"
      }
    },
    {
      "day": 27,
      "lessonId": "lesson-d27",
      "moduleId": "m03-output-and-repair",
      "week": 4,
      "englishTheme": "Comparisons and degree",
      "englishOutcome": "Compare options and describe intensity simply.",
      "koreanTitle": "비교와 정도",
      "koreanGoal": "선택지를 비교하고 강도를 간단히 표현합니다.",
      "grammar": {
        "id": "pat-027-mas-menos-que",
        "name": "más __ / menos __ / mejor",
        "koreanName": "비교와 정도",
        "anchorSpanish": "Este hotel es más barato, pero aquel está más cerca.",
        "anchorKorean": "이 호텔은 더 싸지만 저 호텔은 더 가까워요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, comparison, description, degree",
        "readingKo": "Day 27: Comparisons and degree 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'más __ / menos __ / mejor' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 8,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 56
      },
      "appChunks": {
        "lesson": "lessons/day-027.json",
        "audio": "audio/day-027.json",
        "review": "review/day-027.json"
      }
    },
    {
      "day": 28,
      "lessonId": "lesson-d28",
      "moduleId": "m03-output-and-repair",
      "week": 4,
      "englishTheme": "Politeness and Mexican social phrases",
      "englishOutcome": "Use warm everyday expressions without sounding too stiff.",
      "koreanTitle": "공손함과 멕시코식 표현",
      "koreanGoal": "따뜻한 일상 표현으로 너무 딱딱하지 않게 말합니다.",
      "grammar": {
        "id": "pat-028-frases-sociales",
        "name": "Con permiso / Provecho / Nos vemos",
        "koreanName": "따뜻한 사회적 표현",
        "anchorSpanish": "Con permiso. Muchas gracias, nos vemos.",
        "anchorKorean": "실례합니다. 정말 감사합니다, 또 봐요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, politeness, agreement, farewell",
        "readingKo": "Day 28: Politeness and Mexican social phrases 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Con permiso / Provecho / Nos vemos' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 8,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 57
      },
      "appChunks": {
        "lesson": "lessons/day-028.json",
        "audio": "audio/day-028.json",
        "review": "review/day-028.json"
      }
    },
    {
      "day": 29,
      "lessonId": "lesson-d29",
      "moduleId": "m03-output-and-repair",
      "week": 5,
      "englishTheme": "Conversation repair",
      "englishOutcome": "Stay in the conversation when you are unsure.",
      "koreanTitle": "대화 복구 집중",
      "koreanGoal": "확신이 없을 때도 대화를 멈추지 않고 다시 이어갑니다.",
      "grammar": {
        "id": "pat-029-no-se-puede-repetir",
        "name": "No sé / ¿Puede repetir? / Estoy aprendiendo",
        "koreanName": "대화를 놓치지 않는 수리 문장",
        "anchorSpanish": "Soy principiante. ¿Puede repetir más despacio?",
        "anchorKorean": "저는 초보자예요. 더 천천히 반복해 주실 수 있나요?"
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, repair, identity, coaching",
        "readingKo": "Day 29: Conversation repair 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'No sé / ¿Puede repetir? / Estoy aprendiendo' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 8,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 59
      },
      "appChunks": {
        "lesson": "lessons/day-029.json",
        "audio": "audio/day-029.json",
        "review": "review/day-029.json"
      }
    },
    {
      "day": 30,
      "lessonId": "lesson-d30",
      "moduleId": "m03-output-and-repair",
      "week": 5,
      "englishTheme": "Integrated survival mission",
      "englishOutcome": "Handle a mixed real-life situation using the first-month toolkit.",
      "koreanTitle": "1개월 통합 생존 미션",
      "koreanGoal": "첫 달 도구를 섞어 실제 생활 문제를 해결합니다.",
      "grammar": {
        "id": "pat-030-integrated",
        "name": "Necesito __ / Busco __ / ¿Me ayuda?",
        "koreanName": "첫 달 통합 패턴",
        "anchorSpanish": "Llegué al centro, busco una farmacia y necesito ayuda.",
        "anchorKorean": "중심가에 도착했고 약국을 찾고 있으며 도움이 필요해요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, mission, place, conversation",
        "readingKo": "Day 30: Integrated survival mission 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Necesito __ / Busco __ / ¿Me ayuda?' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 8,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 56
      },
      "appChunks": {
        "lesson": "lessons/day-030.json",
        "audio": "audio/day-030.json",
        "review": "review/day-030.json"
      }
    },
    {
      "day": 31,
      "lessonId": "lesson-d31",
      "moduleId": "m04-routines-and-travel",
      "week": 5,
      "englishTheme": "Morning routine",
      "englishOutcome": "Describe waking up, getting ready, and leaving home.",
      "koreanTitle": "아침 루틴",
      "koreanGoal": "일어나서 준비하고 나가는 과정을 순서대로 말합니다.",
      "grammar": {
        "id": "pat-031-me-levanto-a-las",
        "name": "Me levanto a las __ / Después __",
        "koreanName": "아침 루틴 순서 말하기",
        "anchorSpanish": "Me levanto a las siete y salgo de casa a las ocho.",
        "anchorKorean": "저는 7시에 일어나고 8시에 집에서 나가요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, routine, time, body",
        "readingKo": "Day 31: Morning routine 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Me levanto a las __ / Después __' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 9,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 59
      },
      "appChunks": {
        "lesson": "lessons/day-031.json",
        "audio": "audio/day-031.json",
        "review": "review/day-031.json"
      }
    },
    {
      "day": 32,
      "lessonId": "lesson-d32",
      "moduleId": "m04-routines-and-travel",
      "week": 5,
      "englishTheme": "Evening routine",
      "englishOutcome": "Talk about relaxing, cooking, cleaning, and sleeping.",
      "koreanTitle": "저녁 루틴",
      "koreanGoal": "쉬기, 요리, 청소, 잠자기 표현을 말합니다.",
      "grammar": {
        "id": "pat-032-despues-de-antes-de",
        "name": "Después de __ / Antes de __",
        "koreanName": "전후 관계 말하기",
        "anchorSpanish": "Después de cenar, estudio un poco antes de dormir.",
        "anchorKorean": "저녁을 먹은 후 자기 전에 조금 공부해요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, routine, home, body",
        "readingKo": "Day 32: Evening routine 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Después de __ / Antes de __' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 9,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 59
      },
      "appChunks": {
        "lesson": "lessons/day-032.json",
        "audio": "audio/day-032.json",
        "review": "review/day-032.json"
      }
    },
    {
      "day": 33,
      "lessonId": "lesson-d33",
      "moduleId": "m04-routines-and-travel",
      "week": 5,
      "englishTheme": "Groceries in detail",
      "englishOutcome": "Ask for quantities, produce, and common grocery items.",
      "koreanTitle": "장보기 심화",
      "koreanGoal": "수량, 과일·채소, 장보기 요청을 구체적으로 말합니다.",
      "grammar": {
        "id": "pat-033-quiero-medio-kilo",
        "name": "Quiero medio kilo de __ / ¿Cuánto es?",
        "koreanName": "장보기 수량 말하기",
        "anchorSpanish": "Quiero medio kilo de tomates y una bolsa de arroz.",
        "anchorKorean": "토마토 반 킬로와 쌀 한 봉지를 원해요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, food, shopping, quantity",
        "readingKo": "Day 33: Groceries in detail 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Quiero medio kilo de __ / ¿Cuánto es?' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 9,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 60
      },
      "appChunks": {
        "lesson": "lessons/day-033.json",
        "audio": "audio/day-033.json",
        "review": "review/day-033.json"
      }
    },
    {
      "day": 34,
      "lessonId": "lesson-d34",
      "moduleId": "m04-routines-and-travel",
      "week": 5,
      "englishTheme": "Cooking simple meals",
      "englishOutcome": "Follow and give simple cooking instructions.",
      "koreanTitle": "간단한 요리",
      "koreanGoal": "요리 지시를 이해하고 간단한 조리 과정을 말합니다.",
      "grammar": {
        "id": "pat-034-hay-que-primero",
        "name": "Hay que __ / Primero __",
        "koreanName": "간단한 조리 설명",
        "anchorSpanish": "Primero hay que lavar la verdura y cortar la cebolla.",
        "anchorKorean": "먼저 채소를 씻고 양파를 잘라야 해요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, cooking, sequence",
        "readingKo": "Day 34: Cooking simple meals 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Hay que __ / Primero __' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 10,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 62
      },
      "appChunks": {
        "lesson": "lessons/day-034.json",
        "audio": "audio/day-034.json",
        "review": "review/day-034.json"
      }
    },
    {
      "day": 35,
      "lessonId": "lesson-d35",
      "moduleId": "m04-routines-and-travel",
      "week": 5,
      "englishTheme": "Cafe conversation",
      "englishOutcome": "Chat naturally while ordering and waiting.",
      "koreanTitle": "카페 대화",
      "koreanGoal": "주문 후 기다리는 동안 자연스럽게 짧은 대화를 합니다.",
      "grammar": {
        "id": "pat-035-que-vas-a-pedir",
        "name": "¿Qué vas a pedir? / Yo voy a pedir __",
        "koreanName": "카페에서 선택 말하기",
        "anchorSpanish": "Yo voy a pedir un café frío y un pan dulce.",
        "anchorKorean": "저는 차가운 커피와 단 빵을 주문할 거예요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, cafe, food, social",
        "readingKo": "Day 35: Cafe conversation 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 '¿Qué vas a pedir? / Yo voy a pedir __' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 10,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 63
      },
      "appChunks": {
        "lesson": "lessons/day-035.json",
        "audio": "audio/day-035.json",
        "review": "review/day-035.json"
      }
    },
    {
      "day": 36,
      "lessonId": "lesson-d36",
      "moduleId": "m04-routines-and-travel",
      "week": 6,
      "englishTheme": "Street food",
      "englishOutcome": "Order tacos or snacks with toppings and preferences.",
      "koreanTitle": "길거리 음식",
      "koreanGoal": "타코와 간식을 토핑과 취향에 맞게 주문합니다.",
      "grammar": {
        "id": "pat-036-me-da-de",
        "name": "¿Me da __ de __? / Con todo",
        "koreanName": "길거리 음식 주문",
        "anchorSpanish": "¿Me da dos tacos de pastor con todo, por favor?",
        "anchorKorean": "알 파스토르 타코 두 개 전부 넣어서 주세요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, food, request, restaurant",
        "readingKo": "Day 36: Street food 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 '¿Me da __ de __? / Con todo' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 9,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 60
      },
      "appChunks": {
        "lesson": "lessons/day-036.json",
        "audio": "audio/day-036.json",
        "review": "review/day-036.json"
      }
    },
    {
      "day": 37,
      "lessonId": "lesson-d37",
      "moduleId": "m04-routines-and-travel",
      "week": 6,
      "englishTheme": "Doctor visit",
      "englishOutcome": "Describe symptoms, duration, and basic treatment.",
      "koreanTitle": "병원 방문",
      "koreanGoal": "증상, 기간, 기본 치료를 설명합니다.",
      "grammar": {
        "id": "pat-037-desde-hace",
        "name": "Me duele __ desde hace __",
        "koreanName": "증상 기간 말하기",
        "anchorSpanish": "Me duele el estómago desde hace dos días.",
        "anchorKorean": "이틀 전부터 배가 아파요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, health, time",
        "readingKo": "Day 37: Doctor visit 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Me duele __ desde hace __' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 9,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 59
      },
      "appChunks": {
        "lesson": "lessons/day-037.json",
        "audio": "audio/day-037.json",
        "review": "review/day-037.json"
      }
    },
    {
      "day": 38,
      "lessonId": "lesson-d38",
      "moduleId": "m04-routines-and-travel",
      "week": 6,
      "englishTheme": "Pharmacy conversation",
      "englishOutcome": "Ask for medicine and understand dosage language.",
      "koreanTitle": "약국 대화",
      "koreanGoal": "약을 요청하고 복용법 표현을 이해합니다.",
      "grammar": {
        "id": "pat-038-busco-algo-para",
        "name": "Busco algo para __ / ¿Cada cuánto?",
        "koreanName": "약국에서 약 요청",
        "anchorSpanish": "Busco algo para la tos. ¿Cada cuánto lo tomo?",
        "anchorKorean": "기침에 쓰는 것을 찾고 있어요. 얼마나 자주 먹나요?"
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: health, latam, mexico-neutral",
        "readingKo": "Day 38: Pharmacy conversation 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Busco algo para __ / ¿Cada cuánto?' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 10,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 63
      },
      "appChunks": {
        "lesson": "lessons/day-038.json",
        "audio": "audio/day-038.json",
        "review": "review/day-038.json"
      }
    },
    {
      "day": 39,
      "lessonId": "lesson-d39",
      "moduleId": "m04-routines-and-travel",
      "week": 6,
      "englishTheme": "Bank and money",
      "englishOutcome": "Use ATM, cash, card, transfer, and change phrases.",
      "koreanTitle": "은행과 돈",
      "koreanGoal": "ATM, 현금, 카드, 송금, 잔돈 표현을 사용합니다.",
      "grammar": {
        "id": "pat-039-necesito-sacar",
        "name": "Necesito sacar __ / ¿Acepta tarjeta?",
        "koreanName": "돈과 결제",
        "anchorSpanish": "Necesito sacar efectivo, pero el cajero no funciona.",
        "anchorKorean": "현금을 인출해야 하는데 ATM이 작동하지 않아요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, money, repair",
        "readingKo": "Day 39: Bank and money 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Necesito sacar __ / ¿Acepta tarjeta?' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 10,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 63
      },
      "appChunks": {
        "lesson": "lessons/day-039.json",
        "audio": "audio/day-039.json",
        "review": "review/day-039.json"
      }
    },
    {
      "day": 40,
      "lessonId": "lesson-d40",
      "moduleId": "m04-routines-and-travel",
      "week": 6,
      "englishTheme": "Documents and forms",
      "englishOutcome": "Fill out simple personal information and ask form questions.",
      "koreanTitle": "서류와 양식",
      "koreanGoal": "개인 정보를 적고 양식 질문을 묻습니다.",
      "grammar": {
        "id": "pat-040-tengo-que-llenar",
        "name": "Tengo que llenar __ / ¿Dónde firmo?",
        "koreanName": "서류 작성",
        "anchorSpanish": "Tengo que llenar este formulario y firmar aquí.",
        "anchorKorean": "이 양식을 작성하고 여기 서명해야 해요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: documents, latam, mexico-neutral",
        "readingKo": "Day 40: Documents and forms 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Tengo que llenar __ / ¿Dónde firmo?' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 10,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 63
      },
      "appChunks": {
        "lesson": "lessons/day-040.json",
        "audio": "audio/day-040.json",
        "review": "review/day-040.json"
      }
    },
    {
      "day": 41,
      "lessonId": "lesson-d41",
      "moduleId": "m04-routines-and-travel",
      "week": 6,
      "englishTheme": "Travel planning",
      "englishOutcome": "Book transport and ask about schedules.",
      "koreanTitle": "여행 계획",
      "koreanGoal": "교통편을 예약하고 일정과 시간을 묻습니다.",
      "grammar": {
        "id": "pat-041-quiero-un-boleto-para",
        "name": "Quiero un boleto para __ / ¿A qué hora sale?",
        "koreanName": "여행 일정 예약",
        "anchorSpanish": "Quiero un boleto para Puebla. ¿A qué hora sale el autobús?",
        "anchorKorean": "푸에블라행 표를 원해요. 버스는 몇 시에 출발하나요?"
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, travel",
        "readingKo": "Day 41: Travel planning 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Quiero un boleto para __ / ¿A qué hora sale?' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 10,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 63
      },
      "appChunks": {
        "lesson": "lessons/day-041.json",
        "audio": "audio/day-041.json",
        "review": "review/day-041.json"
      }
    },
    {
      "day": 42,
      "lessonId": "lesson-d42",
      "moduleId": "m04-routines-and-travel",
      "week": 6,
      "englishTheme": "Airport flow",
      "englishOutcome": "Check in, security, gate, luggage, and delay phrases.",
      "koreanTitle": "공항 절차",
      "koreanGoal": "체크인, 보안검색, 탑승구, 수하물, 지연 표현을 사용합니다.",
      "grammar": {
        "id": "pat-042-vuelo-puerta-equipaje",
        "name": "Mi vuelo sale de la puerta __",
        "koreanName": "공항 흐름",
        "anchorSpanish": "Mi vuelo sale de la puerta diez, pero mi equipaje no llega.",
        "anchorKorean": "제 비행기는 10번 게이트에서 출발하지만 짐이 나오지 않아요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: airport, latam, mexico-neutral",
        "readingKo": "Day 42: Airport flow 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Mi vuelo sale de la puerta __' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 10,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 62
      },
      "appChunks": {
        "lesson": "lessons/day-042.json",
        "audio": "audio/day-042.json",
        "review": "review/day-042.json"
      }
    },
    {
      "day": 43,
      "lessonId": "lesson-d43",
      "moduleId": "m04-routines-and-travel",
      "week": 7,
      "englishTheme": "Neighborhood life",
      "englishOutcome": "Talk about stores, safety, noise, and neighbors.",
      "koreanTitle": "동네 생활",
      "koreanGoal": "가게, 안전, 소음, 이웃에 대해 말합니다.",
      "grammar": {
        "id": "pat-043-en-mi-barrio-hay",
        "name": "En mi barrio hay __ / Queda cerca",
        "koreanName": "동네 설명",
        "anchorSpanish": "En mi barrio hay una panadería y queda cerca del metro.",
        "anchorKorean": "제 동네에는 빵집이 있고 지하철 근처에 있어요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, place, people, mexico",
        "readingKo": "Day 43: Neighborhood life 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'En mi barrio hay __ / Queda cerca' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 8,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 56
      },
      "appChunks": {
        "lesson": "lessons/day-043.json",
        "audio": "audio/day-043.json",
        "review": "review/day-043.json"
      }
    },
    {
      "day": 44,
      "lessonId": "lesson-d44",
      "moduleId": "m04-routines-and-travel",
      "week": 7,
      "englishTheme": "Invitations",
      "englishOutcome": "Invite, accept, decline, and suggest another time.",
      "koreanTitle": "초대하기",
      "koreanGoal": "초대하고 수락·거절하며 다른 시간을 제안합니다.",
      "grammar": {
        "id": "pat-044-quieres-venir",
        "name": "¿Quieres venir? / Me encantaría",
        "koreanName": "초대하고 답하기",
        "anchorSpanish": "¿Quieres venir a cenar el sábado? Me encantaría.",
        "anchorKorean": "토요일 저녁 먹으러 올래요? 정말 좋죠."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, social, calendar, agreement",
        "readingKo": "Day 44: Invitations 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 '¿Quieres venir? / Me encantaría' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 9,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 59
      },
      "appChunks": {
        "lesson": "lessons/day-044.json",
        "audio": "audio/day-044.json",
        "review": "review/day-044.json"
      }
    },
    {
      "day": 45,
      "lessonId": "lesson-d45",
      "moduleId": "m04-routines-and-travel",
      "week": 7,
      "englishTheme": "Making plans with friends",
      "englishOutcome": "Coordinate place, time, and preferences.",
      "koreanTitle": "친구와 약속 잡기",
      "koreanGoal": "장소, 시간, 취향을 맞춰 약속을 정합니다.",
      "grammar": {
        "id": "pat-045-nos-vemos-en",
        "name": "Nos vemos en __ / ¿Te parece?",
        "koreanName": "장소와 시간 조율",
        "anchorSpanish": "Nos vemos en el parque a las cinco, ¿te parece?",
        "anchorKorean": "5시에 공원에서 봐요, 괜찮아요?"
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, plans, time",
        "readingKo": "Day 45: Making plans with friends 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Nos vemos en __ / ¿Te parece?' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 9,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 60
      },
      "appChunks": {
        "lesson": "lessons/day-045.json",
        "audio": "audio/day-045.json",
        "review": "review/day-045.json"
      }
    },
    {
      "day": 46,
      "lessonId": "lesson-d46",
      "moduleId": "m05-expanded-daily-life",
      "week": 7,
      "englishTheme": "Restaurant conversation",
      "englishOutcome": "Discuss menu options, allergies, and payment.",
      "koreanTitle": "식당 대화 확장",
      "koreanGoal": "메뉴, 알레르기, 결제에 대해 더 자세히 말합니다.",
      "grammar": {
        "id": "pat-046-que-lleva",
        "name": "¿Qué lleva? / Soy alérgico a __",
        "koreanName": "메뉴와 알레르기",
        "anchorSpanish": "¿Qué lleva este plato? Soy alérgica al camarón.",
        "anchorKorean": "이 요리에는 뭐가 들어가나요? 저는 새우 알레르기가 있어요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, restaurant, food, health",
        "readingKo": "Day 46: Restaurant conversation 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 '¿Qué lleva? / Soy alérgico a __' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 9,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 60
      },
      "appChunks": {
        "lesson": "lessons/day-046.json",
        "audio": "audio/day-046.json",
        "review": "review/day-046.json"
      }
    },
    {
      "day": 47,
      "lessonId": "lesson-d47",
      "moduleId": "m05-expanded-daily-life",
      "week": 7,
      "englishTheme": "Opinions about places",
      "englishOutcome": "Give simple reviews of restaurants and neighborhoods.",
      "koreanTitle": "장소에 대한 의견",
      "koreanGoal": "식당과 동네에 대해 짧은 리뷰를 말합니다.",
      "grammar": {
        "id": "pat-047-me-parece-porque",
        "name": "Me parece __ porque __",
        "koreanName": "이유가 있는 평가",
        "anchorSpanish": "El mercado me parece interesante porque tiene mucha comida.",
        "anchorKorean": "그 시장은 음식이 많아서 흥미로운 것 같아요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, description, opinion, money",
        "readingKo": "Day 47: Opinions about places 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Me parece __ porque __' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 9,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 59
      },
      "appChunks": {
        "lesson": "lessons/day-047.json",
        "audio": "audio/day-047.json",
        "review": "review/day-047.json"
      }
    },
    {
      "day": 48,
      "lessonId": "lesson-d48",
      "moduleId": "m05-expanded-daily-life",
      "week": 7,
      "englishTheme": "Storytelling with sequence",
      "englishOutcome": "Tell a short story using first, then, and finally.",
      "koreanTitle": "순서가 있는 이야기",
      "koreanGoal": "처음, 그다음, 마지막으로 이어지는 짧은 이야기를 합니다.",
      "grammar": {
        "id": "pat-048-primero-luego-al-final",
        "name": "Primero __, luego __, al final __",
        "koreanName": "짧은 이야기 구성",
        "anchorSpanish": "Primero fui al mercado, luego compré fruta y al final tomé café.",
        "anchorKorean": "먼저 시장에 갔고, 그 다음 과일을 샀고, 마지막에 커피를 마셨어요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, past, story, sequence",
        "readingKo": "Day 48: Storytelling with sequence 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Primero __, luego __, al final __' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 8,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 56
      },
      "appChunks": {
        "lesson": "lessons/day-048.json",
        "audio": "audio/day-048.json",
        "review": "review/day-048.json"
      }
    },
    {
      "day": 49,
      "lessonId": "lesson-d49",
      "moduleId": "m05-expanded-daily-life",
      "week": 7,
      "englishTheme": "Habit and frequency",
      "englishOutcome": "Talk about what you usually, sometimes, and never do.",
      "koreanTitle": "습관과 빈도",
      "koreanGoal": "보통, 가끔, 절대 하지 않는 일을 말합니다.",
      "grammar": {
        "id": "pat-049-suelo-casi-nunca",
        "name": "Suelo __ / casi nunca __",
        "koreanName": "습관과 빈도",
        "anchorSpanish": "Suelo estudiar español por la mañana, pero casi nunca estudio de noche.",
        "anchorKorean": "저는 보통 아침에 스페인어를 공부하지만 밤에는 거의 공부하지 않아요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, frequency, routine, opinion",
        "readingKo": "Day 49: Habit and frequency 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Suelo __ / casi nunca __' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 7,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 53
      },
      "appChunks": {
        "lesson": "lessons/day-049.json",
        "audio": "audio/day-049.json",
        "review": "review/day-049.json"
      }
    },
    {
      "day": 50,
      "lessonId": "lesson-d50",
      "moduleId": "m05-expanded-daily-life",
      "week": 8,
      "englishTheme": "Problem solving",
      "englishOutcome": "Explain a problem and negotiate a solution.",
      "koreanTitle": "문제 해결",
      "koreanGoal": "문제를 설명하고 해결책을 협의합니다.",
      "grammar": {
        "id": "pat-050-hay-un-problema-podemos",
        "name": "Hay un problema / ¿Podemos __?",
        "koreanName": "문제 설명과 해결 제안",
        "anchorSpanish": "Hay un problema con mi habitación. ¿Podemos cambiarla?",
        "anchorKorean": "제 방에 문제가 있어요. 바꿀 수 있을까요?"
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, problem, politeness",
        "readingKo": "Day 50: Problem solving 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Hay un problema / ¿Podemos __?' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 9,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 59
      },
      "appChunks": {
        "lesson": "lessons/day-050.json",
        "audio": "audio/day-050.json",
        "review": "review/day-050.json"
      }
    },
    {
      "day": 51,
      "lessonId": "lesson-d51",
      "moduleId": "m05-expanded-daily-life",
      "week": 8,
      "englishTheme": "Apartment search",
      "englishOutcome": "Ask about rent, location, rooms, and rules.",
      "koreanTitle": "집 구하기",
      "koreanGoal": "월세, 위치, 방, 규칙을 묻습니다.",
      "grammar": {
        "id": "pat-051-busco-un-departamento",
        "name": "Busco un departamento con __",
        "koreanName": "집 조건 말하기",
        "anchorSpanish": "Busco un departamento con dos cuartos cerca del metro.",
        "anchorKorean": "지하철 근처에 방 두 개 있는 아파트를 찾고 있어요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, housing, money",
        "readingKo": "Day 51: Apartment search 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Busco un departamento con __' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 9,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 59
      },
      "appChunks": {
        "lesson": "lessons/day-051.json",
        "audio": "audio/day-051.json",
        "review": "review/day-051.json"
      }
    },
    {
      "day": 52,
      "lessonId": "lesson-d52",
      "moduleId": "m05-expanded-daily-life",
      "week": 8,
      "englishTheme": "Utilities and internet",
      "englishOutcome": "Report service problems and schedule help.",
      "koreanTitle": "공과금과 인터넷",
      "koreanGoal": "서비스 문제를 신고하고 방문 일정을 잡습니다.",
      "grammar": {
        "id": "pat-052-no-funciona-el",
        "name": "No funciona el __ / Necesito reportarlo",
        "koreanName": "전기, 물, 인터넷 문제",
        "anchorSpanish": "No funciona el internet y necesito reportarlo hoy.",
        "anchorKorean": "인터넷이 작동하지 않아서 오늘 신고해야 해요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, utilities",
        "readingKo": "Day 52: Utilities and internet 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'No funciona el __ / Necesito reportarlo' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 10,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 63
      },
      "appChunks": {
        "lesson": "lessons/day-052.json",
        "audio": "audio/day-052.json",
        "review": "review/day-052.json"
      }
    },
    {
      "day": 53,
      "lessonId": "lesson-d53",
      "moduleId": "m05-expanded-daily-life",
      "week": 8,
      "englishTheme": "Clothing shopping",
      "englishOutcome": "Compare sizes, fits, prices, and colors.",
      "koreanTitle": "옷 쇼핑",
      "koreanGoal": "사이즈, 핏, 가격, 색상을 비교합니다.",
      "grammar": {
        "id": "pat-053-me-queda",
        "name": "Me queda __ / ¿Tiene otra talla?",
        "koreanName": "옷 사이즈와 착용감",
        "anchorSpanish": "Esta camisa me queda chica. ¿Tiene otra talla?",
        "anchorKorean": "이 셔츠는 저에게 작아요. 다른 사이즈 있나요?"
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, clothing, color, shopping",
        "readingKo": "Day 53: Clothing shopping 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Me queda __ / ¿Tiene otra talla?' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 10,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 63
      },
      "appChunks": {
        "lesson": "lessons/day-053.json",
        "audio": "audio/day-053.json",
        "review": "review/day-053.json"
      }
    },
    {
      "day": 54,
      "lessonId": "lesson-d54",
      "moduleId": "m05-expanded-daily-life",
      "week": 8,
      "englishTheme": "Returns and exchanges",
      "englishOutcome": "Ask to return, exchange, or fix a purchase issue.",
      "koreanTitle": "반품과 교환",
      "koreanGoal": "구매한 물건을 반품하거나 교환 요청합니다.",
      "grammar": {
        "id": "pat-054-quiero-cambiar",
        "name": "Quiero cambiar __ / Tengo el recibo",
        "koreanName": "반품과 교환 요청",
        "anchorSpanish": "Quiero cambiar estos zapatos porque me quedan grandes.",
        "anchorKorean": "이 신발이 커서 교환하고 싶어요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, shopping, money, past",
        "readingKo": "Day 54: Returns and exchanges 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Quiero cambiar __ / Tengo el recibo' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 9,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 59
      },
      "appChunks": {
        "lesson": "lessons/day-054.json",
        "audio": "audio/day-054.json",
        "review": "review/day-054.json"
      }
    },
    {
      "day": 55,
      "lessonId": "lesson-d55",
      "moduleId": "m05-expanded-daily-life",
      "week": 8,
      "englishTheme": "Public services",
      "englishOutcome": "Ask for help at offices, stations, and information desks.",
      "koreanTitle": "공공 서비스",
      "koreanGoal": "관공서, 역, 안내 데스크에서 도움을 요청합니다.",
      "grammar": {
        "id": "pat-055-donde-puedo",
        "name": "¿Dónde puedo __? / Necesito información sobre __",
        "koreanName": "공공기관에서 묻기",
        "anchorSpanish": "¿Dónde puedo pedir información sobre transporte público?",
        "anchorKorean": "대중교통 정보를 어디에서 물어볼 수 있나요?"
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, public, politeness, transport",
        "readingKo": "Day 55: Public services 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 '¿Dónde puedo __? / Necesito información sobre __' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 9,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 59
      },
      "appChunks": {
        "lesson": "lessons/day-055.json",
        "audio": "audio/day-055.json",
        "review": "review/day-055.json"
      }
    },
    {
      "day": 56,
      "lessonId": "lesson-d56",
      "moduleId": "m05-expanded-daily-life",
      "week": 8,
      "englishTheme": "Cultural events",
      "englishOutcome": "Talk about concerts, festivals, museums, and plans.",
      "koreanTitle": "문화 행사",
      "koreanGoal": "공연, 축제, 박물관, 계획을 말합니다.",
      "grammar": {
        "id": "pat-056-hay-un-evento",
        "name": "Hay un evento / ¿Cuánto dura?",
        "koreanName": "문화 행사 이야기",
        "anchorSpanish": "Hay un concierto gratis en el parque. ¿Cuánto dura?",
        "anchorKorean": "공원에서 무료 콘서트가 있어요. 얼마나 오래 하나요?"
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, culture, opinion, money",
        "readingKo": "Day 56: Cultural events 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Hay un evento / ¿Cuánto dura?' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 10,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 62
      },
      "appChunks": {
        "lesson": "lessons/day-056.json",
        "audio": "audio/day-056.json",
        "review": "review/day-056.json"
      }
    },
    {
      "day": 57,
      "lessonId": "lesson-d57",
      "moduleId": "m05-expanded-daily-life",
      "week": 9,
      "englishTheme": "Personal background",
      "englishOutcome": "Talk about where you are from and your life path simply.",
      "koreanTitle": "개인 배경",
      "koreanGoal": "출신과 삶의 흐름을 간단히 말합니다.",
      "grammar": {
        "id": "pat-057-naci-creci-vivo",
        "name": "Nací en __ / Crecí en __ / Ahora vivo en __",
        "koreanName": "개인 배경",
        "anchorSpanish": "Nací en Corea, crecí en Seúl y ahora vivo en México.",
        "anchorKorean": "저는 한국에서 태어났고 서울에서 자랐고 지금은 멕시코에 살아요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, background, past, connector",
        "readingKo": "Day 57: Personal background 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Nací en __ / Crecí en __ / Ahora vivo en __' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 8,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 56
      },
      "appChunks": {
        "lesson": "lessons/day-057.json",
        "audio": "audio/day-057.json",
        "review": "review/day-057.json"
      }
    },
    {
      "day": 58,
      "lessonId": "lesson-d58",
      "moduleId": "m05-expanded-daily-life",
      "week": 9,
      "englishTheme": "Goals and motivation",
      "englishOutcome": "Explain why you are learning Spanish.",
      "koreanTitle": "목표와 동기",
      "koreanGoal": "스페인어를 배우는 이유를 설명합니다.",
      "grammar": {
        "id": "pat-058-quiero-aprender-para",
        "name": "Quiero aprender __ para __",
        "koreanName": "목표와 동기",
        "anchorSpanish": "Quiero aprender español para hablar con más personas.",
        "anchorKorean": "더 많은 사람들과 말하기 위해 스페인어를 배우고 싶어요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, motivation, study, listening",
        "readingKo": "Day 58: Goals and motivation 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Quiero aprender __ para __' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 9,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 59
      },
      "appChunks": {
        "lesson": "lessons/day-058.json",
        "audio": "audio/day-058.json",
        "review": "review/day-058.json"
      }
    },
    {
      "day": 59,
      "lessonId": "lesson-d59",
      "moduleId": "m05-expanded-daily-life",
      "week": 9,
      "englishTheme": "Opinions with reasons",
      "englishOutcome": "Say what you think and give simple reasons.",
      "koreanTitle": "이유가 있는 의견",
      "koreanGoal": "생각을 말하고 간단한 이유를 붙입니다.",
      "grammar": {
        "id": "pat-059-pienso-que-porque",
        "name": "Pienso que __ porque __",
        "koreanName": "의견과 이유",
        "anchorSpanish": "Pienso que practicar todos los días es importante porque ayuda a recordar.",
        "anchorKorean": "매일 연습하는 것이 기억에 도움이 되기 때문에 중요하다고 생각해요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, opinion, connector, study",
        "readingKo": "Day 59: Opinions with reasons 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Pienso que __ porque __' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 8,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 56
      },
      "appChunks": {
        "lesson": "lessons/day-059.json",
        "audio": "audio/day-059.json",
        "review": "review/day-059.json"
      }
    },
    {
      "day": 60,
      "lessonId": "lesson-d60",
      "moduleId": "m05-expanded-daily-life",
      "week": 9,
      "englishTheme": "Listening to stories",
      "englishOutcome": "Understand short personal stories and answer questions.",
      "koreanTitle": "짧은 이야기 듣기",
      "koreanGoal": "개인 이야기를 듣고 질문에 답합니다.",
      "grammar": {
        "id": "pat-060-escuche-y-responda",
        "name": "Escuché que __ / La historia dice que __",
        "koreanName": "듣고 요약하기",
        "anchorSpanish": "Escuché que Ana fue al mercado y compró fruta para su familia.",
        "anchorKorean": "아나가 시장에 가서 가족을 위해 과일을 샀다고 들었어요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, listening, story, testing",
        "readingKo": "Day 60: Listening to stories 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Escuché que __ / La historia dice que __' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 8,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 56
      },
      "appChunks": {
        "lesson": "lessons/day-060.json",
        "audio": "audio/day-060.json",
        "review": "review/day-060.json"
      }
    },
    {
      "day": 61,
      "lessonId": "lesson-d61",
      "moduleId": "m06-a1-to-a2-bridge",
      "week": 9,
      "englishTheme": "Speaking test 1",
      "englishOutcome": "Pass a guided A1 survival conversation test.",
      "koreanTitle": "말하기 시험 1",
      "koreanGoal": "A1 생존 회화를 코칭과 함께 통과합니다.",
      "grammar": {
        "id": "pat-061-speaking-test-1",
        "name": "Preséntate / Pide ayuda / Resuelve",
        "koreanName": "A1 생존 말하기 시험",
        "anchorSpanish": "Me llamo Mina, soy de Corea y necesito llegar al hotel.",
        "anchorKorean": "제 이름은 미나이고 한국에서 왔으며 호텔에 도착해야 해요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, speaking, testing, coaching",
        "readingKo": "Day 61: Speaking test 1 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Preséntate / Pide ayuda / Resuelve' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 9,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 59
      },
      "appChunks": {
        "lesson": "lessons/day-061.json",
        "audio": "audio/day-061.json",
        "review": "review/day-061.json"
      }
    },
    {
      "day": 62,
      "lessonId": "lesson-d62",
      "moduleId": "m06-a1-to-a2-bridge",
      "week": 9,
      "englishTheme": "Repair and review week",
      "englishOutcome": "Recycle weak words through new scenarios.",
      "koreanTitle": "복구와 복습 주간",
      "koreanGoal": "약한 단어를 새 상황 속에서 다시 노출합니다.",
      "grammar": {
        "id": "pat-062-error-correccion",
        "name": "Me equivoqué / Quise decir __",
        "koreanName": "실수 수정과 재시도",
        "anchorSpanish": "Me equivoqué. Quise decir farmacia, no supermercado.",
        "anchorKorean": "제가 실수했어요. 슈퍼마켓이 아니라 약국이라고 말하려고 했어요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, repair, coaching, review",
        "readingKo": "Day 62: Repair and review week 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Me equivoqué / Quise decir __' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 9,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 59
      },
      "appChunks": {
        "lesson": "lessons/day-062.json",
        "audio": "audio/day-062.json",
        "review": "review/day-062.json"
      }
    },
    {
      "day": 63,
      "lessonId": "lesson-d63",
      "moduleId": "m06-a1-to-a2-bridge",
      "week": 9,
      "englishTheme": "Food and health review",
      "englishOutcome": "Combine ordering, symptoms, and preferences.",
      "koreanTitle": "음식과 건강 복습",
      "koreanGoal": "주문, 증상, 취향 표현을 결합합니다.",
      "grammar": {
        "id": "pat-063-comida-salud-review",
        "name": "Comí __ y me duele __",
        "koreanName": "음식과 건강 연결",
        "anchorSpanish": "Comí mariscos y ahora me duele el estómago.",
        "anchorKorean": "해산물을 먹었고 지금 배가 아파요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, health, food",
        "readingKo": "Day 63: Food and health review 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Comí __ y me duele __' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 8,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 56
      },
      "appChunks": {
        "lesson": "lessons/day-063.json",
        "audio": "audio/day-063.json",
        "review": "review/day-063.json"
      }
    },
    {
      "day": 64,
      "lessonId": "lesson-d64",
      "moduleId": "m06-a1-to-a2-bridge",
      "week": 10,
      "englishTheme": "City navigation review",
      "englishOutcome": "Combine directions, transport, and time.",
      "koreanTitle": "도시 이동 복습",
      "koreanGoal": "길 묻기, 교통, 시간을 결합합니다.",
      "grammar": {
        "id": "pat-064-ciudad-review",
        "name": "Tomo __ hasta __ / Me bajo en __",
        "koreanName": "도시 이동 통합",
        "anchorSpanish": "Tomo el metro hasta el centro y me bajo en la próxima estación.",
        "anchorKorean": "지하철을 타고 중심가까지 가서 다음 역에서 내려요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, transport, directions, place",
        "readingKo": "Day 64: City navigation review 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Tomo __ hasta __ / Me bajo en __' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 9,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 59
      },
      "appChunks": {
        "lesson": "lessons/day-064.json",
        "audio": "audio/day-064.json",
        "review": "review/day-064.json"
      }
    },
    {
      "day": 65,
      "lessonId": "lesson-d65",
      "moduleId": "m06-a1-to-a2-bridge",
      "week": 10,
      "englishTheme": "Social review",
      "englishOutcome": "Combine introductions, hobbies, and invitations.",
      "koreanTitle": "사회적 대화 복습",
      "koreanGoal": "소개, 취미, 초대를 결합합니다.",
      "grammar": {
        "id": "pat-065-social-review",
        "name": "¿Qué haces? / ¿Quieres __?",
        "koreanName": "사회적 연결",
        "anchorSpanish": "Trabajo por la mañana, estudio español y quiero tomar café contigo.",
        "anchorKorean": "아침에는 일하고 스페인어를 공부하고 당신과 커피를 마시고 싶어요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, social, mexico, plans",
        "readingKo": "Day 65: Social review 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 '¿Qué haces? / ¿Quieres __?' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 9,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 59
      },
      "appChunks": {
        "lesson": "lessons/day-065.json",
        "audio": "audio/day-065.json",
        "review": "review/day-065.json"
      }
    },
    {
      "day": 66,
      "lessonId": "lesson-d66",
      "moduleId": "m06-a1-to-a2-bridge",
      "week": 10,
      "englishTheme": "Present-progressive actions",
      "englishOutcome": "Say what is happening right now.",
      "koreanTitle": "지금 하고 있는 행동",
      "koreanGoal": "현재 진행 중인 일을 말합니다.",
      "grammar": {
        "id": "pat-066-estoy-gerundio",
        "name": "Estoy hablando / Estoy esperando",
        "koreanName": "현재 진행 말하기",
        "anchorSpanish": "Estoy esperando el autobús y estoy escuchando español.",
        "anchorKorean": "버스를 기다리면서 스페인어를 듣고 있어요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, present-progressive, connector, phone",
        "readingKo": "Day 66: Present-progressive actions 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Estoy hablando / Estoy esperando' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 8,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 56
      },
      "appChunks": {
        "lesson": "lessons/day-066.json",
        "audio": "audio/day-066.json",
        "review": "review/day-066.json"
      }
    },
    {
      "day": 67,
      "lessonId": "lesson-d67",
      "moduleId": "m06-a1-to-a2-bridge",
      "week": 10,
      "englishTheme": "Comparing past and present",
      "englishOutcome": "Contrast before and now with simple chunks.",
      "koreanTitle": "과거와 현재 비교",
      "koreanGoal": "예전과 지금을 간단한 덩어리로 대조합니다.",
      "grammar": {
        "id": "pat-067-antes-ahora",
        "name": "Antes __, ahora __",
        "koreanName": "과거와 현재 비교",
        "anchorSpanish": "Antes me daba miedo hablar, pero ahora puedo pedir ayuda.",
        "anchorKorean": "예전에는 말하기가 두려웠지만 지금은 도움을 요청할 수 있어요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, past-present, comparison, motivation",
        "readingKo": "Day 67: Comparing past and present 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Antes __, ahora __' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 8,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 56
      },
      "appChunks": {
        "lesson": "lessons/day-067.json",
        "audio": "audio/day-067.json",
        "review": "review/day-067.json"
      }
    },
    {
      "day": 68,
      "lessonId": "lesson-d68",
      "moduleId": "m06-a1-to-a2-bridge",
      "week": 10,
      "englishTheme": "Giving advice",
      "englishOutcome": "Use should/need/can language in everyday situations.",
      "koreanTitle": "조언하기",
      "koreanGoal": "해야 한다, 필요하다, 할 수 있다 표현으로 조언합니다.",
      "grammar": {
        "id": "pat-068-deberias-necesitas",
        "name": "Deberías __ / Necesitas __",
        "koreanName": "조언하기",
        "anchorSpanish": "Deberías escuchar más español y practicar con frases cortas.",
        "anchorKorean": "스페인어를 더 듣고 짧은 문장으로 연습하는 게 좋아요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, advice, study, coaching",
        "readingKo": "Day 68: Giving advice 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Deberías __ / Necesitas __' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 8,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 56
      },
      "appChunks": {
        "lesson": "lessons/day-068.json",
        "audio": "audio/day-068.json",
        "review": "review/day-068.json"
      }
    },
    {
      "day": 69,
      "lessonId": "lesson-d69",
      "moduleId": "m06-a1-to-a2-bridge",
      "week": 10,
      "englishTheme": "Requests and permissions",
      "englishOutcome": "Ask if you may, can, or should do something.",
      "koreanTitle": "요청과 허락",
      "koreanGoal": "해도 되는지, 할 수 있는지, 해야 하는지 묻습니다.",
      "grammar": {
        "id": "pat-069-puedo-se-puede",
        "name": "¿Puedo __? / ¿Se puede __?",
        "koreanName": "허락과 가능 여부",
        "anchorSpanish": "¿Puedo sentarme aquí? ¿Se puede pagar con tarjeta?",
        "anchorKorean": "여기 앉아도 될까요? 카드로 결제할 수 있나요?"
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, permission, restaurant, conversation",
        "readingKo": "Day 69: Requests and permissions 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 '¿Puedo __? / ¿Se puede __?' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 8,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 56
      },
      "appChunks": {
        "lesson": "lessons/day-069.json",
        "audio": "audio/day-069.json",
        "review": "review/day-069.json"
      }
    },
    {
      "day": 70,
      "lessonId": "lesson-d70",
      "moduleId": "m06-a1-to-a2-bridge",
      "week": 10,
      "englishTheme": "Descriptions of people",
      "englishOutcome": "Describe appearance, personality, and relationships.",
      "koreanTitle": "사람 묘사",
      "koreanGoal": "외모, 성격, 관계를 설명합니다.",
      "grammar": {
        "id": "pat-070-es-tiene-parece",
        "name": "Es __ / Tiene __ / Parece __",
        "koreanName": "사람 설명",
        "anchorSpanish": "Mi amiga es tranquila, tiene el pelo largo y parece muy amable.",
        "anchorKorean": "제 친구는 차분하고 머리가 길고 매우 친절해 보여요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, appearance, personality, description",
        "readingKo": "Day 70: Descriptions of people 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Es __ / Tiene __ / Parece __' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 8,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 56
      },
      "appChunks": {
        "lesson": "lessons/day-070.json",
        "audio": "audio/day-070.json",
        "review": "review/day-070.json"
      }
    },
    {
      "day": 71,
      "lessonId": "lesson-d71",
      "moduleId": "m06-a1-to-a2-bridge",
      "week": 11,
      "englishTheme": "Descriptions of places",
      "englishOutcome": "Describe size, atmosphere, safety, and convenience.",
      "koreanTitle": "장소 묘사",
      "koreanGoal": "크기, 분위기, 안전, 편리함을 설명합니다.",
      "grammar": {
        "id": "pat-071-es-queda-tiene",
        "name": "Es __ / Queda __ / Tiene __",
        "koreanName": "장소 설명",
        "anchorSpanish": "El café es tranquilo, queda cerca de mi casa y tiene buen internet.",
        "anchorKorean": "그 카페는 조용하고 제 집 근처에 있으며 인터넷이 좋아요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, place, opinion",
        "readingKo": "Day 71: Descriptions of places 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Es __ / Queda __ / Tiene __' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 8,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 56
      },
      "appChunks": {
        "lesson": "lessons/day-071.json",
        "audio": "audio/day-071.json",
        "review": "review/day-071.json"
      }
    },
    {
      "day": 72,
      "lessonId": "lesson-d72",
      "moduleId": "m06-a1-to-a2-bridge",
      "week": 11,
      "englishTheme": "Emotions in context",
      "englishOutcome": "Explain why you feel nervous, happy, tired, or confused.",
      "koreanTitle": "맥락 속 감정",
      "koreanGoal": "긴장, 기쁨, 피곤함, 혼란의 이유를 말합니다.",
      "grammar": {
        "id": "pat-072-me-siento-porque",
        "name": "Me siento __ porque __",
        "koreanName": "감정과 이유",
        "anchorSpanish": "Me siento nerviosa porque tengo una conversación en español.",
        "anchorKorean": "스페인어 대화가 있어서 긴장돼요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, feelings, coaching, motivation",
        "readingKo": "Day 72: Emotions in context 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Me siento __ porque __' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 8,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 56
      },
      "appChunks": {
        "lesson": "lessons/day-072.json",
        "audio": "audio/day-072.json",
        "review": "review/day-072.json"
      }
    },
    {
      "day": 73,
      "lessonId": "lesson-d73",
      "moduleId": "m06-a1-to-a2-bridge",
      "week": 11,
      "englishTheme": "Workplace small talk",
      "englishOutcome": "Handle greetings, tasks, and simple updates at work.",
      "koreanTitle": "직장 스몰토크",
      "koreanGoal": "인사, 업무, 간단한 업데이트를 처리합니다.",
      "grammar": {
        "id": "pat-073-trabajo-update",
        "name": "Estoy trabajando en __ / ¿Cómo va __?",
        "koreanName": "직장 근황",
        "anchorSpanish": "Estoy trabajando en un proyecto nuevo. ¿Cómo va tu semana?",
        "anchorKorean": "새 프로젝트를 하고 있어요. 이번 주 어때요?"
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, work",
        "readingKo": "Day 73: Workplace small talk 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Estoy trabajando en __ / ¿Cómo va __?' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 9,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 59
      },
      "appChunks": {
        "lesson": "lessons/day-073.json",
        "audio": "audio/day-073.json",
        "review": "review/day-073.json"
      }
    },
    {
      "day": 74,
      "lessonId": "lesson-d74",
      "moduleId": "m06-a1-to-a2-bridge",
      "week": 11,
      "englishTheme": "Study plan conversation",
      "englishOutcome": "Discuss classes, practice, homework, and progress.",
      "koreanTitle": "학습 계획 대화",
      "koreanGoal": "수업, 연습, 숙제, 진전을 이야기합니다.",
      "grammar": {
        "id": "pat-074-plan-de-estudio",
        "name": "Voy a practicar __ durante __",
        "koreanName": "학습 계획 말하기",
        "anchorSpanish": "Voy a practicar pronunciación durante quince minutos cada día.",
        "anchorKorean": "매일 15분 동안 발음을 연습할 거예요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, study, motivation, review",
        "readingKo": "Day 74: Study plan conversation 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Voy a practicar __ durante __' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 8,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 56
      },
      "appChunks": {
        "lesson": "lessons/day-074.json",
        "audio": "audio/day-074.json",
        "review": "review/day-074.json"
      }
    },
    {
      "day": 75,
      "lessonId": "lesson-d75",
      "moduleId": "m06-a1-to-a2-bridge",
      "week": 11,
      "englishTheme": "Online conversation",
      "englishOutcome": "Write short messages and voice notes naturally.",
      "koreanTitle": "온라인 대화",
      "koreanGoal": "짧은 메시지와 음성 메시지를 자연스럽게 씁니다.",
      "grammar": {
        "id": "pat-075-mensajes-cortos",
        "name": "Te mando __ / ¿Puedes confirmar?",
        "koreanName": "메시지와 음성노트",
        "anchorSpanish": "Te mando un mensaje de voz y me confirmas si se entiende.",
        "anchorKorean": "음성 메시지를 보낼 테니 이해되는지 확인해 주세요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, phone, communication, politeness",
        "readingKo": "Day 75: Online conversation 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Te mando __ / ¿Puedes confirmar?' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 9,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 59
      },
      "appChunks": {
        "lesson": "lessons/day-075.json",
        "audio": "audio/day-075.json",
        "review": "review/day-075.json"
      }
    },
    {
      "day": 76,
      "lessonId": "lesson-d76",
      "moduleId": "m07-integration-and-tests",
      "week": 11,
      "englishTheme": "Polite disagreement",
      "englishOutcome": "Disagree gently and suggest alternatives.",
      "koreanTitle": "공손한 반대",
      "koreanGoal": "부드럽게 반대하고 대안을 제안합니다.",
      "grammar": {
        "id": "pat-076-no-estoy-seguro-pero",
        "name": "Entiendo, pero __ / No estoy seguro",
        "koreanName": "부드럽게 반대하기",
        "anchorSpanish": "Entiendo tu punto, pero creo que otra opción es mejor.",
        "anchorKorean": "당신의 의견은 이해하지만 다른 선택지가 더 좋다고 생각해요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, opinion, politeness, suggestion",
        "readingKo": "Day 76: Polite disagreement 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Entiendo, pero __ / No estoy seguro' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 8,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 56
      },
      "appChunks": {
        "lesson": "lessons/day-076.json",
        "audio": "audio/day-076.json",
        "review": "review/day-076.json"
      }
    },
    {
      "day": 77,
      "lessonId": "lesson-d77",
      "moduleId": "m07-integration-and-tests",
      "week": 11,
      "englishTheme": "Clarifying misunderstandings",
      "englishOutcome": "Repair meaning, pronunciation, and intention.",
      "koreanTitle": "오해 명확히 하기",
      "koreanGoal": "의미, 발음, 의도를 다시 확인합니다.",
      "grammar": {
        "id": "pat-077-queria-decir",
        "name": "Quería decir __ / No fue mi intención",
        "koreanName": "오해 정리",
        "anchorSpanish": "No fue mi intención sonar grosera. Quería decir que necesito más tiempo.",
        "anchorKorean": "무례하게 들리려던 의도는 아니었어요. 시간이 더 필요하다는 뜻이었어요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, repair, communication, politeness",
        "readingKo": "Day 77: Clarifying misunderstandings 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Quería decir __ / No fue mi intención' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 9,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 59
      },
      "appChunks": {
        "lesson": "lessons/day-077.json",
        "audio": "audio/day-077.json",
        "review": "review/day-077.json"
      }
    },
    {
      "day": 78,
      "lessonId": "lesson-d78",
      "moduleId": "m07-integration-and-tests",
      "week": 12,
      "englishTheme": "Mini debate",
      "englishOutcome": "Defend a simple preference with two reasons.",
      "koreanTitle": "미니 토론",
      "koreanGoal": "선호를 두 가지 이유로 방어합니다.",
      "grammar": {
        "id": "pat-078-opinion-dos-razones",
        "name": "Mi opinión es __ por dos razones",
        "koreanName": "두 가지 이유로 의견 말하기",
        "anchorSpanish": "Mi opinión es que practicar con frases es mejor por dos razones.",
        "anchorKorean": "제 의견은 두 가지 이유로 문장으로 연습하는 것이 더 좋다는 것입니다."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, opinion, connector, conversation",
        "readingKo": "Day 78: Mini debate 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Mi opinión es __ por dos razones' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 8,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 56
      },
      "appChunks": {
        "lesson": "lessons/day-078.json",
        "audio": "audio/day-078.json",
        "review": "review/day-078.json"
      }
    },
    {
      "day": 79,
      "lessonId": "lesson-d79",
      "moduleId": "m07-integration-and-tests",
      "week": 12,
      "englishTheme": "Speaking test 2",
      "englishOutcome": "Complete mixed A1/A2 role-play with feedback mode.",
      "koreanTitle": "말하기 시험 2",
      "koreanGoal": "A1/A2 혼합 역할극을 피드백 모드로 수행합니다.",
      "grammar": {
        "id": "pat-079-speaking-test-2",
        "name": "Escucha / Responde / Pregunta / Repara",
        "koreanName": "A1/A2 혼합 말하기 시험",
        "anchorSpanish": "Puedo responder, hacer una pregunta y corregirme si me equivoco.",
        "anchorKorean": "대답하고 질문하고 실수하면 스스로 고칠 수 있어요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, testing, feedback, repair",
        "readingKo": "Day 79: Speaking test 2 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Escucha / Responde / Pregunta / Repara' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 8,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 56
      },
      "appChunks": {
        "lesson": "lessons/day-079.json",
        "audio": "audio/day-079.json",
        "review": "review/day-079.json"
      }
    },
    {
      "day": 80,
      "lessonId": "lesson-d80",
      "moduleId": "m07-integration-and-tests",
      "week": 12,
      "englishTheme": "Reading week",
      "englishOutcome": "Read short practical texts: signs, menus, messages, notices.",
      "koreanTitle": "읽기 주간",
      "koreanGoal": "표지판, 메뉴, 메시지, 공지 같은 실용 텍스트를 읽습니다.",
      "grammar": {
        "id": "pat-080-reading-signs",
        "name": "El aviso dice que __",
        "koreanName": "표지판과 안내문 읽기",
        "anchorSpanish": "El aviso dice que la oficina está cerrada hasta el lunes.",
        "anchorKorean": "안내문에는 사무실이 월요일까지 닫혀 있다고 쓰여 있어요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, reading, calendar",
        "readingKo": "Day 80: Reading week 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'El aviso dice que __' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 8,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 56
      },
      "appChunks": {
        "lesson": "lessons/day-080.json",
        "audio": "audio/day-080.json",
        "review": "review/day-080.json"
      }
    },
    {
      "day": 81,
      "lessonId": "lesson-d81",
      "moduleId": "m07-integration-and-tests",
      "week": 12,
      "englishTheme": "Listening week",
      "englishOutcome": "Understand short announcements and voice messages.",
      "koreanTitle": "듣기 주간",
      "koreanGoal": "짧은 안내 방송과 음성 메시지를 이해합니다.",
      "grammar": {
        "id": "pat-081-listening-voice",
        "name": "El mensaje dice que __",
        "koreanName": "음성 메시지 이해",
        "anchorSpanish": "El mensaje dice que la reunión cambió a las tres.",
        "anchorKorean": "음성 메시지는 회의가 3시로 바뀌었다고 말해요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, listening, phone, speaking",
        "readingKo": "Day 81: Listening week 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'El mensaje dice que __' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 8,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 56
      },
      "appChunks": {
        "lesson": "lessons/day-081.json",
        "audio": "audio/day-081.json",
        "review": "review/day-081.json"
      }
    },
    {
      "day": 82,
      "lessonId": "lesson-d82",
      "moduleId": "m07-integration-and-tests",
      "week": 12,
      "englishTheme": "Writing week",
      "englishOutcome": "Write practical messages, requests, and short self-introductions.",
      "koreanTitle": "쓰기 주간",
      "koreanGoal": "실용 메시지, 요청, 짧은 자기소개를 씁니다.",
      "grammar": {
        "id": "pat-082-writing-short",
        "name": "Hola __, necesito __. Gracias.",
        "koreanName": "짧은 메시지 쓰기",
        "anchorSpanish": "Hola, necesito cambiar mi cita para mañana. Gracias por su ayuda.",
        "anchorKorean": "안녕하세요, 제 약속을 내일로 바꿔야 합니다. 도와주셔서 감사합니다."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, writing",
        "readingKo": "Day 82: Writing week 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Hola __, necesito __. Gracias.' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 8,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 56
      },
      "appChunks": {
        "lesson": "lessons/day-082.json",
        "audio": "audio/day-082.json",
        "review": "review/day-082.json"
      }
    },
    {
      "day": 83,
      "lessonId": "lesson-d83",
      "moduleId": "m07-integration-and-tests",
      "week": 12,
      "englishTheme": "Conversation week",
      "englishOutcome": "Sustain longer everyday conversations with follow-up questions.",
      "koreanTitle": "대화 주간",
      "koreanGoal": "후속 질문으로 더 긴 일상 대화를 유지합니다.",
      "grammar": {
        "id": "pat-083-follow-up",
        "name": "¿Y tú? / Cuéntame más",
        "koreanName": "대화 이어가기",
        "anchorSpanish": "Me gusta cocinar los fines de semana. ¿Y tú? Cuéntame más.",
        "anchorKorean": "저는 주말에 요리하는 것을 좋아해요. 당신은요? 더 이야기해 주세요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, reaction, conversation, question",
        "readingKo": "Day 83: Conversation week 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 '¿Y tú? / Cuéntame más' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 8,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 56
      },
      "appChunks": {
        "lesson": "lessons/day-083.json",
        "audio": "audio/day-083.json",
        "review": "review/day-083.json"
      }
    },
    {
      "day": 84,
      "lessonId": "lesson-d84",
      "moduleId": "m07-integration-and-tests",
      "week": 12,
      "englishTheme": "Travel mission",
      "englishOutcome": "Handle a full day of travel situations.",
      "koreanTitle": "여행 미션",
      "koreanGoal": "하루 여행 상황 전체를 스페인어로 처리합니다.",
      "grammar": {
        "id": "pat-084-travel-mission",
        "name": "Reservo / Viajo / Resuelvo",
        "koreanName": "하루 여행 수행",
        "anchorSpanish": "Reservé un hotel, perdí mi vuelo y necesito cambiar mi boleto.",
        "anchorKorean": "호텔을 예약했고 비행기를 놓쳤고 표를 바꿔야 해요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, travel, airport, problem",
        "readingKo": "Day 84: Travel mission 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Reservo / Viajo / Resuelvo' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 8,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 56
      },
      "appChunks": {
        "lesson": "lessons/day-084.json",
        "audio": "audio/day-084.json",
        "review": "review/day-084.json"
      }
    },
    {
      "day": 85,
      "lessonId": "lesson-d85",
      "moduleId": "m07-integration-and-tests",
      "week": 13,
      "englishTheme": "Social mission",
      "englishOutcome": "Meet people, make plans, and talk about yourself.",
      "koreanTitle": "사회적 미션",
      "koreanGoal": "사람을 만나고 약속을 잡고 자신에 대해 말합니다.",
      "grammar": {
        "id": "pat-085-social-mission",
        "name": "Conozco / Invito / Confirmo",
        "koreanName": "사람 만나고 약속 잡기",
        "anchorSpanish": "Conocí a una persona nueva, la invité a un café y confirmé la hora.",
        "anchorKorean": "새로운 사람을 만났고 커피에 초대했고 시간을 확인했어요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, social, plans, conversation",
        "readingKo": "Day 85: Social mission 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Conozco / Invito / Confirmo' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 9,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 59
      },
      "appChunks": {
        "lesson": "lessons/day-085.json",
        "audio": "audio/day-085.json",
        "review": "review/day-085.json"
      }
    },
    {
      "day": 86,
      "lessonId": "lesson-d86",
      "moduleId": "m07-integration-and-tests",
      "week": 13,
      "englishTheme": "Problem mission",
      "englishOutcome": "Solve a lost item, delay, health, or service problem.",
      "koreanTitle": "문제 해결 미션",
      "koreanGoal": "분실, 지연, 건강, 서비스 문제를 해결합니다.",
      "grammar": {
        "id": "pat-086-problem-mission",
        "name": "Perdí __ / No funciona __ / Necesito __",
        "koreanName": "문제 해결 통합",
        "anchorSpanish": "Perdí mi celular, no funciona mi tarjeta y necesito llamar a mi banco.",
        "anchorKorean": "휴대폰을 잃어버렸고 카드가 작동하지 않아서 은행에 전화해야 해요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, problem, feelings, money",
        "readingKo": "Day 86: Problem mission 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Perdí __ / No funciona __ / Necesito __' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 8,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 56
      },
      "appChunks": {
        "lesson": "lessons/day-086.json",
        "audio": "audio/day-086.json",
        "review": "review/day-086.json"
      }
    },
    {
      "day": 87,
      "lessonId": "lesson-d87",
      "moduleId": "m07-integration-and-tests",
      "week": 13,
      "englishTheme": "Personal story mission",
      "englishOutcome": "Tell a short story about your week and goals.",
      "koreanTitle": "개인 이야기 미션",
      "koreanGoal": "한 주와 목표에 대한 짧은 이야기를 합니다.",
      "grammar": {
        "id": "pat-087-mi-semana",
        "name": "Esta semana __ / Aprendí que __",
        "koreanName": "내 주 이야기",
        "anchorSpanish": "Esta semana practiqué español, hablé con una persona nueva y aprendí que puedo mejorar.",
        "anchorKorean": "이번 주에 스페인어를 연습했고 새로운 사람과 이야기했고 나아질 수 있다는 것을 배웠어요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, reflection, motivation, feelings",
        "readingKo": "Day 87: Personal story mission 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Esta semana __ / Aprendí que __' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 8,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 56
      },
      "appChunks": {
        "lesson": "lessons/day-087.json",
        "audio": "audio/day-087.json",
        "review": "review/day-087.json"
      }
    },
    {
      "day": 88,
      "lessonId": "lesson-d88",
      "moduleId": "m07-integration-and-tests",
      "week": 13,
      "englishTheme": "Final review",
      "englishOutcome": "Recycle high-value words and patterns across all domains.",
      "koreanTitle": "최종 복습",
      "koreanGoal": "핵심 단어와 패턴을 모든 영역에서 재사용합니다.",
      "grammar": {
        "id": "pat-088-final-review",
        "name": "Puedo __ en __ situaciones",
        "koreanName": "최종 기능 복습",
        "anchorSpanish": "Puedo pedir comida, explicar un problema y mantener una conversación sencilla.",
        "anchorKorean": "음식을 주문하고 문제를 설명하고 간단한 대화를 유지할 수 있어요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, review, testing",
        "readingKo": "Day 88: Final review 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Puedo __ en __ situaciones' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 8,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 56
      },
      "appChunks": {
        "lesson": "lessons/day-088.json",
        "audio": "audio/day-088.json",
        "review": "review/day-088.json"
      }
    },
    {
      "day": 89,
      "lessonId": "lesson-d89",
      "moduleId": "m07-integration-and-tests",
      "week": 13,
      "englishTheme": "Final mixed rehearsal",
      "englishOutcome": "Practice one complete day of travel, social, and problem-solving Spanish.",
      "koreanTitle": "최종 혼합 리허설",
      "koreanGoal": "여행, 사회, 문제 해결이 섞인 하루를 연습합니다.",
      "grammar": {
        "id": "pat-089-final-rehearsal",
        "name": "Viajo / Socializo / Resuelvo",
        "koreanName": "최종 혼합 리허설",
        "anchorSpanish": "Viajo al centro, conozco a una persona y resuelvo un problema con mi boleto.",
        "anchorKorean": "중심가로 이동하고 사람을 만나고 제 표 문제를 해결해요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, testing, speaking, conversation",
        "readingKo": "Day 89: Final mixed rehearsal 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Viajo / Socializo / Resuelvo' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 8,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 56
      },
      "appChunks": {
        "lesson": "lessons/day-089.json",
        "audio": "audio/day-089.json",
        "review": "review/day-089.json"
      }
    },
    {
      "day": 90,
      "lessonId": "lesson-d90",
      "moduleId": "m07-integration-and-tests",
      "week": 13,
      "englishTheme": "Final speaking test",
      "englishOutcome": "Complete a mixed scenario conversation without coaching.",
      "koreanTitle": "최종 말하기 시험",
      "koreanGoal": "코칭 없이 혼합 상황 대화를 끝까지 수행합니다.",
      "grammar": {
        "id": "pat-090-final-speaking-test",
        "name": "Hablo / Escucho / Reparo / Continúo",
        "koreanName": "최종 말하기 시험",
        "anchorSpanish": "Puedo hablar, escuchar, pedir ayuda y continuar la conversación en español.",
        "anchorKorean": "스페인어로 말하고 듣고 도움을 요청하고 대화를 이어갈 수 있어요."
      },
      "focus": {
        "vocabKo": "핵심 어휘 태그: latam, mexico-neutral, motivation, testing, feedback",
        "readingKo": "Day 90: Final speaking test 읽기에서 6개 문장으로 오늘 표현을 다시 확인합니다.",
        "speakingKo": "5개의 말하기 프롬프트로 'Hablo / Escucho / Reparo / Continúo' 패턴을 입으로 꺼냅니다.",
        "testKo": "5개의 테스트 프롬프트로 의미 전달, 핵심 단어 사용, 발음 명확성, 도움 요청 능력을 확인합니다."
      },
      "counts": {
        "vocabulary": 18,
        "coreSentences": 8,
        "readingSentences": 6,
        "speakingSentences": 5,
        "speakingPrompts": 5,
        "cards": 56
      },
      "appChunks": {
        "lesson": "lessons/day-090.json",
        "audio": "audio/day-090.json",
        "review": "review/day-090.json"
      }
    }
  ]
}
