Use rust or typescript or something where it's socially acceptable to make small packages.

That'll also let you avoid writing the `if err != nil { return fmt.Errorf("context string something: %w", err) }` boilerplate again and again too (since you can just write '.context("context")?' each time).

If you're using Go, you're not supposed to build abstractions, small packages, or any sorta clever or good code. And be really careful using generics.

If you want to write abstractions, you're supposed to use a different language. Those are the rules.