package ports import ( "context" "galaxy/notificationintent" ) // IntentPublisher is the lobby-facing producer port for normalized // notification intents. The production adapter is a // *notificationintent.Publisher which already satisfies this interface; // service tests use an in-process stub that records every Publish call. // // A failed Publish call is a notification degradation per // lobby/README.md §Notification Contracts and must not roll back already // committed business state. Callers log the error and proceed. type IntentPublisher interface { // Publish normalizes intent and appends it to the configured Redis // Stream, returning the stream entry id on success. Validation // failures and transport errors are returned verbatim. Publish(ctx context.Context, intent notificationintent.Intent) (string, error) }