@behaviour, @callback and @spec

Thank you for the discussion everyone!
it helped me really to read the different perspectives and make decisions.