Personally I prefer the merge syntax, it feels more natural:
const newContent = oldContext.merge({
"logged": true,
"error": false
});
If you were doing something very complex, maybe the transient version would be better, but I just can’t imagine where.
It also means you can leverage mergeDeep if needed.