{
  "_id": "6abfaf6599f7aa8c6aa5941f",
  "Package": "timesift",
  "Title": "Learn Predictive Representations of Time-Varying Data",
  "Version": "0.3.1",
  "Authors@R": "person(\"Gilles\", \"Colling\", email = \"gilles.colling051@gmail.com\",\nrole = c(\"aut\", \"cre\", \"cph\"),\ncomment = c(ORCID = \"0000-0003-3070-6066\"))",
  "Description": "Fits and compares representations of time-varying data\nagainst a prediction target. Given a table of targets and a\ntable of time-stamped series belonging to them, it builds each\ncandidate representation, from the record unreduced through a\ncalendar grain such as a week or a month to a lookback anchored\non each target, fits the requested learners on each, scores\nevery candidate on one set of held-out folds, and stacks the\nout-of-fold predictions into an ensemble. Calendar-aware\nbinning keeps a bin a real week or month rather than a fixed\nblock of hours. Learners, response heads and metrics are\nregistered rather than hard-coded, so adding one is a\nregistration and not a fork of the fitting code. The penalised\nbaseline is an elastic net fitted by cyclic coordinate descent\nalong a warm-started path, following Friedman, Hastie and\nTibshirani (2010) <doi:10.18637/jss.v033.i01>. The shipped\ndefault is presence-absence with a joint multi-label head\nscored by the true skill statistic of Allouche, Tsoar and\nKadmon (2006) <doi:10.1111/j.1365-2664.2006.01214.x>, the\nsetting used for species distribution modelling from\nmicroclimate loggers.",
  "License": "MIT + file LICENSE",
  "Encoding": "UTF-8",
  "Language": "en-GB",
  "URL": "https://gillescolling.com/timesift/,\nhttps://github.com/gcol33/timesift",
  "BugReports": "https://github.com/gcol33/timesift/issues",
  "VignetteBuilder": "knitr",
  "Config/testthat/edition": "3",
  "Config/roxygen2/version": "8.1.0",
  "NeedsCompilation": "yes",
  "Packaged": {
    "Date": "2026-10-02 13:11:49 UTC",
    "User": "root"
  },
  "Author": "Gilles Colling [aut, cre, cph] (ORCID:\n<https://orcid.org/0000-0003-3070-6066>)",
  "Maintainer": "Gilles Colling <gilles.colling051@gmail.com>",
  "Repository": "https://cran.r-universe.dev",
  "Date/Publication": "2026-10-02 12:53:17 UTC",
  "RemoteUrl": "https://github.com/cran/timesift",
  "RemoteRef": "HEAD",
  "RemoteSha": "0918701a1ffe26cc8cc43fb4560971eaffe83e62",
  "_user": "cran",
  "_type": "src",
  "_file": "timesift_0.3.1.tar.gz",
  "_fileid": "https://r2.ropensci.org/e6af79e2cfbdce7a2d07eef49ee723bc08265cf0577cdb3dd5be7e36b8e9f14e",
  "_filesize": 1207704,
  "_sha256": "e6af79e2cfbdce7a2d07eef49ee723bc08265cf0577cdb3dd5be7e36b8e9f14e",
  "_expires": "2027-01-10T13:19:31.000Z",
  "_created": "2026-10-02T13:11:49.000Z",
  "_published": "2026-10-02T13:19:33.840Z",
  "_jobs": [
    {
      "job": 110851909025,
      "time": 237,
      "config": "linux-devel-arm64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "11228186809"
    },
    {
      "job": 110851909128,
      "time": 276,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "11228272241"
    },
    {
      "job": 110851909068,
      "time": 262,
      "config": "linux-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11228331527"
    },
    {
      "job": 110851909099,
      "time": 287,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11228048448"
    },
    {
      "job": 110850397067,
      "time": 254,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11228386330"
    },
    {
      "job": 110851908966,
      "time": 142,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "11228056782"
    },
    {
      "job": 110851909165,
      "time": 399,
      "config": "windows-devel-arm64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "11228696244"
    },
    {
      "job": 110851909339,
      "time": 290,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "11228531487"
    },
    {
      "job": 110851909204,
      "time": 405,
      "config": "windows-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11227848342"
    },
    {
      "job": 110851909042,
      "time": 309,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11227583203"
    }
  ],
  "_host": "GitHub-Actions",
  "_buildurl": "https://github.com/r-universe/cran/actions/runs/37010943941",
  "_status": "success",
  "_upstream": "https://github.com/cran/timesift",
  "_commit": {
    "id": "0918701a1ffe26cc8cc43fb4560971eaffe83e62",
    "author": "Gilles Colling <gilles.colling051@gmail.com>",
    "committer": "cran-robot <csardi.gabor+cran@gmail.com>",
    "message": "version 0.3.1\n",
    "time": 1790945597
  },
  "_maintainer": {
    "name": "Gilles Colling",
    "email": "gilles.colling051@gmail.com",
    "login": "gcol33",
    "linkedin": "in/gilles-colling-0b3747306",
    "orcid": "0000-0003-3070-6066",
    "twitter": "@Gilles__Colling",
    "description": "Building tools for ecology in R, C++, and Rust.\nWhy did Microsoft have to buy it. Sadge :(",
    "uuid": 25009600
  },
  "_distro": "resolute",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.1",
      "role": "Depends"
    },
    {
      "package": "cpp11",
      "role": "LinkingTo"
    },
    {
      "package": "grDevices",
      "role": "Imports"
    },
    {
      "package": "graphics",
      "role": "Imports"
    },
    {
      "package": "rlang",
      "role": "Imports"
    },
    {
      "package": "stats",
      "role": "Imports"
    },
    {
      "package": "tidyselect",
      "version": ">= 1.2.0",
      "role": "Imports"
    },
    {
      "package": "tools",
      "role": "Imports"
    },
    {
      "package": "utils",
      "role": "Imports"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    },
    {
      "package": "torch",
      "role": "Suggests"
    },
    {
      "package": "glmnet",
      "role": "Suggests"
    },
    {
      "package": "ranger",
      "role": "Suggests"
    },
    {
      "package": "lme4",
      "role": "Suggests"
    },
    {
      "package": "lmerTest",
      "role": "Suggests"
    },
    {
      "package": "emmeans",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "spelling",
      "role": "Suggests"
    },
    {
      "package": "withr",
      "role": "Suggests"
    }
  ],
  "_owner": "cran",
  "_selfowned": false,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-40",
      "n": 1
    }
  ],
  "_tags": [
    {
      "name": "0.3.1",
      "date": "2026-10-02"
    }
  ],
  "_stars": 0,
  "_contributors": [
    {
      "user": "gcol33",
      "count": 1,
      "uuid": 25009600
    }
  ],
  "_userbio": {
    "uuid": 6899542,
    "type": "organization",
    "name": "cran",
    "followers": 630,
    "description": "Unofficial read-only mirror of all CRAN R packages"
  },
  "_downloads": {
    "count": 0,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/timesift"
  },
  "_devurl": "https://github.com/gcol33/timesift",
  "_pkgdown": "https://gillescolling.com/timesift/",
  "_topics": [
    "cpp"
  ],
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/manual.pdf",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "extra/timesift.html",
    "LICENSE"
  ],
  "_cranurl": false,
  "_exports": [
    "all_of",
    "any_of",
    "as_sift",
    "average_precision",
    "bind_channels",
    "build_representation",
    "calendar_channels",
    "cnn",
    "contains",
    "coverage",
    "cv",
    "decision_threshold",
    "digest_array",
    "elasticnet",
    "ends_with",
    "ensemble",
    "ensemble_combine",
    "ensemble_fit",
    "ensemble_weights",
    "everything",
    "feature_matrix",
    "fit_learner",
    "fold_map",
    "forest",
    "grain",
    "grain_contrasts",
    "grain_ladder",
    "grain_matrix",
    "grains",
    "grouped_cv",
    "implied_skill",
    "kappa_score",
    "learner",
    "learners",
    "lookback",
    "lookback_matrix",
    "lookbacks",
    "matches",
    "metrics",
    "mlp",
    "model_agreement",
    "multigrain",
    "native",
    "occlusion",
    "paired_contrast",
    "positive_weights",
    "read_cells",
    "read_folds",
    "read_response",
    "register_learner",
    "register_metric",
    "register_response",
    "rescnn",
    "responses",
    "roc_auc",
    "scorable_cells",
    "score_predictions",
    "select_grain",
    "simulate_records",
    "starts_with",
    "stepwise",
    "timesift",
    "timesift_set",
    "train_control",
    "tss",
    "tss_inflation",
    "where",
    "write_cells",
    "write_folds",
    "write_response"
  ],
  "_help": [
    {
      "page": "artifacts",
      "title": "Read and write the artifacts that cross the language boundary",
      "topics": [
        "artifacts",
        "read_cells",
        "read_folds",
        "read_response",
        "write_cells",
        "write_folds",
        "write_response"
      ]
    },
    {
      "page": "average_precision",
      "title": "Average precision",
      "topics": [
        "average_precision"
      ]
    },
    {
      "page": "bind_channels",
      "title": "Put channels side by side",
      "topics": [
        "bind_channels"
      ]
    },
    {
      "page": "build_representation",
      "title": "Build one representation for a set of targets",
      "topics": [
        "build_representation"
      ]
    },
    {
      "page": "calendar_channels",
      "title": "Where in the year, or the day, each bin sits",
      "topics": [
        "calendar_channels"
      ]
    },
    {
      "page": "combine",
      "title": "Combine learners, or representations, into a set",
      "topics": [
        "c.timesift_learner",
        "c.timesift_models",
        "c.timesift_representation",
        "c.timesift_sift",
        "combine"
      ]
    },
    {
      "page": "coverage",
      "title": "Which units reach which bins",
      "topics": [
        "coverage"
      ]
    },
    {
      "page": "cv",
      "title": "How the folds are drawn",
      "topics": [
        "cv",
        "grouped_cv"
      ]
    },
    {
      "page": "digest_array",
      "title": "The cross-language digest of a representation",
      "topics": [
        "digest_array"
      ]
    },
    {
      "page": "elasticnet",
      "title": "Penalised regression on the flattened representation",
      "topics": [
        "elasticnet"
      ]
    },
    {
      "page": "ensemble",
      "title": "How the candidates are combined",
      "topics": [
        "ensemble"
      ]
    },
    {
      "page": "ensemble_combine",
      "title": "Combine one prediction per member into one prediction",
      "topics": [
        "ensemble_combine"
      ]
    },
    {
      "page": "ensemble_fit",
      "title": "Fit the combiner on the out-of-fold predictions",
      "topics": [
        "ensemble_fit"
      ]
    },
    {
      "page": "ensemble_weights",
      "title": "The weights the combiner fitted",
      "topics": [
        "ensemble_weights"
      ]
    },
    {
      "page": "feature_matrix",
      "title": "Bring an already-reduced feature table into a ladder",
      "topics": [
        "feature_matrix"
      ]
    },
    {
      "page": "fit_learner",
      "title": "Fit one learner at one grain",
      "topics": [
        "fit_learner",
        "predict.timesift_fit"
      ]
    },
    {
      "page": "fold_map",
      "title": "Assign units to cross-validation folds",
      "topics": [
        "fold_map"
      ]
    },
    {
      "page": "forest",
      "title": "Random forest on the flattened representation",
      "topics": [
        "forest"
      ]
    },
    {
      "page": "grain_contrasts",
      "title": "Compare every grain against a learner's best one",
      "topics": [
        "grain_contrasts"
      ]
    },
    {
      "page": "grain_ladder",
      "title": "Fit at every grain and see where skill saturates",
      "topics": [
        "grain_ladder",
        "summary.timesift_ladder"
      ]
    },
    {
      "page": "grain_matrix",
      "title": "Reduce sensor series to a temporal grain",
      "topics": [
        "grain_matrix"
      ]
    },
    {
      "page": "grains",
      "title": "Several representations to run the same learners across",
      "topics": [
        "as_sift",
        "grains",
        "lookbacks"
      ]
    },
    {
      "page": "implied_skill",
      "title": "What population skill a reported level is consistent with",
      "topics": [
        "implied_skill"
      ]
    },
    {
      "page": "kappa_score",
      "title": "Cohen's kappa, and where two models disagree",
      "topics": [
        "decision_threshold",
        "kappa_score",
        "model_agreement"
      ]
    },
    {
      "page": "learner",
      "title": "Define a learner",
      "topics": [
        "learner"
      ]
    },
    {
      "page": "lookback_matrix",
      "title": "Reduce sensor series to a lookback anchored on each target",
      "topics": [
        "lookback_matrix"
      ]
    },
    {
      "page": "native",
      "title": "How a series becomes an array a learner reads",
      "topics": [
        "grain",
        "lookback",
        "multigrain",
        "native"
      ]
    },
    {
      "page": "occlusion",
      "title": "What part of the record a fitted model reads",
      "topics": [
        "occlusion",
        "occlusion.default",
        "occlusion.timesift",
        "occlusion.timesift_ladder"
      ]
    },
    {
      "page": "paired_contrast",
      "title": "Compare two arms cell by cell",
      "topics": [
        "paired_contrast"
      ]
    },
    {
      "page": "plot.timesift",
      "title": "Draw a run",
      "topics": [
        "plot.timesift"
      ]
    },
    {
      "page": "plot.timesift_ladder",
      "title": "Draw a ladder",
      "topics": [
        "plot.timesift_ladder"
      ]
    },
    {
      "page": "plot.timesift_selection",
      "title": "Draw how stable the choice of grain was",
      "topics": [
        "plot.timesift_selection"
      ]
    },
    {
      "page": "positive_weights",
      "title": "Case weights that balance a rare response",
      "topics": [
        "positive_weights"
      ]
    },
    {
      "page": "predict.timesift",
      "title": "Predict from a fitted timesift",
      "topics": [
        "predict.timesift"
      ]
    },
    {
      "page": "register_learner",
      "title": "Register a learner",
      "topics": [
        "learners",
        "register_learner"
      ]
    },
    {
      "page": "register_metric",
      "title": "Register a metric",
      "topics": [
        "metrics",
        "register_metric"
      ]
    },
    {
      "page": "register_response",
      "title": "Register a response head",
      "topics": [
        "register_response",
        "responses"
      ]
    },
    {
      "page": "roc_auc",
      "title": "The area under the ROC curve",
      "topics": [
        "roc_auc"
      ]
    },
    {
      "page": "scorable_cells",
      "title": "Which cells a score is defined on",
      "topics": [
        "scorable_cells"
      ]
    },
    {
      "page": "score_predictions",
      "title": "Score held-out predictions on the cells the mask allows",
      "topics": [
        "score_predictions"
      ]
    },
    {
      "page": "select_grain",
      "title": "Choose the grain inside the training data, and score the whole procedure",
      "topics": [
        "select_grain",
        "summary.timesift_selection"
      ]
    },
    {
      "page": "simulate_records",
      "title": "Simulate sensor records whose response acts at a known temporal grain",
      "topics": [
        "simulate_records"
      ]
    },
    {
      "page": "stepwise",
      "title": "Forward selection by AIC on the flattened representation",
      "topics": [
        "stepwise"
      ]
    },
    {
      "page": "timesift",
      "title": "Fit and compare representations of time-varying data",
      "topics": [
        "timesift"
      ]
    },
    {
      "page": "timesift_report",
      "title": "What a run found",
      "topics": [
        "print.timesift",
        "print.timesift_summary",
        "summary.timesift",
        "timesift_report"
      ]
    },
    {
      "page": "timesift_set",
      "title": "Several built representations of the same targets",
      "topics": [
        "timesift_set"
      ]
    },
    {
      "page": "torch_learners",
      "title": "Sequence encoders with a joint multi-label head",
      "topics": [
        "cnn",
        "mlp",
        "rescnn",
        "torch_learners"
      ]
    },
    {
      "page": "train_control",
      "title": "Training settings every neural learner reads",
      "topics": [
        "train_control"
      ]
    },
    {
      "page": "tss",
      "title": "The true skill statistic",
      "topics": [
        "tss"
      ]
    },
    {
      "page": "tss_inflation",
      "title": "How much a self-selected threshold inflates the reported level",
      "topics": [
        "tss_inflation"
      ]
    }
  ],
  "_readme": "https://github.com/cran/timesift/raw/HEAD/README.md",
  "_rundeps": [
    "cli",
    "cpp11",
    "glue",
    "lifecycle",
    "rlang",
    "tidyselect",
    "vctrs",
    "withr"
  ],
  "_sysdeps": [
    {
      "shlib": "libstdc++",
      "package": "libstdc++6",
      "source": "gcc",
      "version": "16-20260322-1ubuntu1",
      "name": "c++",
      "homepage": "http://gcc.gnu.org/",
      "description": "GNU Standard C++ Library v3"
    }
  ],
  "_vignettes": [
    {
      "source": "timesift.Rmd",
      "filename": "timesift.html",
      "title": "Choosing how a record is read",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Two tables",
        "One call",
        "Representations",
        "What a learner may be handed",
        "The split, and the cells a score is defined on",
        "Learners, and how they are trained",
        "The combination",
        "Reading a level honestly",
        "The arrays on their own",
        "An extreme day is not an extreme reading",
        "One grain at a time",
        "What was read"
      ],
      "created": "2026-10-02 12:53:17",
      "modified": "2026-10-02 12:53:17",
      "commits": 1
    },
    {
      "source": "reproducing-schrankogel.Rmd",
      "filename": "reproducing-schrankogel.html",
      "title": "Reproducing the Schrankogel grid",
      "engine": "knitr::rmarkdown",
      "headings": [
        "What the reproduction needs",
        "The contract",
        "The split and the cells",
        "The seven grains",
        "The two readings of a grain",
        "The channels the encoders are given",
        "The arms",
        "The grid",
        "The procedure the demonstration reports",
        "The environment a fitted encoder carries",
        "The grain contrast",
        "Running it",
        "What the reproduction is checked against"
      ],
      "created": "2026-10-02 12:53:17",
      "modified": "2026-10-02 12:53:17",
      "commits": 1
    }
  ],
  "_score": 3,
  "_indexed": false,
  "_nocasepkg": "timesift",
  "_universes": [
    "cran",
    "gcol33"
  ],
  "_indexurl": "https://gcol33.r-universe.dev/timesift",
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.3.1",
      "date": "2026-10-02T13:14:13.000Z",
      "distro": "resolute",
      "arch": "aarch64",
      "commit": "0918701a1ffe26cc8cc43fb4560971eaffe83e62",
      "fileid": "https://r2.ropensci.org/b39c79aa66e8de83f83fe85060125b6093d441ea6b9f2f5756e725dec3951d90",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/37010943941"
    },
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.3.1",
      "date": "2026-10-02T13:14:29.000Z",
      "distro": "resolute",
      "arch": "x86_64",
      "commit": "0918701a1ffe26cc8cc43fb4560971eaffe83e62",
      "fileid": "https://r2.ropensci.org/1c4cb7c127fb3aca01ab2c1b04cf3155d7d042a8cc25756f4a87b7b0026d6dde",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/37010943941"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.3.1",
      "date": "2026-10-02T13:14:27.000Z",
      "distro": "resolute",
      "arch": "aarch64",
      "commit": "0918701a1ffe26cc8cc43fb4560971eaffe83e62",
      "fileid": "https://r2.ropensci.org/b573828a27713fe390d8077d41c4119659f169a9227275381f3b8e7ec3bb427d",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/37010943941"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.3.1",
      "date": "2026-10-02T13:14:25.000Z",
      "distro": "resolute",
      "arch": "x86_64",
      "commit": "0918701a1ffe26cc8cc43fb4560971eaffe83e62",
      "fileid": "https://r2.ropensci.org/a8ded8a9f9582a97b0b8e8d69862e1957274a229505914a460cd43973f321680",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/37010943941"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.3.1",
      "date": "2026-10-02T13:14:32.000Z",
      "arch": "emscripten",
      "commit": "0918701a1ffe26cc8cc43fb4560971eaffe83e62",
      "fileid": "https://r2.ropensci.org/693bd89570385c3b7fbf57f1c0eea8641b2fa02b26392cc9d6fa7b42f9216bea",
      "status": "success",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/37010943941"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.3.1",
      "date": "2026-10-02T13:15:18.000Z",
      "arch": "aarch64",
      "commit": "0918701a1ffe26cc8cc43fb4560971eaffe83e62",
      "fileid": "https://r2.ropensci.org/c6c8aa7a7cd3482c425c3db2d333f7d93069c13b24d4ee221c01c6c00b68b3f9",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/37010943941"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.3.1",
      "date": "2026-10-02T13:13:24.000Z",
      "arch": "x86_64",
      "commit": "0918701a1ffe26cc8cc43fb4560971eaffe83e62",
      "fileid": "https://r2.ropensci.org/bb0860f40fec897971a002dd2cd1b2784554d83b691e94f9cf50829d4f0255e4",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/37010943941"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.3.1",
      "date": "2026-10-02T13:15:34.000Z",
      "arch": "aarch64",
      "commit": "0918701a1ffe26cc8cc43fb4560971eaffe83e62",
      "fileid": "https://r2.ropensci.org/e8e3d1e6c68eb9749230f38dbeec33ad955ab31b4e28c5cb09a5533b3a0bf597",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/37010943941"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.3.1",
      "date": "2026-10-02T13:13:14.000Z",
      "arch": "x86_64",
      "commit": "0918701a1ffe26cc8cc43fb4560971eaffe83e62",
      "fileid": "https://r2.ropensci.org/9d146a09f4d26f72bf44cf30c184de6072ed8e07f4cb814f51aefecda9f9e0f1",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/37010943941"
    }
  ]
}