@Override
    public List<SymbolDependency> getDependencies() {
        return dependencies;
    }
A container for all known dependencies of a generator.

<p>A DependencyTracker can include predefined dependencies loaded from a
file (for example to track versions of runtime dependencies used in the
generator), or dependencies that are accumulated dynamically as code is
generated.

<p>Notes:
<ul>
    <li>Multiple packages of the same name and type can be added to tracker.
    There's no de-duplication.</li>
    <li>Note that this class is mutable and not synchronized.</li>
</ul>

<h2>Loading from JSON</h2>

<p>Dependencies can be loaded from a JSON file to more easily track
dependencies used at runtime by generated code. This feature can also
be used to generate the dependencies tracked by the generated from from
other dependency graph formats like lockfiles.

<p>The JSON file has the following format:

<pre>
{@code
{
    "version": "1.0",
    "dependencies": [
        {
            "packageName": "string",
            "version": "string",
            "dependencyType": "string",
            "properties": {
                "x": true,
                "y": [10],
                "z": "string"
            }
        }
    ]
}
}
</pre>

<ul>
    <li>"version" (string, required): Must be set to "1.0".</li>
    <li>"dependencies" is a list of dependency objects that contain the following
        properties:
        <ul>
            <li>"packageName" (string, required): The required name of the package.</li>
            <li>"version" (string, required): The required dependency version.</li>
            <li>"dependencyType" (string): The optional type of dependency. This value
            is dependent on the package manager of the target environment.</li>
            <li>"properties" (map of string to any value): Properties to assign to
            the symbol. These properties can be any JSON value type other than null.
            List values are converted to a {@link List}, map values are converted to
            a {@link Map}, boolean values to Java's boolean, numeric values to an
            appropriate {@link Number} type, and string values to {@link String}.</li>
        </ul>
    </li>
</ul>
smithy-codegen-core/src/main/java/software/amazon/smithy/codegen/core/DependencyTracker.java