I have been reading through the UEFI 2.6 specification, and have noticed that it does not give a complete list of definitions need to implement UEFI. Rather, the definitions are scattered across sections of the document, making it very tedious for anyone who wants to implement UEFI to implement it. It would appear the specification writers have a reason for not supplying the interface in a developer friendly manner.