Can I define consistency checks for metadata?

For example, if I define a relation with a metadata field like “parent of,” can I ensure that the parent’s birthdate is always earlier than the child’s birthdate?

If I identify a new consistency check like that, can I search for all cases in existing data where that check fails?

If I fill in a field like “parent of,” can I cause a corresponding field “child of” to get filled in automatically?

That sort of thing sounds quite reasonable and possible, but would be the job of a plugin to build. I imagine it would do some kind of validation on saving in the first case. The second case would have to run a job that runs through the database. The third case is more complicated, as it would have to know about existing records and the relationship between them.