It's useful to think about what an app actually is — what is the actual "product" or "deliverable"?

An app starts with a manifest that defines various properties of an app such as:

Along with a manifest you have at least three files:

The app package

So these files (manifest.json, index.html, index.ts, README.md) are collectively known as the "app package". We ship apps as a .zip which is just all these files in a zip.

The app instance

Once you have a package, an admin may install it on a helpdesk. This is the act of actually enabling the app. This is when an app actually has a value inserted in the database.