{
  "generatedAt": "2026-06-24T15:14:57.047Z",
  "status": "mobile_first_use_package_ready",
  "visibility": "public_sanitized_no_private_payloads",
  "objective": "Publicar o contrato de primeira ativacao do app FOPPEOS sem expor usuario, coordenada, trilha, receita, midia, segredo ou dado bruto de fazenda.",
  "summary": {
    "firstMobileTarget": "mobile_field_telemetry",
    "firstMobileGate": "first_consented_private_mobile_event",
    "firstOperationTarget": "mobile_operation_session",
    "firstOperationGate": "first_operation_session_with_map_weather_and_progress",
    "decisionGate": "mavic3m_planetscope_weather_operations_fusion",
    "profileCount": 4,
    "operationScreenCount": 7,
    "offlineQueueRequired": true,
    "cloudAccessRequired": true,
    "privateAppUrl": "https://api.foppeos.com/pwa",
    "privateAppRoute": "/pwa",
    "cloudPrivatePwaReady": true,
    "requiresHumanConfirmedClick": true,
    "localPreviewOnly": false,
    "firstRealEventValidated": false,
    "firstOperationSessionValidated": false,
    "rawCoordinatesReturned": false,
    "physicalExecutionAllowed": false
  },
  "profiles": [
    {
      "id": "manager",
      "label": "Gerente / dono",
      "firstScreen": "mapa_vivo_privado",
      "mapScope": "fazendas, talhoes, usuarios autorizados, operacoes e alertas revisaveis",
      "offlineScope": "ultimo mapa autorizado e resumo de operacoes para consulta",
      "liveScope": "eventos, status de operacao, alertas e freshness por fonte",
      "hiddenByDefault": [
        "coordenadas brutas",
        "trilhas completas",
        "receitas completas",
        "dados financeiros"
      ],
      "rawCoordinatesReturned": false,
      "rawTrackReturned": false,
      "rawRecipeReturned": false,
      "physicalExecutionAllowed": false
    },
    {
      "id": "operator_or_pilot",
      "label": "Operador / piloto",
      "firstScreen": "operacao_atribuida",
      "mapScope": "talhao, rota, faixa, ponto de abastecimento e cards da atividade atribuida",
      "offlineScope": "mapa e ficha operacional autorizados antes da perda de internet",
      "liveScope": "area, velocidade, volume estimado, clima e eventos consentidos",
      "hiddenByDefault": [
        "outros talhoes nao autorizados",
        "financeiro",
        "dados de outros usuarios"
      ],
      "rawCoordinatesReturned": false,
      "rawTrackReturned": false,
      "rawRecipeReturned": false,
      "physicalExecutionAllowed": false
    },
    {
      "id": "truck_or_service",
      "label": "Camioneiro / terceiro",
      "firstScreen": "rota_e_pontos_autorizados",
      "mapScope": "estradas, contornos, sede, carga, descarga e pontos autorizados",
      "offlineScope": "rota e checklists necessarios para o servico",
      "liveScope": "check-in, chegada, saida e comprovantes com consentimento",
      "hiddenByDefault": [
        "mapa agronomico sensivel",
        "prescricoes",
        "estoque completo"
      ],
      "rawCoordinatesReturned": false,
      "rawTrackReturned": false,
      "rawRecipeReturned": false,
      "physicalExecutionAllowed": false
    },
    {
      "id": "scout_or_agronomist",
      "label": "Vistoria / agronomia",
      "firstScreen": "vistoria_georreferenciada",
      "mapScope": "mapa multispectral autorizado, pontos de amostragem e fotos privadas",
      "offlineScope": "checklist, camada de mapa e fila de fotos/metadados",
      "liveScope": "observacoes, severidade, evidencia e conflito de fontes",
      "hiddenByDefault": [
        "midia bruta publica",
        "diagnostico final automatico",
        "receita final sem revisao"
      ],
      "rawCoordinatesReturned": false,
      "rawTrackReturned": false,
      "rawRecipeReturned": false,
      "physicalExecutionAllowed": false
    }
  ],
  "firstEventContract": {
    "connectorId": "mobile_field_telemetry",
    "status": "mobile_field_telemetry_contract_ready_no_events",
    "route": "POST /connectors/mobile-field-telemetry/events/read-only/validate",
    "batchRoute": "POST /connectors/mobile-field-telemetry/events/batch",
    "requiredFields": [
      "source",
      "timestamp",
      "farm_id",
      "field_id|talhao_id",
      "event_type",
      "actor_id|device_id",
      "consent.granted",
      "consent.work_mode",
      "consent.purpose"
    ],
    "recommendedFields": [
      "evidence_hash",
      "private_location_ref",
      "field_geometry_hash|talhao_polygon_hash",
      "map_layer_hash",
      "geometry_source"
    ],
    "acceptedEventTypes": [
      "presence_ping",
      "field_observation",
      "field_scouting",
      "map_correction_hint",
      "boundary_check",
      "route_trace_summary",
      "task_update",
      "photo_evidence_metadata",
      "machine_context_note"
    ],
    "gate": "first_consented_private_mobile_event",
    "doneWhen": "evento privado consentido com perfil, fazenda, contexto de talhao ou rota, timestamp e evidence_hash",
    "offlineMode": "fila local criptografada no aparelho e sincronizacao somente em app privado autenticado",
    "accessPolicy": "Cloudflare Access/MFA, usuario identificado, escopo por fazenda/talhao/equipe e log de auditoria",
    "privateRoutes": [
      "POST /connectors/mobile-field-telemetry/events/read-only/validate",
      "POST /connectors/mobile-field-telemetry/events/batch",
      "GET /connectors/mobile-field-telemetry/status?farm_id=<farm_id>",
      "GET /app/field-map?farm_id=<farm_id>&field_id=<field_id>"
    ],
    "rawPayloadStoredOutsideRepository": true,
    "rawCoordinatesReturned": false,
    "physicalExecutionAllowed": false
  },
  "firstEventSubmissionContract": {
    "id": "mobile_field_telemetry_confirmed_first_event",
    "connectorId": "mobile_field_telemetry",
    "method": "POST",
    "route": "/connectors/mobile-field-telemetry/events/batch",
    "serviceAuthRequired": true,
    "privateAppOnly": true,
    "privateAppUrl": "https://api.foppeos.com/pwa",
    "privateAppRoute": "/pwa",
    "promotionFlag": "confirmed=true",
    "idempotencyKey": "event_fingerprint_or_evidence_hash",
    "bodyShape": {
      "farm_id": "<farm_id>",
      "confirmed": true,
      "events": [
        {
          "source": "foppeos_private_mobile_app",
          "timestamp": "<iso8601>",
          "farm_id": "<farm_id>",
          "field_id": "<field_id_or_route_context>",
          "event_type": "field_observation",
          "evidence_hash": "<sha256_or_safe_evidence_hash>",
          "private_location_ref": "<private_storage_reference_when_location_exists>",
          "consent": {
            "granted": true,
            "work_mode": true,
            "purpose": "field_operation_map_context",
            "retention_days": 180
          }
        }
      ]
    },
    "requiredBeforePromotion": [
      "Cloudflare Access service auth accepted",
      "usuario/app em modo trabalho com consentimento",
      "timestamp ISO real",
      "farm_id e field_id autorizados",
      "evidence_hash ou fingerprint de evidencia",
      "private_location_ref quando houver coordenada/trilha bruta"
    ],
    "rejectedWhen": [
      "confirmed ausente ou falso",
      "consentimento ausente",
      "modo trabalho inativo",
      "coordenada bruta sem referencia privada",
      "campo de segredo/token/senha no payload",
      "comando fisico ou tentativa de escrever maquina/drone/provedor"
    ],
    "expectedSuccess": {
      "firstReadingPromotionAttempted": true,
      "firstReadingStatus": "validated_real_reading",
      "persistenceStatus": "persisted_metadata_only",
      "canMarkIntegrationValidated": true
    },
    "currentStatus": "waiting_confirmed_private_event",
    "privateRoutes": [
      "POST /connectors/mobile-field-telemetry/events/read-only/validate",
      "POST /connectors/mobile-field-telemetry/events/batch",
      "GET /connectors/mobile-field-telemetry/status?farm_id=<farm_id>",
      "GET /app/field-map?farm_id=<farm_id>&field_id=<field_id>"
    ],
    "rawPayloadStoredOutsideRepository": true,
    "secretValuesReturned": false,
    "rawCoordinatesReturned": false,
    "rawTrackReturned": false,
    "rawMediaReturned": false,
    "physicalExecutionAllowed": false,
    "automaticPhysicalExecutionAllowed": false,
    "canStartMachineOrDrone": false,
    "writesToProviderAllowed": false
  },
  "operationSessionContract": {
    "connectorId": "mobile_operation_session",
    "status": "mobile_operation_session_contract_ready_no_operations",
    "liveRoute": "GET /app/operations/live",
    "eventRoute": "POST /app/operations/events/read-only/validate",
    "batchSyncRoute": "POST /app/operations/events/batch-sync",
    "privateRoutes": [
      "GET /app/operations/live",
      "GET /app/operations/assigned?farm_id=<farm_id>",
      "GET /app/operations/work-card?operation_type=<operation_type>",
      "POST /app/operations/events/read-only/validate",
      "POST /app/operations/events/batch-sync",
      "GET /app/field-map/live?farm_id=<farm_id>&field_id=<field_id>"
    ],
    "operationTypeFilter": "cada tela mostra somente cards relevantes ao tipo de operacao: pulverizacao, plantio, adubacao, colheita ou vistoria",
    "offlineMode": "eventos ficam em fila criptografada no aparelho e sincronizam quando houver conexao; relatorio mostra apenas fingerprints e resumos",
    "realTimeAreaFormula": "area_ha = faixa_m * distancia_m / 10000; quando sem distancia, distancia_m = velocidade_km_h * 1000 / 3600 * segundos",
    "progressExample": {
      "swathWidthM": 30,
      "speedKmh": 18,
      "elapsedSeconds": 600,
      "distanceM": 3000,
      "overlapPct": 0,
      "targetVolumeLHa": 80,
      "areaHa": 9,
      "estimatedMixVolumeL": 720,
      "requiredFlowLMin": 72,
      "progressPct": 7.5,
      "formula": "area_ha = faixa_m * distancia_m * (1 - sobreposicao) / 10000; vazao_l_min = faixa_m * velocidade_km_h * volume_l_ha / 600",
      "physicalExecutionAllowed": false,
      "automaticPhysicalExecutionAllowed": false
    },
    "operationScreens": [
      {
        "id": "terrestrial_sprayer",
        "cards": [
          "mapa_talhao_ao_vivo",
          "mistura_produtos_privada",
          "bicos_pressao_vazao_volume_faixa_velocidade",
          "clima_vento_umidade_temperatura_luminosidade_delta_t",
          "area_pulverizada_volume_estimado_progresso",
          "abastecimento_bordadura_reentrada_carencia_epi"
        ],
        "fieldMapAlwaysVisible": true,
        "physicalExecutionAllowed": false
      },
      {
        "id": "drone_sprayer",
        "cards": [
          "mapa_talhao_ao_vivo",
          "missao_drone_privada",
          "altitude_faixa_velocidade_vazao_bicos_gota",
          "bateria_calda_ponto_abastecimento_retorno",
          "clima_vento_rajada_luminosidade_umidade_delta_t",
          "area_pulverizada_volume_estimado_progresso"
        ],
        "fieldMapAlwaysVisible": true,
        "physicalExecutionAllowed": false
      },
      {
        "id": "planter",
        "cards": [
          "mapa_talhao_ao_vivo",
          "cultivar_lote_populacao",
          "velocidade_linha_profundidade",
          "umidade_solo_janela_climatica",
          "area_plantada_progresso"
        ],
        "fieldMapAlwaysVisible": true,
        "physicalExecutionAllowed": false
      },
      {
        "id": "fertilizer_spreader",
        "cards": [
          "mapa_talhao_ao_vivo",
          "insumo_dose_taxa_variavel",
          "clima_solo_risco_perda",
          "faixa_velocidade_progresso",
          "mapa_prescricao_privado"
        ],
        "fieldMapAlwaysVisible": true,
        "physicalExecutionAllowed": false
      },
      {
        "id": "harvester",
        "cards": [
          "mapa_talhao_ao_vivo",
          "talhao_cultura_umidade",
          "maquina_rota_descarga",
          "area_produtividade_progresso",
          "perdas_alertas"
        ],
        "fieldMapAlwaysVisible": true,
        "physicalExecutionAllowed": false
      },
      {
        "id": "scout",
        "cards": [
          "mapa_talhao_ao_vivo",
          "talhao_fenologia_alvo",
          "fotos_amostras_observacoes_privadas",
          "clima_horario_coleta",
          "proxima_acao_sugerida"
        ],
        "fieldMapAlwaysVisible": true,
        "physicalExecutionAllowed": false
      },
      {
        "id": "generic",
        "cards": [
          "mapa_talhao_ao_vivo",
          "atividade_talhao_contexto",
          "parametros_operacionais",
          "clima_e_progresso"
        ],
        "fieldMapAlwaysVisible": true,
        "physicalExecutionAllowed": false
      }
    ],
    "sprayingPrivateCardFields": [
      "mistura_de_produtos_privada",
      "orientacoes_de_bula_epi_reentrada_carencia",
      "vazao_volume_faixa_velocidade_pressao_ou_altitude",
      "clima_estacao_mais_proxima_vento_umidade_temperatura_luminosidade",
      "area_pulverizada_volume_estimado_progresso",
      "abastecimento_rota_bordadura_alertas"
    ],
    "gate": "first_operation_session_with_map_weather_and_progress",
    "doneWhen": "sessao privada com operacao atribuida, mapa autorizado, clima, area estimada, timestamp e evidence_hash",
    "rawRecipeReturned": false,
    "rawCoordinatesReturned": false,
    "canStartMachineOrDrone": false,
    "physicalExecutionAllowed": false
  },
  "mapAndEvidencePolicy": {
    "offlineMapPolicy": "app mostra o ultimo mapa autorizado mesmo sem internet e sincroniza somente eventos privados quando reconectar",
    "geometryPriority": [
      "DJI Mavic 3M RTK recente e confiavel",
      "PlanetScope como satelite preferencial para evolucao temporal",
      "John Deere como contexto de maquina e operacao",
      "Copernicus/Sentinel como fallback publico/comparativo"
    ],
    "weatherPriority": [
      "Fundacao ABC para fazendas do Parana quando houver estacao proxima",
      "fonte publica mais proxima quando nao houver estacao validada",
      "Ciclus, Kestrel ou sensor proprio quando houver leitura real privada"
    ],
    "decisionUse": "eventos mobile entram como evidencia e conflito de contexto; recomendacoes seguem revisaveis e nao executam maquina, drone ou prescricao automaticamente",
    "rawCoordinatesReturned": false,
    "rawMediaReturned": false,
    "physicalExecutionAllowed": false
  },
  "nextActions": [
    {
      "id": "publish_private_pwa",
      "label": "Publicar PWA privada",
      "target": "Cloudflare Access / Railway",
      "status": "private_route_ready",
      "nextAction": "abrir https://api.foppeos.com/pwa com sessao Cloudflare Access e gerar evento consentido",
      "secretValuesReturned": false,
      "physicalExecutionAllowed": false
    },
    {
      "id": "capture_first_mobile_event",
      "label": "Capturar primeiro evento real",
      "target": "mobile_field_telemetry",
      "status": "waiting_first_consented_event",
      "nextAction": "validar evento consentido em modo trabalho e gravar somente referencias privadas",
      "secretValuesReturned": false,
      "physicalExecutionAllowed": false
    },
    {
      "id": "open_first_operation_session",
      "label": "Abrir primeira sessao operacional",
      "target": "mobile_operation_session",
      "status": "waiting_first_operation_draft",
      "nextAction": "criar sessao com mapa, clima, cards da atividade e progresso, sem acionar equipamento",
      "secretValuesReturned": false,
      "physicalExecutionAllowed": false
    }
  ],
  "safety": {
    "publicSanitized": true,
    "cloudOnly": true,
    "readOnly": true,
    "advisoryOnly": true,
    "consentRequired": true,
    "workModeRequired": true,
    "privateAppRequired": true,
    "secretValuesReturned": false,
    "rawProviderPayloadReturned": false,
    "rawFarmDataReturned": false,
    "rawCoordinatesReturned": false,
    "rawTrackReturned": false,
    "rawRecipeReturned": false,
    "rawMediaReturned": false,
    "rawPersonIdReturned": false,
    "rawDeviceIdReturned": false,
    "publicLocationMapAllowed": false,
    "covertTrackingAllowed": false,
    "disciplinaryAutomationAllowed": false,
    "payrollAutomationAllowed": false,
    "physicalExecutionAllowed": false,
    "automaticPhysicalExecutionAllowed": false,
    "canStartMachineOrDrone": false,
    "canWritePrescriptionAutomatically": false,
    "writesToProviderAllowed": false
  },
  "publicSanitized": true,
  "cloudOnly": true,
  "readOnly": true,
  "advisoryOnly": true,
  "consentRequired": true,
  "workModeRequired": true,
  "privateAppRequired": true,
  "secretValuesReturned": false,
  "rawProviderPayloadReturned": false,
  "rawFarmDataReturned": false,
  "rawCoordinatesReturned": false,
  "rawTrackReturned": false,
  "rawRecipeReturned": false,
  "rawMediaReturned": false,
  "rawPersonIdReturned": false,
  "rawDeviceIdReturned": false,
  "publicLocationMapAllowed": false,
  "covertTrackingAllowed": false,
  "disciplinaryAutomationAllowed": false,
  "payrollAutomationAllowed": false,
  "physicalExecutionAllowed": false,
  "automaticPhysicalExecutionAllowed": false,
  "canStartMachineOrDrone": false,
  "canWritePrescriptionAutomatically": false,
  "writesToProviderAllowed": false
}
