We *can* set the `writeable` flag on the underlying Numpy arrays to `False`, but it doesn't end up enforcing much, since the array may be a view on something larger (particularly if the values come from a table), and that larger array would still be writeable.  So I don't know if this "technical" enforcement gains much since it still would have to be documented that we don't want users to change the underlying data on us.  So I say we just document that these objects are *assumed* to be non-mutated, even if they are technically mutable.