This guided the developers to cleanly separate the system into a high-level and low-level set of APIs, and since the high-level API was not intended to run directly on hardware, it could be made as feature packed as it wanted.
This guided the developers to cleanly separate the system into a high-level and low-level set of APIs, so that the lower levels could be implemented entirely in hardware. Since the high-level API was not intended to run directly on hardware, it could be made as feature packed as it wanted.