private static Bytes getOutputPrefix(
      ChaCha20Poly1305Parameters parameters, @Nullable Integer idRequirement) {
    if (parameters.getVariant() == ChaCha20Poly1305Parameters.Variant.NO_PREFIX) {
      return OutputPrefixUtil.EMPTY_PREFIX;
    }
    if (parameters.getVariant() == ChaCha20Poly1305Parameters.Variant.CRUNCHY) {
      return OutputPrefixUtil.getLegacyOutputPrefix(idRequirement);
    }
    if (parameters.getVariant() == ChaCha20Poly1305Parameters.Variant.TINK) {
      return OutputPrefixUtil.getTinkOutputPrefix(idRequirement);
    }
    throw new IllegalStateException("Unknown Variant: " + parameters.getVariant());
  }
Represents the Aead ChaCha20-Poly1305 specified in RFC 8439.

<p>ChaCha20-Poly1305 allows no parameters; hence the main part here is really just the keys.
However, Tink allows prefixing every ciphertext with an ID-dependent prefix, see {@link
ChaCha20Poly1305Parameters.Variant}.
java_src/src/main/java/com/google/crypto/tink/aead/ChaCha20Poly1305Key.java