master
John Lauer Publish 1.9.356 7885be8 2mo ago
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075
{
 "ABM8-16.000MHZ-B2-T.lbrx": {
  "library_parts": {
   "_hint": "1 deviceset(s), 1 orderable variant(s); 0 carry an MPN and 0 a distributor PN. 3 warning(s) in `warnings` - these do NOT stop the library opening, but an EE cannot order from it as-is. The full orderable identity is deviceset + device + technology (e.g. TJA1050 + T + -AUTO), because EAGLE puts package variants on <device> and grade/temperature variants on <technology> - which is how two variants share geometry and remain different parts.",
   "attributeNames": [
    "MPN",
    "MANUFACTURER",
    "MOUSER_PN",
    "DIGIKEY_PN",
    "LCSC_PN"
   ],
   "devicesets": [
    {
     "description": "Four pin crystal, GND on pins 2 and 4",
     "name": "ABM8-16.000MHZ-B2-T",
     "variants": [
      {
       "attributes": {},
       "device": "",
       "fullName": "ABM8-16.000MHZ-B2-T",
       "missing": [
        "MPN",
        "MANUFACTURER",
        "a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN)"
       ],
       "package": "Crystal_SMD_3225-4Pin_3.2x2.5mm",
       "technology": ""
      }
     ]
    }
   ],
   "libraryPath": "ABM8-16.000MHZ-B2-T.lbrx",
   "metadataOk": false,
   "success": true,
   "totals": {
    "devicesets": 1,
    "variants": 1,
    "withDistributor": 0,
    "withMpn": 0
   },
   "warnings": [
    {
     "code": "variant_missing_part_numbers",
     "detail": "Missing MPN, MANUFACTURER, a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN). This bridge's own BOM export reads these exact attribute names, so the BOM comes out blank for this part.",
     "deviceset": "ABM8-16.000MHZ-B2-T",
     "missing": [
      "MPN",
      "MANUFACTURER",
      "a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN)"
     ],
     "variant": "ABM8-16.000MHZ-B2-T"
    },
    {
     "code": "symbol_pins_stacked",
     "detail": "pins 'G' and 'G@2' sit at the same point (0.0, -5.08); one hides the other",
     "symbol": "ABM8-16.000MHZ-B2-T"
    },
    {
     "code": "generic_description",
     "detail": "description 'Four pin crystal, GND on pins 2 and 4' says the class, not the part (value, package, maker)",
     "deviceset": "ABM8-16.000MHZ-B2-T"
    }
   ]
  },
  "lint": {
   "ok": false,
   "totals": {
    "devicesets": 1,
    "variants": 1,
    "withDistributor": 0,
    "withMpn": 0
   },
   "warnings": [
    {
     "code": "variant_missing_part_numbers",
     "detail": "Missing MPN, MANUFACTURER, a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN). This bridge's own BOM export reads these exact attribute names, so the BOM comes out blank for this part.",
     "deviceset": "ABM8-16.000MHZ-B2-T",
     "missing": [
      "MPN",
      "MANUFACTURER",
      "a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN)"
     ],
     "variant": "ABM8-16.000MHZ-B2-T"
    },
    {
     "code": "symbol_pins_stacked",
     "detail": "pins 'G' and 'G@2' sit at the same point (0.0, -5.08); one hides the other",
     "symbol": "ABM8-16.000MHZ-B2-T"
    },
    {
     "code": "generic_description",
     "detail": "description 'Four pin crystal, GND on pins 2 and 4' says the class, not the part (value, package, maker)",
     "deviceset": "ABM8-16.000MHZ-B2-T"
    }
   ]
  },
  "preflight": {
   "_metadataHint": "The library will open, but 3 part-metadata warning(s) mean an EE cannot order from it: MPN / MANUFACTURER / a distributor PN (MOUSER_PN, DIGIKEY_PN, LCSC_PN) are what this bridge's own BOM export reads, and variants that share geometry are told apart ONLY by these. See fusion_library_parts for the per-variant breakdown.",
   "checks": [
    {
     "check": "file-readable",
     "detail": "7565 bytes",
     "ok": true
    },
    {
     "check": "size-sane",
     "detail": "7565 bytes - a real EAGLE library is never this small (truncated transfer?)",
     "ok": true
    },
    {
     "check": "xml-parses",
     "detail": "",
     "ok": true
    },
    {
     "check": "root-is-eagle",
     "detail": "root is <eagle>",
     "ok": true
    },
    {
     "check": "packages-nonempty",
     "detail": "1 package(s)",
     "ok": true
    },
    {
     "check": "symbols-present",
     "detail": "1 symbol(s)",
     "ok": true
    },
    {
     "check": "text-align-valid",
     "detail": "all <text> align values are EAGLE values",
     "ok": true
    },
    {
     "check": "devicesets-present",
     "detail": "1 deviceset(s)",
     "ok": true
    },
    {
     "check": "connects-resolve",
     "detail": "4 connect(s), all resolving",
     "ok": true
    },
    {
     "check": "pads-unique",
     "detail": "all pad names unique per package",
     "ok": true
    }
   ],
   "errors": [],
   "metadataOk": false,
   "metadataWarnings": [
    {
     "code": "variant_missing_part_numbers",
     "detail": "Missing MPN, MANUFACTURER, a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN). This bridge's own BOM export reads these exact attribute names, so the BOM comes out blank for this part.",
     "deviceset": "ABM8-16.000MHZ-B2-T",
     "missing": [
      "MPN",
      "MANUFACTURER",
      "a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN)"
     ],
     "variant": "ABM8-16.000MHZ-B2-T"
    },
    {
     "code": "symbol_pins_stacked",
     "detail": "pins 'G' and 'G@2' sit at the same point (0.0, -5.08); one hides the other",
     "symbol": "ABM8-16.000MHZ-B2-T"
    },
    {
     "code": "generic_description",
     "detail": "description 'Four pin crystal, GND on pins 2 and 4' says the class, not the part (value, package, maker)",
     "deviceset": "ABM8-16.000MHZ-B2-T"
    }
   ],
   "ok": true,
   "partTotals": {
    "devicesets": 1,
    "variants": 1,
    "withDistributor": 0,
    "withMpn": 0
   }
  }
 },
 "CH340G.lbrx": {
  "library_parts": {
   "_hint": "1 deviceset(s), 1 orderable variant(s); 0 carry an MPN and 0 a distributor PN. 1 warning(s) in `warnings` - these do NOT stop the library opening, but an EE cannot order from it as-is. The full orderable identity is deviceset + device + technology (e.g. TJA1050 + T + -AUTO), because EAGLE puts package variants on <device> and grade/temperature variants on <technology> - which is how two variants share geometry and remain different parts.",
   "attributeNames": [
    "MPN",
    "MANUFACTURER",
    "MOUSER_PN",
    "DIGIKEY_PN",
    "LCSC_PN"
   ],
   "devicesets": [
    {
     "description": "USB serial converter, UART, SOIC-16",
     "name": "CH340G",
     "variants": [
      {
       "attributes": {},
       "device": "",
       "fullName": "CH340G",
       "missing": [
        "MPN",
        "MANUFACTURER",
        "a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN)"
       ],
       "package": "SOIC-16_3.9x9.9mm_P1.27mm",
       "technology": ""
      }
     ]
    }
   ],
   "libraryPath": "CH340G.lbrx",
   "metadataOk": false,
   "success": true,
   "totals": {
    "devicesets": 1,
    "variants": 1,
    "withDistributor": 0,
    "withMpn": 0
   },
   "warnings": [
    {
     "code": "variant_missing_part_numbers",
     "detail": "Missing MPN, MANUFACTURER, a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN). This bridge's own BOM export reads these exact attribute names, so the BOM comes out blank for this part.",
     "deviceset": "CH340G",
     "missing": [
      "MPN",
      "MANUFACTURER",
      "a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN)"
     ],
     "variant": "CH340G"
    }
   ]
  },
  "lint": {
   "ok": false,
   "totals": {
    "devicesets": 1,
    "variants": 1,
    "withDistributor": 0,
    "withMpn": 0
   },
   "warnings": [
    {
     "code": "variant_missing_part_numbers",
     "detail": "Missing MPN, MANUFACTURER, a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN). This bridge's own BOM export reads these exact attribute names, so the BOM comes out blank for this part.",
     "deviceset": "CH340G",
     "missing": [
      "MPN",
      "MANUFACTURER",
      "a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN)"
     ],
     "variant": "CH340G"
    }
   ]
  },
  "preflight": {
   "_metadataHint": "The library will open, but 1 part-metadata warning(s) mean an EE cannot order from it: MPN / MANUFACTURER / a distributor PN (MOUSER_PN, DIGIKEY_PN, LCSC_PN) are what this bridge's own BOM export reads, and variants that share geometry are told apart ONLY by these. See fusion_library_parts for the per-variant breakdown.",
   "checks": [
    {
     "check": "file-readable",
     "detail": "9776 bytes",
     "ok": true
    },
    {
     "check": "size-sane",
     "detail": "9776 bytes - a real EAGLE library is never this small (truncated transfer?)",
     "ok": true
    },
    {
     "check": "xml-parses",
     "detail": "",
     "ok": true
    },
    {
     "check": "root-is-eagle",
     "detail": "root is <eagle>",
     "ok": true
    },
    {
     "check": "packages-nonempty",
     "detail": "1 package(s)",
     "ok": true
    },
    {
     "check": "symbols-present",
     "detail": "1 symbol(s)",
     "ok": true
    },
    {
     "check": "text-align-valid",
     "detail": "all <text> align values are EAGLE values",
     "ok": true
    },
    {
     "check": "devicesets-present",
     "detail": "1 deviceset(s)",
     "ok": true
    },
    {
     "check": "connects-resolve",
     "detail": "16 connect(s), all resolving",
     "ok": true
    },
    {
     "check": "pads-unique",
     "detail": "all pad names unique per package",
     "ok": true
    }
   ],
   "errors": [],
   "metadataOk": false,
   "metadataWarnings": [
    {
     "code": "variant_missing_part_numbers",
     "detail": "Missing MPN, MANUFACTURER, a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN). This bridge's own BOM export reads these exact attribute names, so the BOM comes out blank for this part.",
     "deviceset": "CH340G",
     "missing": [
      "MPN",
      "MANUFACTURER",
      "a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN)"
     ],
     "variant": "CH340G"
    }
   ],
   "ok": true,
   "partTotals": {
    "devicesets": 1,
    "variants": 1,
    "withDistributor": 0,
    "withMpn": 0
   }
  }
 },
 "Demo_Board.lbrx": {
  "library_parts": {
   "_hint": "5 deviceset(s), 5 orderable variant(s); 0 carry an MPN and 0 a distributor PN. 21 warning(s) in `warnings` - these do NOT stop the library opening, but an EE cannot order from it as-is. The full orderable identity is deviceset + device + technology (e.g. TJA1050 + T + -AUTO), because EAGLE puts package variants on <device> and grade/temperature variants on <technology> - which is how two variants share geometry and remain different parts.",
   "attributeNames": [
    "MPN",
    "MANUFACTURER",
    "MOUSER_PN",
    "DIGIKEY_PN",
    "LCSC_PN"
   ],
   "devicesets": [
    {
     "description": "Microchip LAN7800 SuperSpeed USB 3.1 Gen1 to 10/100/1000 Ethernet Controller, QFN-48",
     "name": "LAN7800",
     "variants": [
      {
       "attributes": {},
       "device": "",
       "fullName": "LAN7800",
       "missing": [
        "MPN",
        "MANUFACTURER",
        "a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN)"
       ],
       "package": "QFN-48_7x7mm",
       "technology": ""
      }
     ]
    },
    {
     "description": "USB serial converter, UART, SOIC-16",
     "name": "CH340G",
     "variants": [
      {
       "attributes": {},
       "device": "",
       "fullName": "CH340G",
       "missing": [
        "MPN",
        "MANUFACTURER",
        "a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN)"
       ],
       "package": "SOIC-16_3.9x9.9mm_P1.27mm",
       "technology": ""
      }
     ]
    },
    {
     "description": "",
     "name": "STM32L431RCT6TR",
     "variants": [
      {
       "attributes": {},
       "device": "",
       "fullName": "STM32L431RCT6TR",
       "missing": [
        "MPN",
        "MANUFACTURER",
        "a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN)"
       ],
       "package": "LQFP-64_10x10mm_P0.5mm",
       "technology": ""
      }
     ]
    },
    {
     "description": "Four pin crystal, GND on pins 2 and 4",
     "name": "ABM8-16.000MHZ-B2-T",
     "variants": [
      {
       "attributes": {},
       "device": "",
       "fullName": "ABM8-16.000MHZ-B2-T",
       "missing": [
        "MPN",
        "MANUFACTURER",
        "a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN)"
       ],
       "package": "Crystal_SMD_3225-4Pin_3.2x2.5mm",
       "technology": ""
      }
     ]
    },
    {
     "description": "Light emitting diode",
     "name": "IN-S63BTG",
     "variants": [
      {
       "attributes": {},
       "device": "",
       "fullName": "IN-S63BTG",
       "missing": [
        "MPN",
        "MANUFACTURER",
        "a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN)"
       ],
       "package": "IN-S63BTG",
       "technology": ""
      }
     ]
    }
   ],
   "libraryPath": "Demo_Board.lbrx",
   "metadataOk": false,
   "success": true,
   "totals": {
    "devicesets": 5,
    "variants": 5,
    "withDistributor": 0,
    "withMpn": 0
   },
   "warnings": [
    {
     "code": "variant_missing_part_numbers",
     "detail": "Missing MPN, MANUFACTURER, a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN). This bridge's own BOM export reads these exact attribute names, so the BOM comes out blank for this part.",
     "deviceset": "LAN7800",
     "missing": [
      "MPN",
      "MANUFACTURER",
      "a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN)"
     ],
     "variant": "LAN7800"
    },
    {
     "code": "variant_missing_part_numbers",
     "detail": "Missing MPN, MANUFACTURER, a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN). This bridge's own BOM export reads these exact attribute names, so the BOM comes out blank for this part.",
     "deviceset": "CH340G",
     "missing": [
      "MPN",
      "MANUFACTURER",
      "a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN)"
     ],
     "variant": "CH340G"
    },
    {
     "code": "deviceset_no_description",
     "detail": "No <description>. Fusion's Content Manager shows this to whoever places the part; without it they are picking on a symbol outline alone.",
     "deviceset": "STM32L431RCT6TR"
    },
    {
     "code": "variant_missing_part_numbers",
     "detail": "Missing MPN, MANUFACTURER, a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN). This bridge's own BOM export reads these exact attribute names, so the BOM comes out blank for this part.",
     "deviceset": "STM32L431RCT6TR",
     "missing": [
      "MPN",
      "MANUFACTURER",
      "a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN)"
     ],
     "variant": "STM32L431RCT6TR"
    },
    {
     "code": "variant_missing_part_numbers",
     "detail": "Missing MPN, MANUFACTURER, a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN). This bridge's own BOM export reads these exact attribute names, so the BOM comes out blank for this part.",
     "deviceset": "ABM8-16.000MHZ-B2-T",
     "missing": [
      "MPN",
      "MANUFACTURER",
      "a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN)"
     ],
     "variant": "ABM8-16.000MHZ-B2-T"
    },
    {
     "code": "variant_missing_part_numbers",
     "detail": "Missing MPN, MANUFACTURER, a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN). This bridge's own BOM export reads these exact attribute names, so the BOM comes out blank for this part.",
     "deviceset": "IN-S63BTG",
     "missing": [
      "MPN",
      "MANUFACTURER",
      "a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN)"
     ],
     "variant": "IN-S63BTG"
    },
    {
     "code": "symbol_pins_stacked",
     "detail": "pins 'G' and 'G@2' sit at the same point (0.0, -5.08); one hides the other",
     "symbol": "ABM8-16.000MHZ-B2-T"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '1' and '48' are only 0.11 mm apart",
     "package": "QFN-48_7x7mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '12' and '13' are only 0.11 mm apart",
     "package": "QFN-48_7x7mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '24' and '25' are only 0.11 mm apart",
     "package": "QFN-48_7x7mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '36' and '37' are only 0.11 mm apart",
     "package": "QFN-48_7x7mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '7' and '8' are only 0.20 mm apart",
     "package": "LQFP-64_10x10mm_P0.5mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '9' and '10' are only 0.20 mm apart",
     "package": "LQFP-64_10x10mm_P0.5mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '23' and '24' are only 0.20 mm apart",
     "package": "LQFP-64_10x10mm_P0.5mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '25' and '26' are only 0.20 mm apart",
     "package": "LQFP-64_10x10mm_P0.5mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '39' and '40' are only 0.20 mm apart",
     "package": "LQFP-64_10x10mm_P0.5mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '41' and '42' are only 0.20 mm apart",
     "package": "LQFP-64_10x10mm_P0.5mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '55' and '56' are only 0.20 mm apart",
     "package": "LQFP-64_10x10mm_P0.5mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '57' and '58' are only 0.20 mm apart",
     "package": "LQFP-64_10x10mm_P0.5mm"
    },
    {
     "code": "generic_description",
     "detail": "description 'Four pin crystal, GND on pins 2 and 4' says the class, not the part (value, package, maker)",
     "deviceset": "ABM8-16.000MHZ-B2-T"
    },
    {
     "code": "generic_description",
     "detail": "description 'Light emitting diode' says the class, not the part (value, package, maker)",
     "deviceset": "IN-S63BTG"
    }
   ]
  },
  "lint": {
   "ok": false,
   "totals": {
    "devicesets": 5,
    "variants": 5,
    "withDistributor": 0,
    "withMpn": 0
   },
   "warnings": [
    {
     "code": "variant_missing_part_numbers",
     "detail": "Missing MPN, MANUFACTURER, a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN). This bridge's own BOM export reads these exact attribute names, so the BOM comes out blank for this part.",
     "deviceset": "LAN7800",
     "missing": [
      "MPN",
      "MANUFACTURER",
      "a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN)"
     ],
     "variant": "LAN7800"
    },
    {
     "code": "variant_missing_part_numbers",
     "detail": "Missing MPN, MANUFACTURER, a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN). This bridge's own BOM export reads these exact attribute names, so the BOM comes out blank for this part.",
     "deviceset": "CH340G",
     "missing": [
      "MPN",
      "MANUFACTURER",
      "a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN)"
     ],
     "variant": "CH340G"
    },
    {
     "code": "deviceset_no_description",
     "detail": "No <description>. Fusion's Content Manager shows this to whoever places the part; without it they are picking on a symbol outline alone.",
     "deviceset": "STM32L431RCT6TR"
    },
    {
     "code": "variant_missing_part_numbers",
     "detail": "Missing MPN, MANUFACTURER, a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN). This bridge's own BOM export reads these exact attribute names, so the BOM comes out blank for this part.",
     "deviceset": "STM32L431RCT6TR",
     "missing": [
      "MPN",
      "MANUFACTURER",
      "a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN)"
     ],
     "variant": "STM32L431RCT6TR"
    },
    {
     "code": "variant_missing_part_numbers",
     "detail": "Missing MPN, MANUFACTURER, a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN). This bridge's own BOM export reads these exact attribute names, so the BOM comes out blank for this part.",
     "deviceset": "ABM8-16.000MHZ-B2-T",
     "missing": [
      "MPN",
      "MANUFACTURER",
      "a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN)"
     ],
     "variant": "ABM8-16.000MHZ-B2-T"
    },
    {
     "code": "variant_missing_part_numbers",
     "detail": "Missing MPN, MANUFACTURER, a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN). This bridge's own BOM export reads these exact attribute names, so the BOM comes out blank for this part.",
     "deviceset": "IN-S63BTG",
     "missing": [
      "MPN",
      "MANUFACTURER",
      "a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN)"
     ],
     "variant": "IN-S63BTG"
    },
    {
     "code": "symbol_pins_stacked",
     "detail": "pins 'G' and 'G@2' sit at the same point (0.0, -5.08); one hides the other",
     "symbol": "ABM8-16.000MHZ-B2-T"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '1' and '48' are only 0.11 mm apart",
     "package": "QFN-48_7x7mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '12' and '13' are only 0.11 mm apart",
     "package": "QFN-48_7x7mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '24' and '25' are only 0.11 mm apart",
     "package": "QFN-48_7x7mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '36' and '37' are only 0.11 mm apart",
     "package": "QFN-48_7x7mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '7' and '8' are only 0.20 mm apart",
     "package": "LQFP-64_10x10mm_P0.5mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '9' and '10' are only 0.20 mm apart",
     "package": "LQFP-64_10x10mm_P0.5mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '23' and '24' are only 0.20 mm apart",
     "package": "LQFP-64_10x10mm_P0.5mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '25' and '26' are only 0.20 mm apart",
     "package": "LQFP-64_10x10mm_P0.5mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '39' and '40' are only 0.20 mm apart",
     "package": "LQFP-64_10x10mm_P0.5mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '41' and '42' are only 0.20 mm apart",
     "package": "LQFP-64_10x10mm_P0.5mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '55' and '56' are only 0.20 mm apart",
     "package": "LQFP-64_10x10mm_P0.5mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '57' and '58' are only 0.20 mm apart",
     "package": "LQFP-64_10x10mm_P0.5mm"
    },
    {
     "code": "generic_description",
     "detail": "description 'Four pin crystal, GND on pins 2 and 4' says the class, not the part (value, package, maker)",
     "deviceset": "ABM8-16.000MHZ-B2-T"
    },
    {
     "code": "generic_description",
     "detail": "description 'Light emitting diode' says the class, not the part (value, package, maker)",
     "deviceset": "IN-S63BTG"
    }
   ]
  },
  "preflight": {
   "_metadataHint": "The library will open, but 21 part-metadata warning(s) mean an EE cannot order from it: MPN / MANUFACTURER / a distributor PN (MOUSER_PN, DIGIKEY_PN, LCSC_PN) are what this bridge's own BOM export reads, and variants that share geometry are told apart ONLY by these. See fusion_library_parts for the per-variant breakdown.",
   "checks": [
    {
     "check": "file-readable",
     "detail": "47513 bytes",
     "ok": true
    },
    {
     "check": "size-sane",
     "detail": "47513 bytes - a real EAGLE library is never this small (truncated transfer?)",
     "ok": true
    },
    {
     "check": "xml-parses",
     "detail": "",
     "ok": true
    },
    {
     "check": "root-is-eagle",
     "detail": "root is <eagle>",
     "ok": true
    },
    {
     "check": "packages-nonempty",
     "detail": "5 package(s)",
     "ok": true
    },
    {
     "check": "symbols-present",
     "detail": "5 symbol(s)",
     "ok": true
    },
    {
     "check": "text-align-valid",
     "detail": "all <text> align values are EAGLE values",
     "ok": true
    },
    {
     "check": "devicesets-present",
     "detail": "5 deviceset(s)",
     "ok": true
    },
    {
     "check": "connects-resolve",
     "detail": "135 connect(s), all resolving",
     "ok": true
    },
    {
     "check": "pads-unique",
     "detail": "all pad names unique per package",
     "ok": true
    }
   ],
   "errors": [],
   "metadataOk": false,
   "metadataWarnings": [
    {
     "code": "variant_missing_part_numbers",
     "detail": "Missing MPN, MANUFACTURER, a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN). This bridge's own BOM export reads these exact attribute names, so the BOM comes out blank for this part.",
     "deviceset": "LAN7800",
     "missing": [
      "MPN",
      "MANUFACTURER",
      "a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN)"
     ],
     "variant": "LAN7800"
    },
    {
     "code": "variant_missing_part_numbers",
     "detail": "Missing MPN, MANUFACTURER, a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN). This bridge's own BOM export reads these exact attribute names, so the BOM comes out blank for this part.",
     "deviceset": "CH340G",
     "missing": [
      "MPN",
      "MANUFACTURER",
      "a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN)"
     ],
     "variant": "CH340G"
    },
    {
     "code": "deviceset_no_description",
     "detail": "No <description>. Fusion's Content Manager shows this to whoever places the part; without it they are picking on a symbol outline alone.",
     "deviceset": "STM32L431RCT6TR"
    },
    {
     "code": "variant_missing_part_numbers",
     "detail": "Missing MPN, MANUFACTURER, a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN). This bridge's own BOM export reads these exact attribute names, so the BOM comes out blank for this part.",
     "deviceset": "STM32L431RCT6TR",
     "missing": [
      "MPN",
      "MANUFACTURER",
      "a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN)"
     ],
     "variant": "STM32L431RCT6TR"
    },
    {
     "code": "variant_missing_part_numbers",
     "detail": "Missing MPN, MANUFACTURER, a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN). This bridge's own BOM export reads these exact attribute names, so the BOM comes out blank for this part.",
     "deviceset": "ABM8-16.000MHZ-B2-T",
     "missing": [
      "MPN",
      "MANUFACTURER",
      "a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN)"
     ],
     "variant": "ABM8-16.000MHZ-B2-T"
    },
    {
     "code": "variant_missing_part_numbers",
     "detail": "Missing MPN, MANUFACTURER, a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN). This bridge's own BOM export reads these exact attribute names, so the BOM comes out blank for this part.",
     "deviceset": "IN-S63BTG",
     "missing": [
      "MPN",
      "MANUFACTURER",
      "a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN)"
     ],
     "variant": "IN-S63BTG"
    },
    {
     "code": "symbol_pins_stacked",
     "detail": "pins 'G' and 'G@2' sit at the same point (0.0, -5.08); one hides the other",
     "symbol": "ABM8-16.000MHZ-B2-T"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '1' and '48' are only 0.11 mm apart",
     "package": "QFN-48_7x7mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '12' and '13' are only 0.11 mm apart",
     "package": "QFN-48_7x7mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '24' and '25' are only 0.11 mm apart",
     "package": "QFN-48_7x7mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '36' and '37' are only 0.11 mm apart",
     "package": "QFN-48_7x7mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '7' and '8' are only 0.20 mm apart",
     "package": "LQFP-64_10x10mm_P0.5mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '9' and '10' are only 0.20 mm apart",
     "package": "LQFP-64_10x10mm_P0.5mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '23' and '24' are only 0.20 mm apart",
     "package": "LQFP-64_10x10mm_P0.5mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '25' and '26' are only 0.20 mm apart",
     "package": "LQFP-64_10x10mm_P0.5mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '39' and '40' are only 0.20 mm apart",
     "package": "LQFP-64_10x10mm_P0.5mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '41' and '42' are only 0.20 mm apart",
     "package": "LQFP-64_10x10mm_P0.5mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '55' and '56' are only 0.20 mm apart",
     "package": "LQFP-64_10x10mm_P0.5mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '57' and '58' are only 0.20 mm apart",
     "package": "LQFP-64_10x10mm_P0.5mm"
    },
    {
     "code": "generic_description",
     "detail": "description 'Four pin crystal, GND on pins 2 and 4' says the class, not the part (value, package, maker)",
     "deviceset": "ABM8-16.000MHZ-B2-T"
    },
    {
     "code": "generic_description",
     "detail": "description 'Light emitting diode' says the class, not the part (value, package, maker)",
     "deviceset": "IN-S63BTG"
    }
   ],
   "ok": true,
   "partTotals": {
    "devicesets": 5,
    "variants": 5,
    "withDistributor": 0,
    "withMpn": 0
   }
  }
 },
 "IN-S63BTG.lbrx": {
  "library_parts": {
   "_hint": "1 deviceset(s), 1 orderable variant(s); 0 carry an MPN and 0 a distributor PN. 2 warning(s) in `warnings` - these do NOT stop the library opening, but an EE cannot order from it as-is. The full orderable identity is deviceset + device + technology (e.g. TJA1050 + T + -AUTO), because EAGLE puts package variants on <device> and grade/temperature variants on <technology> - which is how two variants share geometry and remain different parts.",
   "attributeNames": [
    "MPN",
    "MANUFACTURER",
    "MOUSER_PN",
    "DIGIKEY_PN",
    "LCSC_PN"
   ],
   "devicesets": [
    {
     "description": "Light emitting diode",
     "name": "IN-S63BTG",
     "variants": [
      {
       "attributes": {},
       "device": "",
       "fullName": "IN-S63BTG",
       "missing": [
        "MPN",
        "MANUFACTURER",
        "a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN)"
       ],
       "package": "IN-S63BTG",
       "technology": ""
      }
     ]
    }
   ],
   "libraryPath": "IN-S63BTG.lbrx",
   "metadataOk": false,
   "success": true,
   "totals": {
    "devicesets": 1,
    "variants": 1,
    "withDistributor": 0,
    "withMpn": 0
   },
   "warnings": [
    {
     "code": "variant_missing_part_numbers",
     "detail": "Missing MPN, MANUFACTURER, a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN). This bridge's own BOM export reads these exact attribute names, so the BOM comes out blank for this part.",
     "deviceset": "IN-S63BTG",
     "missing": [
      "MPN",
      "MANUFACTURER",
      "a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN)"
     ],
     "variant": "IN-S63BTG"
    },
    {
     "code": "generic_description",
     "detail": "description 'Light emitting diode' says the class, not the part (value, package, maker)",
     "deviceset": "IN-S63BTG"
    }
   ]
  },
  "lint": {
   "ok": false,
   "totals": {
    "devicesets": 1,
    "variants": 1,
    "withDistributor": 0,
    "withMpn": 0
   },
   "warnings": [
    {
     "code": "variant_missing_part_numbers",
     "detail": "Missing MPN, MANUFACTURER, a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN). This bridge's own BOM export reads these exact attribute names, so the BOM comes out blank for this part.",
     "deviceset": "IN-S63BTG",
     "missing": [
      "MPN",
      "MANUFACTURER",
      "a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN)"
     ],
     "variant": "IN-S63BTG"
    },
    {
     "code": "generic_description",
     "detail": "description 'Light emitting diode' says the class, not the part (value, package, maker)",
     "deviceset": "IN-S63BTG"
    }
   ]
  },
  "preflight": {
   "_metadataHint": "The library will open, but 2 part-metadata warning(s) mean an EE cannot order from it: MPN / MANUFACTURER / a distributor PN (MOUSER_PN, DIGIKEY_PN, LCSC_PN) are what this bridge's own BOM export reads, and variants that share geometry are told apart ONLY by these. See fusion_library_parts for the per-variant breakdown.",
   "checks": [
    {
     "check": "file-readable",
     "detail": "7259 bytes",
     "ok": true
    },
    {
     "check": "size-sane",
     "detail": "7259 bytes - a real EAGLE library is never this small (truncated transfer?)",
     "ok": true
    },
    {
     "check": "xml-parses",
     "detail": "",
     "ok": true
    },
    {
     "check": "root-is-eagle",
     "detail": "root is <eagle>",
     "ok": true
    },
    {
     "check": "packages-nonempty",
     "detail": "1 package(s)",
     "ok": true
    },
    {
     "check": "symbols-present",
     "detail": "1 symbol(s)",
     "ok": true
    },
    {
     "check": "text-align-valid",
     "detail": "all <text> align values are EAGLE values",
     "ok": true
    },
    {
     "check": "devicesets-present",
     "detail": "1 deviceset(s)",
     "ok": true
    },
    {
     "check": "connects-resolve",
     "detail": "2 connect(s), all resolving",
     "ok": true
    },
    {
     "check": "pads-unique",
     "detail": "all pad names unique per package",
     "ok": true
    }
   ],
   "errors": [],
   "metadataOk": false,
   "metadataWarnings": [
    {
     "code": "variant_missing_part_numbers",
     "detail": "Missing MPN, MANUFACTURER, a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN). This bridge's own BOM export reads these exact attribute names, so the BOM comes out blank for this part.",
     "deviceset": "IN-S63BTG",
     "missing": [
      "MPN",
      "MANUFACTURER",
      "a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN)"
     ],
     "variant": "IN-S63BTG"
    },
    {
     "code": "generic_description",
     "detail": "description 'Light emitting diode' says the class, not the part (value, package, maker)",
     "deviceset": "IN-S63BTG"
    }
   ],
   "ok": true,
   "partTotals": {
    "devicesets": 1,
    "variants": 1,
    "withDistributor": 0,
    "withMpn": 0
   }
  }
 },
 "LAN7800.lbrx": {
  "library_parts": {
   "_hint": "1 deviceset(s), 1 orderable variant(s); 0 carry an MPN and 0 a distributor PN. 5 warning(s) in `warnings` - these do NOT stop the library opening, but an EE cannot order from it as-is. The full orderable identity is deviceset + device + technology (e.g. TJA1050 + T + -AUTO), because EAGLE puts package variants on <device> and grade/temperature variants on <technology> - which is how two variants share geometry and remain different parts.",
   "attributeNames": [
    "MPN",
    "MANUFACTURER",
    "MOUSER_PN",
    "DIGIKEY_PN",
    "LCSC_PN"
   ],
   "devicesets": [
    {
     "description": "Microchip LAN7800 SuperSpeed USB 3.1 Gen1 to 10/100/1000 Ethernet Controller, QFN-48",
     "name": "LAN7800",
     "variants": [
      {
       "attributes": {},
       "device": "",
       "fullName": "LAN7800",
       "missing": [
        "MPN",
        "MANUFACTURER",
        "a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN)"
       ],
       "package": "QFN-48_7x7mm",
       "technology": ""
      }
     ]
    }
   ],
   "libraryPath": "LAN7800.lbrx",
   "metadataOk": false,
   "success": true,
   "totals": {
    "devicesets": 1,
    "variants": 1,
    "withDistributor": 0,
    "withMpn": 0
   },
   "warnings": [
    {
     "code": "variant_missing_part_numbers",
     "detail": "Missing MPN, MANUFACTURER, a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN). This bridge's own BOM export reads these exact attribute names, so the BOM comes out blank for this part.",
     "deviceset": "LAN7800",
     "missing": [
      "MPN",
      "MANUFACTURER",
      "a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN)"
     ],
     "variant": "LAN7800"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '1' and '48' are only 0.11 mm apart",
     "package": "QFN-48_7x7mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '12' and '13' are only 0.11 mm apart",
     "package": "QFN-48_7x7mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '24' and '25' are only 0.11 mm apart",
     "package": "QFN-48_7x7mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '36' and '37' are only 0.11 mm apart",
     "package": "QFN-48_7x7mm"
    }
   ]
  },
  "lint": {
   "ok": false,
   "totals": {
    "devicesets": 1,
    "variants": 1,
    "withDistributor": 0,
    "withMpn": 0
   },
   "warnings": [
    {
     "code": "variant_missing_part_numbers",
     "detail": "Missing MPN, MANUFACTURER, a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN). This bridge's own BOM export reads these exact attribute names, so the BOM comes out blank for this part.",
     "deviceset": "LAN7800",
     "missing": [
      "MPN",
      "MANUFACTURER",
      "a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN)"
     ],
     "variant": "LAN7800"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '1' and '48' are only 0.11 mm apart",
     "package": "QFN-48_7x7mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '12' and '13' are only 0.11 mm apart",
     "package": "QFN-48_7x7mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '24' and '25' are only 0.11 mm apart",
     "package": "QFN-48_7x7mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '36' and '37' are only 0.11 mm apart",
     "package": "QFN-48_7x7mm"
    }
   ]
  },
  "preflight": {
   "_metadataHint": "The library will open, but 5 part-metadata warning(s) mean an EE cannot order from it: MPN / MANUFACTURER / a distributor PN (MOUSER_PN, DIGIKEY_PN, LCSC_PN) are what this bridge's own BOM export reads, and variants that share geometry are told apart ONLY by these. See fusion_library_parts for the per-variant breakdown.",
   "checks": [
    {
     "check": "file-readable",
     "detail": "18585 bytes",
     "ok": true
    },
    {
     "check": "size-sane",
     "detail": "18585 bytes - a real EAGLE library is never this small (truncated transfer?)",
     "ok": true
    },
    {
     "check": "xml-parses",
     "detail": "",
     "ok": true
    },
    {
     "check": "root-is-eagle",
     "detail": "root is <eagle>",
     "ok": true
    },
    {
     "check": "packages-nonempty",
     "detail": "1 package(s)",
     "ok": true
    },
    {
     "check": "symbols-present",
     "detail": "1 symbol(s)",
     "ok": true
    },
    {
     "check": "text-align-valid",
     "detail": "all <text> align values are EAGLE values",
     "ok": true
    },
    {
     "check": "devicesets-present",
     "detail": "1 deviceset(s)",
     "ok": true
    },
    {
     "check": "connects-resolve",
     "detail": "49 connect(s), all resolving",
     "ok": true
    },
    {
     "check": "pads-unique",
     "detail": "all pad names unique per package",
     "ok": true
    }
   ],
   "errors": [],
   "metadataOk": false,
   "metadataWarnings": [
    {
     "code": "variant_missing_part_numbers",
     "detail": "Missing MPN, MANUFACTURER, a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN). This bridge's own BOM export reads these exact attribute names, so the BOM comes out blank for this part.",
     "deviceset": "LAN7800",
     "missing": [
      "MPN",
      "MANUFACTURER",
      "a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN)"
     ],
     "variant": "LAN7800"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '1' and '48' are only 0.11 mm apart",
     "package": "QFN-48_7x7mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '12' and '13' are only 0.11 mm apart",
     "package": "QFN-48_7x7mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '24' and '25' are only 0.11 mm apart",
     "package": "QFN-48_7x7mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '36' and '37' are only 0.11 mm apart",
     "package": "QFN-48_7x7mm"
    }
   ],
   "ok": true,
   "partTotals": {
    "devicesets": 1,
    "variants": 1,
    "withDistributor": 0,
    "withMpn": 0
   }
  }
 },
 "STM32L431RCT6TR.lbrx": {
  "library_parts": {
   "_hint": "1 deviceset(s), 1 orderable variant(s); 0 carry an MPN and 0 a distributor PN. 10 warning(s) in `warnings` - these do NOT stop the library opening, but an EE cannot order from it as-is. The full orderable identity is deviceset + device + technology (e.g. TJA1050 + T + -AUTO), because EAGLE puts package variants on <device> and grade/temperature variants on <technology> - which is how two variants share geometry and remain different parts.",
   "attributeNames": [
    "MPN",
    "MANUFACTURER",
    "MOUSER_PN",
    "DIGIKEY_PN",
    "LCSC_PN"
   ],
   "devicesets": [
    {
     "description": "",
     "name": "STM32L431RCT6TR",
     "variants": [
      {
       "attributes": {},
       "device": "",
       "fullName": "STM32L431RCT6TR",
       "missing": [
        "MPN",
        "MANUFACTURER",
        "a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN)"
       ],
       "package": "LQFP-64_10x10mm_P0.5mm",
       "technology": ""
      }
     ]
    }
   ],
   "libraryPath": "STM32L431RCT6TR.lbrx",
   "metadataOk": false,
   "success": true,
   "totals": {
    "devicesets": 1,
    "variants": 1,
    "withDistributor": 0,
    "withMpn": 0
   },
   "warnings": [
    {
     "code": "deviceset_no_description",
     "detail": "No <description>. Fusion's Content Manager shows this to whoever places the part; without it they are picking on a symbol outline alone.",
     "deviceset": "STM32L431RCT6TR"
    },
    {
     "code": "variant_missing_part_numbers",
     "detail": "Missing MPN, MANUFACTURER, a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN). This bridge's own BOM export reads these exact attribute names, so the BOM comes out blank for this part.",
     "deviceset": "STM32L431RCT6TR",
     "missing": [
      "MPN",
      "MANUFACTURER",
      "a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN)"
     ],
     "variant": "STM32L431RCT6TR"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '7' and '8' are only 0.20 mm apart",
     "package": "LQFP-64_10x10mm_P0.5mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '9' and '10' are only 0.20 mm apart",
     "package": "LQFP-64_10x10mm_P0.5mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '23' and '24' are only 0.20 mm apart",
     "package": "LQFP-64_10x10mm_P0.5mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '25' and '26' are only 0.20 mm apart",
     "package": "LQFP-64_10x10mm_P0.5mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '39' and '40' are only 0.20 mm apart",
     "package": "LQFP-64_10x10mm_P0.5mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '41' and '42' are only 0.20 mm apart",
     "package": "LQFP-64_10x10mm_P0.5mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '55' and '56' are only 0.20 mm apart",
     "package": "LQFP-64_10x10mm_P0.5mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '57' and '58' are only 0.20 mm apart",
     "package": "LQFP-64_10x10mm_P0.5mm"
    }
   ]
  },
  "lint": {
   "ok": false,
   "totals": {
    "devicesets": 1,
    "variants": 1,
    "withDistributor": 0,
    "withMpn": 0
   },
   "warnings": [
    {
     "code": "deviceset_no_description",
     "detail": "No <description>. Fusion's Content Manager shows this to whoever places the part; without it they are picking on a symbol outline alone.",
     "deviceset": "STM32L431RCT6TR"
    },
    {
     "code": "variant_missing_part_numbers",
     "detail": "Missing MPN, MANUFACTURER, a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN). This bridge's own BOM export reads these exact attribute names, so the BOM comes out blank for this part.",
     "deviceset": "STM32L431RCT6TR",
     "missing": [
      "MPN",
      "MANUFACTURER",
      "a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN)"
     ],
     "variant": "STM32L431RCT6TR"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '7' and '8' are only 0.20 mm apart",
     "package": "LQFP-64_10x10mm_P0.5mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '9' and '10' are only 0.20 mm apart",
     "package": "LQFP-64_10x10mm_P0.5mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '23' and '24' are only 0.20 mm apart",
     "package": "LQFP-64_10x10mm_P0.5mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '25' and '26' are only 0.20 mm apart",
     "package": "LQFP-64_10x10mm_P0.5mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '39' and '40' are only 0.20 mm apart",
     "package": "LQFP-64_10x10mm_P0.5mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '41' and '42' are only 0.20 mm apart",
     "package": "LQFP-64_10x10mm_P0.5mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '55' and '56' are only 0.20 mm apart",
     "package": "LQFP-64_10x10mm_P0.5mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '57' and '58' are only 0.20 mm apart",
     "package": "LQFP-64_10x10mm_P0.5mm"
    }
   ]
  },
  "preflight": {
   "_metadataHint": "The library will open, but 10 part-metadata warning(s) mean an EE cannot order from it: MPN / MANUFACTURER / a distributor PN (MOUSER_PN, DIGIKEY_PN, LCSC_PN) are what this bridge's own BOM export reads, and variants that share geometry are told apart ONLY by these. See fusion_library_parts for the per-variant breakdown.",
   "checks": [
    {
     "check": "file-readable",
     "detail": "20255 bytes",
     "ok": true
    },
    {
     "check": "size-sane",
     "detail": "20255 bytes - a real EAGLE library is never this small (truncated transfer?)",
     "ok": true
    },
    {
     "check": "xml-parses",
     "detail": "",
     "ok": true
    },
    {
     "check": "root-is-eagle",
     "detail": "root is <eagle>",
     "ok": true
    },
    {
     "check": "packages-nonempty",
     "detail": "1 package(s)",
     "ok": true
    },
    {
     "check": "symbols-present",
     "detail": "1 symbol(s)",
     "ok": true
    },
    {
     "check": "text-align-valid",
     "detail": "all <text> align values are EAGLE values",
     "ok": true
    },
    {
     "check": "devicesets-present",
     "detail": "1 deviceset(s)",
     "ok": true
    },
    {
     "check": "connects-resolve",
     "detail": "64 connect(s), all resolving",
     "ok": true
    },
    {
     "check": "pads-unique",
     "detail": "all pad names unique per package",
     "ok": true
    }
   ],
   "errors": [],
   "metadataOk": false,
   "metadataWarnings": [
    {
     "code": "deviceset_no_description",
     "detail": "No <description>. Fusion's Content Manager shows this to whoever places the part; without it they are picking on a symbol outline alone.",
     "deviceset": "STM32L431RCT6TR"
    },
    {
     "code": "variant_missing_part_numbers",
     "detail": "Missing MPN, MANUFACTURER, a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN). This bridge's own BOM export reads these exact attribute names, so the BOM comes out blank for this part.",
     "deviceset": "STM32L431RCT6TR",
     "missing": [
      "MPN",
      "MANUFACTURER",
      "a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN)"
     ],
     "variant": "STM32L431RCT6TR"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '7' and '8' are only 0.20 mm apart",
     "package": "LQFP-64_10x10mm_P0.5mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '9' and '10' are only 0.20 mm apart",
     "package": "LQFP-64_10x10mm_P0.5mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '23' and '24' are only 0.20 mm apart",
     "package": "LQFP-64_10x10mm_P0.5mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '25' and '26' are only 0.20 mm apart",
     "package": "LQFP-64_10x10mm_P0.5mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '39' and '40' are only 0.20 mm apart",
     "package": "LQFP-64_10x10mm_P0.5mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '41' and '42' are only 0.20 mm apart",
     "package": "LQFP-64_10x10mm_P0.5mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '55' and '56' are only 0.20 mm apart",
     "package": "LQFP-64_10x10mm_P0.5mm"
    },
    {
     "code": "pad_clearance",
     "detail": "pads '57' and '58' are only 0.20 mm apart",
     "package": "LQFP-64_10x10mm_P0.5mm"
    }
   ],
   "ok": true,
   "partTotals": {
    "devicesets": 1,
    "variants": 1,
    "withDistributor": 0,
    "withMpn": 0
   }
  }
 },
 "__missing__": {
  "library_parts": {
   "error": "[Errno 2] No such file or directory: 'C:/nope/missing.lbr'",
   "errorCode": "library_unreadable",
   "libraryPath": "C:/nope/missing.lbrx",
   "success": false
  },
  "no_path": {
   "acceptedArgs": [
    "libraryPath",
    "lbrPath",
    "filePath",
    "path"
   ],
   "error": "No library path given; the file was never examined.",
   "errorCode": "no_path_argument",
   "success": false
  },
  "preflight": {
   "checks": [
    {
     "check": "file-readable",
     "detail": "[Errno 2] No such file or directory: 'C:/nope/missing.lbr'",
     "ok": false
    }
   ],
   "errors": [
    "file-readable: [Errno 2] No such file or directory: 'C:/nope/missing.lbr'"
   ],
   "ok": false
  }
 },
 "syn_deadconnect.lbrx": {
  "library_parts": {
   "_hint": "1 deviceset(s), 1 orderable variant(s); 0 carry an MPN and 0 a distributor PN. 1 warning(s) in `warnings` - these do NOT stop the library opening, but an EE cannot order from it as-is. The full orderable identity is deviceset + device + technology (e.g. TJA1050 + T + -AUTO), because EAGLE puts package variants on <device> and grade/temperature variants on <technology> - which is how two variants share geometry and remain different parts.",
   "attributeNames": [
    "MPN",
    "MANUFACTURER",
    "MOUSER_PN",
    "DIGIKEY_PN",
    "LCSC_PN"
   ],
   "devicesets": [
    {
     "description": "USB serial converter, UART, SOIC-16",
     "name": "CH340G",
     "variants": [
      {
       "attributes": {},
       "device": "",
       "fullName": "CH340G",
       "missing": [
        "MPN",
        "MANUFACTURER",
        "a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN)"
       ],
       "package": "SOIC-16_3.9x9.9mm_P1.27mm",
       "technology": ""
      }
     ]
    }
   ],
   "libraryPath": "syn_deadconnect.lbrx",
   "metadataOk": false,
   "success": true,
   "totals": {
    "devicesets": 1,
    "variants": 1,
    "withDistributor": 0,
    "withMpn": 0
   },
   "warnings": [
    {
     "code": "variant_missing_part_numbers",
     "detail": "Missing MPN, MANUFACTURER, a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN). This bridge's own BOM export reads these exact attribute names, so the BOM comes out blank for this part.",
     "deviceset": "CH340G",
     "missing": [
      "MPN",
      "MANUFACTURER",
      "a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN)"
     ],
     "variant": "CH340G"
    }
   ]
  },
  "lint": {
   "ok": false,
   "totals": {
    "devicesets": 1,
    "variants": 1,
    "withDistributor": 0,
    "withMpn": 0
   },
   "warnings": [
    {
     "code": "variant_missing_part_numbers",
     "detail": "Missing MPN, MANUFACTURER, a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN). This bridge's own BOM export reads these exact attribute names, so the BOM comes out blank for this part.",
     "deviceset": "CH340G",
     "missing": [
      "MPN",
      "MANUFACTURER",
      "a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN)"
     ],
     "variant": "CH340G"
    }
   ]
  },
  "preflight": {
   "_metadataHint": "The library will open, but 1 part-metadata warning(s) mean an EE cannot order from it: MPN / MANUFACTURER / a distributor PN (MOUSER_PN, DIGIKEY_PN, LCSC_PN) are what this bridge's own BOM export reads, and variants that share geometry are told apart ONLY by these. See fusion_library_parts for the per-variant breakdown.",
   "checks": [
    {
     "check": "file-readable",
     "detail": "9781 bytes",
     "ok": true
    },
    {
     "check": "size-sane",
     "detail": "9781 bytes - a real EAGLE library is never this small (truncated transfer?)",
     "ok": true
    },
    {
     "check": "xml-parses",
     "detail": "",
     "ok": true
    },
    {
     "check": "root-is-eagle",
     "detail": "root is <eagle>",
     "ok": true
    },
    {
     "check": "packages-nonempty",
     "detail": "1 package(s)",
     "ok": true
    },
    {
     "check": "symbols-present",
     "detail": "1 symbol(s)",
     "ok": true
    },
    {
     "check": "text-align-valid",
     "detail": "all <text> align values are EAGLE values",
     "ok": true
    },
    {
     "check": "devicesets-present",
     "detail": "1 deviceset(s)",
     "ok": true
    },
    {
     "check": "connects-resolve",
     "detail": "connects reference missing pins",
     "ok": false
    },
    {
     "check": "pads-unique",
     "detail": "all pad names unique per package",
     "ok": true
    }
   ],
   "errors": [
    "connects-resolve: connects reference missing pins"
   ],
   "metadataOk": false,
   "metadataWarnings": [
    {
     "code": "variant_missing_part_numbers",
     "detail": "Missing MPN, MANUFACTURER, a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN). This bridge's own BOM export reads these exact attribute names, so the BOM comes out blank for this part.",
     "deviceset": "CH340G",
     "missing": [
      "MPN",
      "MANUFACTURER",
      "a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN)"
     ],
     "variant": "CH340G"
    }
   ],
   "ok": false,
   "partTotals": {
    "devicesets": 1,
    "variants": 1,
    "withDistributor": 0,
    "withMpn": 0
   }
  }
 },
 "syn_duppad.lbrx": {
  "library_parts": {
   "_hint": "1 deviceset(s), 1 orderable variant(s); 0 carry an MPN and 0 a distributor PN. 1 warning(s) in `warnings` - these do NOT stop the library opening, but an EE cannot order from it as-is. The full orderable identity is deviceset + device + technology (e.g. TJA1050 + T + -AUTO), because EAGLE puts package variants on <device> and grade/temperature variants on <technology> - which is how two variants share geometry and remain different parts.",
   "attributeNames": [
    "MPN",
    "MANUFACTURER",
    "MOUSER_PN",
    "DIGIKEY_PN",
    "LCSC_PN"
   ],
   "devicesets": [
    {
     "description": "USB serial converter, UART, SOIC-16",
     "name": "CH340G",
     "variants": [
      {
       "attributes": {},
       "device": "",
       "fullName": "CH340G",
       "missing": [
        "MPN",
        "MANUFACTURER",
        "a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN)"
       ],
       "package": "SOIC-16_3.9x9.9mm_P1.27mm",
       "technology": ""
      }
     ]
    }
   ],
   "libraryPath": "syn_duppad.lbrx",
   "metadataOk": false,
   "success": true,
   "totals": {
    "devicesets": 1,
    "variants": 1,
    "withDistributor": 0,
    "withMpn": 0
   },
   "warnings": [
    {
     "code": "variant_missing_part_numbers",
     "detail": "Missing MPN, MANUFACTURER, a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN). This bridge's own BOM export reads these exact attribute names, so the BOM comes out blank for this part.",
     "deviceset": "CH340G",
     "missing": [
      "MPN",
      "MANUFACTURER",
      "a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN)"
     ],
     "variant": "CH340G"
    }
   ]
  },
  "lint": {
   "ok": false,
   "totals": {
    "devicesets": 1,
    "variants": 1,
    "withDistributor": 0,
    "withMpn": 0
   },
   "warnings": [
    {
     "code": "variant_missing_part_numbers",
     "detail": "Missing MPN, MANUFACTURER, a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN). This bridge's own BOM export reads these exact attribute names, so the BOM comes out blank for this part.",
     "deviceset": "CH340G",
     "missing": [
      "MPN",
      "MANUFACTURER",
      "a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN)"
     ],
     "variant": "CH340G"
    }
   ]
  },
  "preflight": {
   "_metadataHint": "The library will open, but 1 part-metadata warning(s) mean an EE cannot order from it: MPN / MANUFACTURER / a distributor PN (MOUSER_PN, DIGIKEY_PN, LCSC_PN) are what this bridge's own BOM export reads, and variants that share geometry are told apart ONLY by these. See fusion_library_parts for the per-variant breakdown.",
   "checks": [
    {
     "check": "file-readable",
     "detail": "9776 bytes",
     "ok": true
    },
    {
     "check": "size-sane",
     "detail": "9776 bytes - a real EAGLE library is never this small (truncated transfer?)",
     "ok": true
    },
    {
     "check": "xml-parses",
     "detail": "",
     "ok": true
    },
    {
     "check": "root-is-eagle",
     "detail": "root is <eagle>",
     "ok": true
    },
    {
     "check": "packages-nonempty",
     "detail": "1 package(s)",
     "ok": true
    },
    {
     "check": "symbols-present",
     "detail": "1 symbol(s)",
     "ok": true
    },
    {
     "check": "text-align-valid",
     "detail": "all <text> align values are EAGLE values",
     "ok": true
    },
    {
     "check": "devicesets-present",
     "detail": "1 deviceset(s)",
     "ok": true
    },
    {
     "check": "connects-resolve",
     "detail": "connects reference missing pads",
     "ok": false
    },
    {
     "check": "pads-unique",
     "detail": "duplicate pad names - Fusion's importer refuses the ENTIRE library over these: SOIC-16_3.9x9.9mm_P1.27mm/1 x2. Rename to e.g. 17, 17@2, 17@3...",
     "ok": false
    }
   ],
   "errors": [
    "connects-resolve: connects reference missing pads",
    "pads-unique: duplicate pad names - Fusion's importer refuses the ENTIRE library over these: SOIC-16_3.9x9.9mm_P1.27mm/1 x2. Rename to e.g. 17, 17@2, 17@3..."
   ],
   "metadataOk": false,
   "metadataWarnings": [
    {
     "code": "variant_missing_part_numbers",
     "detail": "Missing MPN, MANUFACTURER, a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN). This bridge's own BOM export reads these exact attribute names, so the BOM comes out blank for this part.",
     "deviceset": "CH340G",
     "missing": [
      "MPN",
      "MANUFACTURER",
      "a distributor PN (MOUSER_PN/DIGIKEY_PN/LCSC_PN)"
     ],
     "variant": "CH340G"
    }
   ],
   "ok": false,
   "partTotals": {
    "devicesets": 1,
    "variants": 1,
    "withDistributor": 0,
    "withMpn": 0
   }
  }
 },
 "syn_noteagle.lbrx": {
  "library_parts": {
   "_hint": "0 deviceset(s), 0 orderable variant(s); 0 carry an MPN and 0 a distributor PN. No metadata warnings. The full orderable identity is deviceset + device + technology (e.g. TJA1050 + T + -AUTO), because EAGLE puts package variants on <device> and grade/temperature variants on <technology> - which is how two variants share geometry and remain different parts.",
   "attributeNames": [
    "MPN",
    "MANUFACTURER",
    "MOUSER_PN",
    "DIGIKEY_PN",
    "LCSC_PN"
   ],
   "devicesets": [],
   "libraryPath": "syn_noteagle.lbrx",
   "metadataOk": true,
   "success": true,
   "totals": {
    "devicesets": 0,
    "variants": 0,
    "withDistributor": 0,
    "withMpn": 0
   },
   "warnings": []
  },
  "lint": {
   "ok": true,
   "totals": {
    "devicesets": 0,
    "variants": 0,
    "withDistributor": 0,
    "withMpn": 0
   },
   "warnings": []
  },
  "preflight": {
   "checks": [
    {
     "check": "file-readable",
     "detail": "348 bytes",
     "ok": true
    },
    {
     "check": "size-sane",
     "detail": "348 bytes - a real EAGLE library is never this small (truncated transfer?)",
     "ok": true
    },
    {
     "check": "xml-parses",
     "detail": "",
     "ok": true
    },
    {
     "check": "root-is-eagle",
     "detail": "root is <html>",
     "ok": false
    },
    {
     "check": "packages-nonempty",
     "detail": "EMPTY <packages> - Fusion opens this to a silent 'No Components' library",
     "ok": false
    },
    {
     "check": "symbols-present",
     "detail": "0 symbol(s)",
     "ok": false
    },
    {
     "check": "text-align-valid",
     "detail": "all <text> align values are EAGLE values",
     "ok": true
    },
    {
     "check": "devicesets-present",
     "detail": "no <deviceset> - EDIT <name>.dev will raise Fusion's Create-new prompt",
     "ok": false
    },
    {
     "check": "pads-unique",
     "detail": "all pad names unique per package",
     "ok": true
    }
   ],
   "errors": [
    "root-is-eagle: root is <html>",
    "packages-nonempty: EMPTY <packages> - Fusion opens this to a silent 'No Components' library",
    "symbols-present: 0 symbol(s)",
    "devicesets-present: no <deviceset> - EDIT <name>.dev will raise Fusion's Create-new prompt"
   ],
   "metadataOk": true,
   "metadataWarnings": [],
   "ok": false,
   "partTotals": {
    "devicesets": 0,
    "variants": 0,
    "withDistributor": 0,
    "withMpn": 0
   }
  }
 },
 "syn_truncated.lbrx": {
  "library_parts": {
   "error": "unclosed token: line 3, column 0",
   "errorCode": "library_unreadable",
   "libraryPath": "syn_truncated.lbrx",
   "success": false
  },
  "lint": {
   "error": "unclosed token: line 3, column 0",
   "ok": false,
   "warnings": []
  },
  "preflight": {
   "checks": [
    {
     "check": "file-readable",
     "detail": "77 bytes",
     "ok": true
    },
    {
     "check": "size-sane",
     "detail": "77 bytes - a real EAGLE library is never this small (truncated transfer?)",
     "ok": false
    }
   ],
   "errors": [
    "size-sane: 77 bytes - a real EAGLE library is never this small (truncated transfer?)"
   ],
   "ok": false
  }
 }
}