pub fn with_violation(
        violation_type: impl Into<String>,
        subject: impl Into<String>,
        description: impl Into<String>,
    ) -> Self {
        PreconditionFailure {
            violations: vec![PreconditionViolation {
                r#type: violation_type.into(),
                subject: subject.into(),
                description: description.into(),
            }],
        }
    }
Creates a new [`PreconditionFailure`] struct with a single
[`PreconditionViolation`] in `violations`.
tonic-types/src/richer_error/std_messages/prec_failure.rs