code: public static function fromArray(array $data = [])
      {
          if (!isset($data['name'])) {
              throw new InvalidArgumentException('DynamicField "name" property must be set.');
          }
  
          $name = $data['name'];
          unset($data['name']);
          $kind = key($data);
  
          try {
              $kind = DynamicFieldKind::create($kind);
          } catch (\Exception $e) {
              throw new InvalidArgumentException(sprintf('DynamicField "%s" is not a valid kind.', $kind));
          }
  
          return new self($name, $kind, $data[$kind->getValue()]);
      }
docs: {@inheritdoc}