docs: function (args) {
    if (false === (this instanceof Log)) throw new Error('new operator required');
    if (typeof args == 'string') {
      var simpleText = args;
      args = {};
      args.contents = simpleText;
    }
    args = args || {};
    if (!args.attributes) {
      args.attributes = [];
    }
    var my_logType = args.logType || 'Text';
    var my_importance = args.importance || 'Info';
    var my_contents = args.contents || '(no text)';
    if (!contains(['Text', 'Delta'], my_logType)) throw new Error('Unknown log type: ' + my_logType);
    if (typeof args.logType != 'undefined') delete args.logType;
    if (typeof args.importance != 'undefined') delete args.importance;
    if (typeof args.contents != 'undefined') delete args.contents;
    args.attributes.push(new Attribute({name: 'dateLogged', type: 'Date', value: new Date()}));
    args.attributes.push(new Attribute({name: 'logType', type: 'String', value: my_logType}));
    args.attributes.push(new Attribute({name: 'importance', type: 'String', value: my_importance}));
    if (my_logType == 'Delta')
      args.attributes.push(new Attribute({name: 'contents', type: 'Object', value: my_contents}));
    else
      args.attributes.push(new Attribute({name: 'contents', type: 'String', value: my_contents}));
    Model.call(this, args);
    this.modelType = "Log";
  }