code: function(opts) {
    this.name = opts.name;
    this.path = opts.path;
    this.workspace = opts.workspace;
    this.subscription = opts.subscription;
    this.origin = opts.origin;
    this.username = opts.username;
    this.password = opts.password;
    this.accessToken = opts.accessToken;
    this.refreshToken = opts.refreshToken;
    this.instanceUrl = opts.instanceUrl;
    this.package = opts.package;
    this.orgType = opts.orgType;
    this.sfdcClient = opts.sfdcClient;
    this.requiresAuthentication = true;
    this.settings = {};
    this.packageXml = null;
    this.orgMetadata = null;
    this.lightningIndex = null;
    this.metadataHelper = null;
    this.keychainService = new KeychainService();
    this.logService = new LogService(this);
    this.symbolService = new SymbolService(this);
    this.lightningService = new LightningService(this);
  }
docs: Represents a MavensMate project
  
  @constructor
  @param {Object} [opts] - Options used in deployment
  @param {String} [opts.name] - For new projects, sets the name of the project
  @param {String} [opts.subscription] - (optional) Specifies list of Metadata types that the project should subscribe to
  @param {String} [opts.workspace] - (optional) For new projects, sets the workspace
  @param {String} [opts.path] - (optional) Explicitly sets path of the project (defaults to current working directory)
  @param {String} [opts.origin] - (optional) When creating a MavensMate project from an existing directory, pass the existing path as "origin"