protected data class CatVal
CatVal(msg: (String) -> String?, required: Boolean = true)
val msg: (String) -> String?
val required: Boolean