Lesson 10: Setters & validation
A property without a setter blocks every update — but sometimes an update is exactly what's needed, just safely. Today we add @balance.setter with validation: a valid value gets in, a bad one is stopped with raise. This is the encapsulation module's peak.