*/ public function rules(): array { return [ 'name' => ['required', 'string', 'max:255'], 'slug' => ['nullable', 'string', 'max:255', Rule::unique('mcp_servers', 'slug')], 'description' => ['required', 'string'], 'url' => ['required', 'url', 'max:255'], 'docs_url' => ['nullable', 'url', 'max:255'], 'logo_url' => ['nullable', 'url', 'max:255'], 'category' => ['required', Rule::in(array_keys(config('mcp_servers.categories')))], 'install_command' => ['nullable', 'string'], 'config_example' => ['nullable', 'string'], 'transport' => ['nullable', Rule::in(array_keys(config('mcp_servers.transports')))], 'language' => ['nullable', 'string', 'max:100'], 'capabilities' => ['sometimes', 'array'], 'capabilities.*' => ['string', 'max:255'], 'tags' => ['sometimes', 'array'], 'tags.*' => ['string', 'max:50'], 'featured' => ['sometimes', 'boolean'], 'approved' => ['sometimes', 'boolean'], ]; } }