A component declaration describes what a component can do, the capabilities it uses and exposes, its children, and other information needed to run the component.
Every component has a declaration. For components that are distributed in packages, the declaration typically takes the form of a component manifest file that is located using a component URL.
Components can also be distributed in other forms such as web applications with the help of a resolver to retrieve the component declaration and a runner to run the component.
For example, the declaration for a calculator component might specify the following information:
- The location of the calculator program within its package.
- The name of the runner used to run the program.
- A request for persistent storage to save the contents of the calculator's accumulator across restarts.
- A request to use capabilities to present a user interface.
- A request to expose capabilities to allow other components to access the calculator's accumulator register using inter-process communication.