Motivation
Prevents unintentional leakage of sensitive fields defined inside
case class.

Scala's case class(es) are an incredibly powerful tool to build complex ADTs; on top of that, they provide out of the
box pretty-print to display their content in different output mediums, such as: console, logs, or even as htt/grpc error
responses (although you shouldn't !).
This makes them really valuable, but also a potential source of sensitive/PII data leakage: suppose your case class models the Http headers used throughout your apps
case class HttpHeaders(userID: String, authorization: String, contentType: String, deviceID: String)
or a user from DB
case class User(id: Long, email: String, age: Int, lastLogin: LocalDateTime)
you wouldn't want to mistakenly print out to console, log or something else, fields such as the authorization token,
an email, or the user's age.
Wouldn't it be nice if you could just say "when printing out the whole case class, don't show the content of
authorization?"
Turns out, you can: enter @redacted !