{
  "generatedAt": "2026-08-01T00:00:00.000Z",
  "product": "StringGuard Launch Edition",
  "sourceFile": "sample_localization.csv",
  "rows": 12,
  "summary": {
    "errors": 7,
    "warnings": 5,
    "reviewed": 0
  },
  "issues": [
    {
      "severity": "error",
      "category": "duplicates",
      "key": "menu.play",
      "row": 2,
      "message": "Duplicate key",
      "detail": "The key \"menu.play\" occurs 2 times and may silently override another value.",
      "reviewed": false
    },
    {
      "severity": "error",
      "category": "missing",
      "key": "menu.continue",
      "row": 3,
      "message": "Translation is empty",
      "detail": "Players may see a blank label or a fallback key in this location.",
      "reviewed": false
    },
    {
      "severity": "error",
      "category": "variables",
      "key": "battle.reward.coins",
      "row": 4,
      "message": "Placeholder mismatch",
      "detail": "Source placeholders: {count}. Target placeholders: none.",
      "reviewed": false
    },
    {
      "severity": "error",
      "category": "tags",
      "key": "profile.welcome",
      "row": 5,
      "message": "Translation has unbalanced tags",
      "detail": "An HTML or BBCode tag is opened or closed incorrectly in the target string.",
      "reviewed": false
    },
    {
      "severity": "warning",
      "category": "length",
      "key": "settings.motion_blur",
      "row": 6,
      "message": "Target expanded by 118%",
      "detail": "The target is 24 characters versus 11 in the source.",
      "reviewed": false
    },
    {
      "severity": "warning",
      "category": "length",
      "key": "store.checkout",
      "row": 7,
      "message": "Target expanded by 113%",
      "detail": "The target is 17 characters versus 8 in the source.",
      "reviewed": false
    },
    {
      "severity": "warning",
      "category": "whitespace",
      "key": "store.checkout",
      "row": 7,
      "message": "Non-breaking space detected",
      "detail": "A non-breaking space can prevent expected wrapping and is difficult to see in a spreadsheet.",
      "reviewed": false
    },
    {
      "severity": "error",
      "category": "variables",
      "key": "dialog.skip",
      "row": 8,
      "message": "Placeholder mismatch",
      "detail": "Source placeholders: %s. Target placeholders: %d.",
      "reviewed": false
    },
    {
      "severity": "warning",
      "category": "missing",
      "key": "hud.health",
      "row": 9,
      "message": "Translation matches the source",
      "detail": "The target is identical to the source. This may be intentional, but often signals untranslated text.",
      "reviewed": false
    },
    {
      "severity": "error",
      "category": "tags",
      "key": "quest.new",
      "row": 10,
      "message": "Translation has unbalanced tags",
      "detail": "An HTML or BBCode tag is opened or closed incorrectly in the target string.",
      "reviewed": false
    },
    {
      "severity": "warning",
      "category": "whitespace",
      "key": "inventory.empty",
      "row": 11,
      "message": "Repeated spaces",
      "detail": "Two or more consecutive spaces appear in the translation.",
      "reviewed": false
    },
    {
      "severity": "error",
      "category": "duplicates",
      "key": "menu.play",
      "row": 12,
      "message": "Duplicate key",
      "detail": "The key \"menu.play\" occurs 2 times and may silently override another value.",
      "reviewed": false
    }
  ]
}
