final public static function fromArray(array $data = [])
    {
        if (null === self::$serializer) {
            self::$serializer = new PhpArraySerializer();
        }

        if (!isset($data[Schema::PBJ_FIELD_NAME])) {
            $data[Schema::PBJ_FIELD_NAME] = static::schema()->getId()->toString();
        }

        $message = self::$serializer->deserialize($data);
        return $message;
    }
final public static function fromArray(array $data = [])
    {
        if (null === self::$serializer) {
            self::$serializer = new PhpArraySerializer();
        }

        if (!isset($data[Schema::PBJ_FIELD_NAME])) {
            $data[Schema::PBJ_FIELD_NAME] = static::schema()->getId()->toString();
        }

        $message = self::$serializer->deserialize($data);
        return $message;
    }
{@inheritdoc}
@return static