# Nets & Traps: research notes

Date: 2026-10-25. Scope: recreational nets and traps sold as fishing/outdoor gear — landing and dip nets (hand nets on a hoop and handle, for lifting a hooked fish or scooping bait), cast nets (thrown bait nets), and small traps for crab, crawfish, shrimp, minnows or recreational lobster (pots, torpedo traps, hoop nets). In the Zamana taxonomy this is `supplies > active > fishing_nets` ("Nets & Traps"). Not in scope: fishing rods/reels (`fishing_rods`), terminal tackle — hooks, swivels, sinkers, lures (`fishing_tackle`), tackle storage boxes/bags (`fishing_storage`), or sports goal nets for soccer/hockey/basketball (`goals`, a different sub-vertical use of the word "net" entirely — no product overlap, flagged here so it isn't swallowed by mistake). Industrial/commercial-scale gear (gillnets, seines, trawls as used by licensed commercial fisheries) is mentioned only for mechanism background; the catalog this register serves is recreational-gear retail, where that scale of product doesn't appear.

Quote labels: **verbatim** = the fetched page text itself contained the exact words quoted; **fetched excerpt** = the fetch tool lightly summarised or reworded the page I fetched myself; **search excerpt** = from a search-engine summary only (none used here; WebSearch's budget was exhausted this session before any query ran — see below).

## Seed

Seed run output (recorded verbatim):

```
=== Example entry (from an unrelated category) ===
category: olive-oil
what this shows: a facet that experts rank first, that almost no listing carries,
and that is expensive to backfill. The honest answer is to list it, mark it
researched, and limit backfill to the top of the catalog. Also shows a derived
metric hanging off a researched facet.
[harvest_date facet + months_since_harvest derived metric, as in schema.json example]

=== Persona ===
A tailor, who thinks in fit, drape and what you can alter afterwards

Ask yourself two things and write the answers under 'Seed' in notes.md:
  1. What is the fishing-nets equivalent of the example above?
  2. What would this persona notice first about fishing-nets that a typical
     buyer would not?
Keep what survives the data check. Drop the rest.
```

1. The fishing-nets equivalent of `harvest_date` is the degradable escape panel on a crab or lobster trap. Like a harvest date, it is a fact almost no retail listing states, it needs field research (a label, a compliance page, or a state regulation) rather than a spec sheet to confirm, and it matters disproportionately: a trap without it can keep killing indefinitely if lost, the way a bottle without a harvest date might already be stale. Survived the data check as a `researched`, high-backfill-cost facet (`degradable_escape_feature`), sourced to one encyclopedia summary of the general rule (Wikipedia's crab pot article) rather than to a specific state regulation, since I could not reach a state agency's own text (see "Could not reach" below). Dropped: I considered making the exact rot-out timeframe or ring diameter a numeric facet, but only had it from one non-regulator source, so it stays a judgement, not a sourced number in the JSON.

2. A tailor notices fit, drape and what can be altered afterward. Two things survived from that lens: (a) **drape** — the mesh itself has a feel against the catch, the same way a fabric has a feel against skin, and the trade is openly marketed by brands (Frabill: "knotless micro mesh netting to protect slime coat") and independently described outside the brand (Wikipedia's catch-and-release article recommends "rubber coated" or "dense lightweight mesh" over ordinary mesh for the same reason). This became the `mesh_material` split. (b) **alterable afterward** — Frabill's whole landing-net line is organized by handle type, including telescoping and sliding handles that extend after purchase, the net equivalent of a let-out seam. This became the `handle_style` facet. Dropped: the tailor framing also suggested "how the net is stored/packed down," which is really the same fact as handle folding and trap collapsibility already covered by `handle_style` and `trap_style`, so I didn't add a separate facet for it.

## Sources and what each supports

- **Frabill, Conservation Weigh Net product page** (frabill.com/products/conservation-weigh-net-1592499) — **fetched excerpt/verbatim** (JSON-LD `description` field and feature-bullet HTML, both read directly from the fetched page, not summarised by a search engine). Supports: "knotless micro mesh netting to protect slime coat" and "mesh guard hoop to extend the life of the netting" (verbatim from the product's own schema.org description); feature bullet "48\" Aluminum Handle with 30\" Ruler" (verbatim from the page's Features list) — used for `mesh_material` and as one handle-length data point. Frabill is a leading US landing-net brand (its own site organizes all 24 landing nets by handle type and series).
- **Frabill, Bear Claw Trophy Haul Net** (frabill.com/products/bearclaw-trophy-haul-net-1592841) — **verbatim**, read from the page's own Features bullet: "Hoop Size: 14\" x 18\" - Net Depth: 11\" - Handle 18\"". This is the only place in my research a brand states hoop size, net depth and handle length together as discrete numbers rather than prose, so it is the single source behind `hoop_size` and `net_depth`'s existence as facets and their one data point each. Single-brand; flagged in "Trimmed detail."
- **Frabill, Galvanized Torpedo Minnow Trap** (frabill.com/products/galvanized-torpedo-minnow-trap-1657271) — **verbatim**, Features bullet: "Constructed from sturdy galvanized steel - Dimensions: 10\" x 9.75\" x 9\"" and description "two-piece ... designed to simplify baiting and catch removal." Supports `trap_style` (torpedo/two-piece) and `trap_material` (galvanized steel) for the bait-trap family.
- **Promar/Ahi USA, 100 Series Nylon Cast Net** (promarnets.com/products/100-series-cast-nets) — **verbatim**, JSON-LD description: "3/8\" square mesh" for "1\"-5\" bait," "Premium Nylon Multifilament Netting ... reduces gilling," "0.75 lbs of actual lead weight per foot," sizes "3 ft., 4 ft., and 5 ft. radius." Supports `mesh_size`, `lead_weight_per_foot`, `cast_net_radius`, and the nylon-vs-mono trade-off.
- **Promar/Ahi USA, 300 Series Monofilament Cast Net** (promarnets.com/products/300-series-cast-nets) — **verbatim**, JSON-LD description: "1/2\" square mesh for optimal bait capture" targeting "5\"-10\" range" bait, "1 lb of actual lead weight per foot," "90 lb test braille lines," sizes "4' to 10' in radius," model table confirming the same mesh size across all radius variants of one listing (CN-304 through CN-310 all "1/2\" Mono"). This is the evidence behind sizing rule 2 in `AGENTS.md`: mesh size does not vary with radius within one product line, so it belongs outside `sizing`, while radius does vary and belongs inside it.
- **Promar/Ahi USA, Star Crab Trap** (promarnets.com/products/star-crab-traps) — **verbatim**, JSON-LD description: "pyramid-style crab trap," "fully collapsible," "high-grade wire and ... a protective coating," spec table "TR-701 / 16'' x 16\"." Supports `trap_style` (pyramid/collapsible) and `trap_material`.
- **Promar homepage/collection menu** (promarnets.com) — **fetched excerpt** (link list read directly from the page's own HTML, not a search summary). Lists distinct collections for landing nets, dip nets, four cast-net series plus a monofilament line, crab bait cages, crab snares/castable traps, crab traps & nets, crawfish traps, shellfish/crustacean traps, lobster hoop-net gear, and baitfish traps. Used to confirm the category's real product breadth and the `gear_type`/`target_species` value lists, not for any number.
- **Wikipedia, "Fishing net"** — **fetched excerpt**. Defines landing nets, hand/dip nets, cast nets, gill nets and seines in plain terms; states nets are "usually made of artificial polyamides like nylon" and are "meshes formed by knotting a relatively thin thread." Used for the mechanism and `gear_type` value definitions, not for any disputed number.
- **Wikipedia, "Cast net"** — **fetched excerpt**. "Contemporary cast nets have a radius which ranges from 4 to 12 feet (1.2 to 3.6 metres). Standard nets for recreational fishing have a four-foot hoop." "Weights are usually distributed around the edge at about one pound per foot (1.5 kilograms per metre)." "Cast nets work best in water no deeper than their radius." Florida example: "Cast nets having a stretched mesh size not greater than 1 inch in fresh waters of the state unless specifically prohibited," catching "most shrimp and fish under 8 inches." Used for `cast_net_radius`'s range (corroborated by Promar's own 3–10 ft SKU spread), the second source behind `lead_weight_per_foot`, and judgement J2 on state mesh caps.
- **Wikipedia, "Fish trap"** — **fetched excerpt**. Describes pot/bottle traps with "an inverted funnel at the entrance," fyke nets as "bag-shaped net held open by hoops," and the scale of the derelict-gear problem: "Fisheries in Chesapeake Bay ... lose or abandon 12 to 20 percent of their crab traps" annually, and "fishers lost 31,600 crab traps in ... Bristol Bay (Alaska) in a period of two years." Used for the trap mechanism and as context for why degradable panels matter (not quoted as a JSON number, since it isn't one this register needs).
- **Wikipedia, "Crab pot"** — **fetched excerpt**. "Crab traps in many jurisdictions are required to have a 'rot-out panel,' a wooden panel the size of the largest entrance into the trap. This panel will disintegrate with a few weeks' exposure to seawater ... Other pots use biodegradable twine, that disintegrates within less than a week." Also: "a single trap may kill dozens of crabs in this manner" once lost. Sole source behind `degradable_escape_feature`; see "Could not reach" for why it isn't tied to a specific state's regulation text.
- **Wikipedia, "Catch and release"** — **fetched excerpt**. "If a net must be used it is important that it is pre-wetted and is not abrasive to the fish (such as a rubber coated net or very dense lightweight mesh), because fish can easily damage themselves in a normal net while thrashing." Independent (non-brand) corroboration for `mesh_material`.
- **Promar/Ahi USA, 500/600/800/900 Pro Series Cast Nets** (promarahi.com/products/{500,600,800,900}-pro-series-cast-net(s)) — added 2026-10-25 for the blind-check fix. **fetched excerpt**, each page's own spec copy: 500 Pro "1\" monofilament square mesh ... 12\"+ bait", "1.25 lbs ... per foot"; 600 Pro "1/4\" monofilament square mesh ... 1\"-5\" bait, especially in colder months", "1.35 lbs ... per foot"; 800 Pro "1 3/8\" monofilament square mesh ... 12\" and larger bait like mullet or large shad", "1.35 lbs ... per foot"; 900 Pro "3/16\" monofilament square mesh ... 1\"-5\" bait", "1.5 lbs ... per foot". None of the four mentions shrimp by name. Used to rebuild `mesh_size`'s values and to widen `lead_weight_per_foot`'s range; see "Corrections after the blind check" below.

### Could not reach

WebSearch reported its session budget exhausted (200 of 200 calls) before any of my three queries ran, so every source above was reached by direct `curl`/WebFetch on a known URL, not search. Blocked or unreachable: ego-fishing.com (403 on every path), myfwc.com cast-net and baitfish pages (403, so the Florida mesh-size rule is sourced only via Wikipedia's quote of it, not the regulation text itself), dnr.maryland.gov recreational crabbing page (403), basspro.com's cast-net buying guide (403), bettsoldsalt.com/bettstackle.com/leefisher.com (no response — likely DNS/hosting changes), keepfishwet.org's science articles (site is a JS single-page app; curl returns the shell with no article text), In-Fisherman's landing-net buying guide (fetched page was a different cached article with no net content), and the Virginia crab-pot regulation (I could not find the right `4VAC20-xxx` chapter number after four guesses — PERTAINING TO BLUE CRAB SANCTUARIES and ATLANTIC STRIPED BASS and BLACK DRUM were the chapters I actually found, not crab pots generally — and stopped rather than keep guessing chapter numbers). No state or federal regulator's own text was reached for trap escape features or cast-net mesh limits; both are sourced only to Wikipedia's summaries and treated as judgements, not hard-sourced numeric facets, for that reason.

## Data points used for derived metrics

- `cast_net_coverage_area` (`pi * radius^2`): uses `cast_net_radius` only; the formula itself is plain geometry, not a sourced number, so no citation is needed beyond the one already attached to the radius facet (Wikipedia, "Cast net").

## Against the existing add-on schema

`zamana-expertise/data/schema-parts/supplies/active/add-ons/fishing_net.jsonc` currently has exactly two fields, both inside `sizing`: `hoop_size` (a free string) and `handle_length` (value + unit). Nothing in the add-on is noise to cut — it is sparse, not cluttered. Proposals, using the field-kind vocabulary in `AGENTS.md` (vertical anchor / category quality currency / hard filter / sizing); nothing edited:

| This register's facet | AGENTS.md kind | Proposal against the add-on |
|---|---|---|
| `gear_type` + `target_species` | vertical anchor | Collapse into one `gear_type` enum outside `sizing` (`landing_net`, `dip_net`, `cast_net`, `crab_trap`, `crawfish_or_bait_trap`, `lobster_hoop_net`) — guaranteed on every title, as the Promar and Frabill collection structure shows. |
| `mesh_material` | category quality currency | New enum (`rubber_or_knotless`, `knotted`) outside `sizing` — dense on landing/dip-net listings via brand bullet copy. |
| `mesh_size` | hard filter | New field outside `sizing`: fixed per listing even when radius varies within it (Promar's CN-304 through CN-310 are all "1/2\" Mono" — rule 2's "variant-invariant" case). |
| `hoop_size` | sizing (already present) | Keep, but split the current free string into two numbers (`hoop_length`, `hoop_width`) — Frabill states it as "14\" x 18\"," not one dimension. |
| `net_depth` | sizing | New field; currently invisible, but it is a bought-by-number spec stated beside hoop size on brand pages (rule 2's dimension test: bought by number, not eyeballed). |
| `handle_length` | sizing (already present) | Keep as is; matches directly. |
| `handle_style` | category quality currency | New enum (`fixed`, `telescoping_or_sliding`, `folding`, `handle_free`) outside `sizing` — Frabill's own site taxonomy is organized by exactly this field, so it is dense and cheap to state. |
| `cast_net_radius` | sizing | New field; this is the real variant dimension for cast nets (what `hoop_size` is trying and failing to be for a thrown net — cast nets aren't held open by a rigid hoop at all). |
| `lead_weight_per_foot` | category quality currency | New numeric field; stated in bullet copy on brand pages for mid-tier nets and up. |
| `trap_style` | category quality currency | New enum (`rigid_pyramid_or_box`, `collapsible_or_star`, `torpedo`, `hoop_or_ring`). |
| `trap_material` | category quality currency | New enum (`galvanized_steel`, `vinyl_coated_wire`, `stainless_steel`, `plastic_coated_mesh`). |
| `degradable_escape_feature` | *not a structured field* | Too sparse and too costly to confirm per listing to qualify as currency under rule 4 ("if we wouldn't augment it, it isn't currency"). Candidate for `high_signal_markdown` prose only, flagged as a safety/compliance note where a photo or description happens to mention it. |

## Branches

- `gear_type` = Landing or dip net → ask `mesh_material`, `hoop_size`, `net_depth`, `handle_length`, `handle_style`; `mesh_size`, `cast_net_radius`, `lead_weight_per_foot`, `target_species`, `trap_style`, `trap_material`, `degradable_escape_feature` stop mattering. Chain: a landing/dip net has no cast-net mesh-size SKU table and isn't a trap, so the cast-net and trap facets have no value to take (every cast-net and trap source above is about a physically different product). `net_depth` is asked here (2026-10-25 fix) because it is sourced to the same product (`frabill_bearclaw`) as `hoop_size` and only ever applies to a hand net's mesh bag. SUPPORTED.
- `gear_type` = Cast net → ask `mesh_size`, `cast_net_radius`, `lead_weight_per_foot`; `mesh_material`, `hoop_size`, `net_depth`, `handle_length`, `handle_style`, `target_species`, `trap_style`, `trap_material`, `degradable_escape_feature` stop mattering. Chain: cast nets have no rigid hoop or handle (Wikipedia, "Cast net": thrown and retrieved by a rope handline, not a handle) and aren't a trap, so those facets don't apply; `mesh_material`'s rubber-vs-knotted distinction is specific to hand nets used for release, which a thrown bait net is not (Promar's own cast-net material axis is nylon-vs-monofilament, already covered by the trade-off, not by `mesh_material`); `net_depth` is excluded here for the same reason as `hoop_size` (2026-10-25 fix). SUPPORTED.
- `gear_type` = Trap → ask `target_species`, `trap_style`, `trap_material`, `degradable_escape_feature`; `mesh_material`, `hoop_size`, `net_depth`, `handle_length`, `handle_style`, `mesh_size`, `cast_net_radius`, `lead_weight_per_foot` stop mattering. Chain: a trap has no hoop, handle or thrown mesh to speak of (Frabill and Promar's trap pages describe cage/cylinder dimensions, not hoop/handle/mesh-size fields); `net_depth` is excluded here for the same reason (2026-10-25 fix). SUPPORTED.

No branch was written off `mesh_material`, `mesh_size` or `target_species` themselves — each is a leaf split. I considered a branch from `target_species` = Crab → `trap_style` narrows toward pyramid/collapsible, but both pyramid (Promar Star) and non-pyramid rigid box traps exist for crab, so the two facets are correlated but not determined by each other; I didn't write a branch I couldn't trace to a specific stated fact, per the brief's instruction to drop any leg that needs more than the chain above.

## Trimmed detail

- `hoop_size` and `net_depth` have exactly one source each (Frabill Bear Claw), both single numbers (14"×18" hoop, 11" depth) rather than a sourced range, so no `range` object is given in the JSON for either facet; the `why_experts_care` text stays qualitative ("roughly match the biggest fish") rather than citing a number I can't back twice.
- `handle_length` draws on two Frabill models (48" fixed/ruler handle, 18" folding handle) — same brand, not an independent range, so the JSON also omits a `range` object there and the facet stays descriptive.
- The Florida 1-inch cast-net mesh cap and the "rot-out panel ... required in many jurisdictions" claim are each sourced to one Wikipedia article quoting (but not linking to readable text of) the underlying law. Both are written as `judgements` with `confidence: medium`, not as JSON facts with a number, per the two-source rule.
- Cull rings (a legal-size gauge sometimes bundled with a crab trap) and bar-mesh-vs-stretched-mesh measurement conventions beyond the one-line vocabulary entry were considered and dropped: I know of them from general background, not from a source I fetched this session, so they are left out rather than written in on memory alone.

## Corrections

None yet — this is the first pass on this category, not a revision of an earlier blind check. If a checker finds an issue, log the fix here.

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

Re-fetched promarahi.com directly for the 500, 600, 800 and 900 Pro Series Cast Net pages (promarnets.com's old URLs 301 to this domain, as the checker also found) to verify finding 1 before touching the JSON; added them to `references` as `promar_500_pro`, `promar_600_pro`, `promar_800_pro`, `promar_900_pro`. WebSearch's budget was exhausted again this session (200 of 200) before any query ran, confirmed by the same error text the checker quotes, so all new evidence below is from direct WebFetch on known URLs, not search.

1. **`mesh_size`'s ordinal values rebuilt from Promar's real catalog.** Confirmed by direct fetch: 600 Pro (1/4 in) and 900 Pro (3/16 in) both state "1 in. to 5 in." bait, the same bracket as the already-cited 100 Series (3/8 in); neither mentions shrimp by name. 500 Pro (1 in) and 800 Pro (1-3/8 in) both state "12 in and larger" bait; no 5/8 in net exists anywhere in the lineup. Since 3/16, 1/4 and 3/8 in all target the same bait size per the brand's own pages, I did not invent a separate "shrimp" tier distinct from "small bait" — no source ties a specific mesh fraction to shrimp specifically, so the value text says "shrimp included" rather than naming a shrimp-only mesh size. Replaced the four values with three, each backed by at least two of the brand's own product pages agreeing on the same bait-size bracket: "3/8 in or finer (1 to 5 in bait, shrimp included)" [100, 600, 900], "1/2 in (5 to 10 in bait)" [300, unchanged, single-sourced as before], "1 in or larger (12 in and up bait)" [500, 800]. Reworded `cold_start_question` and the matching `splits[].question` to a 3-option menu. `mesh_size` keeps its `split` role in `splits` (array length stays at 4 top-level splits, within the 2-4 bound) despite having one fewer value.
2. **`net_depth` added to all three `gear_type` branches.** Added to `then_ask` on "Landing or dip net" (after `hoop_size`, its sibling from the same source) and to `makes_irrelevant` on "Cast net" and "Trap". Updated the "Branches" trace above to match.
3. **`lead_weight_per_foot`'s range widened from the brand's fuller catalog.** 600 Pro and 800 Pro both state "1.35 lbs of actual lead weight per foot" verbatim (two independent product pages agreeing on the same figure), so the range max moved from 1 to 1.35, satisfying the two-source rule. 900 Pro states 1.5 lb/ft, but that figure has only one source behind it, so I left it out of the hard `range` rather than widen to an unconfirmed ceiling; it is noted here instead. Added `promar_600_pro` and `promar_800_pro` to the facet's evidence.
4. **`gear_type`'s cold-start question reworded**, not split into a new value (the simpler of the checker's two offered fixes, and sufficient: no other facet in the register needs a fourth `gear_type` value for dip nets specifically). New wording: "Landing a fish or bait by hand, casting a net, or trapping?" — the first option now names hand-scooping bait explicitly, and the cast-net option is "casting a net" rather than the ambiguous "netting bait", so a buyer scooping bait by hand no longer has a plausible reason to pick the cast-net option.
5. **`hoop_size`'s `backfill_cost` raised from `low` to `medium`** and the note reworded to say plainly that the exact number is a brand-spec-page fact (one brand, one model), not something generic retail listings carry, matching the pattern already logged across other categories in `checks.md`.
6. **`target_species`'s question reworded** from "Crab, crawfish and minnows, or lobster?" to "Crab, crawfish, shrimp or minnows, or lobster?" to match the facet's own value text ("Crawfish, shrimp or minnows") word for word.
7. **`handle_style`'s `backfill_cost` softened from `none` to `low`.** I could not reach a second brand's listing taxonomy this session (same WebSearch budget exhaustion noted above), so rather than claim a second source I don't have, I lowered the claim: the note now says the field is confirmed only on Frabill's own taxonomy, and other brands' listings may only hint at handle type in bullet copy rather than carry it as a labeled field.

No finding was rejected; all seven required fixes were applied as described above. Rebuilt and re-validated: `validate.py`, `render.py` and `viewer.py` all exited 0 after these changes.
