support for {pre,post}_{commit,validation}_hook
support 'permit' option

an array with permitted keys to update
adding BasicObject::all()