1.3 Component objects

When a symbol is instantiated in a schematic (e.g. by the user
selecting it from the gschem component library and placing it on the
page), a compound object known as a component is created.

Like a page, a component contains some number of object
elements. When a component is created from a symbol, the contents of
the symbol's page are copied into the component.

In order to allow the component to appear in the correct place on the
schematic page, at the correct orientation, etc., a transformation is
applied to every object in the component.

Normally, when the schematic page is closed, the parameters of
the transformation are stored in the schematic file along with the
basename of the original symbol, but the object contents of the
component are discarded. When the schematic is subsequently
re-opened, the original symbol is retrieved from the component
library, and used to recreate the component.

However, a component may optionally be embedded. In this case,
its contents are stored in the schematic file.

Note: A component cannot contain another component – only
other types of object.