OptionalidOptionallabelOptionalstyleOptionalvisibleOptionalgeometryOptionaltypeOptionaldataOptional_OptionalpluginOptionaldataOptionalclusteringOptionalattributesThe layer's attribute model — see contracts/attributes.contract.ts.
Replaces three legacy members declared here and read by nothing:
popup.fields, tooltip.fields and sidepanel.detailLayout. That last one was
the third nesting level of a single detailLayout key spelled at three depths,
none of which the profile schema accepts.
OptionalwriteWhere this layer's edits are pushed — see contracts/sync.contract.ts.
Declared per layer because on a backend such as Odoo each layer is a distinct collection. Its absence is what makes a layer read-only offline: pulling a layer for offline use never grants write access on its own.
Per-layer config as declared in a profile (loose JSON).