private String toMessageName(ProtoFileElement rootElem, MessageIndexes indexes) {
        StringBuilder sb = new StringBuilder();
        List<TypeElement> types = rootElem.getTypes();
        boolean first = true;
        for (Integer index : indexes.indexes()) {
            if (!first) {
                sb.append(".");
            } else {
                first = false;
            }
            MessageElement message = getMessageAtIndex(types, index);
            if (message == null) {
                throw new IllegalArgumentException("Invalid message indexes: " + indexes);
            }
            sb.append(message.getName());
            types = message.getNestedTypes();
        }
        return sb.toString();
    }
Gets the descriptor for the Protobuf message.
This method builds a descriptor from the schema definition, potentially using
cached values for better performance.

@return The Protobuf Descriptor for the message
core/src/main/java/kafka/automq/table/deserializer/proto/ProtobufSchemaWrapper.java