{
  "paper": {
    "school": "Ai Tong",
    "year": 2023,
    "level": "P1",
    "label": "Term 2 Mini Test",
    "source_prefix": "Ai Tong 2023 P1 Term 2 Mini Test",
    "has_answer_key": true
  },
  "questions": [
    {
      "n": 1,
      "type_id": 2,
      "question": "Count. [?]",
      "answer0": "7",
      "answer1": null,
      "answer2": null,
      "answer3": null,
      "correct_answer": null,
      "skill_id": 1,
      "difficulty_id": 1,
      "explanation": "There are 7 lollipops, so the count is 7.",
      "hints": ["Touch each lollipop once as you count.", "Count: 1, 2, 3, 4, 5, 6, 7."],
      "source": "Ai Tong 2023 P1 Term 2 Mini Test Q1",
      "image_needed": true,
      "image_options": false,
      "image_page": 1,
      "image_loc": "top of page, below the question — a row of 7 lollipops (spirals on sticks)",
      "image_file": null,
      "notes": "Answer key: a) 7. Part (b) 'write in words: seven' is dropped — converting a single count to one numeric FIB; the words part is fragile text-match and the spec prefers a definite-value FIB. Word answer per key = 'seven'."
    },
    {
      "n": 2,
      "type_id": 2,
      "question": "8 and 2 make [?].\n4 + [?] = 9",
      "answer0": "10",
      "answer1": "5",
      "answer2": null,
      "answer3": null,
      "correct_answer": null,
      "skill_id": 8,
      "difficulty_id": 1,
      "explanation": "8 and 2 make 10. For 4 + [?] = 9, the missing number is 9 - 4 = 5.",
      "hints": ["'8 and 2 make' means 8 + 2.", "To find the missing addend, take 9 - 4."],
      "source": "Ai Tong 2023 P1 Term 2 Mini Test Q2",
      "image_needed": false,
      "image_options": false,
      "image_page": null,
      "image_loc": null,
      "image_file": null,
      "notes": "Answer key: a) 10, b) 5. Two blanks across two parts."
    },
    {
      "n": 3,
      "type_id": 2,
      "question": "1 more than [?] is 4.\n[?] is 1 less than 7.",
      "answer0": "3",
      "answer1": "6",
      "answer2": null,
      "answer3": null,
      "correct_answer": null,
      "skill_id": 13,
      "difficulty_id": 1,
      "explanation": "1 more than 3 is 4 (4 - 1 = 3). 1 less than 7 is 6 (7 - 1 = 6).",
      "hints": ["'1 more than ?' is 4 means ? + 1 = 4.", "'1 less than 7' means 7 - 1."],
      "source": "Ai Tong 2023 P1 Term 2 Mini Test Q3",
      "image_needed": false,
      "image_options": false,
      "image_page": null,
      "image_loc": null,
      "image_file": null,
      "notes": "Answer key: a) 3, b) 6. Number-sense (more/less) → skill 13."
    },
    {
      "n": 4,
      "type_id": 2,
      "question": "Look at the number bonds and fill in the missing numbers.\n5 and 3 make [?].\n2 and [?] make 6.",
      "answer0": "8",
      "answer1": "4",
      "answer2": null,
      "answer3": null,
      "correct_answer": null,
      "skill_id": 8,
      "difficulty_id": 1,
      "explanation": "Number bond (a): 5 + 3 = 8 (whole). Number bond (b): whole is 6, one part is 2, so the missing part is 6 - 2 = 4.",
      "hints": ["Two parts add up to the whole.", "(a) 5 + 3. (b) find the part: 6 - 2."],
      "source": "Ai Tong 2023 P1 Term 2 Mini Test Q4",
      "image_needed": false,
      "image_options": false,
      "image_page": 2,
      "image_loc": "middle/lower of page — two number-bond diagrams (a) parts 5 and 3, (b) part 2 with whole 6",
      "image_file": null,
      "notes": "Answer key: a) 8, b) 4. Number-bond → converted to FIB per spec (parts/whole values stated in stem, so figure not strictly required). image_needed=false since the bond values are given in text."
    },
    {
      "n": 5,
      "type_id": 0,
      "question": "(a) Colour the 2nd cat from the left.\n(b) Cross out the 7th frog.",
      "answer0": null,
      "answer1": null,
      "answer2": null,
      "answer3": null,
      "correct_answer": null,
      "skill_id": 7,
      "difficulty_id": 1,
      "explanation": "Ordinal positions: (a) the 2nd cat counting from the left; (b) the 7th frog in the row.",
      "hints": ["Count from the left.", "2nd = second, 7th = seventh."],
      "source": "Ai Tong 2023 P1 Term 2 Mini Test Q5",
      "image_needed": true,
      "image_options": false,
      "image_page": 3,
      "image_loc": "top of page — (a) row of 5 cats labelled Left/Right; below it (b) row of 7 frogs (3rd labelled)",
      "image_file": null,
      "notes": "Genuinely interactive (colour / cross-out) — type_id 0, SKIPPED on insert. Answer key: a) colour the 2nd cat, b) cross out the 7th frog."
    },
    {
      "n": 6,
      "type_id": 0,
      "question": "Circle the correct word in each sentence.\n(a) Sam is the ( first / last ) in the race.\n(b) Joe came ( after / between ) Ben and Dan.",
      "answer0": null,
      "answer1": null,
      "answer2": null,
      "answer3": null,
      "correct_answer": null,
      "skill_id": 7,
      "difficulty_id": 2,
      "explanation": "From the race picture: Sam is last (1st FINISH at top, Sam is at the bottom). Joe came after Ben and Dan in finishing order.",
      "hints": ["Read the FINISH order in the picture.", "Look at who is ahead of and behind each runner."],
      "source": "Ai Tong 2023 P1 Term 2 Mini Test Q6",
      "image_needed": true,
      "image_options": false,
      "image_page": 3,
      "image_loc": "lower half of page — race-track picture with runners Ben, Joe, Sam, Dan, Tim and a vertical FINISH label",
      "image_file": null,
      "notes": "Interactive 'circle the correct word' — type_id 0, SKIPPED on insert. Answer key: a) last, b) after."
    },
    {
      "n": 7,
      "type_id": 0,
      "question": "Complete the patterns. Circle the missing shapes.\n(a) triangle, rectangle, inverted-triangle, triangle, rectangle, inverted-triangle, [?]\n(b) filled-circle, open-circle, filled-square, open-square, filled-circle, [?], filled-square, open-square",
      "answer0": null,
      "answer1": null,
      "answer2": null,
      "answer3": null,
      "correct_answer": null,
      "skill_id": 26,
      "difficulty_id": 2,
      "explanation": "(a) The unit repeats triangle, rectangle, inverted-triangle; the next shape is a triangle. (b) The unit repeats filled-circle, open-circle, filled-square, open-square; the missing shape is an open-circle.",
      "hints": ["Find the repeating group of shapes.", "Continue the pattern one more step."],
      "source": "Ai Tong 2023 P1 Term 2 Mini Test Q7",
      "image_needed": true,
      "image_options": true,
      "image_page": 4,
      "image_loc": "top half of page — (a) shape sequence with a '?' blank, plus an option box of 3 shapes (rectangle, triangle, inverted-triangle); (b) circle/square sequence with a '?' blank, plus an option box of 3 shapes (open-circle, open-square, filled-circle)",
      "image_file": null,
      "notes": "'Circle the missing shapes' from an option box of pictured shapes → image-option pick. type_id 0 (interactive circle) and SKIPPED on insert. Answer key: a) triangle, b) circle (open). Crop each option box for q7_opt images if served later."
    },
    {
      "n": 8,
      "type_id": 2,
      "question": "Tom made a picture with some shapes.\n(a) Tom used [?] squares altogether.\n(b) He used the same number of [?] and [?].",
      "answer0": "3",
      "answer1": "circles",
      "answer2": "triangles",
      "answer3": null,
      "correct_answer": null,
      "skill_id": 26,
      "difficulty_id": 2,
      "explanation": "Counting the shapes in Tom's picture: there are 3 squares. The number of circles equals the number of triangles (6 circles and 6 triangles).",
      "hints": ["Count each kind of shape separately.", "Compare the counts to find the two that are equal."],
      "source": "Ai Tong 2023 P1 Term 2 Mini Test Q8",
      "image_needed": true,
      "image_options": false,
      "image_page": 4,
      "image_loc": "lower half of page — Tom's picture made of squares, triangles (zig-zag roof/base) and 6 circles arranged in a 2x3 grid",
      "image_file": null,
      "notes": "Answer key: a) 3, b) circles, triangles. Counts read from the figure; figure required to count. Parts (b) answers are words (circles/triangles) — fragile text match."
    },
    {
      "n": 9,
      "type_id": 0,
      "question": "Which of the following have answers equal to 7? Circle them.\n0 + 7, 1 + 5, 3 + 4, 4 + 5",
      "answer0": "0 + 7",
      "answer1": "1 + 5",
      "answer2": "3 + 4",
      "answer3": "4 + 5",
      "correct_answer": null,
      "skill_id": 13,
      "difficulty_id": 2,
      "explanation": "0 + 7 = 7 (yes), 1 + 5 = 6 (no), 3 + 4 = 7 (yes), 4 + 5 = 9 (no). The ones equal to 7 are 0 + 7 and 3 + 4.",
      "hints": ["Work out each sum.", "Keep the ones that make exactly 7."],
      "source": "Ai Tong 2023 P1 Term 2 Mini Test Q9",
      "image_needed": false,
      "image_options": false,
      "image_page": null,
      "image_loc": null,
      "image_file": null,
      "notes": "Multiple-select 'circle them' (two correct answers) — has no single-answer app type, so type_id 0, SKIPPED on insert. Answer key: 0 + 7 and 3 + 4."
    },
    {
      "n": 10,
      "type_id": 2,
      "question": "Max, Ray, Henry and Eric are standing in a line. Max is in last position. Eric is standing between Henry and Ray. Write their names in the correct order.\n1st: [?], [?], [?], [?]",
      "answer0": "Henry",
      "answer1": "Eric",
      "answer2": "Ray",
      "answer3": "Max",
      "correct_answer": null,
      "skill_id": 7,
      "difficulty_id": 3,
      "explanation": "Max is last (4th). Eric is between Henry and Ray. With Henry given as 1st, the order is Henry, Eric, Ray, Max.",
      "hints": ["Max is in the last (4th) spot.", "Eric must have Henry on one side and Ray on the other."],
      "source": "Ai Tong 2023 P1 Term 2 Mini Test Q10",
      "image_needed": false,
      "image_options": false,
      "image_page": 5,
      "image_loc": "middle of page — 4 cartoon children standing, with 'Henry / 1st' written under the first blank",
      "image_file": null,
      "notes": "Ordering task → converted to FIB with one [?] per position per spec. 1st is pre-filled as Henry on the paper; full order per key = Henry, Eric, Ray, Max. The children pictures are decorative (no numbers), so image_needed=false."
    }
  ]
}
