+=head1 TYPES
+
+Although the base class is called C<Part> we usually talk about C<Articles> if
+we mean instances of this class. This is because articles come in three
+flavours called:
+
+=over 4
+
+=item Part - a single part
+
+=item Service - a part without onhand, and without inventory accounting
+
+=item Assembly - a collection of both parts and services
+
+=back
+
+These types are sadly represented by data inside the class and cannot be
+migrated into a flag. To work around this, each C<Part> object knows what type
+it currently is. Since the type ist data driven, there ist no explicit setting
+method for it, but you can construct them explicitly with C<new_part>,
+C<new_service>, and C<new_assembly>. A Buchungsgruppe should be supplied in this
+case, but it will use the default Buchungsgruppe if you don't.
+
+Matching these there are assorted helper methods dealing with types,
+e.g. L</new_part>, L</new_service>, L</new_assembly>, L</type>,
+L</is_type> and others.
+