# Water Play Equipment: research notes

Date: 2026-10-25. Scope: backyard water toys for kids that spray, hold or shoot water: run-through sprinklers and splash pads, water walls, slip n slide / water-slide mats, water tables, small inflatable splash pools, and water blasters (squirt guns). Matches the Zamana add-on enum `water_play_type` (`sprinkler_toy, splash_pad, water_table, water_slide_mat, slip_and_slide, inflatable_splash_pool_toy, water_blaster_play_set, water_wall_toy`). One register for the whole leaf; `play_style` groups those eight add-on values into four buyer-facing buckets rather than splitting the register.

Sibling leaves checked in `catalog.json` (same `outdoor-play-structures` prefix): `inflatable-bouncers`, `playhouses`, `sandboxes`, `slides`, `stilts`, `swing-sets`, `trampolines`. Overlaps, left to the sibling in each case:
- Large inflatable bounce-house-plus-water-slide combos are structurally bounce houses first; they belong to `inflatable-bouncers`, which will presumably cite ASTM F2374 (inflatable amusement devices). This register covers standalone slide mats and slip n slides only, not inflatable bounce/slide combos.
- A sand-and-water combo table (Little Tikes sells a "3-in-1 Splash 'n Grow Water Table") straddles this leaf and `sandboxes`. Treated here only insofar as it is sold primarily as a water table; the sand side is `sandboxes`' concern.
- A hose attachment that clips onto a dry playground slide to wet it is a `slides` accessory, not a `water_play_type` value in the add-on schema; not covered here.

Quote labels: **verbatim** = I read the exact text myself, via `curl` plus HTML-tag-stripping into plain text, or via `pdftotext`. **fetched excerpt** = the WebFetch tool's small model summarised or quoted the page for me; I did not see the raw page text. **search excerpt** = from a search-engine summary, not used here since WebSearch's budget was exhausted for this session before any search returned results (see below). No search-excerpt-only number went into `category.json`; every number in the JSON is behind a verbatim or fetched-excerpt source, and the two legal/medical numbers that matter most (the 6&nbsp;mm plug recess, the inch-or-two drowning depth) are behind text I pulled and read myself with `curl`.

## WebSearch budget

The very first three `WebSearch` calls this run ("CPSC water slide mat safety injury warning age 12 adults", "ASTM F963 water toys sprinkler splash pad standard", "splash pad GPM flow rate spec sheet Step2 Little Tikes") all returned "this session has used its web search budget (200 of 200)". No search tool call in this run ever returned a result. Everything below came from direct `WebFetch`/`curl` on URLs I already knew (CPSC, Cornell LII, eCFR, Wikipedia, brand sites) or found by fetching a brand's own homepage/collection page and reading its internal links. I could not reach: ASTM's own standard-scope pages (403 on `astm.org`), CPSC.gov directly by `curl` (Akamai blocks non-browser user agents; `WebFetch` could reach some CPSC pages, used only for pages with no load-bearing number), eCFR and GovInfo CFR XML (both blocked automated access), Walmart (bot-check wall), Intex's and Hasbro's own product catalogues (links didn't resolve to the specific products), Reddit/enthusiast-forum equivalents for this category (I did not find one; see "no community" note below), and any specialist reviewer that tests water toys (no Wirecutter/RTINGS-equivalent found for this category — it appears not to exist; see judgement about thinness below).

## Seed

Seed run output, recorded verbatim:

```
=== Example entry (from an unrelated category) ===
category: car-tyres
what this shows: a number that is on every listing and still needs a judgement attached, because experts know it only compares within one manufacturer's range.
[treadwear_grade facet, car-tyres]

=== Persona ===
A pastry chef, who thinks in ratios, temperatures and why a recipe fails
```

1. **The water-play equivalent of treadwear_grade is the age range printed on the box ("Ages 5-12", "1.5+ years").** It looks precise and comparable the way a tyre's treadwear number does, but it is a brand's own safety call made inside a legal floor (no toy with small-parts choking hazard may be sold for under-3s, 16 CFR 1500.18), not a number any regulator assigns per product the way UTQG assigns treadwear. Two Wham-O slide-mat listings agree with each other (both "Age 5-12"), and Step2's splash table says "1.5+ years", but with only two brands read I cannot say the numbers are comparable across brands the way treadwear claims to be even loosely. **Kept** as judgement 4 and folded into the `age_band` facet's `why_experts_care`, named by brand rather than generalised to "the category."
2. **What the pastry chef would notice first: the ratio that decides whether the thing fails the way a recipe fails.** A pastry chef thinks about the ratio that decides whether a batter behaves (hydration ratio) and the one point past which a recipe always fails the same way (overwhipped cream splits, not "fails randomly"). Applied here: the one ratio that actually changes what can go wrong with a water toy is spray-and-drain versus collect-and-sit — a splash pad has no failure mode shared with a kiddie pool (nothing to supervise once the water's off vs. drowning risk the whole time it's full). That became the `standing_water` facet, kept because it changes the safety story, not because it's a pretty analogy. I considered a second, closer-to-literal "ratio" facet — a numeric drainage rate or a named single point of failure (pump valve vs. puncture vs. seam) the way a pastry recipe fails at one specific step — but no brand or reviewer publishes a comparable number or a single agreed failure point across this category, so inventing either would have been exactly the fabrication the brief warns against. **Dropped**, noted here instead.

## No enthusiast community found

`references/sources.md` asks me to find where experts actually talk. For honey, lamps, power banks, there is a subreddit, a trade association or a specialist reviewer. For backyard water toys I found none: no FAQ wiki, no measurement-based reviewer (nothing playing the RTINGS/Wirecutter role), no trade association specific to this product (ASTM and CPSC cover toys broadly, not this category specifically). The closest things to expert discourse are the regulator text itself (CPSC/CFR/US Code) and pediatric-safety bodies writing about drowning, which is exactly what the register leans on. This itself is evidence the category is thin: there isn't a hobbyist or trade culture built around slip n slides the way there is around tyres or power banks, so the register stays to 3 splits and 5 facets rather than padding toward 4 and more.

## Sources and what each supports

### Statute and regulation (water blasters, small parts)

**15 U.S.C. § 5001, Penalties for entering into commerce of imitation firearms (law.cornell.edu, curl + tag-strip, read raw)**
https://www.law.cornell.edu/uscode/text/15/5001
- verbatim: "the term 'look-alike firearm' means any imitation of any original firearm which was manufactured, designed, and produced since 1898, including and limited to toy guns, water guns, replica nonguns, and air-soft guns firing nonmetallic projectiles."
- verbatim: "each toy, look-alike, or imitation firearm shall have as an integral part, permanently affixed, a blaze orange plug inserted in the barrel ... recessed no more than 6 millimeters from the muzzle end of the barrel."
- verbatim: exemptions are "any look-alike, nonfiring, collector replica of an antique firearm developed prior to 1898, or traditional B–B, paint-ball, or pellet-firing air guns."
- Note on a wrong lead: `WebFetch`'s own summary of this same page, on the first pass, added an invented line — "Water guns and traditional air guns are exempt from marking entirely if they meet the statutory definitions" — that is not in the statute; the statute names water guns as *covered*, not exempt. I only used the `curl`-and-read text above, not that summary, and flag this exact failure mode (a fetch-tool summary inventing a reading of the source) because it's the one the brief most wants caught.
- Supports: judgement 1, the `play_style` facet's "Blaze orange plug" vocabulary entry. Confidence high (primary legal text, read directly).

**16 CFR § 1500.18, Banned hazardous toys and other banned articles (law.cornell.edu, curl + tag-strip, read raw)**
https://www.law.cornell.edu/cfr/text/16/1500.18
- verbatim: "(9) Any toy or other article intended for use by children under 3 years of age which presents a choking, aspiration, or ingestion hazard because of small parts as determined by part 1501 of this chapter and which is introduced into interstate commerce after January 1, 1980."
- Supports: judgement 3, the `age_band` facet's small-parts floor, "Small parts rule" vocabulary entry. Confidence high.

**Wikipedia, Consumer Product Safety Improvement Act (fetched excerpt)**
https://en.wikipedia.org/wiki/Consumer_Product_Safety_Improvement_Act
- fetched excerpt (quoted): small parts third-party testing mandatory by "February 15, 2009"; lead in surface coatings "90 ppm" from August 14, 2009, total lead phased to "100 ppm by August 14, 2011"; phthalates DEHP/DBP/BBP capped at "0.1 percent" from February 10, 2009; a children's product is one "designed or intended primarily for children 12 years of age or younger."
- Supports: judgement 3's date, second source alongside the CFR text for the small-parts regime (the CFR gives the rule, this gives when it became a tested requirement). Confidence medium-high (tertiary source, but the dates match the well-documented CPSIA timeline).

**Wikipedia, Toy safety (fetched excerpt)**
https://en.wikipedia.org/wiki/Toy_safety
- fetched excerpt: lists, under US regulations, "Part 1150 — Marking of Toy, Look-alike and Imitation Firearms" as a named US toy rule.
- Supports: confirms 15 U.S.C. 5001's implementing regulation exists and is categorised as a toy-safety rule, not an obscure one-off. Confidence medium (did not carry the 6 mm figure itself; that number rests on the primary statute alone, which I read directly).
- Could not reach: 16 CFR Part 1150 itself. `eCFR.gov` returned a bot-block page ("Due to aggressive automated scraping... programmatic access... limited to... developer APIs") on direct `curl`, and `WebFetch` on the same URL hit a redirect to `unblock.federalregister.gov`, a CAPTCHA wall, which I did not follow since it is explicitly an anti-bot page, not content. GovInfo's CFR XML endpoints for part 1150 (tried two annual editions) both 404'd into GovInfo's own HTML shell rather than the XML. The 6 mm figure therefore rests on the statute (15 U.S.C. 5001) alone, which is the primary source anyway and was read verbatim, not on a second confirming source for that exact number.

### Drowning risk (standing water)

**HealthyChildren.org (American Academy of Pediatrics), Water Safety and Young Children (curl + tag-strip, read raw)**
https://www.healthychildren.org/English/safety-prevention/at-play/Pages/Water-Safety-And-Young-Children.aspx
- verbatim: "Young children can drown in as little as an inch or two of water, and it can happen quickly and silently."
- verbatim: "Researchers have found that 69% of drownings in children age 4 and younger happened during non-swim times."
- verbatim: "The biggest drowning threat facing families with toddlers is unexpected, unsupervised access to water: swimming pools, hot tubs and spas, bathtubs, natural bodies of water such as ponds and standing water in or around the home."
- Supports: `standing_water` facet, judgement 2. Confidence high (a pediatric professional body's own consumer page, read directly).

**Wikipedia, Drowning (curl + tag-strip, read raw)**
https://en.wikipedia.org/wiki/Drowning
- verbatim: "People have drowned in as little as 30 mm (1.2 in) of water while lying face down."
- verbatim: "Children have drowned in buckets and toilets."
- verbatim: "Children aged 0–4 years old having the highest number of deaths due to unintentional drowning."
- Supports: second, independent source for the shallow-water drowning claim (judgement 2). The two figures ("an inch or two" from AAP, "30 mm / 1.2 in" from Wikipedia's cited literature) agree closely enough to state together as "roughly an inch to 30 millimeters" without implying false precision. Confidence high.

### Brand listings (what's actually on a water-play page)

**Wham-O, 26ft Slip 'N Slide Super Slide (fetched excerpt)**
https://www.wham-o.com/collections/slip-n-slide%C2%AE/products/slip-n-slide%C2%AE-super-slide
- fetched excerpt (quoted): "26ft. Slip 'N Slide®"; "72" (W)"; "Age 5-12"; "Double action pump included"; "2 heavy duty Boogie® boards included".
- Supports: `age_band` (5-12), `play_style`/vocabulary (pump included, as a listing detail worth flagging in the add-on comparison below). Confidence medium-high (brand's own page, via a fetch-tool summary rather than raw HTML; the figures are short factual bullets, a low-risk thing for a summary to mangle, and the "Age 5-12" figure repeats identically on a second product — see next).

**Wham-O, 16ft Surf Rider Double (fetched excerpt)**
https://www.wham-o.com/collections/slip-n-slide%C2%AE/products/sns-surf-ride-2x
- fetched excerpt: "Age 5-12"; "16ft. Slip 'N Slide®"; no material or warning text present on the page as fetched.
- Supports: second instance of the "5-12" age grading within the same brand's own slide-mat line, which is as far as the evidence goes — this is one brand's convention checked twice, not two brands, and the register and judgement 4 say so.

**Step2, Sunshine Springs Splash Table with CoolBreeze Misting Canopy (fetched excerpt)**
https://www.step2.com/products/sunshine-springs-splash-water-table
- fetched excerpt (quoted): "1.5+ years old"; "54.6 in H x 37.3 in W x 43.1 in D"; basin holds "up to 14 gallons of water"; "durable resin construction"; misting canopy "connects to a standard garden hose"; "CHOKING HAZARD – Small parts. Sharp points. Adult assembly required."; "8 included accessories".
- Supports: `age_band` (1.5+), `water_source` (garden-hose phrasing used directly in the facet's `listing_field_hint`), the choking-hazard warning tying to judgement 3, and confirms `capacity` (14 gal) is already carried by the existing `supplies-standard` sizing block rather than needing a new facet. Confidence medium-high (brand page via fetch-tool summary; figures are short label-style facts).

**Little Tikes, Sand and Water Play collection (fetched excerpt)**
https://www.littletikes.com/collections/sand-and-water-play
- fetched excerpt: lists nine named "Water Table" products (Easy Store, Splash Beach, 3-in-1 Splash 'n Grow, Magic Flower, Mermaid Island Wavemaker, Flowin' Fun, Frog Pond, Spiralin' Seas Waterpark, Bluey Beach), described as "suitable for ages 1 and up."
- Supports: that "water table" is the trade's own name for the contained-play family and that it is marketed from around age 1, corroborating the `contained_pool_or_table`/`age_band` pairing from a second brand. Confidence medium (collection-page summary, not an individual spec sheet).

**Target, "splash pad" search results (fetched excerpt)**
https://www.target.com/s?searchTerm=splash+pad
- fetched excerpt: eight listed products (MINNIDIP, Sun Squad, HeyGo, WOW, SUGIFT) with dimensions sometimes present, material claims like "Anti-Slip", one age range ("Ages 2-6" on an inflatable pool-slide-sprinkler combo), no flow-rate or GPM figure on any listing shown.
- Supports: `shell_material`'s `listing_field_hint` (material shows up as marketing adjectives, not a gauge number) and the decision to drop a `gpm`/flow-rate facet entirely (see below). Confidence medium (search-results-page summary; used only for "what's present on a listing", which is the one thing retail listings are good for per `references/sources.md`).

### Dropped: GPM / flow rate

I looked for a flow-rate (GPM) spec because it would be a natural quality-currency number for hose-fed sprays, the way wattage is for chargers. I could not find it published anywhere: not in the Target splash-pad listings above, not on the two Wham-O pages, not on Step2's splash table. Brand pages for this category simply don't carry it; pressure/flow is a function of the household's own hose and tap, not something the toy itself specifies. **Dropped** rather than invented. If a future pass finds a brand that does publish it (some premium splash pads advertise a "multi-zone" spray controller), it would be a `researched`, high-backfill-cost annotation, not a filter, since so few listings would have it.

## Against the existing add-on schema

Add-on read: `supplies/play/outdoor-play-structures/add-ons/water_play.jsonc` (`water_play_type` enum, 8 values + other/unspecified), composed with `outdoor-play-structures-standard.jsonc` (`sizing.assembled_length/width/height`, `max_users`, `total_weight_limit`, `per_user_weight_limit`) and `supplies-standard.jsonc` (`high_signal_markdown`, `sizing.size_stated/pack_count/pieces_included_text/dimensions/capacity/weight/measurements_text`). `AGENTS.md` field-kind vocabulary used below: vertical anchor, category quality currency, hard filter, sizing, or cut-as-noise.

| Facet in this register | In add-on today | Proposed kind under AGENTS.md | Note |
|---|---|---|---|
| `play_style` | Yes, as the finer `water_play_type` enum (8 values) | vertical anchor (keep `water_play_type` as-is) | This register's 4-value grouping is a presentation-layer lookup over the existing enum, not a new stored field. Store `water_play_type`; compute `play_style` with a fixed mapping at query/UI time. |
| `age_band` | No | hard filter | Printed on every listing I read (box, bullets) and CPSC requires an age floor be observed at 3, so it is dense enough to commit to backfilling. Proposal: a numeric `min_age_months` (and optional `max_age_years`) rather than a categorical band, since the exact printed number ("18 months", "5", "12") is what's on the page and bands can be computed from it at query time. |
| `water_source` | No | hard filter (boolean `requires_garden_hose`) | Cheap: the phrase "connects to a garden hose" or "fill with water" is usually right in the description, as seen on Step2's page. |
| `standing_water` | No, and per rule 5 it should not be added as its own stored field | computed, not stored | It follows from `water_play_type` by a fixed rule (true only for `water_table` and `inflatable_splash_pool_toy`), so under AGENTS.md rule 5 ("fields derivable from kept fields... cut on sight") this stays a query-time computation over the existing enum, exactly like this register's `source: derived` marks it. |
| `shell_material` (flexible vs. rigid) | No | **not a schema field** — visually derived | Under AGENTS.md rule 1, "if a field can be better determined by looking at the product photo than by reading the page, it doesn't belong here." A vinyl slide sheet and a rigid resin table read apart instantly on a photo. I flag this honestly even though it is in this register: the register is about what an assistant should know and surface, not only about what belongs in the text-extraction schema, and the comparison table's job is to say where each one lands. Recommend the image/embedding pipeline carry this, not a new schema column. |
| `pump_included` (not in this register as a top facet, but worth naming) | No | hard filter (boolean) | Wham-O's own listing says "Double action pump included" as a plain bullet. Cheap, on-listing, and not reliably visible in a product photo (a bagged pump may or may not be shown). Worth adding to the add-on even though it did not earn a facet slot here, since the register stays lean on a thin category; noted here rather than invented into a sixth facet. |
| capacity (gallons/liters for tables and pools) | Yes, already in `supplies-standard.sizing.capacity` | sizing (unchanged) | Step2's "14 gallons" is exactly this field; no new facet needed, confirmed by reading a real listing. |
| `assembled_length`/`width` (slide length, pad diameter) | Yes, already in `outdoor-play-structures-standard.sizing` | sizing (unchanged) | The one number every slide-mat listing leads with (16ft, 26ft, 30ft) is already captured generically; no category-specific facet needed. |

Nothing in the current add-on reads as noise for this category; it is a single enum field plus the two standard blocks, which is about as lean as a schema gets. The main gaps are `age_band`-as-numbers, `requires_garden_hose`, and the `pump_included` bullet, none of which clash with AGENTS.md's cut rules.

## Branches

Each leg traced to a sentence already in the register (`category.json`) or in these notes. Legs I could not trace this way were not written.

**Split 1, `play_style` ("Running through spray, sliding, a pool, or squirt toys?")**

- `when: lie_down_slide` → `makes_irrelevant: standing_water`. Traced to the mechanism's "Lie-down slide" family: "A hose wets a long vinyl or poly sheet so a child slides along it" — nothing is held, so the `standing_water` facet's definition ("whether water collects and sits... rather than draining away") is false by construction for this value; there is nothing left to ask or show.
- `when: contained_pool_or_table` → `then_ask: standing_water`. Traced to the mechanism's "Contained pool or table" family ("holds standing water for sitting in, splashing") plus `standing_water`'s `backfill_note` ("Computed from play_style: true for contained_pool_or_table"): this is exactly the branch where the value is always true, so the safety annotation should surface immediately rather than wait.
- `when: squirt_toy` → `makes_irrelevant: [standing_water]` (2026-10-25: narrowed from `[standing_water, shell_material]`; see correction log). Traced to the mechanism's "Handheld squirting" family ("a sealed reservoir") — nothing is ever open to the air, so `standing_water` is false by construction. The `shell_material` leg of this branch is gone because `shell_material` itself was dropped from `facets` (correction log, item 2), not because the squirt-toy reasoning changed.
- No branch for `run_through_spray`: the rationale only says it "removes the other three families at once", which is the split acting on itself; nothing downstream changes specifically because of this value versus not knowing play_style at all.

**Split 2, `age_band` ("Toddler, school-age kid, or anyone in the splash zone?")**

- No branches (2026-10-25: the `toddler_1_to_3 → then_ask: standing_water` branch was removed; see correction log item 1). `standing_water` is a derived boolean fully determined by `play_style` alone (`backfill_note`: "Computed from play_style: true for contained_pool_or_table, false for the other three"). `age_band` has no sourced rule that changes that value or that changes what to ask next for any of its three values independent of `play_style`, so it carries no branch. The removed branch was the source of the contradiction the blind check caught: it told the assistant to surface `standing_water` for every toddler regardless of `play_style`, which collided head-on with `play_style`'s own `lie_down_slide` and `squirt_toy` branches on the same facet. Since `play_style` is asked first (`narrows_set: 5` vs. `age_band`'s `4`) and is the only split that actually determines the facet's value, deferring to it entirely removes the need for any precedence rule between the two splits.
- Dropped leg, unchanged from the original pass: "all ages → ask about constant-air vs. single-fill inflatables, since teen/adult weight needs a sturdier build" — no source states a weight-to-build rule, so it was not written.

**Split 3, `water_source`**: no branches. The rationale states it only changes where the product can be used, which is the split answer itself, not a reason to ask or drop anything else. Independent of the other two splits, per the brief's "independent questions need none." (2026-10-25: rationale text itself was reworded to state the overlap with `play_style` explicitly; see correction log item 8. This does not add or remove a branch, since the overlap was already implicit in the facet's own `backfill_note`.)

## Trimmed detail

Sentences cut from capped fields that carried a fact or source, with where each now lives.

- **mechanism.plain**: an earlier draft named specific example products inside the 150-word cap ("a slip n slide", "a Super Soaker"); trimmed to the generic family description, with the named products kept in the `families` array and in these notes.
- **age_band.why_experts_care**: an earlier draft read "tables are graded from about 18 months and slide mats from about 5 to 12" (generalising both to the category). Rewritten to name Step2 and Wham-O specifically, since the sample behind each number is one and two listings respectively — see "Seed" item 1 above for why this was corrected before, not after, a blind check.
- **judgement 4's note**: trimmed "(two slide-mat listings from the same brand, one table listing from a second brand)" to "Only two brands' listings were read (Wham-O, Step2)"; the fuller accounting of which pages and how many is in the brand-listings sources above.
- **tradeoffs[1].plain**: cut "the patch kit in the box only fixes a clean puncture, not a seam tear" (no second source for the patch-kit distinction; dropped rather than carried on one source).

## Corrections

None yet from an external blind check — this is the first pass on this category, authored and self-reviewed in one run. Two corrections were made against my own first draft, before validation, and are recorded above rather than in a separate "after the blind check" section: the WebFetch-invented "water guns are exempt" line was caught by reading the statute's raw text myself instead of trusting the summary (see the 15 U.S.C. 5001 entry above), and the age-range overgeneralisation was caught by re-reading my own draft against the "generic test" / over-generalisation failure mode logged for `air-purifier` in `checks.md` before this register was finalised, not after a separate checker ran.

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

1. **Branch contradiction (required fix 1, most severe).** Removed `age_band`'s `toddler_1_to_3 → then_ask: [standing_water]` branch entirely, rather than adding a precedence rule. `standing_water` is fully derived from `play_style` alone (its own `backfill_note` says so), so once `play_style`'s branches have already set or dropped it, an `age_band` branch telling the assistant to surface it again for every toddler was both redundant and, for the `lie_down_slide`+toddler combination the checker named (a toddler buyer looking at a slip 'n slide), directly contradictory. No branch means no contradiction, and nothing sourced was lost: `age_band`'s own rationale and `standing_water`'s `why_experts_care` already carry the toddler-drowning-risk framing in prose.
2. **`shell_material`'s source classification contradicted notes.md (required fix 2).** Dropped the `shell_material` facet from `category.json` entirely, per notes.md's own "Against the existing add-on schema" table, which already concluded this is "not a schema field — visually derived" and recommended the image/embedding pipeline carry it instead of a text-researched facet. Removed its only reference (`target_splash_pad_search`, now cited nowhere else) and the `facet: "shell_material"` tag on the "Constant-air inflatable" and "Gauge" vocabulary entries (the terms themselves stay; they're still useful vocabulary even without a schema facet behind them). `tradeoffs[1]` ("flexible vinyl shell" vs. "puncture resistance") is a plain-phrase trade-off, not tied to a facet id, so it stays unchanged — the underlying fact (vinyl tears, rigid plastic doesn't) is real, it's just not worth a text-research field.
3. **Fabricated-sounding source claim (required fix 3).** Refetched `littletikes_water_play` myself (`curl` on the collection page, then the site's own `/collections/sand-and-water-play/products.json` feed for the 24 listed products' real tags and body copy). Confirmed the checker: no "ages 1 and up" statement exists anywhere; the page instead filters by three age buckets (Ages 1-2, 3-4, 5+ Years) and individual products carry their own tags ("Age:2 + years", "Age:18 months - 5 years", etc.), not a unified claim. Replaced the reference's `supports` entries with what the page and feed actually show.
4. **Incomplete exemption list (required fix 4).** Added "paint-ball" to judgement 1's note, matching the statute's verbatim exemption clause ("prior to 1898, or traditional B–B, paint-ball, or pellet-firing air guns"), which the original note dropped.
5. **Uncited branch leg (required fix 5).** Resolved as a side effect of correction 2: with `shell_material` removed from `facets`, the `squirt_toy → makes_irrelevant: [standing_water, shell_material]` branch's `shell_material` leg (the one resting on my own uncited "every water blaster I know of is a rigid plastic shell" belief) is gone along with it. The branch now reads `makes_irrelevant: [standing_water]` only, which is fully sourced.
6. **Single-source facets (required fix 6).** `shell_material`'s single-sourcing is moot now that the facet is dropped (correction 2). For `water_source`, fetched a second, independent-brand source: Little Tikes' "Flowin' Fun Water Table" product page states "Garden Hose Compatible: Connect to your garden hose for continuous flowing fun – no constant refilling needed" (verified via `curl` on the page and cross-checked against the brand's own `products.json` feed). Added it as reference `littletikes_flowin_fun_water_table` and cited it in `water_source`'s `evidence` and in `tradeoffs[2]`'s `evidence`, alongside the existing Step2 source.
7. **Generic cold-start question (required fix 7).** Reworded `age_band`'s question from "Toddler, school-age kid, or any age including teens?" to "Toddler, school-age kid, or anyone in the splash zone?" in both `splits[1].question` and the `age_band` facet's `cold_start_question`. "Splash zone" anchors the all-ages option to water play specifically, so the question no longer reads identically for trampolines, swing sets or scooters.
8. **Overstated independent narrowing (required fix 8).** Lowered `water_source.priority.narrows_set` from 3 to 1 and reworded the split's `rationale` to state the overlap with `play_style` directly ("though play_style already predicts it for most items; only hose-fill-spout pools and tables need asking"), rather than letting the overlap sit only in the facet's `backfill_note` while the priority score implied independent information.

No findings were rejected; all 8 required fixes were applied. The Part D narrative items the checker raised but did not number as required fixes (the `age_band`/`water_source` "listing" classification resting mainly on manufacturer pages rather than a confirmed third-party retail listing, and ASTM F963's applicability being unstated) were left as-is: they are disclosed gaps already, not required fixes, and reopening them was out of scope for this pass.

## Script notes

`validate.py`, `render.py` and `viewer.py` all ran clean on the first pass after the two corrections made before the first blind check. After the 2026-10-25 blind-check corrections above, `validate.py` was re-run and passed clean on the first try (4 facets, 3 splits, 11 references); `render.py` and `viewer.py` were then re-run to regenerate `category.md` and `viewer.html`.
