How does RequireComponent expose properties

I have noticed in some scripts we have (c#)

using UnityEngine;

    [RequireComponent (typeof (AudioSource))]
 
    public class MyClass : MonoBehaviour
    {
        void Start()
        {
           audio.GetSpectrumData(samples, 0,  FFTWindow.Rectangular);
        }  
}

What are the rules defining these auto exposed properties? How are they named?

There are no rules. Unity just defines some shortcut properties for the most common built-in components. Those properties are not related to RequireComponent at all. They exist in every Component and GameObject instance.

RequireComponent will just auto-add the given component when you add this script to an object, nothing more.