code: private static function determineActualValueToAssign($class, $property, $value)
      {
          if (!array_key_exists($property, self::$properties[$class])) {
              return $value;
          }
  
          $info = self::propertyInfo($class, $property);
  
          if ($info['repeatable'] && is_array($value)) {
              $values = [];
              foreach ($value as $val) {
                  $values[] = self::actualValue($info, $val);
              }
              return $values;
          }
  
          return self::actualValue($info, $value);
      }
docs: Helper function when assigning values via the ctor.
  Determines the actual value to assign to a property.
  
  @param string $class The name of the class the property belong to.
  @param string $property The property name.
  @param mixed $value The property value.
  
  @return mixed