A compiled DIC has a clearly defined set of input parameters. In fact, usually it has no input parameters. What is passed as `$data` to the constructor here is completely arbitrary.

Most of the time when this class is constructed, it's in an incomplete state. In the sense that some methods will blow up due to missing keys.