Turns a commit's Proposal[] into the AppDataUpdateOp[] shape every seam
feeds to validateAppComponentIntegrity (and, later, the shared seam
adapter). This is the single adapter every seam uses so the proposal → op
mapping is never re-implemented seam-locally.
Preserves commit order and does not deduplicate. Note that a legal commit
never carries more than one AppDataUpdate op for the same component id —
validatePreApplyProposals (src/engine/admin-policy.ts) rejects a
duplicate id before apply, matching MDK's seen set in
validate_app_data_update_batch_against. This adapter stays
duplicate-tolerant anyway because it is a pure mapping run on the
already-admitted batch, and because rule 3 of
validateAppComponentIntegrity must stay well-defined even for a
batch that reached it without pre-apply admission.
Turns a commit's
Proposal[]into theAppDataUpdateOp[]shape every seam feeds to validateAppComponentIntegrity (and, later, the shared seam adapter). This is the single adapter every seam uses so the proposal → op mapping is never re-implemented seam-locally.Preserves commit order and does not deduplicate. Note that a legal commit never carries more than one
AppDataUpdateop for the same component id —validatePreApplyProposals(src/engine/admin-policy.ts) rejects a duplicate id before apply, matching MDK'sseenset invalidate_app_data_update_batch_against. This adapter stays duplicate-tolerant anyway because it is a pure mapping run on the already-admitted batch, and because rule 3 of validateAppComponentIntegrity must stay well-defined even for a batch that reached it without pre-apply admission.