The shape of the JSON payload returned by local_app_get_phone_data: top-level keys, button arrays, content sections, form data, notification list, navigation, and the conventions sibling plugins must follow when injecting their…
The convention for which priority to use when registering against mam_get_phone_data_before_send. Critical contracts: priority 1000 for home_cats, 1001+ for total overrides, 199 for form-state validation, 10 for the default cohort.
The AJAX entry point for the mobile API. Frozen public contract: action name local_app_get_phone_data plus the modern alias mam_get_phone_data. Both delegate to MAM_Phone_Data_Pipeline::run().
How mam-main talks to APNs: HTTP/2 transport via MAM_IosPushSender, .p8 key + JWT auth via MAM_ApnsTokenProvider, payload building via MAM_IosPayloadBuilder, and the separate VoIP path via MAM_IosVoipPushSender.
How mam-main talks to FCM v1: OAuth2 service-account JWT auth via MAM_FirebaseJwtSigner, payload building via MAM_AndroidPayloadBuilder, send via MAM_AndroidPushSender. The deprecated server-key API is not used.
Can't find the answer you're looking for? Don't worry we're here to help!