core/track.js
function Track(app, logger) {

    /**
     * @public
     * @memberOf {Track}
     * @property
     * @type {String}
     * */
    this.id = this._createId();

    /**
     * TODO Deprecate?
     *
     * @public
     * @memberOf {Track}
     * @property
     * @type {Logger}
     * */
    this.logger = logger;

    /**
     * @public
     * @memberOf {Track}
     * @property
     * @type {Object}
     * */
    this.params = {};

    /**
     * @protected
     * @memberOf {Track}
     * @property
     * @type {Core}
     * */
    this._app = app;

    /**
     * @public
     * @memberOf {Track}
     * @property
     * @type {Object}
     * */
    this.calls = {};

    /**
     * @protected
     * @memberOf {Track}
     * @property
     * @type {Boolean}
     * */
    this._isFlushed = false;
}
function Track(app, logger) {

    /**
     * @public
     * @memberOf {Track}
     * @property
     * @type {String}
     * */
    this.id = this._createId();

    /**
     * TODO Deprecate?
     *
     * @public
     * @memberOf {Track}
     * @property
     * @type {Logger}
     * */
    this.logger = logger;

    /**
     * @public
     * @memberOf {Track}
     * @property
     * @type {Object}
     * */
    this.params = {};

    /**
     * @protected
     * @memberOf {Track}
     * @property
     * @type {Core}
     * */
    this._app = app;

    /**
     * @public
     * @memberOf {Track}
     * @property
     * @type {Object}
     * */
    this.calls = {};

    /**
     * @protected
     * @memberOf {Track}
     * @property
     * @type {Boolean}
     * */
    this._isFlushed = false;
}
@class Track

@param {Core} app
@param {Logger} logger