code: public static function fromArray(array $data = [])
      {
          if (isset($data['curie'])) {
              $id = isset($data['id']) ? $data['id'] : 'null';
              $tag = isset($data['tag']) ? $data['tag'] : null;
              return new self(SchemaCurie::fromString($data['curie']), $id, $tag);
          }
          throw new InvalidArgumentException('Payload must be a MessageRef type.');
      }
docs: {@inheritdoc}