The tables of a TrueType, OpenType, or AAT font are identified by a tag, which must be a string of four ASCII characters (possibly including spaces, but only at the end of the string). Tags that are entirely in lowercase are the private hunting ground of Apple. It was doubtless in response to that that the OpenType-specific tables, as we shall see, use tags consisting of uppercase letters only.
There are some tables that are required in every TrueType font, therefore also in OpenType and AAT fonts:
cmap (mapping between characters and glyphs, §D.4.2).
head (header, §D.4.3).
hhea (header for the horizontal metrics, §D.4.4).
hmtx (horizontal metrics, §D.4.4).
maxp (maximum profile, §D.4.5).
name (table of names, §D.4.6).
OS/2 (information related to OS/2 and Windows, §D.4.7). Microsoft considers it mandatory, but Apple does not.
post (information that is useful when the font is used in a PostScript environment, §D.4.8).
Next, everything depends on whether the glyph descriptions are written in TrueType or in PostScript. In the first case, there are five other tables that must not be missing:
cvt (table of control values, §D.5.3)
fpgm (font program, §D.5.3)
glyf (glyph descriptions, §D.5.2)
loca (pointers to the glyph descriptions, §D.5.1)
prep (program of control values, §D.5.3)