@Contract(value = "_, _ -> new", pure = true)
  default ChatType.@NotNull Bound bind(final @NotNull ComponentLike name, final @Nullable ComponentLike target) {
    return new ChatTypeImpl.BoundImpl(this, requireNonNull(name.asComponent(), "name"), ComponentLike.unbox(target));
  }
Creates a bound chat type with a name and target {@link Component}.

@param name the name component
@param target the optional target component
@return a new bound chat type
@since 4.12.0
@sinceMinecraft 1.19
api/src/main/java/net/kyori/adventure/chat/ChatType.java