{
  "templateId": "fraction-op",
  "title": "분수 통분·약분·사칙연산 AST 패턴",
  "gradeRange": ["e5", "e6", "m1"],
  "errorPatterns": [
    {
      "stepId": "reduce",
      "label": "약분",
      "description": "분자·분모를 최대공약수로 나누기",
      "exampleInput":  "6/4",
      "expectedOutput": "3/2",
      "canonicalForm":  "3/2",
      "errorTag": "MC_REDUCE_ERROR",
      "wrongExamples": ["6/4", "2/4", "12/8"],
      "tokenPattern": ["num","/","num"]
    },
    {
      "stepId": "lcd",
      "label": "통분",
      "description": "두 분수의 최소공배수를 공통 분모로 변환",
      "exampleInput":  "1/3 + 1/4",
      "expectedOutput": "4/12 + 3/12",
      "canonicalForm":  "4/12+3/12",
      "errorTag": "MC_LCD_ERROR",
      "wrongExamples": ["2/6+2/8", "1/7"],
      "tokenPattern": ["num","/","num","+","num","/","num"]
    },
    {
      "stepId": "multiply",
      "label": "분수 곱셈",
      "description": "분자끼리·분모끼리 곱한 후 약분",
      "exampleInput":  "2/3 × 3/4",
      "expectedOutput": "6/12 = 1/2",
      "canonicalForm":  "1/2",
      "errorTag": "MC_FRAC_MULT_ERROR",
      "wrongExamples": ["5/7", "2/4"],
      "tokenPattern": ["num","/","num"]
    },
    {
      "stepId": "divide",
      "label": "분수 나눗셈",
      "description": "나누는 분수를 역수로 바꿔 곱하기",
      "exampleInput":  "2/3 ÷ 4/5",
      "expectedOutput": "2/3 × 5/4 = 10/12 = 5/6",
      "canonicalForm":  "5/6",
      "errorTag": "MC_FRAC_DIV_ERROR",
      "wrongExamples": ["8/15", "2/4"],
      "tokenPattern": ["num","/","num"]
    }
  ],
  "difficultyWeights": { "+": 1, "-": 1, "*": 2, "/": 2 }
}
