Orders as First-Class Entities (OFCEs)

In Total Annihilation and the Supreme Commander series, orders have traditionally been assigned to specific units. One of the problems with orders being associated with units is that if the unit dies, you lose the orders. There is also no way to assign another unit the same orders. The closest one can get is to assign units to "assist" the unit with the desired orders, but again if that first unit dies, the rest of the units lose their orders and stop where they are.

If orders were able to exist as first-class entities, then they could be stored for persistent use by many units over time.

For orders to exist as first-class entities they need only be detached from units.

Orders can be created without a unit selected. The process of creation will be (similar?) to issuing orders to unit(s). The queue of orders will be saved as a first-class entity and continue to exist on the map. Once created, they can be modified (similarly) to how you would modify a unit's order queue. [how to delete them?] [how to copy and paste?]

To issue orders to unit(s), the player would select the unit(s) as usual. From here, the player may give them orders just like before and the unit(s) would go carry it out immediately; or, alternatively, if some orders already exist on the map, the player may assign the unit(s) to any one of them (by right-clicking) and the unit(s) will carry out that order and then, if that order was part of a queue, proceed to any subsequent orders in the queue.

In Zero-K, first class orders exist in the context of retreat zones and ferry points. The UI elements to create one of these first-class orders appear in the "unit order box" whether a unit is selected or not. In the case of all orders being first-class, it seems appropriate to make first-class orders buttons only appear when no units are selected. First-class orders could even be initiated when a user right-clicks on the map without a unit selected, and appended to while holding the "Shift" button, in the same way that unit orders are issued.

Since different units have different contexts, it would be reasonable to make first-class context-sensitive orders have their own "context-sensitive" icon, since they cannot be converted into "move", "assist", or "attack" commands until a unit is assigned to them. For example, a scout plane cannot attack, so any orders targeting an enemy unit will be resolved differently for scout planes than for units with weapons.