package dtoimport "strings"// Fields is the parsed set of a Jellyfin request's Fields param (lowercased). It controls which// conditional fields a mapped item carries — chiefly MediaSources — matching real Jellyfin, which// omits those unless the client asks for them.type Fields map[string]struct{}// ParseFields builds a lowercased set from the Fields param. It accepts each value comma-separated// (Fields=a,b) and across repeated params (Fields=a&Fields=b), both of which real Jellyfin honors.func ParseFields(values ...string) Fields {f := Fields{}for _, csv := range values {for name := range strings.SplitSeq(csv, ",") {if name = strings.TrimSpace(strings.ToLower(name)); name != "" {f[name] = struct{}{}}}}return f}func (f Fields) Has(name string) bool {_, ok := f[strings.ToLower(name)]return ok}