protected function merge($meta, array $options = []): array
    {
        if (is_array($meta) && empty($options)) {
            $options = $meta;
            $meta = null;
        }

        $options = array_merge(['includes' => [], 'excludes' => []], $options);

        foreach ($options as $key => $value) {
            $filtered = Arr::expand(array_flip($value));
            $parent = Arr::get($this->options, is_null($meta) ? $key : "{$key}.{$meta}", []);

            $options[$key] = array_keys(Arr::dot(array_merge_recursive($filtered, $parent)));
        }

        return $options;
    }