As a plugin developer, I want a documented way to create and save a feature with the layer's default values and constraints applied, as QField's form does, so that guided data-collection plugins keep working after QField updates. Example: our field teams map plots and record farm work with a plugin that guides them step by step. One button asks what they want to record, records the shape (an averaged point, a walked boundary or corners), then asks one question per screen and saves. The layer's form holds the rules we rely on: a default value that builds a plot ID from the collector's code, the farm and a running number; a hard constraint that blocks saving when the collector code is missing; a soft constraint that warns when a new boundary overlaps one already recorded. To get those rules applied, the plugin creates its own QfFeatureModel and QfAttributeFormModel and calls create(). That works well, but these classes are not part of the documented plugin API, so we currently have turn off QField updates on the phones and test each new version before allowing it. What would make this stable: Document (and keep in the plugin tests) creating, filling and saving a feature with defaults and constraints applied, for example a small helper that takes a layer, a geometry and attribute values and returns the constraint results. A documented call to open the add-feature form for a layer with a prepared geometry, with a signal when it is saved or cancelled, as a fallback. A way for a plugin to ask for positions to keep coming while the screen is off, so a boundary can be walked with the phone in a pocket. Happy to test pre-release builds.