1. A computer-implemented method for simulation of a resource constrained process, wherein the resource constrained process contains a controlling entity and resources, the method comprising: receiving controlling entity definition data and populating a controlling entity data structure with the controlling entity definition data, wherein the controlling entity is configured to control a first resource using a control hierarchy; receiving first resource definition data and populating a resource data structure with the first resource definition data, wherein the first resource is configured to control a second resource using the control hierarchy; simulating the resource constrained process, wherein simulating the resource constrained process includes: propagating the controlling entity through the simulation of the resource constrained process, wherein the resource constrained process contains a plurality of stages; at one of the stages: requesting the first resource be associated with the controlling entity; determining whether the first resource is available by providing a resource availability check comprising a query that includes one or more resource rules that provide constraints on the first resource; and associating the first resource with the controlling entity using the control hierarchy when the first resource is not allocated to another entity and the first resource fulfills the one or more resource rules; at a subsequent stage, associating the second resource with the first resource using the control hierarchy; and generating simulation metrics as the controlling entity propagates through the simulation of the resource constrained process.