package domain import "time" // PluginDataRecord is an opaque plugin-owned, server-scoped platform record. // It is separate from platform users/auth sessions and from game-server data; // Platform scopes it but does not interpret collection names or payload fields. type PluginDataRecord struct { ID string PluginID string ServerInstanceID string Collection string Key string Value map[string]any CreatedAt time.Time UpdatedAt time.Time } type PluginDataFilter struct { PluginID string ServerInstanceID string Collection string Key string Limit int } type PluginDataMutationOperation string const ( PluginDataMutationPut PluginDataMutationOperation = "put" PluginDataMutationDelete PluginDataMutationOperation = "delete" ) type PluginDataMutation struct { Operation PluginDataMutationOperation Key string Value map[string]any } type PluginDataTransaction struct { PluginID string ServerInstanceID string Collection string Mutations []PluginDataMutation } func CopyPluginDataRecord(value PluginDataRecord) PluginDataRecord { value.Value = CopyGameClientBridgePayload(value.Value) return value }