version: "1.0"

project:
  id: urban-bird-watch-2026
  name: Urban Bird Watch
  description: Community-led monitoring of urban bird populations and habitats.
  season:
    starts_on: 2026-04-01
    ends_on: 2026-10-31
  timezone: America/Toronto
  contact:
    email: surveys@urbanbirdwatch.example.org

survey:
  protocol: stationary-point-count
  duration_minutes: 10
  radius_meters: 100
  visits_per_site: 3
  minimum_days_between_visits: 7
  observation_window:
    start_offset_from_sunrise_minutes: -30
    end_offset_from_sunrise_minutes: 240
  allowed_weather:
    maximum_wind_beaufort: 3
    precipitation:
      - none
      - light
  fields:
    required:
      - observer_id
      - site_id
      - started_at
      - latitude
      - longitude
      - species_code
      - count
      - detection_method
    optional:
      - age
      - sex
      - breeding_behavior
      - habitat_notes
      - photo_url
      - audio_url
  detection_methods:
    - visual
    - song
    - call
    - flyover
  count_rules:
    allow_zero_count_checklists: true
    maximum_count_without_review: 500
    record_unknown_species: true

sites:
  source: data/survey-sites.geojson
  coordinate_system: EPSG:4326
  location_precision_meters: 10
  sensitive_site_precision_meters: 1000
  habitat_types:
    - residential
    - urban-park
    - wetland
    - woodland
    - grassland
    - waterfront

species:
  taxonomy: eBird/Clements
  taxonomy_version: "2025"
  regional_checklist: data/ontario-checklist.csv
  sensitive_species: data/sensitive-species.csv
  require_evidence_for:
    rarity_score_at_least: 4
    count_above_historical_percentile: 99

validation:
  reject_if:
    - coordinates_outside_project_boundary
    - end_time_before_start_time
    - negative_count
  flag_for_review_if:
    - survey_duration_deviation_over_minutes: 3
    - location_accuracy_over_meters: 50
    - species_outside_expected_range
    - duplicate_checklist_within_minutes: 15
  duplicate_detection:
    spatial_tolerance_meters: 25
    temporal_tolerance_minutes: 5

quality_control:
  reviewer_roles:
    - regional-coordinator
    - species-expert
  calibration:
    required_for_new_observers: true
    minimum_identification_score_percent: 80
  audit_sample_percent: 10
  retain_original_submissions: true

privacy:
  public_observer_names: false
  public_exact_coordinates: true
  obscure_sensitive_species_locations: true
  consent_version: "2026-01"
  retention:
    contact_information_days: 1095
    observations: indefinite

storage:
  database:
    engine: postgresql
    host: bird-survey-db
    port: 5432
    database: bird_survey
    ssl_mode: require
  media:
    provider: s3
    bucket: urban-bird-watch-media
    region: ca-central-1
    allowed_types:
      - image/jpeg
      - image/png
      - audio/mpeg
      - audio/wav
    maximum_file_size_mb: 25

exports:
  schedule: "0 3 * * *"
  formats:
    - csv
    - geojson
    - darwin-core
  destination: s3://urban-bird-watch-exports/2026/
  license: CC-BY-4.0
  exclude:
    - observer_email
    - private_notes
    - exact_sensitive_species_coordinates

notifications:
  submission_receipts: true
  review_updates: true
  channels:
    email:
      enabled: true
      from: no-reply@urbanbirdwatch.example.org
    sms:
      enabled: false

monitoring:
  metrics:
    - surveys_submitted_total
    - observations_recorded_total
    - validation_flags_total
    - pending_reviews
  alerts:
    pending_review_threshold: 250
    failed_export_threshold: 1
    notify:
      - coordinators@urbanbirdwatch.example.org