node_modules/
dist/
# embed-loader 发布物即 dist 文件本身（viewer 同步副本也提交）：白名单放行，
# 其余 dist/ 仍忽略（git 不允许重包含被排除目录的子路径，故逐层放行到 v1/）。
!packages/embed-loader/dist/
packages/embed-loader/dist/*
!packages/embed-loader/dist/v1/
!packages/embed-loader/dist/v1/loader.js
.turbo/
# @photo/db-ov Prisma client 工件（自定义 generator output；db-cn 走 node_modules 默认位）
packages/db-ov/generated/
coverage/
playwright-report/
test-results/
blob-report/
.env
.env.*
!.env.example
# P5-prep 生产变量清单模板（占位符，无真实密钥；真实 .env.production-* 永不入库）
!.env.production.example-cn
!.env.production.example-ov
*.log
.DS_Store
*.tsbuildinfo
Thumbs.db
Desktop.ini

# Flutter（apps/mobile；项目内 .gitignore 亦有覆盖，这里显式兜底根视角）
apps/mobile/.dart_tool/
apps/mobile/build/
apps/mobile/.flutter-plugins
apps/mobile/.flutter-plugins-dependencies
