The foregoing basic definition of Petri nets has been extended in many ways.
One class of extensions allows a token to have an attribute called its color, which
may be a numerical value, and modifies the firing rules so as to require the colors
of input tokens to satisfy certain conditions for eligibility and so as to compute
a color to attach to each output token. Another class of extensions adds a
time element to transitions in some way. One way is to assume the firing of a
transition is no longer instantaneous, but may take a specified amount of time,
possibly in a given range of values. Another way is to assume a transition may
be eligible to fire only for a specified period of time, after which it becomes
ineligible.