diff --git a/schemas/AVCL.3.1.changes.txt b/schemas/AVCL.3.1.changes.txt
index 6b32e137544bb79dd6a8201b0de13a9cbdcebf28..4cee9c730cccaba65f72c986b30331ae52411950 100644
--- a/schemas/AVCL.3.1.changes.txt
+++ b/schemas/AVCL.3.1.changes.txt
@@ -1,7 +1,11 @@
 AVCL Schema 3.1
 
+Renamed GoalType (within Goal) as GoalActions.  Added Supply and Task as additional goal types.
+
 Added Risk Elements as options for each Goal and GoalList
 
+Rendezvous TargetShip now optional
+
 Deprecations
 - rename AvoidArea             to AvoidanceArea
 - rename MissionPreparation    to MissionCommands
@@ -11,6 +15,7 @@ Changes to body
 - rename AgendaMission         to MissionAgenda
 - rename MissionResults        to MissionTelemetryLog
 - rename GuidedMunitionMission to MissionGuidedMunition
+- relax attributes as optional, wherever appropriate
 - modified content model to include Location and Vehicle, TODO add them
 
 Can a Vehicle refer to a Mission and a Location (probably), or does a Mission refer to a Vehicle and a Location (probably not)?
@@ -23,6 +28,8 @@ TODO MissionTelemetryLog contain optional TimeOffset, DisPduStream
 
 TODO MissionArchive can contain Vehicle+ Mission+
 
+==============================================================================
+
 prior: AVCL Schema 3.0
 
 TODO
@@ -66,3 +73,148 @@ meo:hasNext rdf:type owl:ObjectProperty ;
             rdfs:domain meo:Goal ;
             rdfs:range meo:Goal ;
             rdfs:comment "Goal 'B' is the next goal for Goal 'A' when 'A' directly precedes 'A' in the Mission goal tree. This property is  irreflexive; a Goal cannot return to itself (a weak form of Rule G7)." .
+
+==============================================================================
+
+Change log, version 2.1:
+    - Initial version identical to version 2.0 in order to enable change tracking via Subversion
+    - Updated element annotations and documentation, diff/merge with Savage version of AVCL schema 2.0 conducted satisfactorily
+    - Updated build and documentation procedures
+    - booleanElementType explicitly defaults to value of false
+    - Tested satisfactorily with upgrade to JAXB 2.1.13 under Java 6 and Java 7, since JAXB 2.2.* apparently incompatible with Java 6
+    - Sorted elements, simple types, complex types and groups alphabetically by name
+    - renamed LaunchPositionAH to LaunchPosition for consistency
+    - renamed Goals to Goal for clarity/correctness
+    - use attributeGroup CommonAttributes throughout to avoid duplicate definition of id, description, timestamp
+    - renamed discreteTimeResultsElementType as sampledResultsElementType for clarity
+    - fixed enumeration values and simpleType declaration for vehicleType
+    - refactor, renamed special-case Orientation and corresponding type="areaOrientationElementType" to Rotation type="areaRotationElementType",
+            also made global, avoiding name overloading with more commonly used Orientation type="orientationElementType"
+    - Rename nonNegativeIntType, positiveIntType to spell out IntegerType
+    - combined duplicated elements into single global element: MSLAltitude, Altitude, MoveLateral, MoveRotate
+    - Altitude, Depth, MSL, AGL values all made nonnegative instead of positive
+    
+    - TODO for duration-related time values, -1 means no time constraint
+    - TODO clarity on Marker, MarkerCharacteristic and MarkTarget elements
+    - TODO move element annotations from ref="ElementName" definitions to name="ElementName" definitions
+
+==============================================================================
+
+Change log, version 2.0:
+    - metaDataType to metaType for meta element, metaCommandType for MetaCommand element
+    - moving various element names to top of file for more global exposure.  Using ref 
+      to reference exact other globally named elements.  Some element names are
+      defined by other elementTypes and were not moved.  Comments were left above these
+      cases, or, in the case of single unique (one time only) element declarations.
+    - refactored some commonly named elements and their types so that they too
+      could be pulled out and defined globally
+	- made vehicleType required
+    - change agendaGoalElementType from Goal to Goals (returns a list of Goals)
+    - change ugvScriptCommandsType for MakeKnots and MakeSpeed to speedElementType to match
+      the other three vehicle types
+    - specify an avclVersion type to enumeration AVCL version in the AVCL element.  Note: version 2.0
+      is not backwards compatible with version 1.0.  However, any version after 2.0 will be backwards
+      compatible with 2.0.
+      
+    * TODO:  1) Conversion stylesheet Avcl1.0ToAvcl2.0.xslt
+             2) Refactor commonly named elements having different types to 
+                instead have different names.  Both elements and types should 
+                start with the common name and then append vehicle type.  
+             3) Create table with element and attribute name changes as they 
+                occur, then follow up with a stylesheet to convert 1.0 content 
+                into 2.0
+             4) Annotate globally placed element declarations now?
+             
+    * Table of refactored commonly named elements and their corresponding types.
+      First (on top) is the former element name with the new name and 
+      corresponding type below:
+    
+    name="OperatingCharacteristics" type="uavOperatingCharacteristicsElementType"
+    name="OperatingCharacteristicsUAV" type="operatingCharacteristicsUAVElementType"
+    
+    name="Capability" type="uavCapabilityElementType"
+    name="CapabilityUAV" type="capabilityUAVElementType"
+    
+    name="CompositeWaypoint" type="uavCompositeWaypointCommandType"
+    name="CompositeWaypointUAV" type="compositeWaypointUAVCommandType"
+    
+    name="Loiter" type="uavLoiterCommandType"
+    name="LoiterUAV" type="loiterUAVCommandType"
+    
+    name="OperatingCharacteristics" type="ugvOperatingCharacteristicsElementType"
+    name="OperatingCharacteristicsUGV" type="operatingCharacteristicsUGVElementType"
+    
+    name="SetPosition" type="uavPositionCommandType"
+    name="SetPositionUAV" type="setPositionUAVCommandType"
+    
+    name="VerticalPosition" type="uavVerticalPositionElementType"
+    name="VerticalPositionUAV" type="verticalPositionUAVElementType"
+    
+    name="Waypoint" type="uavWaypointCommandType"
+    name="WaypointUAV" type="waypointUAVCommandType"
+    
+    name="Altitude" type="ugvVerticalPositionElementType"
+    name="AltitudeUGV" type="verticalPositionUGVElementType"
+    
+    name="Capability" type="ugvCapabilityElementType"
+    name="CapabilityUGV" type="capabilityUGVElementType"
+    
+    name="CompositeWaypoint" type="ugvCompositeWaypointCommandType"
+    name="CompositeWaypointUGV" type="compositeWaypointUGVCommandType"
+    
+    name="Loiter" type="ugvLoiterCommandType"
+    name="LoiterUGV" type="loiterUGVCommandType"
+    
+    name="SetPosition" type="ugvPositionCommandType"
+    name="SetPositionUGV" type="setPositionUGVCommandType"
+    
+    name="Waypoint" type="ugvWaypointCommandType"
+    name="WaypointUGV" type="waypointUGVCommandType"
+        
+    name="OperatingCharacteristics" type="usvOperatingCharacteristicsElementType"
+    name="OperatingCharacteristicsUSV" type="operatingCharacteristicsUSVElementType"
+    
+    name="Capability" type="usvCapabilityElementType"
+    name="CapabilityUSV" type="capabilityUSVElementType"
+    
+    name="CompositeWaypoint" type="usvCompositeWaypointCommandType"
+    name="CompositeWaypointUSV" type="compositeWaypointUSVCommandType"
+    
+    name="Loiter" type="usvLoiterCommandType"
+    name="LoiterUSV" type="loiterUSVCommandType"
+    
+    name="Propellers" type="usvPropellersOrderElementType"
+    name="PropellersUSV" type="propellersOrderUSVElementType"
+    
+    name="SetPosition" type="usvPositionCommandType"
+    name="SetPositionUSV" type="setPositionUSVCommandType"
+    
+    name="Waypoint" type="usvWaypointCommandType"
+    name="WaypointUSV" type="waypointUSVCommandType"
+    
+    name="OperatingCharacteristics" type="uuvOperatingCharacteristicsElementType"
+    name="OperatingCharacteristicsUUV" type="operatingCharacteristicsUUVElementType"
+    
+    name="Capability" type="uuvCapabilityElementType"
+    name="CapabilityUUV" type="capabilityUUVElementType"    
+    
+    name="CompositeWaypoint" type="uuvCompositeWaypointCommandType"
+    name="CompositeWaypointUUV" type="compositeWaypointUUVCommandType"
+    
+    name="Loiter" type="uuvLoiterCommandType"
+    name="LoiterUUV" type="loiterUUVCommandType"
+    
+    name="Propellers" type="uuvPropellersOrderElementType"
+    name="PropellersUUV" type="propellersOrderUUVElementType"
+    
+    name="SetPosition" type="uuvPositionCommandType"
+    name="SetPositionUUV" type="setPositionUUVCommandType"
+    
+    name="Waypoint" type="uuvWaypointCommandType"
+    name="WaypointUUV" type="waypointUUVCommandType"
+    
+    name="LaunchPosition" type="munitionLaunchPointElementType"
+    name="LaunchPositionML" type="munitionLaunchPointElementType"
+    
+    name="LaunchPosition" type="absoluteHorizontalPositionElementType"
+    name="LaunchPosition" type="absoluteHorizontalPositionElementType"
diff --git a/schemas/AVCL.3.1.xsd b/schemas/AVCL.3.1.xsd
index 1a437ec523746644230a0dc236cde64d4907fa1e..c16ea4b09963acf7db4da46407bd3cfc4cca7e43 100644
--- a/schemas/AVCL.3.1.xsd
+++ b/schemas/AVCL.3.1.xsd
@@ -3,13 +3,14 @@
 <!--
 <head>
    <meta name="filename"     content="AVCL.2.1.xsd" />
-   <meta name="authors"      content="Duane Davis, Don Brutzman, Terry Norbraten, US Naval Postgraduate School, Monterey, CA" />
+   <meta name="authors"      content="Don Brutzman, Duane Davis, Terry Norbraten, US Naval Postgraduate School, Monterey, California" />
    <meta name="created"      content="02 March 2004" />
    <meta name="created version 1.0"  content="23 June 2006" />
    <meta name="created version 2.0"  content="12 January 2009"/>
    <meta name="created version 2.1"  content="1 November 2012"/>
    <meta name="created version 3.0"  content="23 October 2019"/>
-   <meta name="identifier"   content="https://savage.nps.edu/Savage/AuvWorkbench/AVCL/AVCL.2.1.xsd" />
+   <meta name="created version 3.1"  content="4 July 2022"/>
+   <meta name="identifier"   content="https://savage.nps.edu/Savage/EthicalControl/schemas/AVCL.3.1.xsd" />
    <meta name="description"  content="This file contains the schema for the XML autonomous vehicle command
                                     language. In general, the command language enables the explicit declaration of an entire mission using
                                     execution-level commands, the ad-hoc definition of a mission by providing individual commands
@@ -17,149 +18,9 @@
                                     (telemetry, control orders, sonar data, derived sensor-based data, etc.), and communication between
                                     various levels of the control architecture (execution, tactical, strategic levels) or between multiple
                                     autonomous vehicles, software agents, or human controllers." />
-   <meta name="url"          content="http://www.web3d.org/x3d/content/examples/Savage/AuvWorkbench/AVCL/AVCL.2.1.xsd" />
+   <meta name="license"      content="TODO" />
 </head>
 
-Change log, version 2.1:
-    - Initial version identical to version 2.0 in order to enable change tracking via Subversion
-    - Updated element annotations and documentation, diff/merge with Savage version of AVCL schema 2.0 conducted satisfactorily
-    - Updated build and documentation procedures
-    - booleanElementType explicitly defaults to value of false
-    - Tested satisfactorily with upgrade to JAXB 2.1.13 under Java 6 and Java 7, since JAXB 2.2.* apparently incompatible with Java 6
-    - Sorted elements, simple types, complex types and groups alphabetically by name
-    - renamed LaunchPositionAH to LaunchPosition for consistency
-    - renamed Goals to Goal for clarity/correctness
-    - use attributeGroup CommonAttributes throughout to avoid duplicate definition of id, description, timestamp
-    - renamed discreteTimeResultsElementType as sampledResultsElementType for clarity
-    - fixed enumeration values and simpleType declaration for vehicleType
-    - refactor, renamed special-case Orientation and corresponding type="areaOrientationElementType" to Rotation type="areaRotationElementType",
-            also made global, avoiding name overloading with more commonly used Orientation type="orientationElementType"
-    - Rename nonNegativeIntType, positiveIntType to spell out IntegerType
-    - combined duplicated elements into single global element: MSLAltitude, Altitude, MoveLateral, MoveRotate
-    - Altitude, Depth, MSL, AGL values all made nonnegative instead of positive
-    
-    - TODO for duration-related time values, -1 means no time constraint
-    - TODO clarity on Marker, MarkerCharacteristic and MarkTarget elements
-    - TODO move element annotations from ref="ElementName" definitions to name="ElementName" definitions
-
-Change log, version 2.0:
-    - metaDataType to metaType for meta element, metaCommandType for MetaCommand element
-    - moving various element names to top of file for more global exposure.  Using ref 
-      to reference exact other globally named elements.  Some element names are
-      defined by other elementTypes and were not moved.  Comments were left above these
-      cases, or, in the case of single unique (one time only) element declarations.
-    - refactored some commonly named elements and their types so that they too
-      could be pulled out and defined globally
-	- made vehicleType required
-    - change agendaGoalElementType from Goal to Goals (returns a list of Goals)
-    - change ugvScriptCommandsType for MakeKnots and MakeSpeed to speedElementType to match
-      the other three vehicle types
-    - specify an avclVersion type to enumeration AVCL version in the AVCL element.  Note: version 2.0
-      is not backwards compatible with version 1.0.  However, any version after 2.0 will be backwards
-      compatible with 2.0.
-      
-    * TODO:  1) Conversion stylesheet Avcl1.0ToAvcl2.0.xslt
-             2) Refactor commonly named elements having different types to 
-                instead have different names.  Both elements and types should 
-                start with the common name and then append vehicle type.  
-             3) Create table with element and attribute name changes as they 
-                occur, then follow up with a stylesheet to convert 1.0 content 
-                into 2.0
-             4) Annotate globally placed element declarations now?
-             
-    * Table of refactored commonly named elements and their corresponding types.
-      First (on top) is the former element name with the new name and 
-      corresponding type below:
-    
-    name="OperatingCharacteristics" type="uavOperatingCharacteristicsElementType"
-    name="OperatingCharacteristicsUAV" type="operatingCharacteristicsUAVElementType"
-    
-    name="Capability" type="uavCapabilityElementType"
-    name="CapabilityUAV" type="capabilityUAVElementType"
-    
-    name="CompositeWaypoint" type="uavCompositeWaypointCommandType"
-    name="CompositeWaypointUAV" type="compositeWaypointUAVCommandType"
-    
-    name="Loiter" type="uavLoiterCommandType"
-    name="LoiterUAV" type="loiterUAVCommandType"
-    
-    name="OperatingCharacteristics" type="ugvOperatingCharacteristicsElementType"
-    name="OperatingCharacteristicsUGV" type="operatingCharacteristicsUGVElementType"
-    
-    name="SetPosition" type="uavPositionCommandType"
-    name="SetPositionUAV" type="setPositionUAVCommandType"
-    
-    name="VerticalPosition" type="uavVerticalPositionElementType"
-    name="VerticalPositionUAV" type="verticalPositionUAVElementType"
-    
-    name="Waypoint" type="uavWaypointCommandType"
-    name="WaypointUAV" type="waypointUAVCommandType"
-    
-    name="Altitude" type="ugvVerticalPositionElementType"
-    name="AltitudeUGV" type="verticalPositionUGVElementType"
-    
-    name="Capability" type="ugvCapabilityElementType"
-    name="CapabilityUGV" type="capabilityUGVElementType"
-    
-    name="CompositeWaypoint" type="ugvCompositeWaypointCommandType"
-    name="CompositeWaypointUGV" type="compositeWaypointUGVCommandType"
-    
-    name="Loiter" type="ugvLoiterCommandType"
-    name="LoiterUGV" type="loiterUGVCommandType"
-    
-    name="SetPosition" type="ugvPositionCommandType"
-    name="SetPositionUGV" type="setPositionUGVCommandType"
-    
-    name="Waypoint" type="ugvWaypointCommandType"
-    name="WaypointUGV" type="waypointUGVCommandType"
-        
-    name="OperatingCharacteristics" type="usvOperatingCharacteristicsElementType"
-    name="OperatingCharacteristicsUSV" type="operatingCharacteristicsUSVElementType"
-    
-    name="Capability" type="usvCapabilityElementType"
-    name="CapabilityUSV" type="capabilityUSVElementType"
-    
-    name="CompositeWaypoint" type="usvCompositeWaypointCommandType"
-    name="CompositeWaypointUSV" type="compositeWaypointUSVCommandType"
-    
-    name="Loiter" type="usvLoiterCommandType"
-    name="LoiterUSV" type="loiterUSVCommandType"
-    
-    name="Propellers" type="usvPropellersOrderElementType"
-    name="PropellersUSV" type="propellersOrderUSVElementType"
-    
-    name="SetPosition" type="usvPositionCommandType"
-    name="SetPositionUSV" type="setPositionUSVCommandType"
-    
-    name="Waypoint" type="usvWaypointCommandType"
-    name="WaypointUSV" type="waypointUSVCommandType"
-    
-    name="OperatingCharacteristics" type="uuvOperatingCharacteristicsElementType"
-    name="OperatingCharacteristicsUUV" type="operatingCharacteristicsUUVElementType"
-    
-    name="Capability" type="uuvCapabilityElementType"
-    name="CapabilityUUV" type="capabilityUUVElementType"    
-    
-    name="CompositeWaypoint" type="uuvCompositeWaypointCommandType"
-    name="CompositeWaypointUUV" type="compositeWaypointUUVCommandType"
-    
-    name="Loiter" type="uuvLoiterCommandType"
-    name="LoiterUUV" type="loiterUUVCommandType"
-    
-    name="Propellers" type="uuvPropellersOrderElementType"
-    name="PropellersUUV" type="propellersOrderUUVElementType"
-    
-    name="SetPosition" type="uuvPositionCommandType"
-    name="SetPositionUUV" type="setPositionUUVCommandType"
-    
-    name="Waypoint" type="uuvWaypointCommandType"
-    name="WaypointUUV" type="waypointUUVCommandType"
-    
-    name="LaunchPosition" type="munitionLaunchPointElementType"
-    name="LaunchPositionML" type="munitionLaunchPointElementType"
-    
-    name="LaunchPosition" type="absoluteHorizontalPositionElementType"
-    name="LaunchPosition" type="absoluteHorizontalPositionElementType"
 -->
 <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" elementFormDefault="qualified" attributeFormDefault="unqualified" version="3.1" jaxb:extensionBindingPrefixes="xjc" jaxb:version="2.1">
 	<xsd:element name="AVCL">
@@ -253,11 +114,32 @@ Change log, version 2.0:
 			<xsd:complexContent>
 				<xsd:extension base="avclBodyType">
 					<xsd:choice minOccurs="0" maxOccurs="unbounded">
+						<xsd:element name="Vehicle" minOccurs="0">
+							<xsd:annotation>
+								<xsd:documentation>robot UAV UUV USV UGV</xsd:documentation>
+							</xsd:annotation>
+							<xsd:complexType>
+								<xsd:attribute name="vehicleType" type="vehicleType" use="optional">
+									<xsd:annotation>
+										<xsd:documentation>UAV, UGV, USV, or UUV, ROV, AGENDA, MUNITION, SSGN and UNKNOWN are supported vehicleType values.</xsd:documentation>
+									</xsd:annotation>
+								</xsd:attribute>
+								<xsd:attribute name="vehicleID" type="xsd:unsignedShort" use="optional" default="0">
+									<xsd:annotation>
+										<xsd:documentation>integer ID number of vehicle, commonly used for DIS or virtual environment indexing</xsd:documentation>
+									</xsd:annotation>
+								</xsd:attribute>
+							</xsd:complexType>
+						</xsd:element>
 						<xsd:sequence minOccurs="0">
 							<xsd:annotation>
 								<xsd:documentation>Mission</xsd:documentation>
 							</xsd:annotation>
-							<xsd:element ref="MissionAgenda" minOccurs="0"/>
+							<xsd:element ref="MissionAgenda" minOccurs="0">
+								<xsd:annotation>
+									<xsd:documentation>Declarative strategic-level list of mission goals and constraints, suitable for robot mision planning to generate Waypoint lists and other executable script commands</xsd:documentation>
+								</xsd:annotation>
+							</xsd:element>
 							<xsd:element ref="MissionCommands" minOccurs="0"/>
 							<xsd:element ref="MissionTelemetry" minOccurs="0"/>
 							<xsd:element ref="MissionArchive" minOccurs="0"/>
@@ -278,23 +160,6 @@ Change log, version 2.0:
 							</xsd:complexType>
 						</xsd:element>
 						<xsd:element ref="UnitsOfMeasure" minOccurs="0"/>
-						<xsd:element name="Vehicle" minOccurs="0">
-							<xsd:annotation>
-								<xsd:documentation>robot UAV UUV USV UGV</xsd:documentation>
-							</xsd:annotation>
-							<xsd:complexType>
-								<xsd:attribute name="vehicleType" type="vehicleType" use="optional">
-									<xsd:annotation>
-										<xsd:documentation>UAV, UGV, USV, or UUV, ROV, AGENDA, MUNITION, SSGN and UNKNOWN are supported vehicleType values.</xsd:documentation>
-									</xsd:annotation>
-								</xsd:attribute>
-								<xsd:attribute name="vehicleID" type="xsd:unsignedShort" use="optional" default="0">
-									<xsd:annotation>
-										<xsd:documentation>integer ID number of vehicle, commonly used for DIS or virtual environment indexing</xsd:documentation>
-									</xsd:annotation>
-								</xsd:attribute>
-							</xsd:complexType>
-						</xsd:element>
 					</xsd:choice>
 				</xsd:extension>
 			</xsd:complexContent>
@@ -792,6 +657,16 @@ Change log, version 2.0:
 			<xsd:documentation>To look for lost or unlocated objects or persons.</xsd:documentation>
 		</xsd:annotation>
 	</xsd:element>
+	<xsd:element name="Supply">
+		<xsd:annotation>
+			<xsd:documentation>Perform supply or resupply task. TODO new goal type not considered by Davis ontology.</xsd:documentation>
+		</xsd:annotation>
+	</xsd:element>
+	<xsd:element name="SpecialTask">
+		<xsd:annotation>
+			<xsd:documentation>Perform alternate task. TODO new goal type not considered by Davis ontology.</xsd:documentation>
+		</xsd:annotation>
+	</xsd:element>
 	<xsd:element name="SectorPattern" type="sectorPatternType"/>
 	<xsd:element name="Sender" type="nonNegativeIntegerElementType"/>
 	<xsd:element name="SendMessage" type="sendMessageCommandType">
@@ -1127,7 +1002,7 @@ Change log, version 2.0:
 					<xsd:documentation source="https://savage.nps.edu/Savage/AuvWorkbench/AVCL/AVCL.2.0.xsd"/>
 				</xsd:annotation>
 			</xsd:enumeration>
-			<!-- Deliberately not supported, but prior entry kept here for legacy sake.  Use  AVCL.1.0To2.0.xslt to convert past missions, if upgrade is desired. -->
+			<!-- Deliberately not supported, but prior entry kept here for legacy sake.  Use  AVCL.1.0To2.0.xslt to convert past missions, if upgrade or earlier mission XML is desired. -->
 			<!-- xsd:enumeration value="1.0">
                 				<xsd:annotation>
                        					<xsd:appinfo>Original AVCL implemented on 02 March 2004.</xsd:appinfo>
@@ -1575,15 +1450,15 @@ Change log, version 2.0:
 			<xsd:annotation>
 				<xsd:documentation>Empty Goal allowed, skipped</xsd:documentation>
 			</xsd:annotation>
-			<xsd:group ref="GoalElements" minOccurs="0"/>
+			<xsd:group ref="GoalAction" minOccurs="0"/>
 			<xsd:element ref="Risk" minOccurs="0" maxOccurs="unbounded">
 				<xsd:annotation>
 					<xsd:documentation>List of Risk elements requiring consideration prior to human ordering robot to perform goal</xsd:documentation>
 				</xsd:annotation>
 			</xsd:element>
 			<xsd:element ref="OperatingArea" minOccurs="0"/>
-			<xsd:group ref="TimingTypeElements" minOccurs="0"/>
 			<xsd:element ref="ReportingCriteria" minOccurs="0" maxOccurs="unbounded"/>
+			<xsd:group ref="TimingTypeElements" minOccurs="0"/>
 		</xsd:sequence>
 		<xsd:attributeGroup ref="CommonAttributes"/>
 		<xsd:attribute name="phase" type="xsd:string" use="optional">
@@ -1618,6 +1493,26 @@ Change log, version 2.0:
 		</xsd:annotation>
 		<xsd:sequence>
 			<xsd:element ref="Goal" maxOccurs="unbounded"/>
+			<xsd:element ref="Risk" minOccurs="0" maxOccurs="unbounded">
+				<xsd:annotation>
+					<xsd:documentation>Shared by all goals: list of Risk elements requiring consideration prior to human ordering robot to perform goal</xsd:documentation>
+				</xsd:annotation>
+			</xsd:element>
+			<xsd:element ref="OperatingArea" minOccurs="0">
+				<xsd:annotation>
+					<xsd:documentation>Shared by all goals: horizontal area for conducting mission-goal operations, with optional vertical constraints</xsd:documentation>
+				</xsd:annotation>
+			</xsd:element>
+			<xsd:group ref="TimingTypeElements" minOccurs="0">
+				<xsd:annotation>
+					<xsd:documentation>Shared by all goals: elements utilized to specify timing requirements of an agenda goal.</xsd:documentation>
+				</xsd:annotation>
+			</xsd:group>
+			<xsd:element ref="ReportingCriteria" minOccurs="0" maxOccurs="unbounded">
+				<xsd:annotation>
+					<xsd:documentation>Shared by all goals: requirements for reporting mission status and results</xsd:documentation>
+				</xsd:annotation>
+			</xsd:element>
 		</xsd:sequence>
 		<xsd:attributeGroup ref="CommonAttributes"/>
 	</xsd:complexType>
@@ -1626,10 +1521,10 @@ Change log, version 2.0:
 			<xsd:documentation>Declarative agenda-based (goals) mission definition suitable for use by an agent or other high level mission controller.</xsd:documentation>
 		</xsd:annotation>
 		<xsd:sequence>
-			<xsd:element ref="LaunchPosition" minOccurs="0"/>
-			<xsd:element ref="RecoveryPosition" minOccurs="0"/>
 			<xsd:element ref="GoalList"/>
 			<xsd:element ref="ConstraintList" minOccurs="0"/>
+			<xsd:element ref="LaunchPosition" minOccurs="0"/>
+			<xsd:element ref="RecoveryPosition" minOccurs="0"/>
 		</xsd:sequence>
 		<xsd:attributeGroup ref="CommonAttributes"/>
 	</xsd:complexType>
@@ -2000,7 +1895,7 @@ Change log, version 2.0:
 		</xsd:annotation>
 		<xsd:sequence>
 			<xsd:element ref="Qualifier" minOccurs="0" maxOccurs="unbounded"/>
-			<xsd:element name="TargetVehicleID" type="integerElementType" maxOccurs="unbounded"/>
+			<xsd:element name="TargetVehicleID" type="integerElementType" minOccurs="0" maxOccurs="unbounded"/>
 		</xsd:sequence>
 		<xsd:attributeGroup ref="CommonAttributes"/>
 	</xsd:complexType>
@@ -2043,12 +1938,12 @@ Change log, version 2.0:
 		<xsd:sequence>
 			<xsd:element ref="Target" minOccurs="0" maxOccurs="unbounded"/>
 		</xsd:sequence>
-		<xsd:attribute name="datumType" type="datumTypeType" use="required">
+		<xsd:attribute name="datumType" type="datumTypeType">
 			<xsd:annotation>
 				<xsd:documentation>Specifies whether the search datum is a point (center of the goal area) or the entire area.</xsd:documentation>
 			</xsd:annotation>
 		</xsd:attribute>
-		<xsd:attribute name="requiredPD" type="percentType" use="required">
+		<xsd:attribute name="requiredPD" type="percentType">
 			<xsd:annotation>
 				<xsd:documentation>Required probability of detection of the search.</xsd:documentation>
 			</xsd:annotation>
@@ -3934,9 +3829,9 @@ Change log, version 2.0:
 			<xsd:element ref="Elevator" minOccurs="0"/>
 		</xsd:sequence>
 	</xsd:group>
-	<xsd:group name="GoalElements">
+	<xsd:group name="GoalAction">
 		<xsd:annotation>
-			<xsd:documentation>Elements that can be used to specify a single goal to be accomplished during a mission.</xsd:documentation>
+			<xsd:documentation>Elements that can be used to specify action that a single goal can accomplish during a mission.</xsd:documentation>
 		</xsd:annotation>
 		<xsd:choice>
 			<!-- TODO make all of these elements inherit from goalType -->
@@ -3952,6 +3847,8 @@ Change log, version 2.0:
 			<xsd:element ref="Reposition"/>
 			<xsd:element ref="SampleEnvironment"/>
 			<xsd:element ref="Search"/>
+			<xsd:element ref="Supply"/>
+			<xsd:element ref="SpecialTask"/>
 		</xsd:choice>
 	</xsd:group>
 	<xsd:group name="InformMessage">