Audit workflows require writing a new snapshot, but not updating the table's current state until that snapshot has been audited. Once a snapshot has been audited, applying it to the current table state might be a fast-forward if its parent is the current table state, or might be a cherry-pick if another snapshot has been committed on top of the audit's parent. To know whether the snapshot must be cherry-picked, Iceberg should track each snapshot's parent ID.
Audit workflows require writing a new snapshot, but not updating the table's current state until that snapshot has been audited. Once a snapshot has been audited, applying it to the current table state might be a fast-forward if its parent is the current table state, or might be a cherry-pick if another snapshot has been committed on top of the audit's parent. To know whether the snapshot must be cherry-picked, Iceberg should track each snapshot's parent ID.