The keyword `world` should actually be `component`
From the document,
Roughly, a world describes the contract of a component. Exports are provided by the component, and define what consumers of the component may call; imports are things the component may call.
A package is a set of interfaces and worlds, potentially defined across multiple files.
If we replace world with component, all the concepts are much cleaner.
A world means an enviroment that supports running packages. For example there are cli world, http world and gui world. The gui world can support packages such as canvas, sound, keyboard, mouse etc.
To me, worlds and components are different things. A world is a contract; a component is a thing that implements that contract. Many different components, for example, can implement the "CLI" world.
In any event, from a documentation point of view, the Component Model uses the "world" terminology pervasively. It would be even more confusing if we used a different term for the concept, especially one which has its own meaning under the CM. Any change of terminology here would have to come from upstream.
I think this question has been pretty effectively answered already, but to add some color, the "world" terminology is definitely baked in to the component model at this point (and the WIT spec in particular).
An attempt to change this would be more appropriately placed in the component-model repo (there have been issues raised in the past around naming conventions).
Then how about rename world to contract?
Yeah @J-F-Liu so we can't decide that here -- you'd need to file an issue against the component-model repo.
Convienced myself, thanks.