# Science & Nature Toys: research notes

Date: 2026-10-25. Scope: hands-on kits and instruments that package a small, child-safe
version of a real scientific process for a novice to run — chemistry, physics and
electronics, earth science (rocks, minerals, fossils, crystals), and life science and
nature (bugs, terrariums, grow kits, anatomy models), plus the tools that go with them
(microscope toy sets, weather station toys). Taxonomy path `supplies > play >
educational-science > science_toys`. This matches the existing add-on's
`science_toy_type` enum (chemistry_kit, physics_kit, microscope_toy_set,
rock_mineral_kit, crystal_growing_kit, excavation_dig_kit, fossil_dig_kit, bug_viewer,
terrarium_kit, gardening_grow_kit, anatomy_model, weather_station_toy, magnet_kit,
circuit_electronics_kit, volcano_kit, slime_science_kit, other).

Excluded, left to siblings in `educational-science`: telescopes and other
sky-watching toys go to `astronomy-toys` (astronomy_toys), not here, even though a
weather-station toy and a telescope both sit in "earth and sky" in a buyer's head.
Flash cards and abacuses are their own sibling leaves and carry no science-process
hazard, so none of this register's safety facets apply to them. Outside
`educational-science`: a construction/building-block set with no stated scientific
process belongs to `toys` (`building_blocks`); a grow kit that is purely gardening
(no germination-as-experiment framing) overlaps with `supplies > garden`
(`plant_supports`, `pots_planters`) and is left there; a crystal-growing or rock-tumbler
kit marketed purely as jewelry-making overlaps with `supplies > crafts`
(`beads`, `craft_kits`) and is left there. One register for the whole leaf; the splits
below do the dividing the label's breadth demands, rather than one register per
discipline.

Quote labels: **verbatim** = the sentence in quotation marks is exactly what I read
myself, either via `curl` into the scratchpad and stripped of HTML tags, or via a
brand's own JSON product-info endpoint. **fetched excerpt** = a fetch tool returned a
paraphrase or summary of a page I did not read as raw text. **search excerpt** = from a
search-engine summary only. WebSearch reported its budget exhausted on the first three
queries this run, before any result came back, so there are no search excerpts in
this register at all — everything below is verbatim via direct `curl` (raw HTML or
JSON, stripped of tags with a small Python script) saved to
`/private/tmp/claude-501/-Users-amnbh-Desktop-dev-zamana/94e1e673-5231-41fe-8b68-7a624ab5c8d8/scratchpad/science-toys/`.
Source types I could not reach: EN 71-4 and EN 71-5 themselves (BSI/CEN sell them;
every mirror and consultancy summary page I tried 404'd or was blocked), ASTM F963's
own text (ASTM sells it; store.astm.org and astm.org 403'd), UK legislation.gov.uk
(returned empty bodies, likely JS-rendered), Reddit (403 on both old and new API
paths), Elenco's site (redirect-looped behind a bot-check), 4M Industries (a
B2B/WordPress site with no live product spec pages, only a distributor portal), and
Good Housekeeping / NYT Wirecutter buying guides (404/403). Where a claim rests on
only the US or only the EU side of the regulatory split because of this, I say so.

## Seed

Seed run (recorded verbatim from the brief):

- Example: car-tyres `treadwear_grade`: "a number that is on every listing and still
  needs a judgement attached, because experts know it only compares within one
  manufacturer's range."
- Persona: "A tailor, who thinks in fit, drape and what you can alter afterwards."

1. **The science-toys equivalent of treadwear is the magnification number printed on
   a toy microscope's box ("60X-600X", "1200X").** It is on every listing, it is a real,
   checkable number, and it still needs a judgement attached: an ordinary light
   microscope cannot resolve detail finer than roughly 200 nanometres no matter how
   large the number gets (Wikipedia, *Optical microscope*, verbatim: "The maximum
   resolving power of optical microscopes is typically limited to around 200
   nanometers because of the diffraction limit of visible light. While larger
   magnifications are possible no additional details of the object are resolved.").
   A real mid-range kit (Thames & Kosmos's smartphone-adapter microscope: 15x eyepiece
   times 4x/10x/40x objectives = 60x/150x/600x, verbatim from the brand's own product
   JSON) already sits close to that ceiling, so a toy claiming 1200x or 2000x is
   selling a bigger number, not a clearer picture — exactly the "compares within one
   maker's range, not across the market" shape of treadwear. **Kept** as the
   `max_magnification` facet with a judgement attached.
2. **A tailor thinks about fit and what you can alter afterwards: is this a pattern
   you can cut again, or a single cut from your only yard of cloth?** Applied here,
   that is the difference between a kit that is a reusable instrument or a repeatable
   set of experiments (a rock tumbler, a Snap-Circuits-style board, a chemistry set
   you can rerun with a fresh household reagent) and a kit that is a single-use
   consumable experience (a one-shot volcano eruption, a slime batch, most dig kits).
   A typical buyer reads "science kit" as one category; the tailor would ask this
   before anything else, because it decides whether the purchase is a toy or a tool.
   **Kept** as the `kit_reusability` split (split 3).

## Sources and what each supports

### US federal regulation (read directly via Cornell LII and eCFR)

**16 CFR § 1250.2, Requirements for toy safety (Cornell LII, curl)**
https://www.law.cornell.edu/cfr/text/16/1250.2
- verbatim: "(a) Each toy must comply with all applicable provisions of ASTM F963-23
  (incorporated by reference, see § 1250.10)."
- Supports: ASTM F963-23 is the one mandatory US toy-safety standard, by federal
  incorporation. Confidence high.

**16 CFR § 1500.19, Misbranded toys and other articles intended for use by children
(Cornell LII, curl)**
https://www.law.cornell.edu/cfr/text/16/1500.19
- verbatim definition of "small part": "any object which, when tested in accordance
  with the procedures contained in 16 CFR 1501.4(a) and 1501.4(b)(1), fits entirely
  within the cylinder shown in Figure 1 appended to 16 CFR part 1501."
- verbatim: toys "intended for use by children who are at least three years old but
  less than six years of age shall bear or contain" a choking-hazard statement "if
  the toy or game includes a small part."
- verbatim: "The statement 'CHOKING HAZARD' shall be regarded as a statement of the
  principal hazard associated with the products subject to this section."
- Supports: the small-parts cylinder test; that the warning is mandatory specifically
  for the 3-to-6 age band, not all ages; the exact mandated hazard phrase. Confidence
  high.

**16 CFR § 1500.50, Test methods for simulating use and abuse of toys (Cornell LII,
curl)**
https://www.law.cornell.edu/cfr/text/16/1500.50
- verbatim: test methods apply to three age bands — "18 months of age or less, over
  18 months but not over 36 months of age, and over 36 months but not over 96 months
  of age" — and "If an article is marked, labeled, advertised, or otherwise intended
  for children of ages spanning more than one of these age groups, the article will
  be subjected to the tests providing the most stringent requirements."
- Supports: the US regulatory age-band logic that sits under brands' own age-floor
  labels. Confidence high.

**16 CFR Part 1262, Safety Standard for Magnets (eCFR versioner API, curl)**
https://www.ecfr.gov/current/title-16/chapter-II/subchapter-B/part-1262
- verbatim: "(a) Hazardous magnet means a magnet that fits entirely within the
  cylinder described in 16 CFR 1501.4 and that has a flux index of 50 kG2mm2 or more
  when tested in accordance with the method described in 1262.4."
- verbatim exemption: "Toys that are subject to 16 CFR part 1250" are exempt from
  Part 1262 itself.
- verbatim: the flux-index test method is "the procedure in section 8.25.1 through
  8.25.3 of ASTM F963-17, Standard Consumer Safety Specification for Toy Safety."
- Supports: the flux-index definition and number; that toy-specific magnet testing
  runs through ASTM F963 itself, not Part 1262, for products that are toys.
  Confidence high for the definition and the exemption (read directly); confidence
  medium for exactly how F963 applies its own magnet clause to a children's magnet
  kit, because F963's text itself is paywalled and I could not read section 8.25
  directly — only this cross-reference to it.

### EU and international standards (read only at one remove)

**Wikipedia, "EN 71" (curl)**
https://en.wikipedia.org/wiki/EN_71
- verbatim: "European standard EN 71 specifies safety requirements for toys. It is
  harmonised with the Toy Safety Directive (Council Directive 2009/48/EC) and
  compliance with the standard is legally required for toys sold in the European
  Union." Parts list, verbatim: "EN 71-4: Experimental sets for chemistry and related
  activities", "EN 71-5: Chemical toys (sets) other than experimental sets",
  "EN 71-6: Graphical symbols for age warning labelling."
- Supports: that chemistry-type science toys get their own EU standard part,
  separate from the general chemical-toys part and from the age-warning-symbol part.
  Confidence high for the existence and numbering of the parts (a tertiary but
  directly-read source); I could not fetch the standard's own text (BSI/CEN sell it;
  every mirror 404'd), so no specific EN 71-4 requirement (test, threshold, age floor)
  is stated in this register — only that the part exists and what it covers.

**Wikipedia, "Toy safety" (curl)**
https://en.wikipedia.org/wiki/Toy_safety
- verbatim: "Choking is the number one reason for accidents" in toy-related injury,
  with CPSC/Customs screening data cited in the same paragraph.
- verbatim: "the Consumer Product Safety Improvement Act (CPSIA)... adopts the
  provisions of the ASTM Consumer Safety Specifications for Toy Safety (ASTM F963-11)
  as the requirements of the CPSC" and "restricts the amount of lead and phthalates".
- verbatim: EU toys need a CE mark, and under the Directive "certain essential safety
  aspects... are not governed by safety standards e.g. hygiene and radioactivity."
- Supports: choking as the leading toy-injury category (corroborates CPSC's own
  rulemaking framing of the magnet rule, which separately states ingestion risk in
  the thousands of ED visits per year); the CPSIA/F963 link; CE marking. Confidence
  high.

### Mechanism and history primers (read directly, tertiary)

**Wikipedia, "Chemistry set" (curl)**
https://en.wikipedia.org/wiki/Chemistry_set
- verbatim: "Around the 1960s, safety concerns began to limit the range of materials
  and experiments available in chemistry sets. In the United States, the Federal
  Hazardous Substances Labeling Act of 1960, the Toy Safety Act of 1969, the Consumer
  Product Safety Commission, established in 1972, and the Toxic Substances Control
  Act of 1976 all introduced new levels of regulation."
- verbatim: "Modern chemistry sets, with a few exceptions, tend to include a more
  restricted range of chemicals and simplified instructions."
- verbatim: typical included chemicals are mild salts and indicators (listed: alums,
  borax, copper sulfate, potassium permanganate, phenolphthalide, etc.); some
  experiments need common household chemicals not shipped with the set (vinegar,
  baking soda, table salt), and "other chemicals, including strong acids, bases and
  oxidizers cannot be safely shipped with the set and others having a limited shelf
  life have to be purchased separately from a drug store" (hydrochloric acid,
  hydrogen peroxide, silver nitrate, sodium hydroxide).
- verbatim: Thames & Kosmos's "C3000 Kit... includes a 172-page manual describing 387
  experiments... retails for almost US$300" (this is an older edition's figures —
  the brand's current page gives different numbers; see below).
- Supports: the decades-long chemical-restriction narrative; that some kits still
  require a buyer to supply household or drugstore chemicals. Confidence medium
  (single tertiary source for the regulatory-decline narrative; the Toy-safety page
  above corroborates CPSIA/F963 generally but not this specific chemistry-set
  history).

**Wikipedia, "Snap Circuits" (curl)**
https://en.wikipedia.org/wiki/Snap_Circuits
- verbatim: "Snap Circuits is a line of electronic kits manufactured by Elenco
  Electronics and aimed at children eight years and older." "The kits contain a
  plastic baseboard into which the various components and wires can be snapped to
  easily create a working circuit."
- Supports: the 8+ age floor for electronics-kit mechanism (snap-together, no
  soldering), corroborated independently by Thames & Kosmos's own "Easy Electric
  Circuits" listing below (also Ages 8+). Confidence high (two independent brands,
  same floor).

**Wikipedia, "Optical microscope" (curl)**
https://en.wikipedia.org/wiki/Optical_microscope
- verbatim: "The maximum resolving power of optical microscopes is typically limited
  to around 200 nanometers because of the diffraction limit of visible light. While
  larger magnifications are possible no additional details of the object are
  resolved."
- verbatim: a compound microscope's magnification is the objective lens's
  magnification times the eyepiece's; "Typical magnification values for eyepieces
  include 5×, 10× (the most common), 15× and 20×"; objective magnification "typically
  ranges from 5× to 100×."
- Supports: the magnification-multiplication formula and the diffraction-limit
  ceiling. Confidence high (general optics, not toy-specific, but the numbers match
  the real toy microscope spec below).

### Brand spec pages (Thames & Kosmos; read via the storefront's own JSON product
endpoint, which returns the same "Product Information" block shown on the page)

**Thames & Kosmos, CHEM C3000 (curl, JSON)**
https://www.thamesandkosmos.com/products/chem-c3000
- verbatim: "Ages: 12+ / Experiments: 333 / Piece Count: 103 / Manual Pages: 192 /
  Product Dimensions: 21.3 x 14.6 x 7.2 in. / Product Weight: 7.7 lbs / Batteries
  Required: 9 Volt (1) / Country of Origin: Germany / Year Released: 2011."
- verbatim NGSS correlations listed by code: "5-PS1-2... MS-PS1-6 Matter and Its
  Interactions."
- Supports: the brand's "Product Information" block as a reliable, consistent
  listing_field_hint; the NGSS-correlation pattern; one real experiment-count data
  point (333) at the high end. Confidence high (read the live JSON myself). Note:
  this contradicts the Wikipedia "Chemistry set" page's figure for the same product
  (172 pages / 387 experiments) — almost certainly because Wikipedia describes an
  earlier edition of the C3000. The brand's current page is treated as current and
  authoritative for the current SKU; the Wikipedia number is not used.

**Thames & Kosmos, Easy Electric Circuits (curl, JSON)**
https://www.thamesandkosmos.com/products/easy-electric-circuits
- verbatim: "Ages: 8+ / Experiments: 20 / Piece Count: 64 / Manual Pages: 32 /
  Batteries Required: AA (2)."
- Supports: a low-end experiment-count data point (20); the 8+ floor for an
  electronics kit, matching Snap Circuits' own stated floor above. Confidence high.

**Thames & Kosmos, Magnetic Science (curl, JSON)**
https://www.thamesandkosmos.com/products/magnetic-science
- verbatim: "Ages: 8+ / Activities: 33 / Piece Count: 42 / Manual Pages: 48 /
  Batteries Required: N/A."
- Supports: a mid-range experiment-count data point (33); the 8+ floor for a
  physics/magnetism kit (no chemicals, no circuits); that this kit uses "Activities"
  rather than "Experiments" as its own label for the same kind of count. Confidence
  high.

**Thames & Kosmos, Essential STEM Tools: Rock Tumbler, and its Refill (curl, JSON)**
https://www.thamesandkosmos.com/products/the-thames-kosmos-rock-tumbler
https://www.thamesandkosmos.com/products/the-thames-kosmos-rock-tumbler-refill-pack
- verbatim: tumbler "Ages: 8+"; price field in the product JSON, "49.95". Refill pack:
  "Ages: 8+ / Piece Count: 10"; price field "14.95"; description: "Keep on rockin’ and
  rollin’ with this refill pack."
- Supports: that a durable-instrument-style kit in this category is routinely sold
  alongside a separate, lower-priced refill SKU (confirms the `consumable_refill_available`
  facet and motivates the `refill_cost_ratio` derived metric); the 8+ floor again, for
  an earth-science tool. Confidence high for the existence and prices of the two SKUs
  (one brand, read directly); the specific 14.95/49.95 ≈ 0.30 ratio is a single data
  point from one brand and is not stated as a category-wide number anywhere in
  `category.json` — only the formula is given there.

**Thames & Kosmos, Essential STEM Tools: Microscope with Smartphone Adapter (curl,
JSON)**
https://www.thamesandkosmos.com/products/the-thames-kosmos-microscope-with-smartphone-adapter
- verbatim: "The microscope's 15x ocular lens... works together with the three
  objective lenses, resulting in a total magnification power of 60x, 150x, or 600x."
  "4x, 10x, and 40x objective lenses." "Includes 45 Accessories."
- Supports: a real-product confirmation of the ocular-times-objective formula
  (15×4=60, 15×10=150, 15×40=600) and a realistic ceiling (600x) against which an
  inflated box number (1200x, 2000x) can be judged. Confidence high.

Brand coverage caveat: all five brand data points above are from one brand (Thames &
Kosmos); Elenco's site redirect-looped behind a bot check, 4M Industries has no live
retail product pages (B2B/distributor site only), and National Geographic's shop
did not surface a comparable dig-kit or crystal-kit product page in the time
available. Every `experiment_count`/age-floor claim below is therefore flagged
`researched` rather than `listing`, per house rule, because I could not confirm the
same field is present on a second brand's page or on a retail listing.

## Data points used for derived metrics

- `cost_per_experiment` = price / experiment_count. Observed experiment counts from
  Thames & Kosmos: Easy Electric Circuits 20, Magnetic Science 33, CHEM C3000 333.
  These three are the only sourced data points behind the facet's stated range
  (20 to 333); the "typical" note in the JSON is scoped to "across the sampled
  brand's kits," not the whole market.
- `refill_cost_ratio` (DROPPED 2026-10-25, see Corrections log) = refill price /
  kit price. Observed: Rock Tumbler $49.95, Rock Tumbler Refill $14.95
  (ratio ≈ 0.30). This single data point was never written into `category.json` as
  a number; only the formula and the general "razor and blades" framing were. The
  metric is removed because its own second input, `refill_price`, has no facet or
  stated source anywhere in the register — the schema-mapping table below says the
  opposite, that refill existence is a catalog relationship, not a product field.

## Against the existing add-on schema

The current add-on (`science_toy.jsonc`) has exactly one field:
`science_toy_type`, a 22-value enum. Nothing in it is noise — if anything it is
under-built, not over-built, relative to what buyers and brands actually track. Field
kinds below follow AGENTS.md's four-way test (vertical anchor / category quality
currency / hard filter / sizing; everything else is `high_signal_markdown` or not a
field at all).

| Register facet | Existing field? | Proposed kind | Note |
|---|---|---|---|
| `science_toy_type` | Yes, as-is | Vertical anchor | Keep. It is the one fact every candidate needs and already has a home. |
| `science_subject` | No | Not a stored field | 100% derivable from `science_toy_type` by the fixed lookup now spelled out in full in `category.json`'s own `listing_field_hint` for this facet (chemistry / physics_and_electronics / earth_science_and_fossils / life_science_and_nature, with every one of the 18 enum values, including `other`, assigned). Storing it would be a "field derivable from a kept field" — AGENTS.md rule 5 names this as noise. Compute it in code at read time instead. |
| `age_band` | No | Hard filter, but belongs one level up | Every leaf under `educational-science` (flash cards, abacuses, astronomy toys, this one) prints an age floor. Recommend one shared `min_age_months` numeric field on `educational-science-standard.jsonc`, not a per-leaf duplicate, since the brief notes registers must generalize and this fact is not science-toy-specific. |
| `kit_reusability` | No | Category quality currency | Cheap to augment from title/description keywords ("refill", "one-time", "grow your own" vs. "72 experiments," "reusable"). `backfill_cost` in `category.json` is `low`, matching this note (corrected from `medium` 2026-10-25). Add to `science_toy.jsonc`. |
| `experiment_count` | No | Category quality currency, backfill top-N only | Reliably on brand spec pages (confirmed on three Thames & Kosmos SKUs, and now also on three SmartLab Toys SKUs at the low-to-mid end of the range — see Corrections log). Not confirmed on retail listings. Add as a nullable numeric field to `science_toy.jsonc`; limit augmentation to bestsellers per the skill's standard advice on expensive-to-backfill currency. |
| `involves_chemical_reaction` | No | Not a stored field | Fully implied by `science_toy_type` (chemistry_kit, slime_science_kit, crystal_growing_kit, volcano_kit, and by the same chemistry-leaning convention science_experiment_kit and other, vs. the rest). A derivable duplicate, `source: derived` (corrected from `researched` 2026-10-25) — push any further detail (what specifically reacts, whether it needs goggles) to `high_signal_markdown`. |
| `choking_hazard_warning` | No | Not a stored field | The actual warning text is free-form safety-claim prose — exactly the kind of thing AGENTS.md rule 5 sends to Jev/`high_signal_markdown`, not a structured enum. |
| `small_strong_magnets` | No | Hard filter | Narrow (only matters for `magnet_kit` and a few circuit kits with speaker magnets) but binary and safety-relevant to a buyer with a toddler in the house. Worth a boolean on `science_toy.jsonc` despite the narrow scope. |
| `max_magnification` | No | Category quality currency, scoped to one type | Only meaningful for `microscope_toy_set`. Add a nullable numeric `magnification_max` to `science_toy.jsonc`; null for every other `science_toy_type`. |
| `standards_alignment` | No | Not a stored field | A free-text list of curriculum codes relevant to a minority of (mostly homeschool) buyers. Classic `high_signal_markdown` material, not a structured field. |
| `consumable_refill_available` | No | Not a per-product field | This is really a catalog relationship (does a refill SKU for this product exist), not an attribute of the product itself. Leave it to the catalog/search layer rather than the schema. |
| `requires_extra_materials` | No | Not a stored field | Free-text completeness claim ("you'll also need vinegar and baking soda"); `high_signal_markdown` material. |

## Branches

Branches live only on the `science_subject` split, and only as `makes_irrelevant`
legs that hold for every `science_toy_type` inside that subject value — no
`then_ask` leg is included, because the facets that would want one
(`small_strong_magnets` for `magnet_kit`, `max_magnification` for
`microscope_toy_set`) are each true for only one sub-type within a subject, not the
whole subject, so a branch keyed to the subject would be a weak leg for the other
sub-types sharing that subject value. That failure mode is exactly what the
`checks.md` log flags from earlier runs ("a split whose branches are keyed to values
the question cannot cleanly return"), so those two legs are dropped here rather than
written in.

The full `science_toy_type → science_subject` lookup (all 18 enum values, including
`other`) now lives in `category.json` itself, in `science_subject`'s own
`listing_field_hint` — not only here in prose — per the 2026-10-25 corrections below.

- **`science_subject = chemistry` branch DROPPED 2026-10-25** (previously
  `makes_irrelevant: [small_strong_magnets, max_magnification]`). The lookup puts
  `chemistry_kit`, `slime_science_kit`, `crystal_growing_kit`, `volcano_kit`,
  `science_experiment_kit`, and `other` in this subject. `science_experiment_kit`
  and `other` are both chemistry-leaning only "by convention," not by a sourced
  rule, and both are exactly the kind of generic, multi-discipline "all-in-one"
  kit that commonly bundles a small toy magnifier or a small magnet alongside its
  chemistry demos — the blind check's own point. No source states that a
  chemistry-subject product never ships either, so the leg is dropped rather than
  asserted. See Corrections log, item 3.
- `science_subject = physics_and_electronics` → `makes_irrelevant:
  [involves_chemical_reaction]`. Traced to: member types `physics_kit`,
  `circuit_electronics_kit`, `magnet_kit` involve forces, circuits and magnetism, not
  a chemical reaction; none is `chemistry_kit`, `slime_science_kit`,
  `crystal_growing_kit`, or `volcano_kit`. Same two-step chain as above, inverted.
- `science_subject = earth_science_and_fossils` → `makes_irrelevant:
  [involves_chemical_reaction, small_strong_magnets]`. Traced to: member types
  `rock_mineral_kit`, `excavation_dig_kit`, `fossil_dig_kit`, `weather_station_toy`
  neither react chemically nor ship a loose magnet by the add-on's own enum.
- `science_subject = life_science_and_nature` → `makes_irrelevant:
  [involves_chemical_reaction, small_strong_magnets]`. Traced to: member types
  `microscope_toy_set`, `bug_viewer`, `terrarium_kit`, `gardening_grow_kit`,
  `anatomy_model` are observational/biological, none chemical or magnetic by the
  add-on's enum. (`max_magnification` is NOT made irrelevant here, because
  `microscope_toy_set` is a member of this subject and the facet matters for it; it
  simply is not force-added via `then_ask` either, for the reason above.)

One judgement call behind these legs: `microscope_toy_set` is placed in
`life_science_and_nature` rather than `chemistry` or `earth_science_and_fossils`,
on the grounds that bug-viewing and specimen-collecting are the dominant marketed use
(Thames & Kosmos's own microscope listing talks about specimens, slides and
smartphone photos of "the microscopic realm," not chemical or mineral analysis). No
source states this grouping directly; it is this register's own call, logged here
rather than asserted as sourced.

## Trimmed detail

Full list of chemicals Wikipedia's "Chemistry set" page gives as typically included
(for context, not used verbatim as a claim in `category.json`): aluminium ammonium
sulfate, aluminium sulfate, ammonium chloride, borax, calcium chloride, calcium
sulfate, cobalt chloride, cupric chloride, copper sulfate, ferric ammonium sulfate,
ferrous sulfate, gum arabic, magnesium ribbon/chloride/sulfate, manganese sulfate,
phenolphthalein, polyvinyl alcohol, potassium chloride/iodide/nitrate/
permanganate/sulfate, powdered charcoal, powdered iron, sodium bisulfate/bisulfite/
carbonate/ferrocyanide/silicate/thiosulfate, strontium chloride/nitrate, sulfur,
tannic acid, tartaric acid, zinc sulfate. Household chemicals experiments typically
assume but don't ship: vinegar, baker's ammonia, lemon juice, denatured alcohol,
baking soda, table salt. Chemicals too hazardous or short-shelf-life to ship:
hydrochloric acid, hydrogen peroxide, silver nitrate, sodium hydroxide (bought
separately from a drugstore). This supports the `requires_extra_materials` facet's
`why_experts_care` without needing the full list quoted there.

Full Thames & Kosmos microscope accessory list (45 pieces), for context: universal
smartphone adapter, 3 prepared slides, 8 blank slides, 16 cover slips, 8 slide labels,
3 specimen vials, petri dish, test tube, and more (the JSON description was cut off
mid-list in the fetch; not all 45 items were captured). Used only to support that
"accessory count" is a real listed field, not to assert the full 45-item list
anywhere in the JSON.

CPSC magnet-rule background numbers (16 CFR 1262 findings section, verbatim, not used
in `category.json` because they describe the whole magnet-ingestion hazard across all
subject magnet products, not science toys specifically): "an estimated 26,600 magnet
ingestions were treated in hospital EDs from January 1, 2010, through December 31,
2021"; five fatal incidents 2005–2021, four involving children two years old or
younger.

## Corrections

No blind content check has run against this register yet (that happens as a
separate pass after authoring, per `checks.md`'s pattern on earlier categories).
Nothing to log here on this run.

### Corrections after the blind check (2026-10-25)

Checker report: `check.md`, 7 required fixes. Fetched two new sources this run via
`curl` (raw HTML, tag-stripped, same method as the original run) into
`/private/tmp/claude-501/-Users-amnbh-Desktop-dev-zamana/94e1e673-5231-41fe-8b68-7a624ab5c8d8/scratchpad/fix-science-toys/`:
SmartLab Toys' Ultimate Secret Formula Lab (`smartlab_secret_formula_lab`) and Smart
Circuits: Electronics Lab (`smartlab_circuits_lab`), both verbatim via direct `curl`,
both live pages (HTTP 200) as of today.

1. **Fix 1 (most severe), `science_subject` lookup table.** Wrote the complete
   `science_toy_type → science_subject` mapping into `category.json` itself, in
   `science_subject.listing_field_hint`, covering all 18 enum values including
   `other` (assigned to `chemistry`, grouped with `science_experiment_kit` under the
   same "chemistry-leaning by convention" call the register already made). The
   pipeline can now compute this facet for every product, including ones typed
   `other`, straight from `category.json` with no trip to `notes.md`.
2. **Fix 2, single-source numbers.** Found and verified (live, `curl`, verbatim)
   two SmartLab Toys product pages: Ultimate Secret Formula Lab (Ages 8 to 14, "40
   incredible chemistry experiments") and Smart Circuits: Electronics Lab (Ages 8
   to 14, "50 fun circuit builds"). Added both as new references
   (`smartlab_secret_formula_lab`, `smartlab_circuits_lab`) and cited them from
   `experiment_count` and `age_band`. This gives the low-to-mid end of the
   `experiment_count` range (20 to 50) genuine two-brand corroboration; the top end
   (333, T&K's CHEM C3000) stays single-brand, and the facet's `definition` and
   `range.typical` now say so explicitly, per the checker's "at minimum" bar.
   For `age_band`'s `why_experts_care`, the SmartLab chemistry-labeled kit floors at
   8+, not 12+ — a genuinely useful second data point, but one that undercuts rather
   than confirms a blanket "chemistry floors higher" reading. Reworded the claim to
   say the 12+ jump tracks that one T&K kit's own complexity (333 experiments, real
   reagents), not the chemistry subject as such, which is both more accurate and
   better supported than the original wording.
3. **Fix 3, chemistry branch's two weak `makes_irrelevant` legs.** Found no source
   for "a generic chemistry-subject kit never bundles a small magnet or toy
   magnifier," and the checker's own reasoning against it (common in multi-discipline
   "all-in-one" kits) holds up on inspection. Dropped the `chemistry` branch from
   `science_subject.branches` entirely rather than assert an unsourced leg — see
   Branches section above. The other three branches (`physics_and_electronics`,
   `earth_science_and_fossils`, `life_science_and_nature`), each graded SUPPORTED by
   the checker, are unchanged.
4. **Fix 4, `involves_chemical_reaction` source.** Changed `source` from
   `researched` to `derived` and `backfill_cost` from `low` to `none`, matching
   `science_subject`'s treatment of the same derivable-by-lookup situation. Extended
   `listing_field_hint` to state the `science_experiment_kit`/`other` convention
   explicitly, for consistency with fix 1.
5. **Fix 5, `kit_reusability` backfill-cost disagreement.** `category.json` said
   `medium`; this file said "cheap... from title/description keywords." Changed
   `category.json` to `low`, matching this file rather than the reverse, since the
   keyword-based inference described here really is cheap and nothing in the
   facet's own `why_experts_care` argues for a higher cost.
6. **Fix 6, `refill_cost_ratio` metric.** Dropped the metric from
   `derived_metrics`. Its second input, `refill_price`, has no facet anywhere in
   this register, and this file's own schema-mapping table already says refill
   existence is a catalog relationship, not a product field — so there is no honest
   way to give the metric a stated source for that input without adding a new facet,
   which the checker's fix only offered as the alternative to dropping it. The
   `consumable_refill_available` facet and the `tk_rock_tumbler` reference that
   motivated the metric both stay; only the formula entry goes.
7. **Fix 7, `age_band` cold-start question reads generic.** Accepted the checker's
   second option rather than the first: the question stays
   "How old is the child using it?" A reworded question could not actually encode
   the hazard-not-fun payoff without turning into a leading, >12-word question (the
   validator's own cap), and the split's `rationale` and the facet's
   `why_experts_care` already carry that payoff explicitly as an attached judgement,
   which is where the checker said the value legitimately belongs. Logged here as
   the explicit acknowledgment the checker asked for.

**Related, not a required fix:** the `cfr_1500_50` reference's `supports` entry
overstated what the regulation covers (it caps at 96 months / 8 years and was being
used to back an evidence list that also includes the `11_and_up`/`16_and_up`
buckets). Reworded the `supports` line to state only what was actually read, since
this was cheap to fix while already touching `age_band`'s evidence.

**Rejected:** none. All 7 required fixes were actionable either by writing real
data into `category.json` (fixes 1, 4, 5), by finding a genuine second source
(fix 2), or by removing an unsupported claim rather than inventing a source for it
(fixes 3, 6). Fix 7 was accepted on its own second branch (document, don't reword)
rather than rejected.

## Script notes

`validate.py` first failed with "reference 'cfr_1500_50' is never cited as evidence"
— a real catch, since that reference had been added to the references list but not
yet cited from any facet; fixed by adding it to `age_band`'s evidence list (it
genuinely supports that facet, via the US age-band test logic). After that,
`validate.py`, `render.py` and `viewer.py` all ran clean on one pass each. Nothing to
report as a script misbehaviour.
