lib/platelets.js
function props(dest, pds, src, isrc, ndflt, nm, nmsrc) {
    var asrt = nm && src;
    if (asrt) assert.ok(dest, 'no ' + nm);
    var i = pds.length;
    while (i--) {
        if (asrt) prop(dest, pds[i], src, isrc, ndflt, nm, nmsrc);
        else prop(dest, pds[i], src, isrc, ndflt);
    }
    return dest;
}
function props(dest, pds, src, isrc, ndflt, nm, nmsrc) {
    var asrt = nm && src;
    if (asrt) assert.ok(dest, 'no ' + nm);
    var i = pds.length;
    while (i--) {
        if (asrt) prop(dest, pds[i], src, isrc, ndflt, nm, nmsrc);
        else prop(dest, pds[i], src, isrc, ndflt);
    }
    return dest;
}
function props ( dest , pds , src , isrc , ndflt , nm , nmsrc ) { var asrt = nm && src ; if ( asrt ) assert . ok ( dest , 'no ' + nm ) ; var i = pds . length ; while ( i -- ) { if ( asrt ) prop ( dest , pds [ i ] , src , isrc , ndflt , nm , nmsrc ) ; else prop ( dest , pds [ i ] , src , isrc , ndflt ) ; } return dest ; }
Assigns property values on a destination object or asserts that the destination object properties are within the defined boundaries when a source object is passed along with its name

@arg {Object} dest the object to assign properties to or assert properties for
@arg {Object[]} pds property definition objects that determine which properties will be assigned or asserted
@arg {String} pds[].n the name of the property that will be assigned or asserted
@arg {*} [pds[].d] a default value that will be used when there is no property defined on the source object (assignment only)
@arg {Boolean} [pds[].i] true to inherit value from the passed source object (assignment only)
@arg {Number} [pds[].l] when the property is a number, the lowest acceptable numeric value for the property (assignment only)
@arg {Number} [pds[].h] when the property is a number, the highest acceptable numeric value for the property (assignment only)
@arg {Object[]} [pd.r] a range of valid values that the property value will be restricted to (assignment only)
@arg {*} [pd.c] a reference object that will be used to constrain the destination property to (uses typeof and Array.isArray- assignment only)
@arg {Object} [src] source object that will be used for default property values or when assertion will be used for equallity
@arg {Boolean} [isrc] true to always inherit from the source object properties when the value is not undefined, regardless of property definition (assignment only)
@arg {String} [nm] a name used for the object (assertion only)
@arg {String} [nmsrc] a name used for the source object (assertion only)
@returns {Object} the passed object
Assigns property values on a destination object or asserts that the destination object properties are within the defined boundaries when a source object is passed along with its name