- replace the Haskell bridge with transactional SQLite state and validation - centralize versions and harden resource, capture, and release tooling - complete active gacha schedules, point exchange, and mail grants - add equipment refinement, presets, and ordinary formation workflows - improve client plugins, request timing, and normalized persistence
17 lines
367 B
Go
17 lines
367 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
|
|
"bd2server/internal/accountstate"
|
|
)
|
|
|
|
func stateProblemsError(prefix string, problems []accountstate.Problem) error {
|
|
parts := make([]string, 0, len(problems))
|
|
for _, problem := range problems {
|
|
parts = append(parts, problem.Code+": "+problem.Message)
|
|
}
|
|
return fmt.Errorf("%s: %s", prefix, strings.Join(parts, "; "))
|
|
}
|