{
  "ok": true,
  "app_id": "fm.libro.librofm",
  "comparable": true,
  "comparison_status": "comparable",
  "regressed": false,
  "grade_delta": "A ← B",
  "score_delta": 1,
  "from": {
    "scan_id": "06b076c3-3abe-4898-9bd5-0a295acd5c06",
    "version": "7.38.2",
    "analysis": {
      "issues": [],
      "stages": {
        "pii": "complete",
        "sbom": "complete",
        "signing": "certificate_parsed",
        "strings": "complete",
        "manifest": "complete"
      },
      "status": "complete",
      "grading": {
        "policy": "static-coverage-v1",
        "blockers": [],
        "eligible": true
      },
      "timings_ms": {
        "total": 26909.893,
        "harvest": 6032.916999999988,
        "detectors": 19685.911999999258
      },
      "bytes_total": 106258530,
      "bytes_scanned": 106258530,
      "bytes_skipped": 0,
      "files_processed": 2510,
      "coverage_version": 2,
      "string_encodings": [
        "ascii",
        "utf16le"
      ],
      "signature_validation": "not_performed"
    },
    "provenance": {
      "mode": "static",
      "artifacts": [
        {
          "name": "base.apk",
          "sha256": "c1bb925f43368892af587540c7d1180ea24feb0da5d3df539b8d06ee19dbaa05"
        },
        {
          "name": "config.arm64_v8a.apk",
          "sha256": "431e69065f782295e2909b34ed84fe13c3fd84007bea3d1c4075980c00cf3467"
        },
        {
          "name": "config.en.apk",
          "sha256": "caaf816c080309d30ce7d4d5cc07fe32929063ae51f29f353691478c8fd1aeb0"
        },
        {
          "name": "config.xxhdpi.apk",
          "sha256": "3336ac6b59898054f7f8ba2332d377ded531e1de8bd8cba52f6928c47a038c53"
        }
      ],
      "ruleset_sha256": "6627311253eb54bc361d5dd9a0abc2a0fe556e390d6b2031bca75e1800928ccd"
    },
    "grade": "B",
    "score": 89,
    "scanned_at": "2026-09-23T18:27:10.648Z"
  },
  "to": {
    "scan_id": "733d9f80-5144-4837-ae67-41a232b2336a",
    "version": "7.39.1",
    "analysis": {
      "issues": [],
      "stages": {
        "pii": "complete",
        "sbom": "complete",
        "signing": "certificate_parsed",
        "strings": "complete",
        "manifest": "complete"
      },
      "status": "complete",
      "grading": {
        "policy": "static-coverage-v1",
        "blockers": [],
        "eligible": true
      },
      "timings_ms": {
        "total": 25192.961,
        "harvest": 5526.635999999994,
        "detectors": 18473.637000000024
      },
      "bytes_total": 106446955,
      "bytes_scanned": 106446955,
      "bytes_skipped": 0,
      "files_processed": 2507,
      "coverage_version": 2,
      "string_encodings": [
        "ascii",
        "utf16le"
      ],
      "signature_validation": "not_performed"
    },
    "provenance": {
      "mode": "static",
      "artifacts": [
        {
          "name": "base.apk",
          "sha256": "596bfc8886a7ad7d31cf48fff279867a0ef4381b88a40bd5284d7fdc6df9a732"
        },
        {
          "name": "config.arm64_v8a.apk",
          "sha256": "db3031afc5956fe417b628c8e59e863da9f6552e0d30072d0ff7ff0237af01bd"
        },
        {
          "name": "config.en.apk",
          "sha256": "92b6722b7c45e99d12ac85095eec8e7e9de255ee007abed00d0a6c9acc509817"
        },
        {
          "name": "config.xxhdpi.apk",
          "sha256": "a9fabd47e39153186c09ed718e91237f26947afa7f10eb0d443e97bd7eb5b0bf"
        }
      ],
      "ruleset_sha256": "a4c4120389ccc4b44afa23b5786f6b8d2bf3dc47ca546355bb3ef6da4a54b513"
    },
    "grade": "A",
    "score": 90,
    "scanned_at": "2026-09-30T19:20:58.237Z"
  },
  "findings": {
    "added": [],
    "removed": [],
    "persisting_count": 8,
    "added_by_sev": {
      "critical": 0,
      "high": 0,
      "medium": 0,
      "low": 0
    },
    "removed_by_sev": {
      "critical": 0,
      "high": 0,
      "medium": 0,
      "low": 0
    }
  },
  "trackers": {
    "added": [
      "Google Analytics for Firebase"
    ],
    "removed": [
      "Google AdServices"
    ]
  },
  "known_vulns": {
    "from": 0,
    "to": 0,
    "delta": 0,
    "from_recorded": true,
    "to_recorded": true
  }
}