A method for coordination among a plurality of vehicles , the method comprising: defining, as a command vehicle (C), a first vehicle in the plurality of vehicles , wherein each vehicle in the plurality of vehicles is an aircraft; storing, by one or more storage devices located on board one or more of the plurality of vehicles , for each vehicle in the plurality of vehicles , a list of capabilities of that vehicle ; receiving, by one or more processors on board the command vehicle (C), a specification of a goal that is to be accomplished by the plurality of vehicles , the one or more processors being operatively coupled to the one or more storage devices , wherein the step of receiving the specification of the goal comprises: inputting, by a user on the command vehicle (C), using a user input device , the specification of the goal; and sending, by the user input device , to the one or more processors on board the command vehicle (C), the specification of the goal; decomposing, by the one or more processors located on board the command vehicle (C), the specification of the goal into one or more tasks, the one or more tasks being such that, if each of those tasks was to be performed, the goal would be accomplished; based on the stored vehicle capabilities, allocating, by the one or more processors located on board the command vehicle (C), to one or more of the vehicles in the plurality of vehicles , the one or more tasks; sending, from the command vehicle (C), to each vehicle in the plurality of vehicles to which a task has been allocated, a specification of the one or more tasks allocated to that vehicle ; and if the command vehicle leaves the plurality of vehicles, defining, as the command vehicle, a second vehicle in the plurality of vehicles. defining, as a command vehicle (C), a first vehicle in the plurality of vehicles , wherein each vehicle in the plurality of vehicles is an aircraft; storing, by one or more storage devices located on board one or more of the plurality of vehicles , for each vehicle in the plurality of vehicles , a list of capabilities of that vehicle ; receiving, by one or more processors on board the command vehicle (C), a specification of a goal that is to be accomplished by the plurality of vehicles , the one or more processors being operatively coupled to the one or more storage devices , wherein the step of receiving the specification of the goal comprises: inputting, by a user on the command vehicle (C), using a user input device , the specification of the goal; and sending, by the user input device , to the one or more processors on board the command vehicle (C), the specification of the goal; inputting, by a user on the command vehicle (C), using a user input device , the specification of the goal; and sending, by the user input device , to the one or more processors on board the command vehicle (C), the specification of the goal; decomposing, by the one or more processors located on board the command vehicle (C), the specification of the goal into one or more tasks, the one or more tasks being such that, if each of those tasks was to be performed, the goal would be accomplished; based on the stored vehicle capabilities, allocating, by the one or more processors located on board the command vehicle (C), to one or more of the vehicles in the plurality of vehicles , the one or more tasks; sending, from the command vehicle (C), to each vehicle in the plurality of vehicles to which a task has been allocated, a specification of the one or more tasks allocated to that vehicle ; and if the command vehicle leaves the plurality of vehicles, defining, as the command vehicle, a second vehicle in the plurality of vehicles. <EOS>