version: "1.0"

survey:
  id: "spring-migration-2026"
  name: "Spring Migration Bird Survey"
  description: "Community observations of migratory and resident birds."
  timezone: "America/Toronto"
  start_date: "2026-04-01"
  end_date: "2026-05-31"
  protocol:
    type: "stationary_point_count"
    duration_minutes: 10
    radius_meters: 100
    record_zero_counts: true
    minimum_observer_age: 13
    required_fields:
      - site_id
      - observed_at
      - species_code
      - count
      - effort_minutes
    optional_fields:
      - breeding_behavior
      - flight_direction
      - habitat_notes
      - media_urls

sites:
  source: "data/survey_sites.geojson"
  allowed_habitats:
    - forest
    - wetland
    - grassland
    - urban_park
    - shoreline
  location_precision_meters: 25
  sensitive_species_precision_meters: 10000

species:
  taxonomy: "eBird/Clements"
  taxonomy_version: "2025"
  accepted_regions:
    - "CA-ON"
    - "CA-QC"
    - "US-NY"
  checklist: "data/regional_species.csv"
  require_evidence_when:
    rarity_score_gte: 4
    count_gte: 100

submissions:
  api_endpoint: "https://survey.example.org/api/v1/observations"
  formats:
    - json
    - csv
  offline_collection: true
  duplicate_window_minutes: 15
  validation:
    reject_future_timestamps: true
    maximum_count_per_species: 10000
    coordinate_bounds:
      north: 47.10
      south: 42.00
      east: -73.00
      west: -83.50
  moderation:
    auto_approve_common_species: true
    review_queue: "regional-reviewers"
    require_two_reviews_for_sensitive_records: true

privacy:
  participant_identifier: "pseudonymous_uuid"
  collect_email: false
  publish_observer_names: false
  obscure_private_property_coordinates: true
  data_retention_days: 2555
  license: "CC-BY-4.0"

notifications:
  channels:
    - type: "email"
      enabled: true
      recipients:
        - "coordinators@example.org"
    - type: "webhook"
      enabled: true
      url_env: "SURVEY_ALERT_WEBHOOK_URL"
  alerts:
    rare_species_submission: true
    validation_failure_rate_threshold: 0.10
    daily_submission_threshold: 5000

exports:
  schedule: "0 3 * * *"
  destinations:
    - type: "object_storage"
      bucket_env: "SURVEY_EXPORT_BUCKET"
      path: "spring-migration-2026/{date}/"
  files:
    - name: "validated_observations.csv"
      include_sensitive_coordinates: false
    - name: "effort_summary.csv"
    - name: "species_totals.csv"
  checksum: "sha256"
  compress: true

quality_control:
  minimum_complete_checklists: 3
  flag_speed_kph_above: 5
  flag_outlier_distance_km: 50
  expert_review_sample_rate: 0.05
  audit_log: true

monitoring:
  healthcheck_path: "/health"
  metrics_path: "/metrics"
  log_level: "info"
  dashboard: "spring-migration-2026"
  service_level_objectives:
    submission_availability: 0.995
    validation_latency_seconds_p95: 30