Learn about protocols which let you define what kind of methods and properties a type should have which you can then use to build actual types.
This is a companion discussion topic for the original entry at https://www.raywenderlich.com/4190-intermediate-swift-2/lessons/6