# OS
.DS_Store
Thumbs.db

# IDE / editors
.idea/
.vscode/*
!.vscode/settings.json
!.vscode/extensions.json
*.swp
*.swo
*~

# Environment & secrets
# NOTE: secrets must never be committed (CLAUDE.md §7.3).
.env
.env.*
!.env.example
*.pem
*.key
*.crt
secrets/
credentials/

# Logs
*.log
logs/
.dev-logs/

# Node / TypeScript / Next.js
node_modules/
.next/
out/
dist/
build/
coverage/
*.tsbuildinfo
.npm/
.yarn/
.pnpm-store/
.turbo/

# Rust
# NOTE: Cargo.lock is intentionally NOT ignored. Commit it for reproducibility,
# even for library crates — fintech reproducibility matters more than convention.
target/
**/*.rs.bk

# Go
bin/
*.test
*.out
coverage.out
vendor/

# Flutter / Dart
.dart_tool/
.flutter-plugins
.flutter-plugins-dependencies
.packages
.pub-cache/
.pub/
ios/Pods/
ios/.symlinks/
android/.gradle/
android/local.properties

# Terraform
.terraform/
.terraform.lock.hcl
*.tfstate
*.tfstate.*
*.tfplan
crash.log
crash.*.log

# Docker
*.pid

# Python (tooling/scripts)
__pycache__/
*.pyc
.venv/
venv/
.coverage
coverage.xml

# Misc
tmp/
temp/
.cache/

# Claude Code internal state
.claude/

# banzami docs — generated artifacts (sourced from banza repo)
apps/docs/data/

# Website origin TLS certs (never commit)
infra/docker/website-certs/*.pem
infra/docker/website-certs/*.key

# Release Train 01 E2E local deps (playwright + browser)
tools/e2e/dev-console/node_modules/
tools/e2e/dev-console/package-lock.json

# PHPUnit result caches — per-run local state, never shared.
.phpunit.result.cache
.phpunit.cache/

# BUSINESS-RECEIVE-POINT-001 web E2E generated camera media (Y4M)
tools/e2e/app-web/proofs/*.y4m
