I want to use different data type in kvstore, not only string data type, how to implement like this ```go type Score struct { level int time time.Time } err := ctx.KVStore[uint32, Score].Set(1, &Score{level:1, time: time.Now()}) ```