Scope: Free Weights & Bars = dumbbells, barbells (straight + specialty bars: EZ curl, trap/hex, safety squat, Swiss, fixed), kettlebells, and weight plates. Excludes benches/racks/machines (sibling "Gym Benches, Racks & Machines") and bands/suspension trainers (sibling "Resistance & Suspension Trainers").

Seed:
1. Weights equivalent of the tyre treadwear example: sleeve/hole diameter standard (25mm standard vs 50mm Olympic) — on every spec sheet, still needs a judgement because mismatched standards simply don't fit, no partial compatibility.
2. An allergist-type persona (here: a physical therapist) would notice knurl pattern and rotation system first — things that injure a wrist or shoulder before weight capacity does.

Sources:
[wikipedia_barbell] https://en.wikipedia.org/wiki/Barbell — men's/women's Olympic bar dims, sleeve/shaft mm, IPF spec, bumper plate 450mm, specialty bar shapes — fetched excerpt
[wikipedia_olympic_weightlifting] https://en.wikipedia.org/wiki/Olympic_weightlifting — independently confirms 20kg/28mm/2200mm men's, 15kg/25mm/2010mm women's, bumper colors — fetched excerpt
[wikipedia_dumbbell] https://en.wikipedia.org/wiki/Dumbbell — three dumbbell types, collar/mechanism names — fetched excerpt
[wikipedia_kettlebell] https://en.wikipedia.org/wiki/Kettlebell — parts, competition color-weight table — fetched excerpt
[wikipedia_weightplate] https://en.wikipedia.org/wiki/Weight_plate — hole standards, bumper diameter constancy, vinyl/technique plates, calibration tolerance — fetched excerpt
[garagegym_dumbbells] https://garagegymreviews.com/best-adjustable-dumbbells — mechanism comparison table (pop-pin/dial/selector pin/Lock-N-Load/spin-lock), increments, handle widths — fetched excerpt
[garagegym_kettlebells] https://garagegymreviews.com/best-kettlebells — "competition kettlebells all have a uniform handle size...35 millimeters"; cast iron handle varies with weight — fetched excerpt

Coverage test:
- Brand/spec rows seen (both Wikipedia bar/plate pages, which read like spec sheets): sleeve/hole diameter, shaft diameter, bar weight, bar length, knurl pattern, rotation hardware, plate diameter, plate material/coating, calibration tolerance — all have facets.
- Buyer's guide (GGR dumbbells) axes: mechanism, weight range, weight increment, handle width, length, "replaces N pairs" — mechanism and increment are facets; handle width folded into mechanism's why_experts_care (no 2nd numeric source); "replaces N pairs" is a space-saving claim, not an expert spec, left as Noise.
- Bundled product types: dumbbell, barbell, kettlebell, weight_plate each got their own facet set, routed by the free_weight_type split.
- Governing standard: IWF/IPF bar and plate dimensions are facets (sleeve_standard, shaft_diameter_mm, bar_weight_kg, knurl_pattern) cited to the standard via Wikipedia's citation of it.
- Derived metric: cost per pound of load (price ÷ weight), seen in GGR kettlebell comparisons.

Branches: olympic_or_crossfit -> plate_material_construction, rotation_system (drop-tolerance and fast-turnover both matter). powerlifting -> rotation_system, knurl_pattern (bushings sufficient; IPF bars not chromed over knurl). kettlebell_sport -> kettlebell_construction (competition bells must be the standardized build).

Noise:
- "Replaces N pairs of dumbbells" (space-saving marketing claim) — not an expert spec, no facet.
- Price range, warranty length — excluded per rule (price/brand/rating never facets).
- Dumbbell/kettlebell length and footprint dimensions — storage detail, not a buying judgement call, left out.
- Medicine balls, slam balls, ankle/wrist weights, weighted vests — adjacent "free weight"-style tools but not named in the leaf label or in catalog siblings; left out of scope rather than forced into one of the four types.
- Tensile strength / PSI rating for bars — real spec sheet row, but no two independently fetched numeric sources this run (Rogue and other brand pages were behind Cloudflare bot-checks); omitted rather than invented.

Corrections:
- validate.py: derived_metrics entry used wrong field names (name/why_it_matters, missing formula) — fixed to id/label/formula/depends_on/why.
- validate.py: reference "kind": "buyer_guide" not in enum — changed both GGR references to "specialist_review".

Corrections (2026-10-26):
- Added `dumbbell_weight_lb` facet (numeric, 1-150 lb) — dumbbells had no weight facet at all; fetched garagegym.com/best-dumbbells (new ref) for fixed-dumbbell range, paired with existing garagegym_dumbbells for adjustable range.
- Added `bar_coating_finish` facet (categorical) — fetched Rogue Ohio Bar (archive.org, new ref rogue_ohio_bar) and BarBend's best-barbells buyer's guide (new ref barbend_best_barbells); both list finish/coating as a standard spec row.
- Fixed asymmetric `makes_irrelevant` on the barbell/kettlebell/weight_plate legs of `free_weight_type` so each now nukes all facets of the other three types, matching the dumbbell leg's completeness.
- Fixed `shaft_diameter_mm.range.max` 28→29 to match its own `typical` text and the cited IPF 28-29mm figure.
- Fixed `kettlebell_weight_kg.range.max` 40→48; garagegym_kettlebells' own Giant Lifting V3 row runs 4-48kg and wikipedia_kettlebell's color table runs to gold/48kg, not white/40kg — updated both the facet's typical text and the two references' supports lines.
- Reclassified `plate_calibration_class.source` listing→researched; its own backfill_note/medium cost already showed it is not reliably on retail listings.
- Added vocabulary entries for "Safety squat bar", "Swiss bar", "Spring or compression collar", and "Pop pin".
- Reworded the `training_context` split question and cold_start_question to name CrossFit explicitly so the olympic_or_crossfit value visibly covers CrossFit shoppers.
- Wired the new `dumbbell_weight_lb` facet into `cost_per_lb_of_load.depends_on`/evidence so the metric's stated dumbbell-vs-kettlebell comparison is actually implementable.
