Original text:
resolved time value and name are matched.  Similarly, when unit is given, only the SenML Records with equal resolved unit and name are matched.  If both time and unit are given in the Fetch Record, both <del> MUST to match for the SenML Record to match. </del>  For example, if the IPSO resource "5850" would have multiple sensor readings (SenML Records) with different time values, the following Records, to add new Records, and to remove existing Records.  The names, times, and units of the Patch Records are given and matched in same way as for the Fetch Records, except each Patch Record MUST <del> match at most one Target Record.  Patch Packs can also include new values and other SenML fields for the Records.  Application of Patch Packs is idempotent; hence PATCH and iPATCH methods for SenML Packs are equivalent. </del>  When the name in a Patch Record matches with the name in an existing Record, the resolved time values and units (if any) are compared.  If the time values and units either do not exist in both Records or are equal, the Target Record is replaced with the contents of the Patch Record.  All Patch Records MUST contain at least a SenML Value or Sum <del> field.  A Patch Pack with invalid Records MUST be rejected. </del>  If a Patch Record contains a name, or combination of a time value, unit, and a name, that do not exist in any existing Record in the NOT be added but the matched Record (if any) is removed from the Target Pack.  For example, the following document could be given as an (i)PATCH payload to change/set values of two SenML Records for the example in intro:

Reviewer comments:
Patch records must match only one Target record Invalid records result in error No Pack state is changed if any invalid records Also: Noted Fetch response must contain each target only once Updated author info

Revised text:
resolved time value and name are matched.  Similarly, when unit is given, only the SenML Records with equal resolved unit and name are matched.  If both time and unit are given in the Fetch Record, both  <ins> MUST to match for the SenML Record to match.  Each Target Record MUST be included in the response only once, even if multiple Fetch Records match with the same Target Record. </ins> For example, if the IPSO resource "5850" would have multiple sensor readings (SenML Records) with different time values, the following Records, to add new Records, and to remove existing Records.  The names, times, and units of the Patch Records are given and matched in same way as for the Fetch Records, except each Patch Record MUST  <ins> match at most one Target Record.  A Patch Record matching more than one Target Record is considered invalid.  Patch Packs can also include new values and other SenML fields for the Records. Application of Patch Packs is idempotent; hence PATCH and iPATCH methods for SenML Packs are equivalent. </ins> When the name in a Patch Record matches with the name in an existing Record, the resolved time values and units (if any) are compared.  If the time values and units either do not exist in both Records or are equal, the Target Record is replaced with the contents of the Patch Record.  All Patch Records MUST contain at least a SenML Value or Sum  <ins> field. </ins> If a Patch Record contains a name, or combination of a time value, unit, and a name, that do not exist in any existing Record in the NOT be added but the matched Record (if any) is removed from the Target Pack. <ins> The Patch Records MUST be applied in the same sequence they are in the Patch Pack. Implementations MUST reject and generate an error for Patch Packs with invalid Records.  If a Patch Pack is rejected, the state of the Target Pack is not changed, i.e., either all or none of the Patch Records are applied. </ins> For example, the following document could be given as an (i)PATCH payload to change/set values of two SenML Records for the example in intro: