How to to model this?

I am trying to implement “versioned” data, so that i can reconstruct, and revert, if necessary, any kind of operation. Essentially detatching the identify of a node from the state of a node.

This to solve data lineage issues, and to allow reverting of data.

Please consider the following screenshot, showing how it’s done in neo4j:

Can i add multiple facets for an edge?
What if i would like to add userid information to the facets as well?

What would be a good approach to model this in dgraph?
As facets are not supprted in graphql, am i then restricted to use dql for everything that i want “versioned” in this way?