It is a directed acyclic graph where each node is a version of the content and edges represents the change (diffs)

Each node has an identifier which is the results of hashing the content.

Merkle DAG nodes are immutable and content-addressable. Any changes in the node would alter its identifier thus affect all ascendants, which create a different DAG.

Examples of the DAG in action: