Introduction
Properties let you store information inside objects. Using val means the value cannot change, while var means it can change.
When you want to keep some information fixed and not allow changes, like a person's birth date.
When you want to allow updates to information, like a user's current score in a game.
When you want to clearly show which data should stay constant and which can be modified.
When you want to prevent accidental changes to important data by using <code>val</code>.
When you want to create simple data holders with readable and writable properties.