Draft (RAP Draft Handling)
What it is
RAP's built-in mechanism for saving incomplete, work-in-progress data so a user can leave and resume an edit, with the active (saved) and draft versions kept side by side. Enabled declaratively in the BDEF; RAP generates the draft tables and lifecycle.
Why it matters for Clean Core
Draft is what makes a Fiori Elements edit feel modern (autosave, resume, concurrent edit warnings). RAP gives you the entire draft lifecycle for a one-line declaration — re-implementing it by hand is a classic waste.
Common pitfall
Bypassing draft state with direct EML writes to the active instance during an edit, or forgetting the draft determine-action when copying logic between active and draft. Let RAP own the draft/active transition.