splitUnit in src/specs.ts takes any short word in trailing brackets for a unit, so a qualifier that tells two figures apart is dropped and both land on one id. The name the reader gave, and the document prints, is lost before specId sees it.
Progressive Dynamics' PD1600 quick reference guide p7 prints two rows for each model:
| Max Power (Cont) | 1000W | 1800W | 2000W |
| Max Power(Peak) | 2000W | 3600W | 4000W |
The reading has both, named as printed. splitUnit turns "Max Power (Cont)" and "Max Power (Peak)" into "Max Power" with a unit of "Cont" or "Peak", which canonicalUnit then drops as a word. Both become progressive-dynamics-pd1610--max-power, one is written and the other is counted as a repeated row. Pull #187 writes 1000 W there, with nothing to say whether it is the continuous or the peak rating.
The same happens to EG4's WallMount Indoor sheet, where "CELL VOLTAGE PROTECTION (CHARGE)" at 3.8 V and "(DISCHARGE)" at 2.3 V both become "CELL VOLTAGE PROTECTION", and to "(BULK/ABSORB)" and "(OPERATING)". #185 rejected those figures as names the sheet does not print; the sheet does print them, and this is where they were lost.
Expected: a bracketed unit moves to the unit field, and a bracketed qualifier stays in the name, so two rows keep two ids.
Actual: any candidate of 1 to 12 letters is taken as a unit, unless it is in a short list of exceptions (max, min, typ, optional, nominal, d*w*h, l*w*h).
Next step: strip the brackets only when canonicalUnit recognises what is inside them, which already covers "(Ah)", "(VDC)", "(kg)" and "(°C)", and drop the exception list. Figures whose name regains a qualifier change id, so the next pull writes the new ids and removes the old ones; the pull request will show that.
splitUnitinsrc/specs.tstakes any short word in trailing brackets for a unit, so a qualifier that tells two figures apart is dropped and both land on one id. The name the reader gave, and the document prints, is lost beforespecIdsees it.Progressive Dynamics' PD1600 quick reference guide p7 prints two rows for each model:
The reading has both, named as printed.
splitUnitturns "Max Power (Cont)" and "Max Power (Peak)" into "Max Power" with a unit of "Cont" or "Peak", whichcanonicalUnitthen drops as a word. Both becomeprogressive-dynamics-pd1610--max-power, one is written and the other is counted as a repeated row. Pull #187 writes 1000 W there, with nothing to say whether it is the continuous or the peak rating.The same happens to EG4's WallMount Indoor sheet, where "CELL VOLTAGE PROTECTION (CHARGE)" at 3.8 V and "(DISCHARGE)" at 2.3 V both become "CELL VOLTAGE PROTECTION", and to "(BULK/ABSORB)" and "(OPERATING)". #185 rejected those figures as names the sheet does not print; the sheet does print them, and this is where they were lost.
Expected: a bracketed unit moves to the unit field, and a bracketed qualifier stays in the name, so two rows keep two ids.
Actual: any candidate of 1 to 12 letters is taken as a unit, unless it is in a short list of exceptions (
max,min,typ,optional,nominal,d*w*h,l*w*h).Next step: strip the brackets only when
canonicalUnitrecognises what is inside them, which already covers "(Ah)", "(VDC)", "(kg)" and "(°C)", and drop the exception list. Figures whose name regains a qualifier change id, so the next pull writes the new ids and removes the old ones; the pull request will show that.