private SmithyBuildResult executeSmithyBuild(SmithyBuildConfig config) {
        ModelAssembler assembler = Model.assembler();

        // Discover any models on the annotation processor classpath
        assembler.discoverModels(getClass().getClassLoader());

        // Load any models found in the resources standard location
        ModelDiscovery.findModels(getManifestUrl()).forEach(assembler::addImport);

        SmithyBuild smithyBuild = SmithyBuild.create(getClass().getClassLoader());
        smithyBuild.model(assembler.assemble().unwrap());
        smithyBuild.config(config);

        return smithyBuild.build();
    }
Maps annotation data to a plugin configuration node.

@param annotation instance of generator annotation to use to create the build config.
@return ObjectNode to use as plugin configuration node.
smithy-build/src/main/java/software/amazon/smithy/build/processor/SmithyAnnotationProcessor.java