code: function Base(options) {
    this.define('options', options || {});
    this.define('hints', this.hints || {});
    this.define('data', this.data || {});
    this.define('app', this.app || this.options.app || {});
    this.define('_cache', {});
    this.define('_callbacks', this._callbacks);
  
    if (typeof this.options.mixins === 'object') {
      this.visit('mixin', this.options.mixins);
    }
  }
docs: Create an instance of `Base` with specified `options.
  
  The `Base` class extends `Collection`, `List` and `Item`
  with common methods, properties and behavior.
  
  ```js
  function MyClass(options) {
  Base.call(this, options);
  }
  Base.extend(MyClass);
  ```
  @param {Object} `options`
  @return {undefined}
  @api public