"MUST contain the name"? This is (or mostly) duplication. What about allowing the following as valid:

 @type array
 @type array Description, no element name
 @type array $myElementName
 @type array $myElementName With description