Documentation
A protocol describes a set of expected behavior. In C# we can define protocols using interfaces.