Per-phase reference for phase_auth, phase_settings, phase_content, phase_finalize. What each does, what each fires, what each reads/writes on the context, and where sibling-plugin hooks land.
How JSON_Cursor_Manager lets the mobile app fetch only changed sections. Per-section timestamps, the ?cursor= request parameter, when reset_cursor() is called, and the bypass_caching flag for cloning admins.
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().
Can’t find the answer you’re looking for? Don’t worry we’re here to help!