static boolean loadParsedNode(Node node, Consumer<LoadOperation> operationConsumer) {
        if (node.isObjectNode()) {
            ObjectNode model = node.expectObjectNode();
            if (model.containsMember("smithy")) {
                StringNode versionNode = model.expectStringMember("smithy");
                Version version = Version.fromString(versionNode.getValue());
                if (version == null) {
                    throw new ModelSyntaxException("Unsupported Smithy version number: " + versionNode.getValue(),
                            versionNode);
                } else {
                    new AstModelLoader(version, model).parse(operationConsumer);
                    return true;
                }
            }
        }

        LOGGER.info("Ignoring unrecognized JSON file: " + node.getSourceLocation());
        return false;
    }
Parses models and pushes {@link LoadOperation}s to the given consumer.

<p>The format contained in the supplied {@code InputStream} is
determined based on the file extension in the provided
{@code filename}.

@param traitFactory Factory used to create traits.
@param properties Bag of loading properties.
@param filename Filename to assign to the model.
@param operationConsumer Where loader operations are published.
@param contentSupplier The supplier that provides an InputStream. The
  supplied {@code InputStream} is automatically closed when the loader
  has finished reading from it.
@return Returns true if the file was loaded. Some JSON files might be ignored and return false.
@throws SourceException if there is an error reading from the contents.
smithy-model/src/main/java/software/amazon/smithy/model/loader/ModelLoader.java