code: public static function possibleTypes($topType, $goodTypes)
      {
          $possibleTypes = [];
          foreach ($topType->collectorItem->children as $relationship) {
              $testType = $relationship->child;
              if ($goodTypes === false || in_array($testType->systemId, $goodTypes)) {
                  $possibleTypes[$testType->systemId] = $testType;
              } elseif (self::descendantHas($testType, $goodTypes)) {
                  $possibleTypes[$testType->systemId] = $testType;
              }
          }
  
          return $possibleTypes;
      }
docs: [[@doctodo method_description:possibleTypes]].
  
  @param [[@doctodo param_type:topType]]   $topType   [[@doctodo param_description:topType]]
  @param [[@doctodo param_type:goodTypes]] $goodTypes [[@doctodo param_description:goodTypes]]
  
  @return [[@doctodo return_type:possibleTypes]] [[@doctodo return_description:possibleTypes]]