private Map<String, String> readExistingFields() throws IOException {
        Path schemaPath = Paths.get(config.getApplicationPackageDir(),
                            "schemas", config.getDocumentType() + ".sd");
        String schema = Files.readString(schemaPath, StandardCharsets.UTF_8);
        Map<String, String> existingFields = new HashMap<>();
        
        // read from annotation lines like
        //       # price: long
        Pattern annotationPattern = Pattern.compile("       # (\\w+): (.+)");
        Matcher matcher = annotationPattern.matcher(schema);
        while (matcher.find()) {
            String fieldName = matcher.group(1);
            String fieldType = matcher.group(2);
            existingFields.put(fieldName, fieldType);
        }
        
        return existingFields;
    }
Resolves a type conflict between two Vespa field types.
Uses the type conflict resolution rules defined in the type_conflict_resolution.yml file.
If no resolution is found, returns null.

@param type1 First Vespa field type
@param type2 Second Vespa field type
@return The resolved type, or null if no resolution is found
integration/logstash-plugins/logstash-output-vespa/src/main/java/org/logstashplugins/VespaAppPackageWriter.java