[
 {
  "file": "P1.acs-2022-test1.done_illus_03.svg",
  "source": "ACS 2022 P1 Test 1 Q3",
  "question_n": 3,
  "kind": "stem",
  "confidence": "high",
  "note": "Row of 7 elephants A-G matches Q3 ordinal-position figure ('Elephant is third in position')."
 },
 {
  "file": "P1.acs-2022-test1.done_illus_07.svg",
  "source": "ACS 2022 P1 Test 1 Q11",
  "question_n": 11,
  "kind": "stem",
  "confidence": "high",
  "note": "Four bees match Q11 'Cross out two bees with same answer' (not Q7, which is an arrow-box number pattern)."
 },
 {
  "file": "P1.acs-2022-test1.done_illus_09.svg",
  "source": "ACS 2022 P1 Test 1 Q13",
  "question_n": 13,
  "kind": "stem",
  "confidence": "high",
  "note": "Seven pineapples match Q13 number-bond split (whole 7, pineapples figure)."
 },
 {
  "file": "P1.acs-2022-test1.done_illus_12.svg",
  "source": "ACS 2022 P1 Test 1 Q14",
  "question_n": 14,
  "kind": "stem",
  "confidence": "med",
  "note": "Row of bags matches Q14 'Bag is 6th from the right' (labelled bag row H,F,D,G,E,A,C). SVG shows 8 bags vs 7 in paper."
 },
 {
  "file": "P1.acs-2022-test1.png",
  "source": "ACS 2022 P1 Test 1",
  "question_n": null,
  "kind": "stem",
  "confidence": "low",
  "note": "Full-paper PNG render, not a single-question illustration; no specific question."
 },
 {
  "file": "P1.acs-2022-test3_illus_05.svg",
  "source": "ACS 2022 P1 Test 3 Q11",
  "question_n": 11,
  "kind": "stem",
  "confidence": "high",
  "note": "21 apples in 3 rows of 7 match Q11 'Circle the apples to show groups of 7'."
 },
 {
  "file": "P1.acs-2022-test3_illus_06.svg",
  "source": "ACS 2022 P1 Test 3 Q12",
  "question_n": 12,
  "kind": "stem",
  "confidence": "high",
  "note": "Scattered circular objects (8-9 groups) match Q12 'Write a multiplication equation' (8 scattered circles of 3 faces, 8x3=24); only scattered-circle figure in paper."
 },
 {
  "file": "P1.at-2023-t3mini_illus_01.svg",
  "source": "Ai Tong 2023 P1 Term 3 Mini Test Q1",
  "question_n": 1,
  "kind": "stem",
  "confidence": "high",
  "note": "Box of candy/sweet shapes matches Q1 'Count and write the number in words' (34 sweets). SVG count low (composite miscount) but object/question match is clear."
 },
 {
  "file": "P1.at-2023-t3mini_illus_03.svg",
  "source": "Ai Tong 2023 P1 Term 3 Mini Test Q3",
  "question_n": 3,
  "kind": "stem",
  "confidence": "high",
  "note": "Four pentagon shapes match Q3 number-comparison figure (pentagons holding 40, 17, 28, 35)."
 },
 {
  "file": "P1.ch-2022-cp6_illus_05.svg",
  "source": "Catholic High 2022 P1 CP6 Q7",
  "question_n": 7,
  "kind": "stem",
  "confidence": "high",
  "note": "Six candies (3 rows of 2) match Q7 'Mrs Tan has 6 sweets ... into 3 bags' figure. Illus number 05 does not equal Q5 (children groups)."
 },
 {
  "file": "P1.henry-park-2022-numbers_illus_01.svg",
  "source": "Henry Park 2022 P1 Numbers Q1",
  "question_n": 1,
  "kind": "stem",
  "confidence": "high",
  "note": "Large array of crayons (pencils) matches Q1 'How many pencils are there?' (57). Only mass-count figure in the Numbers paper."
 },
 {
  "file": "P1.henry-park-2022-numbers_illus_49.svg",
  "source": "Henry Park 2022 P1 Numbers Q?",
  "question_n": null,
  "kind": "stem",
  "confidence": "low",
  "note": "14 cakes (rows 5,5,4) match NO question in the Numbers manifest; this is the figure for the separate Henry Park 2022 Multiplication&Division paper Q17 ('Mrs Wong baked 14 cakes'). Belongs to a different paper, so unmatched here."
 },
 {
  "file": "P1.henry-park-2024-quiz1_illus_01.svg",
  "source": "Henry Park 2024 P1 Quiz 1 Q1",
  "question_n": 1,
  "kind": "stem",
  "confidence": "high",
  "note": "5 ducks in a row = Q1 'count the ducks' (answer 5)."
 },
 {
  "file": "P1.henry-park-2024-quiz1_illus_09.svg",
  "source": "Henry Park 2024 P1 Quiz 1 Q9",
  "question_n": 9,
  "kind": "stem",
  "confidence": "high",
  "note": "4 dinosaurs = Q9 '4 - 4' (notes specify 4 dinosaurs)."
 },
 {
  "file": "P1.hp-2022-tq1-2_illus_02.svg",
  "source": "Henry Park 2022 P1 Topical Quiz 1 Q1",
  "question_n": 1,
  "kind": "stem",
  "confidence": "high",
  "note": "9 cupcakes (5 top + 4 bottom) = Q1 'count the muffins' (5+4=9)."
 },
 {
  "file": "P1.hp-2023-multdiv_illus_02.svg",
  "source": "Henry Park 2023 P1 Multiplication and Division Q3",
  "question_n": 3,
  "kind": "stem",
  "confidence": "med",
  "note": "Pencils (2 rows) = Q3 pencils-into-bags; only pencil Q. SVG shows 16, manifest expects 15."
 },
 {
  "file": "P1.hp-2023-multdiv_illus_04.svg",
  "source": "Henry Park 2023 P1 Multiplication and Division Q4",
  "question_n": 4,
  "kind": "stem",
  "confidence": "high",
  "note": "18 apples (9+9) = Q4 '18 apples, 6 per child'."
 },
 {
  "file": "P1.hp-2023-multdiv_illus_06.svg",
  "source": "Henry Park 2023 P1 Multiplication and Division Q5",
  "question_n": 5,
  "kind": "stem",
  "confidence": "high",
  "note": "7 flower pots (4 top + 3 bottom) = shared Q5-Q7 figure; assigned to first (Q5)."
 },
 {
  "file": "P1.hp-2023-multdiv_illus_07.svg",
  "source": "Henry Park 2023 P1 Multiplication and Division Q10",
  "question_n": 10,
  "kind": "stem",
  "confidence": "med",
  "note": "16 marbles arranged 3,4,5,4 exactly matches Q10 '16 oranges (3,4,5,4)'; object is marble not orange."
 },
 {
  "file": "P1.hp-2023-multdiv_illus_08.svg",
  "source": "Henry Park 2023 P1 Multiplication and Division Q12",
  "question_n": 12,
  "kind": "stem",
  "confidence": "high",
  "note": "16 candies in rows 6,6,4 = Q12 '16 candies (6,6,4)'."
 },
 {
  "file": "P1.hp-2024-quiz456.png",
  "source": "Henry Park 2024 P1 Multiplication and Division Q0",
  "question_n": null,
  "kind": "stem",
  "confidence": "low",
  "note": "Collage of many unrelated illustrations (kids, lollipops, ladybugs, cakes, balloons, pencils, donuts); not a single-question figure. illus field null."
 },
 {
  "file": "P1.hp-2024-quiz456_illus_04.svg",
  "source": "Henry Park 2024 P1 Multiplication and Division Q7",
  "question_n": 7,
  "kind": "stem",
  "confidence": "high",
  "note": "Row of 7 chicks = shared Q7-Q9 chick figure; assigned to first (Q7)."
 },
 {
  "file": "P1.hp-2024-quiz456_illus_06.svg",
  "source": "Henry Park 2024 P1 Multiplication and Division Q10",
  "question_n": 10,
  "kind": "stem",
  "confidence": "high",
  "note": "20 pencils in 2 rows of 10 = Q10 'circle pencils into 5 equal groups'."
 },
 {
  "file": "P1.hp-2024-quiz456_illus_07.svg",
  "source": "Henry Park 2024 P1 Multiplication and Division Q11",
  "question_n": 11,
  "kind": "stem",
  "confidence": "med",
  "note": "Strawberries (top 6 + bottom 8 = 14) = Q11 strawberries-into-plates; only strawberry Q. Manifest expects 15 (6+9)."
 },
 {
  "file": "P1.hp-2025-quiz1_illus_01.svg",
  "source": "Henry Park 2025 P1 Quiz 1 Q1",
  "question_n": 1,
  "kind": "stem",
  "confidence": "high",
  "note": "6 soccer balls in a row = Q1 'count the balls' (answer 6)."
 },
 {
  "file": "P1.hp-2025-quiz1_illus_06.svg",
  "source": "Henry Park 2025 P1 Quiz 1 Q9",
  "question_n": 9,
  "kind": "stem",
  "confidence": "high",
  "note": "8 apples = Q9 '8 - [?] = 5' (image_loc 8 apples); only apple figure."
 },
 {
  "file": "P1.hp-2025-quiz1_illus_07.svg",
  "source": "Henry Park 2025 P1 Quiz 1 Q10",
  "question_n": 10,
  "kind": "stem",
  "confidence": "high",
  "note": "10 butterflies = Q10 'write number sentence' (10 butterflies total, 10-4=6)."
 },
 {
  "file": "P1.hp-2025-quiz2_illus_01.svg",
  "source": "Henry Park 2025 P1 Quiz 2 Q1",
  "question_n": 1,
  "kind": "stem",
  "confidence": "high",
  "note": "Box of umbrellas = Q1 'total number of umbrellas'. Umbrella sprites, single boxed group."
 },
 {
  "file": "P1.hp-2025-quiz2_illus_03.svg",
  "source": "Henry Park 2025 P1 Quiz 2 Q3",
  "question_n": 3,
  "kind": "stem",
  "confidence": "low",
  "note": "Round 'button' sprites (~15) = the round-object group near Q3 doughnuts (decorative, 16 in PDF; AI miscount 15). illus index 03. Could alternatively be Q2 squares box (15). Flag for QA."
 },
 {
  "file": "P1.hp-2025-quiz2_illus_07.svg",
  "source": "Henry Park 2025 P1 Quiz 2 Q11",
  "question_n": 11,
  "kind": "stem",
  "confidence": "med",
  "note": "Cup/mug sprites (~10) = Q11 'cups in the box' (PDF shows ~11 mugs; AI miscount 10). Only cup question in paper; filename illus_07 index is off."
 },
 {
  "file": "P1.mb-2022-tr3_illus_01.svg",
  "source": "Maha Bodhi 2022 P1 Topical Review 3 Q1",
  "question_n": 1,
  "kind": "stem",
  "confidence": "high",
  "note": "12 soccer balls in 3 groups of 4 = Q1 '3 groups of 4 balls' (footballs). Exact layout match."
 },
 {
  "file": "P1.mb-2022-tr3_illus_02.svg",
  "source": "Maha Bodhi 2022 P1 Topical Review 3 Q4",
  "question_n": 4,
  "kind": "stem",
  "confidence": "high",
  "note": "16 stamps in 2 rows of 8 = Q4 'There are 16 stamps / groups of 8'. Stamp sprite, exact match; illus index 02 off (Q2 has no image)."
 },
 {
  "file": "P1.mb-2024-r1_illus_01.svg",
  "source": "Maha Bodhi 2024 P1 Review 1 Q3",
  "question_n": 3,
  "kind": "stem",
  "confidence": "high",
  "note": "17 gold stars in 3 rows = Q3 'Count and write the number' (=17). Star polygons; illus index 01 off (Q1 is shape-match draw task)."
 },
 {
  "file": "P1.mb-2024-r1_illus_02.svg",
  "source": "Maha Bodhi 2024 P1 Review 1 Q4",
  "question_n": 4,
  "kind": "stem",
  "confidence": "high",
  "note": "9 cupcakes in a row = Q4 'Complete the subtraction equation' (9-3=6, 9 cupcakes last 3 crossed). Cupcake sprite, exact match."
 },
 {
  "file": "P1.mb-2024-r3_illus_13.svg",
  "source": "Maha Bodhi 2024 P1 Review 3 Q12",
  "question_n": 12,
  "kind": "stem",
  "confidence": "high",
  "note": "8 panda stickers in 2 rows of 4 = Q12 'Mrs Lee has 8 stickers' (panda stickers). Exact match; illus index 13 off (Q13 is a clock draw task)."
 },
 {
  "file": "P1.ms-2022-mini5_illus_06.svg",
  "source": "Maris Stella 2022 P1 Mini Test 5 Q8",
  "question_n": 8,
  "kind": "stem",
  "confidence": "med",
  "note": "11 marble/balls = Paul's 11 balls in Q8 (Jay 15 vs Paul 11). This is Paul's portion of the two-person figure; illus index 06 off (Q6 is money)."
 },
 {
  "file": "P1.ms-2022-mini5_illus_12.svg",
  "source": "Maris Stella 2022 P1 Mini Test 5 Q15",
  "question_n": 15,
  "kind": "stem",
  "confidence": "med",
  "note": "5 cup/glass sprites = Q15 'Kathy buys 5 packets of fishballs' (PDF shows 5 fishball glasses). Only 5-glass figure in paper; illus index 12 off (Q12 is money sets)."
 },
 {
  "file": "P1.ms-2022-mini5_illus_15.svg",
  "source": "Maris Stella 2022 P1 Mini Test 5 Q17",
  "question_n": 17,
  "kind": "stem",
  "confidence": "high",
  "note": "12 fish in 3 rows of 4 = Q17 'Each fish bowl has equal number of fish' (12 fish, 4x3). Fish sprite, exact match; illus index 15 off."
 },
 {
  "file": "P1.ms-2022-mini5_illus_16.svg",
  "source": "Maris Stella 2022 P1 Mini Test 5 Q18",
  "question_n": 18,
  "kind": "stem",
  "confidence": "high",
  "note": "18 cookies in 3 rows of 6 = Q18 'Sally bakes 18 cookies' (PDF shows 18 cookies). Cookie sprite, exact count match; illus index 16 off (Q16 is restaurant table)."
 },
 {
  "file": "P1.nh-2022-t4t2_illus_20.svg",
  "source": "Nan Hua 2022 P1 Term 4 Test 2 Q13",
  "question_n": 13,
  "kind": "stem",
  "confidence": "high",
  "note": "12 candies in 2 rows of 6; matches Q13 'There are [?] groups of 6' (12 sweets, two rows of 6)."
 },
 {
  "file": "P1.ny-2022-tt1_illus_01.svg",
  "source": "Nanyang 2022 P1 Topical Test 1 Q1",
  "question_n": 1,
  "kind": "stem",
  "confidence": "high",
  "note": "Row of 8 lollipops; matches Q1 'How many lollipops are there?' (answer eight). PDF confirms lollipop row at Q1."
 },
 {
  "file": "P1.ny-2022-tt1_illus_04.svg",
  "source": "Nanyang 2022 P1 Topical Test 1 Q13",
  "question_n": 13,
  "kind": "stem",
  "confidence": "med",
  "note": "Row of 6 balloons; only balloon question in paper is Q13 (Sally/Jack bought 6 balloons, 6 shown in PDF). Q13 is a draw task; manifest marks image_needed=false, but the figure depicts the Q13 balloons."
 },
 {
  "file": "P1.rosyth-2022-test_illus_06.svg",
  "source": "Rosyth 2022 P1 Test Q11",
  "question_n": 11,
  "kind": "stem",
  "confidence": "high",
  "note": "Row of 6 circles with the 5th shaded (steel); matches Q11 'shaded circle is in the [?] position from the left' (answer 5th)."
 },
 {
  "file": "P1.rosyth-2022-test_illus_17.svg",
  "source": "Rosyth 2022 P1 Test Q19",
  "question_n": 19,
  "kind": "stem",
  "confidence": "high",
  "note": "Four pine trees of different heights; matches Q19 'arrange the trees in order' (trees A-D of differing heights)."
 },
 {
  "file": "P1.tao-nan-2022-review1_illus_04.svg",
  "source": "Tao Nan 2022 P1 Review 1 Q3",
  "question_n": 3,
  "kind": "stem",
  "confidence": "high",
  "note": "9 candies (5 + 4); matches Q3 'count and write the number of sweets in words' (count = 9, answer nine)."
 },
 {
  "file": "P1.tn-2022-review3_illus_01.svg",
  "source": "Tao Nan 2022 P1 Review 3 Q1",
  "question_n": 1,
  "kind": "stem",
  "confidence": "med",
  "note": "Row of 7 balloons; matches Q1 'circle the balloons to show groups of 3' (the only balloon question). PDF shows 21 balloons (3 rows of 7); this re-colourised SVG renders only 7, so the count is abridged but the figure is Q1's balloons."
 },
 {
  "file": "P1.tn-2022-review3_illus_03.svg",
  "source": "Tao Nan 2022 P1 Review 3 Q4",
  "question_n": 4,
  "kind": "stem",
  "confidence": "high",
  "note": "20 basketballs arranged as 4 clusters of 5; matches Q4 '4 groups of [?] = 20' (4 ovals of 5 basketballs in PDF). illus index != question number."
 },
 {
  "file": "P2.hp-2023-q2_illus_02.svg",
  "source": "Henry Park 2023 P2 Quiz 2 Q11",
  "question_n": 11,
  "kind": "stem",
  "confidence": "high",
  "note": "8 fishball skewers in a 4x2 grid; Q11 asks fishballs on 8 sticks. Only skewer figure in paper; PDF p6 shows 8 skewers."
 },
 {
  "file": "P2.hp-2023-q2_illus_06.svg",
  "source": "Henry Park 2023 P2 Quiz 2 Q15",
  "question_n": 15,
  "kind": "stem",
  "confidence": "med",
  "note": "Strawberries are the figure for Q15 (30 strawberries shared by 5). Only strawberry question. SVG miscounts (14 strawberries, not 30) but subject is unambiguous."
 },
 {
  "file": "P2.hp-2023-q2_illus_08.svg",
  "source": "Henry Park 2023 P2 Quiz 2 Q16",
  "question_n": 16,
  "kind": "stem",
  "confidence": "high",
  "note": "Lollipops; Q16 is the only lollipop question (3 boxes of 6/5/4 = 15). SVG shows 15 lollipops, though as one grid rather than 3 boxes."
 },
 {
  "file": "P2.hp-2025-q2_illus_10.svg",
  "source": "Henry Park 2025 P2 Quiz 2 Q16",
  "question_n": 16,
  "kind": "stem",
  "confidence": "high",
  "note": "6 basket/tray figures; Q16 (Mrs Johnson, 6 boxes) shows 6 trays on PDF p7. Q14 uses 8 baskets, so 6 trays -> Q16."
 },
 {
  "file": "P2.mb-2023-tr2_illus_02.svg",
  "source": "Maha Bodhi 2023 P2 Topical Review 2 Q3",
  "question_n": 3,
  "kind": "stem",
  "confidence": "high",
  "note": "20 apples in a 4x5 grid; Q3 figure is 4 boxes of 5 apples (= 20). Only apple question; PDF p2 confirms."
 },
 {
  "file": "P2.rg-2024-q1-2_illus_02.svg",
  "source": "Raffles Girls 2024 P2 Quiz 1 and 2 Q3",
  "question_n": 3,
  "kind": "stem",
  "confidence": "med",
  "note": "2 jars/jugs side by side; Q3 (n=3, '[?] glasses') figure shows '2 jars -> blank glasses' (1 jar = 4 glasses). The 2-jug graphic is that 'two jars' element."
 },
 {
  "file": "P2.rg-2024-q4-5-6_illus_02.svg",
  "source": "Raffles Girls 2024 P2 Quiz 4-5-6 Q5",
  "question_n": 5,
  "kind": "stem",
  "confidence": "high",
  "note": "15 smiley faces (5x3); Q5 is 5 boxes of 3 smiley faces (5x3=15). PDF p2 confirms. Only smiley-face question."
 },
 {
  "file": "P2.rg-2024-q4-5-6_illus_04.svg",
  "source": "Raffles Girls 2024 P2 Quiz 4-5-6 Q7",
  "question_n": 7,
  "kind": "stem",
  "confidence": "high",
  "note": "16 flowers; Q7 'Divide 16 flowers into 8 equal groups'. PDF p2 confirms 16 flowers. Only flower question."
 },
 {
  "file": "P3.rg-2022-sa2_illus_07.svg",
  "source": "Raffles Girls 2022 P3 Semestral Assessment 2 Q31",
  "question_n": 31,
  "kind": "stem",
  "confidence": "high",
  "note": "3x3 array of 9 mugs/cups; Q31 manifest describes '3x3 array of 9 cups', fruit punch poured into 9 similar cups. Only 9-cup figure in paper."
 },
 {
  "file": "P3.rg-2025-wa1_illus_01.svg",
  "source": "Raffles Girls 2025 P3 Weighted Assessment 1 Q11",
  "question_n": 11,
  "kind": "stem",
  "confidence": "high",
  "note": "6 tarts in 2 rows of 3; Q11 image_file=q11.png describes 'box holding 6 tarts (2 rows of 3)'. Only image question in paper."
 },
 {
  "file": "P4.ch-2025-eoy_illus_01.svg",
  "source": "Catholic High 2025 P4 End-of-Year Exam Q9",
  "question_n": 9,
  "kind": "stem",
  "confidence": "high",
  "note": "Box of 8 shapes: 5 gold stars + 3 crimson crosses; Q9 image_file=q9.png 'box of 8 shapes (stars and crosses)', asks fraction that are stars."
 }
]