If you can, yeah, having the four styles is best, obviously, but technically, you don't even need to, the rendering engine will 'fake' the missing styles if need be (note that this probably works better with a custom freetype override, though).
It also handles CFF fonts fine, so the TrueType format isn't a hard requirement either
.
And I do concur with aceflor's comment: not for the faint of heart
.