Save a configuration record with its owned lists
What It Does
Configuration saves share strict parsing, reference validation, versioned mutation and list handling. Omitted lists remain, submitted empty lists clear rows, and the complete result commits with content history. The save does not turn imports into a different configuration contract.
The Flow
When Something Fails
Pre-commit failure leaves neither a partial record nor a partly replaced list. Error translation occurs after failed create or update transactions unwind. Requirement replacement retains a concurrency gap because its affiliation-use check does not lock the memberships that can add new affiliations.
Open Design Questions
Product must settle replacement consistency and the unused lock flag. Individual grants and policies receive new identities when replaced, so consumers cannot assume those identities survive a submitted-list save.