{
  "type": "mirror.corridor-library",
  "version": 1,
  "published": "2026-09-27",
  "note": "Corridor templates for goods that trade-based laundering favours: what a corridor for each must band, which legs it must require, which of them must come from a party with no stake in the price, which identifiers join its legs, and which typologies it reaches. A template carries NO price, NO band edge and NO tolerance a pair did not ratify - Mirror invents no prices. The numbers that do appear are grade hallmarks (fineness in parts per thousand), which are standards, not prices. A pair ratifies its own table against a template; kernel/mirror-library.js validateProposal checks the shape of that table and never its values.",
  "edge_methods": {
    "mirror-negotiate": "Each bank probes a shared grid of candidate price points from its own book; the jointly acceptable runs become the edges. Neither bank shows the other its book, and Mirror supplies no price.",
    "pair-agreed": "The two banks agree the table between themselves, outside the rail, and record who chose it and from what (mirror-provenance)."
  },
  "templates": [
    {
      "id": "gold",
      "version": 1,
      "name": "Gold — bullion, doré and semi-manufactured",
      "hs": ["7108"],
      "units": ["g", "kg"],
      "dimensions": ["quantity", "unit_price", "grade"],
      "required_roles": ["invoice", "customs", "payment", "inspection"],
      "independent": [
        { "role": "inspection", "kinds": ["assayer", "inspectorate"], "why": "Fineness is the price of gold. Only a measurement by a party with no stake in the price can say whether 999.9 was shipped or 750 dressed as it." },
        { "role": "customs", "kinds": ["customs"], "why": "The one declaration of weight and value the traders do not control." }
      ],
      "grade": { "scale": "fineness, parts per thousand", "marks": [585, 750, 916, 995, 999], "marks_are": "hallmark standards (14, 18 and 22 karat, the 995 good-delivery minimum, fine gold) - grades, not prices" },
      "locator_types": ["bar", "awb", "bl"],
      "max_tolerance": 1,
      "edge_methods": ["mirror-negotiate", "pair-agreed"],
      "kernels": ["mirror-dims", "mirror-assay", "mirror-customs", "mirror-concurrent-exposure", "mirror-independence"],
      "typologies": ["Over-invoicing", "Under-invoicing", "Misdeclared goods / substitution", "Multiple invoicing", "Carousel / round-tripping"],
      "why": "Very high value for its weight, refinable into anything, and priced by a grade that the paperwork can misstate while the weight stays honest.",
      "limits": ["An assay measures the bars it tested, not every bar in the consignment.", "Refining erases identity: a bar serial joins legs only until the bar is melted.", "A mispricing inside one fineness band and one price band is invisible."]
    },
    {
      "id": "used-vehicles",
      "version": 1,
      "name": "Used vehicles — passenger cars",
      "hs": ["8703"],
      "units": ["pieces"],
      "dimensions": ["quantity", "unit_price"],
      "required_roles": ["invoice", "customs", "payment"],
      "independent": [
        { "role": "customs", "kinds": ["customs"], "why": "Export and import declarations of a vehicle are filed against its VIN by parties with no stake in the price." }
      ],
      "locator_types": ["vin", "bl"],
      "max_tolerance": 1,
      "edge_methods": ["mirror-negotiate", "pair-agreed"],
      "kernels": ["mirror-dims", "mirror-customs", "mirror-concurrent-exposure", "mirror-related"],
      "typologies": ["Over-invoicing", "Under-invoicing", "Multiple invoicing", "Phantom / short shipment", "Related-party mispricing"],
      "why": "Individually identifiable, widely financed, and valued across a range so wide that a false price rarely looks false on its own.",
      "limits": ["A VIN proves which vehicle, not its condition; condition moves price inside a band.", "Dealer networks trade within one ownership group - related parties agree a price by construction, which is why the related-party check matters here.", "A VIN key joins only exports on the same date; re-exports need their own date."]
    },
    {
      "id": "mobile-phones-electronics",
      "version": 1,
      "name": "Mobile phones and telecom equipment",
      "hs": ["8517"],
      "units": ["pieces"],
      "dimensions": ["quantity", "unit_price"],
      "required_roles": ["invoice", "customs", "payment"],
      "independent": [
        { "role": "customs", "kinds": ["customs"], "why": "Declared quantity and value at the border, compared against the invoice the payment settles." }
      ],
      "locator_types": ["ctr", "awb", "bl", "einv"],
      "max_tolerance": 1,
      "edge_methods": ["mirror-negotiate", "pair-agreed"],
      "kernels": ["mirror-dims", "mirror-customs", "mirror-einvoice", "mirror-cycle"],
      "typologies": ["Over-invoicing", "Under-invoicing", "Carousel / round-tripping", "Multiple invoicing", "Phantom / short shipment"],
      "why": "High value, small, fast-moving, and tradeable in circles: the same consignment can pass through a chain of companies and come back, each hop an invoice.",
      "limits": ["Model and specification spread makes a unit-price band wide - finer edges per model family narrow it.", "A carousel is visible only when enough of the chain's banks are on the rail to close the cycle.", "A tax-registered e-invoice fixes an invoice in time; it does not verify its price."]
    },
    {
      "id": "textiles-apparel",
      "version": 1,
      "name": "Textiles and apparel",
      "hs": ["61", "62"],
      "units": ["pieces", "kg"],
      "dimensions": ["quantity", "unit_price"],
      "required_roles": ["invoice", "customs", "payment"],
      "independent": [
        { "role": "customs", "kinds": ["customs"], "why": "The classification and quantity declared at the border, independent of the traders' invoice." }
      ],
      "locator_types": ["ctr", "bl", "inv", "einv"],
      "max_tolerance": 1,
      "edge_methods": ["mirror-negotiate", "pair-agreed"],
      "kernels": ["mirror-dims", "mirror-customs", "mirror-chain", "mirror-einvoice"],
      "typologies": ["Over-invoicing", "Under-invoicing", "Misdeclared goods / substitution", "Free-zone re-invoicing / transit manipulation"],
      "why": "Huge volumes of low-value lines, where quality and composition set the price and are easy to misdescribe - and a long history of re-invoicing through free zones.",
      "limits": ["Quality and fibre composition inside one HS6 subheading are invisible without an inspection leg.", "Each free-zone hop must be on the rail, or the chain is broken where it matters.", "Pieces and kilograms are not comparable; a corridor ratifies one unit and refuses the other."]
    },
    {
      "id": "scrap-metal",
      "version": 1,
      "name": "Ferrous and copper scrap",
      "hs": ["7204", "7404"],
      "units": ["kg", "t"],
      "dimensions": ["quantity", "unit_price", "grade"],
      "required_roles": ["invoice", "customs", "payment", "inspection"],
      "independent": [
        { "role": "inspection", "kinds": ["surveyor", "inspectorate", "weighbridge"], "why": "Grade and weight are where scrap is misdescribed; a surveyor or weighbridge has no stake in the price." },
        { "role": "customs", "kinds": ["customs"], "why": "The declared weight and value at the border." }
      ],
      "grade": { "scale": "metal content, percent", "marks": [], "marks_are": "set by the pair from its own inspection contract - Mirror publishes no scrap grade scale" },
      "locator_types": ["ctr", "bl", "imo"],
      "max_tolerance": 1,
      "edge_methods": ["mirror-negotiate", "pair-agreed"],
      "kernels": ["mirror-dims", "mirror-assay", "mirror-voyage", "mirror-customs"],
      "typologies": ["Misdeclared goods / substitution", "Over-invoicing", "Under-invoicing", "Phantom / short shipment"],
      "why": "Priced by a grade that is hard to verify and a weight that is easy to overstate, often shipped in bulk on voyages the documents describe loosely.",
      "limits": ["Grade is contested even between honest inspectors - agree the inspection contract before the table.", "A vessel key joins only a full cargo; a part cargo joins on its own bill of lading.", "An AIS track proves where the ship was, not what it carried."]
    }
  ]
}
