function FontFace (family, url, attributes) {
  var fontFace;
  var fontId;

  attributes = attributes || {};
  attributes.style = attributes.style || 'normal';
  attributes.weight = attributes.weight || 400;

  fontId = getCacheKey(family, url, attributes);
  fontFace = _fontFaces[fontId];

  if (!fontFace) {
    fontFace = {};
    fontFace.id = fontId;
    fontFace.family = family;
    fontFace.url = url;
    fontFace.attributes = attributes;
    _fontFaces[fontId] = fontFace;
  }

  return fontFace;
}
@param {String} family The CSS font-family value
@param {String} url The remote URL for the font file
@param {Object} attributes Font attributes supported: style, weight
@return {Object}