code: function ImmutableCoreModel (args) {
      // store copy of original args
      this.args = _.cloneDeep(args)
      // initialize global data
      this.initGlobal(args)
      // create module and set options
      this.initModule(args)
      // initialize column spec for model
      this.initColumns(args)
      // initialize multi-column indexes
      this.initIndexes(args)
      // create and validate JSON schema
      this.initJsonSchema(args)
      // add create method to module
      this.initCreate(args)
      // add query method to module
      this.initQuery(args)
      // add associated actions
      this.initActions(args)
      // initialize any model views
      this.initViews(args)
      // initialize related models
      this.initRelations(args)
      // initialize access control
      this.initAccessControl(args)
      // create columnsId
      this.initIds()
  }
docs: @function ImmutableCoreModel
  
  create a new model instance
  
  @param {object} args
  
  @returns {object}
  
  @throws {Error}