Функции задают исполняемый интерфейс контракта. Они включают параметры и (опционально) return значения, и аннотируются: (1) visibility (кто может вызывать), (2) state mutability (view/pure/payable) и (3) optional modifiers/override при наследовании. Эти аннотации важны и для безопасности (reasoning), и для ABI кодирования/декодирования внешних вызовов.
Visibility: public/private/internal/external