`:empty` is now `:virtual` and `:virtual` is `writeable: false`. It was too confusing and sucked. Thanks to @bethesque, again, for her moral assistance.
Added `:readable` and `:writeable` option which allow to skip reading or writing to the model when `false`.