package domain import "time" // PluginDataRecord is an opaque plugin-owned platform record. Platform scopes // it but does not interpret the collection name 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 }