code: function MarkerOutput (assetQuantities, metadata) {
  
    // Validate provided asset quantities
    // NOTE: This check is not guaranteed to catch all values > MAX_ASSET_QUANTITY.
    //       Because MAX_ASSET_QUANTITY is larger than Number.MAX_VALUE, exact
    //       representation of values near MAX_ASSET_QUANTITY is sometimes odd.
    //       For example (MAX_ASSET_QUANTITY === MAX_ASSET_QUANTITY+1) evaluates
    //       to 'true'. However, if a number is significantly larger than
    //       MAX_ASSET_QUANTITY, then this check will catch it.
    // TODO: Find a more precise check that will handle all cases
    if (assetQuantities) {
      assetQuantities.forEach(function (q) {
        if (q > MAX_ASSET_QUANTITY) {
          throw Error('Asset quantity '
            + assetQuantities[i]
            + ' exceeds maximum allowed (' + MAX_ASSET_QUANTITY + ')');
        }
      });
    }
  
    // Store provided asset quantities
    this.assetQuantities = assetQuantities
      ? assetQuantities
      : [];
  
    // Validate and store provided metadata
    this.metadata = (metadata && Buffer.isBuffer(metadata))
      ? metadata 
      : new Buffer([]);
  }
docs: Constructor
  @param array(int) assetQuantities    The list of asset quantities
  @param Buffer     metadata           The metadata in the marker output