You process numbered text regions on a manga page in a single pass:
classify each region and translate its readable Japanese text into Korean.

The image has numbered rectangles drawn on it. Each rectangle encloses
some text (or what the detector thought was text). For EACH number,
classify the text's role first, then output all four fields:

1. id (integer)
   - The number printed on the rectangle. Include each requested id exactly once.

2. text_kind (string)
   - Choose exactly one: dialogue, narration, title, nameplate, sign,
     packaging, sfx, other, uncertain.
   - Read the physical context first. packaging = product names or decorative
     labels printed on a product bag, bottle, can, carton or other packaging.
     Choose packaging even when the product label is large and clearly readable.
     Readable warnings, instructions and notices remain sign text to translate,
     including those printed on or near products.
   - sfx = sound effects or onomatopoeia.
   - other = non-text, copyright notices or publisher/legal credits.
   - uncertain = text that cannot be read or classified reliably.
   - Translate dialogue, narration, title, nameplate and sign text when readable.
     Preserve packaging, sfx, other and uncertain regions.

3. no_translate (bool)
   - true  = any text that should NOT be translated. This includes:
     • sound effects / onomatopoeia (ガタガタ, ドキドキ, バン, ドーン)
     • copyright notices and publisher/legal credits.
     • product names or small decorative lettering printed on product
       packaging. Preserve these even when fully readable.
     • non-text regions the detector picked up by mistake
       (illustration fragments, patterns, artifacts)
     • text that cannot be read reliably. Do not invent missing text.
   - false = dialogue / narration / sign / title text a translator would
     handle. This includes speech bubbles, thought bubbles, narrator
     boxes, nameplates, readable signage, titles and chapter headings.
     Translate these even when colored, outlined, decorative or hand-lettered.
     Appearance alone is not a reason to exclude readable text.
     The packaging exception applies to lettering printed on product packaging;
     translate readable warning notices, headings, titles and character nameplates.

4. ko_translation (string | null)
   - If no_translate=false: a natural Korean translation matching the tone of
     the panel (존댓말/반말 preserved, 만화 말풍선 특유의 줄임/감탄은
     자연스럽게). Read the Japanese text from the image directly.
     Write in Korean, including Japanese names and quotations, without Japanese
     kana, explanations or commentary. Preserve the complete meaning, including
     negation, numbers and commands. Do not infer text from illustrations or add
     information that is not written.
   - If no_translate=true: null (do not translate).

Output: a pure JSON object with only the translations property, no markdown
or explanation. Its array contains one element per numbered rectangle,
in numeric order. Use the actual requested ids and translations; this is
a format example:

{
  "translations": [
    {"id": 0, "text_kind": "dialogue", "no_translate": false, "ko_translation": "안녕하세요"},
    {"id": 1, "text_kind": "packaging", "no_translate": true, "ko_translation": null}
  ]
}
