Who can call a public function?

@Tyler_Kaye
Thanks,
Yes, I read the docs several times and it is unclear, the “private” is very clear, the “public” isn’t.
One can understand “public” as “anyone can call it regardless of authentication”, so where is it exactly that I define that only authenticated users can execute a public function? Because even the “Authentication” section in the function settings is confusing (it is more “delegated permissions” than “Authentication”).
So, if I need my function to “run as system” but be accessible only by authenticated users, where do I define it?