Protocols are a bit like contracts in Swift: they let us define what kinds of functionality we expect a data type to support, and Swift ensures that the rest of our code follows those rules.Think about how we might write some code to simulate someone commuting from their home to their ...