+component-framework-dev
Yes, elements are intended to be portable across many products, and in most cases you'll be able to launch the same element on a variety of products that use different sessions.
However, we have not yet defined any standards or specifications to ensure element portability across sessions.
Elements are components, so the session must be able to create a component given its URL. This means:
1. The component needs to be resolved. If the element uses a custom scheme (e.g. `foo://my-element`), the session must use the appropriate resolver.
2. The package that contains the component must be retrievable. Some products may ship with a fixed set of packages, and won't be able to fetch them ephemerally.
3. The session must route capabilities to the element. Some sessions may offer different capabilities to their elements.
4. The session must be able to present the element. e.g. if an element exposes the ViewProvider protocol so that it can be presented graphically, the session actually needs to use this protocol. There could be non-graphical products whose sessions do not understand ViewProvider.