Backbone.ViewModel may used between Model and View in Backbone or BB.Marionette or other BB-compatibility projects.

Its not drop-in replacement for Model, but it handle correctly some methods and properties form Model and should play well with others (you may write request with testcase if important Madel functionality looks omitted).

As ViewModel its support some additional features as computed values, controlled autosync with Model and defaults values.

###
model prop may be used to create specific Model from raw data,
by default VM use Backbone.Model
###
model : BaseBB.Model
###
VM do not auto-update itself properties on model changes
use this knob to turn it on
###
autoupdate : on
###
all keys in mapping will be 'mapped' self VM functions OR
model attributes, with priority: function, than attributes
###
mapping :
color : 'color'
height : 'getHeight'

Backbone.ViewModel as BB.Model will support much helpfully methods like toJSON() or get(), dozen unsuitably methods like set()unset() or clear() and (at now) will available to call erroneously methods like fetch() or sync() - just do not use them.

If you need to have synced model - create it first and use thyself methods in ViewModel update or autoupdate combinations.