Autoloader is waaayyy easier to implement then the other parts of the appstore spec and is probably the most important as it loads all the elements that will be available to your users. All it is is an array or object of references to elements that HAX should forcibly load the definitions of once it's done bootstrapping. Here's a basic example with the steps as to what HAX does with this information

1. HAX loads the appstore definition
2. HAX finishes its bootstrap and is ready to use
3. It then loops through each autoloader element and does the following:

- attempts to dynamically import the definition of the element
- It then creates an instance of the element (virtually) and looks for static get haxProperties
- If this exists and is valid haxSchema then you can leverage it in hax!

### Spec details

There are a few different ways you can declare references to the autoloader schema. Here is a simple example of all three common forms an then we'll explain each.

#### Definition from file

The most common method of import is simply "tag-name": "location-of-tag.js" . You'll see this for importing anything that's been published WITH static get haxProperties . You can also use this to add your own published / built elements that have their own haxProperties.

#### Definition import

This is basically just to enable future support for defining capabilities at run time. It could also be used to issue an element but not actually import anything (so "whatever": { "import": ""} ). This is because possibly other logistics of your CMS / application are in charge of WHEN this definition gets imported.

#### Definition import + schema

This is the most powerful but also most verbose. This allows you to potentially import someone else's element that DOES NOT have haxSchema defined, and then define it yourself on the fly! This means you can leverage community elements and supply their wiring to talk to HAX based on your own mental model. This allows wiring up anything to HAX, but also the performance benefit of potentially building a design library but not including references to the static get haxProperties in your class for the element.