private Descriptors.Descriptor buildDescriptor() {
        if (schema == null || messageIndexes == null) {
            throw new IllegalArgumentException("Schema and message indexes must be provided");
        }
        String schemaString = schema.canonicalString();
        this.rootElem = buildProtoFile(schemaString);
        this.dependencies = parseDependencies(schema.resolvedReferences());

        String messageName = toMessageName(rootElem, messageIndexes);

        DynamicSchema dynamicSchema = ProtobufSchemaParser.toDynamicSchema(messageName, rootElem, dependencies);
        return dynamicSchema.getMessageDescriptor(messageName);
    }
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