New Cadence FLIP for restricting field mutation

Hi Community,

I have proposed a FLIP (https://github.com/onflow/flow/pull/703) that would address a common footgun developers run into when using Cadence: accidentally exposing state and fields from contracts or objects that is designed to be readable by other code, but is ends up also being mutable by accident. This FLIP is designed to resolve this problem on the Cadence side by restricting where fields can be mutated. I’d be curious to see what people’s thoughts and feedback on this are.