> */ public function rules(): array { return [ 'visitor_id' => ['required', 'string', 'max:100'], 'url' => ['required', 'url', 'max:2048'], 'path' => ['nullable', 'string', 'max:2048'], 'title' => ['nullable', 'string', 'max:255'], 'referrer' => ['nullable', 'string', 'max:2048'], 'language' => ['nullable', 'string', 'max:50'], 'timezone' => ['nullable', 'string', 'max:100'], 'screen' => ['nullable', 'array'], 'screen.width' => ['nullable', 'integer', 'min:0', 'max:100000'], 'screen.height' => ['nullable', 'integer', 'min:0', 'max:100000'], 'viewport' => ['nullable', 'array'], 'viewport.width' => ['nullable', 'integer', 'min:0', 'max:100000'], 'viewport.height' => ['nullable', 'integer', 'min:0', 'max:100000'], 'device_pixel_ratio' => ['nullable', 'numeric', 'min:0', 'max:100'], 'color_depth' => ['nullable', 'integer', 'min:0', 'max:1000'], 'platform' => ['nullable', 'string', 'max:255'], 'vendor' => ['nullable', 'string', 'max:255'], 'hardware_concurrency' => ['nullable', 'integer', 'min:0', 'max:1024'], 'device_memory' => ['nullable', 'numeric', 'min:0', 'max:1024'], 'cookies_enabled' => ['nullable', 'boolean'], 'online' => ['nullable', 'boolean'], ]; } }