Holding server data back
$bindary.lock() and $bindary.unlock() are specifically for data arriving from the
server over a connected route, a WebSocket push or an XHR response, not for changes you make yourself in
ordinary code. Locking postpones applying an incoming update for a data-key, a container or everything,
until the matching unlock() call, rather than letting it land the moment it arrives.
The case this exists for: a server update lands while the user is in the middle of editing a form bound to
that same data. Letting it apply immediately means their in-progress edit gets overwritten mid-keystroke.
Locking that key while they're editing, unlocking when they're done, is how you avoid that collision.
$bindary.lock('order.customerName', 'appData'); // user is editing this field
// ...
$bindary.unlock('order.customerName', 'appData'); // done editing, apply anything that arrived meanwhile
dataContainer defaults to viewData, not appData, when only
dataKey is given. Lock a path under appData and forget to specify the container,
and you've locked the same-named path under viewData instead.