{
  "source_archive_sha256": "d6155e3a2968e6880a99b626be9528a4671a03e34209df480022d0231087fa04",
  "original_runtime_imported": false,
  "reuse": [
    {
      "source": "backend/routers/materials_catalogue.py",
      "lines": [
        70,
        86
      ],
      "source_file_sha256": "46b3efc0139dfbc81db191e00a84cb4a18dd405f8e7eed286fb1bf49585411f6",
      "destination": "backend/material_rules.py",
      "reuse": "_to_pence copied verbatim"
    },
    {
      "source": "frontend/src/components/admin/MaterialsCsvImport.jsx",
      "lines": [
        22,
        50
      ],
      "source_file_sha256": "1bd522ad5eb3dcfa260196114656e889ac1fdf55ab0cc074c30b48a1eff2638c",
      "destination": "frontend/src/material-csv.js",
      "reuse": "parseCsv adapted with validation and file bound"
    },
    {
      "source": "frontend/src/components/admin/MaterialsCsvImport.jsx",
      "lines": [
        53,
        68
      ],
      "source_file_sha256": "1bd522ad5eb3dcfa260196114656e889ac1fdf55ab0cc074c30b48a1eff2638c",
      "destination": "frontend/src/material-csv.js",
      "reuse": "GUESS_MAP and guessColumn retained with exports and formatting"
    },
    {
      "source": "frontend/src/components/admin/MaterialsCataloguePanel.jsx",
      "lines": [
        17,
        17
      ],
      "source_file_sha256": "fcdcb05c219b1dede5b040bb1760d2a0c3336a1554f93ea20d300748027ca250",
      "destination": "frontend/src/material-csv.js",
      "reuse": "isValidMoney retained"
    },
    {
      "source": "frontend/src/components/admin/JobTimePanel.jsx",
      "lines": [
        12,
        18
      ],
      "source_file_sha256": "be37733f7a3dae348c01956dda6fcf2b04f05b04062cee4fcd62559cca88794c",
      "destination": "frontend/src/workforce.jsx",
      "reuse": "formatTotal body retained as exported formatDuration"
    }
  ],
  "to_pence_function_sha256": "40629ed97aa5680d6f218e46a2cddf944518b328835bfa46b60bbbdcb3196856"
}
