Well, in the sense that switching states must go through some path other than `thing.state = newState;`. There are many tasks that must be done when the thing switches states.

If we use a setter here, then we end up storing the state in the WeakMap/side table private storage anyway.