If you have never worked through the Gilded Rose kata, you’ve been missing out; it is canon when it comes to coding katas. It is unusual because it provides an initial implementation. Your mission, if you choose to accept it, is to add functionality to this legacy code. By the way, it is a huge mess! In order to make the work manageable, you’ll first have to refactor the existing code.
I wasn’t able to find the initial code in Swift, so I took a couple of minutes to port it. I used the code provided by Emily Bache as a starting point. You should definitely check out her repository if you want to try the kata in different languages.