{
  "artifact_sha256": {
    "geojson/2023-10-07_1340558773_Hiking%20Tour.geojson": "1bb8e29b65d82dca18996465f4c3ede70d5db92edbd71072a80f609b559eeffe",
    "geojson/2024-12-25_1992393658_Trasa%20przez_%20S%CC%81niez%CC%87ne%20Kot%C5%82y.geojson": "7961b578a5d7cd6543e0ca80cddc15b00a65ebfec2a1b4a99a8f703310162e9e",
    "geojson/2025-11-08_2674666064_Hike.geojson": "35058d95964f5bab3fedc23e6499104ab6bbd6b1a37c8ddd18ae083174d9f533",
    "geojson/2026-01-26_2763715809_Hike.geojson": "9ee9cd72cefe4594580c7a5babb58b27f0a56bb9cd5f96fda65b0db5bf091e8e",
    "geojson/2026-01-28_2766016543_Hike.geojson": "0dab2a85de77856d07376386ec7d341d3b0d2f509f5adc9b26235199ad69ad24",
    "geojson/2026-03-13_2825713115_Hike.geojson": "570cca5fa1d76d6b657ee111eac5e5e50770d1913e443aa29892718d01ee4a2b",
    "geojson/2026-03-14_2827125121_Hike.geojson": "dfd63d81d5c18eb8e746239d1ad38026a0e6a2ff2d6f975070fd2dac7be4e7c9",
    "geojson/tmb_day_01.geojson": "56292f5dccce5f81e39bd29e44b20a29bfdc0ea4e1745b40af97f56d1dcdf2c8",
    "geojson/tmb_day_02.geojson": "1d4ce8d68c304d443e904dde0135e4cb0a0487a5e8a37a34663994d851698353",
    "geojson/tmb_day_03.geojson": "9d13d2f5d2772904c2a4f3302d4bd6bc8669eee032acccb21548b711d2a6c93c",
    "geojson/tmb_day_04.geojson": "a51b14e895be6000011ba0e0ee37f25cbe80549c2d290e5bc5642244db31dee9",
    "geojson/tmb_day_05.geojson": "4786740508471bf78abd6a502a00e5681e5e30a6339d729a979bc54b912827ef",
    "geojson/tmb_day_06.geojson": "7513680b5ec819569ed4ae4e69aff4e7bf97b33887dc4c6f062246aa810e4a89",
    "geojson/tmb_day_07.geojson": "ed7ce7538988984c29307ceddb04bd90b55199a96e48d89c9cad908940831b39",
    "geojson/tmb_day_08.geojson": "8fcfade05e8979180403446ab22a874ee7224249b4d4b980e90e71ffe83fd17c",
    "geojson/tmb_day_09.geojson": "d9c01caa6dfdf74d5c19c7c191e894ae451183d878c6d741c95128cdc9e942c1",
    "routes_summary.csv": "cffc9a84c4ddd24e9ead372f677fe320dae357b6cfe067e395a043a8690c1b83",
    "tmb_routes_summary.csv": "4b65ca95e667f0c78fa74ed8e29094c72de1a0f98f9f2b7b67b8d4a88b70bc9f",
    "trail_points_master.csv": "bd011618c9c41273d1d0a907538a1789f77aff4b2c791b207b8bc436be26e9dd"
  },
  "calculation_policy": {
    "csv_float_decimals": 6,
    "distance": "haversine sphere, radius 6371008.8 m; no segment bridging",
    "grade_min_segment_distance_m": 1.0,
    "missing_elevation": "no interpolation; incomplete route gain/loss null",
    "smoothing": "centered median 5, clipped at segment/missing-elevation boundaries"
  },
  "pipeline_version": 1,
  "solar": "not generated; preserved v0.1 solar CSV is legacy/untrusted after timezone fix",
  "sources": [
    {
      "geojson": "geojson/tmb_day_01.geojson",
      "metadata": {
        "assigned_hike_date": "2026-07-02",
        "name": "TMB Day 1",
        "notes": "Source filename from preserved route summary. May GPX timestamps describe export/planning, not July hiking times.",
        "region": "Mont Blanc massif",
        "route_group": "tmb",
        "route_id": "tmb_day_01",
        "source_filename": "2026-05-24_2945090228_Tmb day 1 ver2.1.gpx",
        "timestamps_authoritative": false,
        "tmb_day": 1
      },
      "source_sha256": "ec97873dee61a97630355c58d8d460976b3659a528586ec5cce89d4273850d45"
    },
    {
      "geojson": "geojson/tmb_day_02.geojson",
      "metadata": {
        "assigned_hike_date": "2026-07-03",
        "name": "TMB Day 2",
        "notes": "Source filename from preserved route summary. May GPX timestamps describe export/planning, not July hiking times.",
        "region": "Mont Blanc massif",
        "route_group": "tmb",
        "route_id": "tmb_day_02",
        "source_filename": "2026-05-24_2943810647_Tmb day 2 ver2.1 (1)(1).gpx",
        "timestamps_authoritative": false,
        "tmb_day": 2
      },
      "source_sha256": "1bdd12ef41e8f82286a3ad7f3c911727f5aeebd409acc455d8ee11aa0e6735ec"
    },
    {
      "geojson": "geojson/tmb_day_03.geojson",
      "metadata": {
        "assigned_hike_date": "2026-07-04",
        "name": "TMB Day 3",
        "notes": "Source filename from preserved route summary. May GPX timestamps describe export/planning, not July hiking times.",
        "region": "Mont Blanc massif",
        "route_group": "tmb",
        "route_id": "tmb_day_03",
        "source_filename": "2026-05-09_2943823315_Tmb day 3 ver2.1.gpx",
        "timestamps_authoritative": false,
        "tmb_day": 3
      },
      "source_sha256": "286995134d818a56ca17d19e2e8de627dd58335966cad6fe6e5e7a589c57199b"
    },
    {
      "geojson": "geojson/tmb_day_04.geojson",
      "metadata": {
        "assigned_hike_date": "2026-07-05",
        "name": "TMB Day 4",
        "notes": "Source filename from preserved route summary. May GPX timestamps describe export/planning, not July hiking times.",
        "region": "Mont Blanc massif",
        "route_group": "tmb",
        "route_id": "tmb_day_04",
        "source_filename": "2026-05-09_2944080573_Tmb day 4 ver2.1.gpx",
        "timestamps_authoritative": false,
        "tmb_day": 4
      },
      "source_sha256": "62ac9caa46df25f741c92b0f6540f88647349a7ba8ef4f6fe1e46fa3e7c542da"
    },
    {
      "geojson": "geojson/tmb_day_05.geojson",
      "metadata": {
        "assigned_hike_date": "2026-07-06",
        "name": "TMB Day 5",
        "notes": "Source filename from preserved route summary. May GPX timestamps describe export/planning, not July hiking times.",
        "region": "Mont Blanc massif",
        "route_group": "tmb",
        "route_id": "tmb_day_05",
        "source_filename": "2026-05-09_2944097349_Tmb day 5 ver2.1.gpx",
        "timestamps_authoritative": false,
        "tmb_day": 5
      },
      "source_sha256": "14093c4faec29cbef781a1d2c96cc9b8311f98e7a921302cacec5a02871e6fa5"
    },
    {
      "geojson": "geojson/tmb_day_06.geojson",
      "metadata": {
        "assigned_hike_date": "2026-07-07",
        "name": "TMB Day 6",
        "notes": "Source filename from preserved route summary. May GPX timestamps describe export/planning, not July hiking times.",
        "region": "Mont Blanc massif",
        "route_group": "tmb",
        "route_id": "tmb_day_06",
        "source_filename": "2026-05-24_2944202729_Tmb day 6 ver2.1.gpx",
        "timestamps_authoritative": false,
        "tmb_day": 6
      },
      "source_sha256": "b9ebd23b8ce980b9fe029e209f92ff55c9cd154f9c7fc6c334db6cef800017e8"
    },
    {
      "geojson": "geojson/tmb_day_07.geojson",
      "metadata": {
        "assigned_hike_date": "2026-07-08",
        "name": "TMB Day 7",
        "notes": "Source filename from preserved route summary. May GPX timestamps describe export/planning, not July hiking times.",
        "region": "Mont Blanc massif",
        "route_group": "tmb",
        "route_id": "tmb_day_07",
        "source_filename": "2026-05-24_2944231997_Tmb day 7 ver2.1(1).gpx",
        "timestamps_authoritative": false,
        "tmb_day": 7
      },
      "source_sha256": "c59bc62936bb1f3644c1cac3830e6cd4b4c27cafc41cfba7afe7dcc5fb7ea168"
    },
    {
      "geojson": "geojson/tmb_day_08.geojson",
      "metadata": {
        "assigned_hike_date": "2026-07-09",
        "name": "TMB Day 8",
        "notes": "Source filename from preserved route summary. May GPX timestamps describe export/planning, not July hiking times.",
        "region": "Mont Blanc massif",
        "route_group": "tmb",
        "route_id": "tmb_day_08",
        "source_filename": "2026-05-10_2944845499_Tmb day 8 ver2.1.gpx",
        "timestamps_authoritative": false,
        "tmb_day": 8
      },
      "source_sha256": "d00808a69952cf988a014d756fc2a3cae9deaf0f900aee009abcfefd0b89bc4c"
    },
    {
      "geojson": "geojson/tmb_day_09.geojson",
      "metadata": {
        "assigned_hike_date": "2026-07-10",
        "name": "TMB Day 9",
        "notes": "Source filename from preserved route summary. May GPX timestamps describe export/planning, not July hiking times.",
        "region": "Mont Blanc massif",
        "route_group": "tmb",
        "route_id": "tmb_day_09",
        "source_filename": "2026-05-10_2945040969_Tmb day 9 ver2.1.gpx",
        "timestamps_authoritative": false,
        "tmb_day": 9
      },
      "source_sha256": "29b297717d200e1f0f5805515e8c5b400b1158b869989248c249c44e0edcdcc9"
    },
    {
      "geojson": "geojson/2023-10-07_1340558773_Hiking%20Tour.geojson",
      "metadata": {
        "assigned_hike_date": null,
        "name": "Hiking Tour",
        "notes": "Source filename from preserved route summary. Date in filename is not verified as an actual hiking date; region unverified.",
        "region": null,
        "route_group": "reference",
        "route_id": "2023-10-07_1340558773_Hiking Tour",
        "source_filename": "2023-10-07_1340558773_Hiking Tour.gpx",
        "timestamps_authoritative": false,
        "tmb_day": null
      },
      "source_sha256": "a2b2f196feefb86bedd6f4e75502d32cdb0c8c01131da67d582f4dc8306f2588"
    },
    {
      "geojson": "geojson/2024-12-25_1992393658_Trasa%20przez_%20S%CC%81niez%CC%87ne%20Kot%C5%82y.geojson",
      "metadata": {
        "assigned_hike_date": null,
        "name": "Trasa przez  Śnieżne Kotły",
        "notes": "Source filename from preserved route summary. Date in filename is not verified as an actual hiking date; region unverified.",
        "region": null,
        "route_group": "reference",
        "route_id": "2024-12-25_1992393658_Trasa przez_ Śnieżne Kotły",
        "source_filename": "2024-12-25_1992393658_Trasa przez_ Śnieżne Kotły.gpx",
        "timestamps_authoritative": false,
        "tmb_day": null
      },
      "source_sha256": "51479afdaf42917a5c4d23b5e1d10b22b43fd767492d0437baabab833dd008d0"
    },
    {
      "geojson": "geojson/2025-11-08_2674666064_Hike.geojson",
      "metadata": {
        "assigned_hike_date": null,
        "name": "Hike",
        "notes": "Source filename from preserved route summary. Date in filename is not verified as an actual hiking date; region unverified.",
        "region": null,
        "route_group": "reference",
        "route_id": "2025-11-08_2674666064_Hike",
        "source_filename": "2025-11-08_2674666064_Hike.gpx",
        "timestamps_authoritative": false,
        "tmb_day": null
      },
      "source_sha256": "65f834dee56a580adcc7e3a9079e2dd9b9f2122f76afd6e6a62373fd1c8b5daa"
    },
    {
      "geojson": "geojson/2026-01-26_2763715809_Hike.geojson",
      "metadata": {
        "assigned_hike_date": null,
        "name": "Hike",
        "notes": "Source filename from preserved route summary. Date in filename is not verified as an actual hiking date; region unverified.",
        "region": null,
        "route_group": "reference",
        "route_id": "2026-01-26_2763715809_Hike",
        "source_filename": "2026-01-26_2763715809_Hike.gpx",
        "timestamps_authoritative": false,
        "tmb_day": null
      },
      "source_sha256": "51b713fae78d67125f128542e5bad356a4b1cbf4db471cbcdb35458fbb9d7089"
    },
    {
      "geojson": "geojson/2026-01-28_2766016543_Hike.geojson",
      "metadata": {
        "assigned_hike_date": null,
        "name": "Hike",
        "notes": "Source filename from preserved route summary. Date in filename is not verified as an actual hiking date; region unverified.",
        "region": null,
        "route_group": "reference",
        "route_id": "2026-01-28_2766016543_Hike",
        "source_filename": "2026-01-28_2766016543_Hike.gpx",
        "timestamps_authoritative": false,
        "tmb_day": null
      },
      "source_sha256": "7ada5dc3e81b9c67e2c5393ac3f7962eb60f313e208a20786df087abab744db9"
    },
    {
      "geojson": "geojson/2026-03-13_2825713115_Hike.geojson",
      "metadata": {
        "assigned_hike_date": null,
        "name": "Hike",
        "notes": "Source filename from preserved route summary. Date in filename is not verified as an actual hiking date; region unverified.",
        "region": null,
        "route_group": "reference",
        "route_id": "2026-03-13_2825713115_Hike",
        "source_filename": "2026-03-13_2825713115_Hike.gpx",
        "timestamps_authoritative": false,
        "tmb_day": null
      },
      "source_sha256": "df55bce49ed1fbd214a2e215e17afee833d6a86fc0fb33e1791de517b7919745"
    },
    {
      "geojson": "geojson/2026-03-14_2827125121_Hike.geojson",
      "metadata": {
        "assigned_hike_date": null,
        "name": "Hike",
        "notes": "Source filename from preserved route summary. Date in filename is not verified as an actual hiking date; region unverified.",
        "region": null,
        "route_group": "reference",
        "route_id": "2026-03-14_2827125121_Hike",
        "source_filename": "2026-03-14_2827125121_Hike.gpx",
        "timestamps_authoritative": false,
        "tmb_day": null
      },
      "source_sha256": "3ea20694d1ddfd516f9339c8780631d3bc80eaeb5d1db75955bc3f48fd16fb4b"
    }
  ]
}
