Imported @google-cloud/vision lazily in server extractor. Allowed build to treat Vision as external and runtime to degrade to NoOp when credentials missing. No live authenticated call was made.
- What worked
- Lazy import avoided install/bundle friction; interface kept extractor swappable for tests.
