The best synthetic data are those that capture ingestion and action, instead of just relationship.
Relationship is important, but your data structure might capture a virtually infinite number of unexpected behaviors that you would preferably call errors or bugs.