{
  "_doc": "Bảng mapping rõ ràng: field name từ globalfastener → characteristic name. Mỗi tiêu chuẩn có mapping riêng, KHÔNG dùng pattern matching mà chỉ định chính xác field nào → thông số nào.",

  "DIN933": {
    "_group": "BOLT",
    "_description": "Hex Bolts - Bulong lục giác",
    "mapping": {
      "Width Across Flats":       {"min": "s Grade A min",     "max": "s max=nominal size"},
      "Across Corner":            {"min": "e Grade A min"},
      "Head Height":              {"min": "k Grade A min",     "max": "k max"},
      "Nominal Length":           {},
      "Major Diameter":           {},
      "Pitch Diameter (GO/NOGO)": {},
      "Thickness of Washer Face": {"min": "c min",             "max": "c max"},
      "Washer Face Diameter":     {"min": "dw Grade A min"}
    },
    "pitch_field": "P Pitch",
    "_skip": ["a max", "da max", "k Nominal Size", "k1 min", "r min", "k Grade B min", "s Grade B min", "dw Grade B min", "e Grade B min"],
    "_note_tongming": "TongMing đo Nominal Length (l) cho DIN933, xác nhận qua báo cáo QC thực tế"
  },

  "DIN931": {
    "_group": "BOLT",
    "_description": "Hex Bolts partial thread - Field names KHÁC DIN933! (min Grade A vs Grade A min)",
    "mapping": {
      "Width Across Flats":       {"min": "s min Grade A",     "max": "s max=nominal size"},
      "Across Corner":            {"min": "e min Grade A"},
      "Head Height":              {"min": "k Grade A min",     "max": "k max"},
      "Nominal Length":           {},
      "Length of Thread":         {},
      "Major Diameter":           {"min": "ds min Grade A",    "max": "ds max=nominal size"},
      "Pitch Diameter (GO/NOGO)": {},
      "Thickness of Washer Face": {"min": "c min",             "max": "c max"},
      "Washer Face Diameter":     {"min": "dw min Grade A"}
    },
    "pitch_field": "P Thread Pitch",
    "_note_tongming": "TongMing gọi Major Diameter là 'Body Diameter' và thêm 'Length of Thread' (b)"
  },

  "DIN934": {
    "_group": "NUT",
    "_description": "Hex Nuts - Tán lục giác thường",
    "mapping": {
      "Width Across Flats":       {"min": "s min",              "max": "s max=nominal size"},
      "Across Corner":            {"min": "e① min"},
      "Thickness":                {"min": "m min",              "max": "m max=nominal size"},
      "Minor Diameter":           {},
      "Wrenching Height":         {"min": "mw min"},
      "Pitch Diameter (GO/NOGO)": {}
    },
    "pitch_field": "P Pitch Coarse thread",
    "_note_mw": "mw = Minimum Wrenching Height (chiều cao bám cờ lê tối thiểu), KHÔNG PHẢI Minor Diameter (đường kính chân ren D1). GF không cung cấp D1 cho DIN934.",
    "_note_minor": "TongMing đo Minor Diameter (D1 - đường kính chân ren) cho DIN934, dung sai theo ISO 68-1",
    "_skip": ["Fine  thread-1", "Fine thread-2", "per 1000 units ≈ kg", "*"]
  },

  "DIN6923": {
    "_group": "NUT",
    "_description": "Flange Nuts - Tán khía (mặt bích)",
    "mapping": {
      "Width Across Flats":       {"min": "s min",              "max": "s max=nominal size"},
      "Across Corner":            {"min": "e min"},
      "Thickness":                {"min": "m min",              "max": "m max"},
      "Flange Diameter":          {"max": "dc max"},
      "Flange Height":            {"min": "c min"},
      "Wrenching Height":         {"min": "mw min"},
      "Pitch Diameter (GO/NOGO)": {}
    },
    "pitch_field": "P Pitch Coarse thread",
    "_skip": ["Fine thread 1", "Fine thread 2", "da min", "da max", "dw min", "r max"]
  },

  "DIN985": {
    "_group": "NUT",
    "_description": "Nylon Insert Lock Nuts - Tán keo. Field names KHÁC DIN934 (e min thay vì e① min, h thay vì m cho total height)",
    "mapping": {
      "Width Across Flats":       {"min": "s min",              "max": "s max=nominal size"},
      "Across Corner":            {"min": "e min"},
      "Thickness":                {"min": "m min"},
      "Total Height":             {"max": "h max=nominal size", "min": "h min"},
      "Wrenching Height":         {"min": "mw min"},
      "Pitch Diameter (GO/NOGO)": {}
    },
    "pitch_field": "P Pitch Coarse thread",
    "_note": "DIN985: m = chiều cao phần kim loại, h = tổng chiều cao (kể cả nylon). Cả 2 đều cần kiểm tra."
  },

  "DIN1587": {
    "_group": "NUT",
    "_description": "Acorn Nuts - Tán bầu. Field names khác DIN934 (có Grade A/B, dk, t)",
    "mapping": {
      "Width Across Flats":       {"min": "s Grade A min（Grade A）", "max": "s max"},
      "Across Corner":            {"min": "e Grade A min"},
      "Thickness":                {"min": "m min",              "max": "m max"},
      "Total Height":             {"min": "h Grade A min",      "max": "h max=nominal size"},
      "Crown Diameter":           {"min": "dk min=nominal size"},
      "Wrenching Height":         {"min": "mw min"},
      "Pitch Diameter (GO/NOGO)": {}
    },
    "pitch_field": "P Seriers 1 Coarse thread",
    "_note": "DIN1587: h = tổng chiều cao (kể cả phần bầu), dk = đường kính phần bầu, t = chiều sâu lỗ ren"
  },

  "DIN912": {
    "_group": "SCREW",
    "_description": "Hex Socket Head Cap Screws - Lục giác chìm đầu trụ",
    "mapping": {
      "Head Diameter":            {"min": "knurled heads min",  "max": "knurled heads max"},
      "Head Height":              {"min": "k min",              "max": "k max"},
      "Nominal Length":           {},
      "Drive Depth":              {"min": "t min"},
      "Drive Width":              {"min": "s min",              "max": "s max"},
      "Major Diameter":           {"min": "ds min",             "max": "ds max"},
      "Pitch Diameter (GO/NOGO)": {}
    },
    "pitch_field": "P Pitch Coarse thread",
    "_skip": ["Fine thread pitch-1", "Fine thread pitch-2", "da max", "dk plain head max", "s Nominal Size", "e min", "w min"]
  },

  "DIN7991": {
    "_group": "SCREW",
    "_description": "Hex Socket Countersunk Head Screws - Lục giác chìm col (đầu côn 90°). Tách riêng vì dk/k khác DIN912.",
    "mapping": {
      "Head Diameter":            {"min": "dk min",             "max": "dk max"},
      "Head Height":              {"min": "k min",              "max": "k max"},
      "Head Angle":               {},
      "Nominal Length":           {},
      "Drive Depth":              {"min": "t min"},
      "Drive Width":              {"min": "s min",              "max": "s max"},
      "Major Diameter":           {"min": "ds min",             "max": "ds max"},
      "Pitch Diameter (GO/NOGO)": {}
    },
    "pitch_field": "P Pitch Coarse thread",
    "_note": "DIN7991: Head Angle = 90° (góc đầu côn). TongMing đo Head Angle trong báo cáo QC."
  },

  "ISO7380": {
    "_group": "SCREW",
    "_description": "Button Head Screws - Lục giác chìm mo",
    "mapping": {
      "Head Diameter":            {"min": "dk min",             "max": "dk max"},
      "Head Height":              {"min": "k min",              "max": "k max"},
      "Nominal Length":           {},
      "Drive Depth":              {"min": "t min"},
      "Drive Width":              {"min": "s min",              "max": "s max"},
      "Major Diameter":           {"min": "ds min",             "max": "ds max"},
      "Pitch Diameter (GO/NOGO)": {}
    },
    "pitch_field": "P Pitch Coarse thread"
  },

  "DIN913": {
    "_group": "SCREW",
    "_description": "Set Screws flat point - Vít trí đuôi bằng (không đầu, chỉ có drive)",
    "mapping": {
      "Nominal Length":           {},
      "Drive Depth":              {"min": "t min"},
      "Drive Width":              {"min": "s min",              "max": "s max"},
      "Major Diameter":           {"min": "ds min",             "max": "ds max"},
      "Pitch Diameter (GO/NOGO)": {}
    },
    "pitch_field": "P Pitch Coarse thread",
    "_note": "Set screw không có Head Diameter/Height"
  },

  "DIN916": {
    "_group": "SCREW",
    "_description": "Set Screws cup point - Vít trí đuôi lõm",
    "_inherit": "DIN913"
  },

  "DIN125": {
    "_group": "WASHER",
    "_description": "Plain Washers - Lông đền phẳng",
    "mapping": {
      "Inner Diameter":           {"min": "d min=nominal size", "max": "d max"},
      "Outer Diameter":           {"min": "dc min",             "max": "dc max=nominal size"},
      "Thickness":                {"min": "h min",              "max": "h max"}
    },
    "_note_nominal": "dc max=nominal size KHÔNG có nghĩa = M-size. Với M8: dc max = 16mm, M10: dc max = 20mm. 'nominal size' chỉ là cách GF ghi max = giá trị danh nghĩa.",
    "_skip": ["M For thread size", "h Nominal Size", "per 1000 units ≈ kg"]
  },

  "DIN9021": {
    "_group": "WASHER",
    "_description": "Large Plain Washers - Lông đền phẳng lớn",
    "_inherit": "DIN125"
  },

  "DIN127": {
    "_group": "WASHER",
    "_description": "Spring Lock Washers Type A - Lông đền vênh",
    "mapping": {
      "Inner Diameter":           {"min": "d1 min",             "max": "d1 max"},
      "Outer Diameter":           {"max": "d2 max"},
      "Thickness":                {"min": "s min",              "max": "s max"},
      "Height (Spring Washer)":   {"min": "h min",              "max": "h max"},
      "Incision Width":           {}
    },
    "_skip": ["b Nominal Size", "b min", "b max", "k", "r", "s Nominal Size", "per 1000 units ≈ kg"],
    "_note_tongming": "TongMing đo Incision Width (bề rộng mối nối) cho DIN127"
  },

  "DIN7980": {
    "_group": "WASHER",
    "_description": "Spring Lock Washers for Cheese Head - Lông đền vênh (đầu trụ)",
    "mapping": {
      "Inner Diameter":           {"min": "d min",              "max": "d max"},
      "Outer Diameter":           {},
      "Thickness":                {"min": "h min",              "max": "h max"},
      "Height (Spring Washer)":   {"min": "H min",              "max": "H max"}
    },
    "_skip": ["h Nominal Size", "n Nominal Size", "n min", "n max", "per 1000 units ≈ kg"]
  }
}
