A structured file which the system is able to look into and interpret its content.
A bundle file is a structure file which the system is able to look into and interpret its content according the also contained description file. A bundle is quite similar to an archive but instead with space reduction in mind, thought as understandable and interpretable by the system. On the other side a normal user only sees a file which can be copied or send to any other place without special treatment.
There are 2 ways a system can interpret the content of a bundle, either by implicit defaults or by explicit naming in the description file also contained in the bundle. Any explicit naming overwrites any implicit defaults. E.g. an implicit default for a bundle with the executable bit set is the item with the identical name as the bundle is the executable of the bundle. There might be many executable within a bundle but all others have to be explicitly listed in the description file. Of course the default may also be redefined through the description file.
Bundles may contain all kinds of information and aren't restricted to executables. E.g. a bundle might contain several members of a font family or even of several font families.
As long as a system can look into a bundle it may handle all items as if they where files within a directory. That means any mime type information is applied to bundle items as any other file. It's up to the system which information it will make visible for ordinary users.