Thank you for this well thought out push for server-side timestamps!
I love this. Would help a lot with getting only newest data and not receiving old data from sub-graphs over and over again.
Does this need to be so strict? Why not allow both? For instance, we would definitely need mutable timestamps for client ↔ server synchronization.
When implemented like this, you could choose to allow it or not:
type TimestampConfig {
active: Boolean!
mutable: Boolean!
}
@timestamps( createdAt: TimestampConfig, updatedAt: TimestampConfig )