{
 "use_case": "gpsr-listing-pack",
 "title": "GPSR listing pack: a charger from a UK maker with no EU responsible person",
 "about": "A synthetic product sheet and label for an e-bike charger made by a UK company, with no EU responsible person named. The pack must find the manufacturer's name, postal and electronic address, flag the three responsible-person elements of Article 19(b) as missing, translate the warnings into German and Polish with no high-severity number, unit or negation flag, attach a receipt to every model call and sign a record that verifies.",
 "licence": "Sheet and label written for this bundle (CC0); every company, address and number is invented. Part of decosa-api, AGPL-3.0-or-later.",
 "inputs": [
  {
   "file": "inputs/sheet.txt",
   "what": "The supplier's product sheet (synthetic)."
  },
  {
   "file": "inputs/label.txt",
   "what": "The text printed on the label (synthetic)."
  }
 ],
 "steps": [
  {
   "id": "pack",
   "method": "POST",
   "path": "/gpsr/pack",
   "timeout": 180,
   "body": {
    "sheet": {
     "$file": "inputs/sheet.txt"
    },
    "label": {
     "$file": "inputs/label.txt"
    },
    "picture": true,
    "languages": [
     "de",
     "pl"
    ],
    "synthetic": true
   }
  },
  {
   "id": "verify",
   "method": "POST",
   "path": "/record/verify",
   "auth": false,
   "body": {
    "record": {
     "$ref": "pack.record"
    }
   }
  }
 ],
 "checks": [
  {
   "says": "only the elements this product has are found (manufacturer name and addresses, picture, type, identifier, warnings, language); the EU responsible person is not",
   "path": "pack.elements[status=found].id",
   "all_in": [
    "manufacturer_name",
    "manufacturer_postal",
    "manufacturer_electronic",
    "picture",
    "type",
    "identifier",
    "warnings",
    "language"
   ]
  },
  {
   "says": "the three responsible-person elements are missing (Art. 19(b), 16(1))",
   "path": "pack.elements[status=missing].id",
   "all_in": [
    "rp_name",
    "rp_postal",
    "rp_electronic"
   ]
  },
  {
   "says": "the overall status is fail",
   "path": "pack.status",
   "equals": "fail"
  },
  {
   "says": "German and Polish safety text come back with no high flag",
   "path": "pack.translations.de.flags.high",
   "equals": 0
  },
  {
   "says": "the Polish text has no high flag either",
   "path": "pack.translations.pl.flags.high",
   "equals": 0
  },
  {
   "says": "the signed record verifies",
   "path": "verify.ok",
   "equals": true
  }
 ]
}
