Make DAGs support and run on snapshots

Title says it all
At runtime, we need to validate that the snapshot DAG is correct, not the canonical DAG. This needs to go before the validation lines immediately above it, and that validation should take place on the snapshot.