{
  "_id": "6a105452acfb0bcc41ca209d",
  "Package": "fishmechr",
  "Title": "Computes Kinematic Parameters for Swimming",
  "Version": "1.0.3.9000",
  "Authors@R": "c(\nperson(\"Eric\", \"Tytell\", , \"eric.tytell@tufts.edu\", role = c(\"aut\", \"cre\", \"cph\"),\ncomment = c(ORCID = \"0000-0002-6603-9448\")),\nperson(\"Olivia\", \"Hawkins\", , \"olivia.hawkins@tufts.edu\", role = c(\"ctb\"),\ncomment = c(ORCID = \"0000-0001-9373-5919\")),\nperson(\"National Science Foundation\", role = \"fnd\"))",
  "Description": "Processes tracked points on a fish's body and uses them to\nestimate standard kinematic parameters such as tail beat\namplitude and frequency, body wavelength and wavespeed. As part\nof this, it also estimates the location of the center of mass\nand the principal swimming axis. The techniques are described\nin detail in the main vignette and are published in the book\nchapter Hawkins, O.H., Di Santo, V., Tytell, Eric.D., 2025.\n\"Biomechanics and energetics of swimming\", in: Higham, T.E.,\nLauder, G.V. (Eds.), Integrative Fish Biomechanics, Fish\nPhysiology. Academic Press. <doi:10.1016/bs.fp.2025.06.003>.",
  "License": "CC BY 4.0",
  "Encoding": "UTF-8",
  "Roxygen": "list(markdown = TRUE)",
  "RoxygenNote": "7.3.3",
  "LazyData": "true",
  "VignetteBuilder": "knitr",
  "Config/testthat/edition": "3",
  "URL": "https://tytell.github.io/fishmechr/,\nhttps://github.com/tytell/fishmechr",
  "BugReports": "https://github.com/tytell/fishmechr/issues",
  "Config/pak/sysreqs": "libicu-dev",
  "Repository": "https://tytell.r-universe.dev",
  "Date/Publication": "2026-04-09 13:26:16 UTC",
  "RemoteUrl": "https://github.com/tytell/fishmechr",
  "RemoteRef": "HEAD",
  "RemoteSha": "1f3d762db08d70afbb248ec5a7d1f4bd78b49fe2",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-05-09 08:33:20 UTC",
    "User": "root"
  },
  "Author": "Eric Tytell [aut, cre, cph] (ORCID:\n<https://orcid.org/0000-0002-6603-9448>),\nOlivia Hawkins [ctb] (ORCID: <https://orcid.org/0000-0001-9373-5919>),\nNational Science Foundation [fnd]",
  "Maintainer": "Eric Tytell <eric.tytell@tufts.edu>",
  "MD5sum": "48b15f365fd3f9fc62d57fb02731e516",
  "_user": "tytell",
  "_type": "src",
  "_file": "fishmechr_1.0.3.9000.tar.gz",
  "_fileid": "66e81453382d135dccdd7bd44e745c0b2b926428c3d905d9db5d2e693c955c98",
  "_filesize": 6137480,
  "_sha256": "66e81453382d135dccdd7bd44e745c0b2b926428c3d905d9db5d2e693c955c98",
  "_created": "2026-05-09T08:33:20.000Z",
  "_published": "2026-05-22T13:04:18.172Z",
  "_distro": "noble",
  "_jobs": [
    {
      "job": 77385100840,
      "time": 137,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "6894352601"
    },
    {
      "job": 77385100758,
      "time": 142,
      "config": "linux-release-x86_64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "6894353192"
    },
    {
      "job": 77385101098,
      "time": 225,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "6894355991"
    },
    {
      "job": 77385100505,
      "time": 153,
      "config": "macos-release-arm64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "6894352078"
    },
    {
      "job": 77385100391,
      "time": 217,
      "config": "source",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "6894338966"
    },
    {
      "job": 77385100303,
      "time": 104,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7161163430"
    },
    {
      "job": 77385101052,
      "time": 92,
      "config": "windows-devel",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "6894347902"
    },
    {
      "job": 77385100956,
      "time": 83,
      "config": "windows-oldrel",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "6894347148"
    },
    {
      "job": 77385101060,
      "time": 102,
      "config": "windows-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "6894348896"
    }
  ],
  "_buildurl": "https://github.com/r-universe/tytell/actions/runs/25596549053",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_upstream": "https://github.com/tytell/fishmechr",
  "_commit": {
    "id": "1f3d762db08d70afbb248ec5a7d1f4bd78b49fe2",
    "author": "Eric Tytell <eric.tytell@tufts.edu>",
    "committer": "Eric Tytell <eric.tytell@tufts.edu>",
    "message": "Increment version number to 1.0.3.9000\n",
    "time": 1775741176
  },
  "_maintainer": {
    "name": "Eric Tytell",
    "email": "eric.tytell@tufts.edu",
    "login": "tytell",
    "uuid": 3587050,
    "orcid": "0000-0002-6603-9448"
  },
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.4.0",
      "role": "Depends"
    },
    {
      "package": "assertthat",
      "role": "Imports"
    },
    {
      "package": "cli",
      "role": "Imports"
    },
    {
      "package": "dplyr",
      "role": "Imports"
    },
    {
      "package": "gsignal",
      "role": "Imports"
    },
    {
      "package": "pracma",
      "role": "Imports"
    },
    {
      "package": "rlang",
      "role": "Imports"
    },
    {
      "package": "tibble",
      "role": "Imports"
    },
    {
      "package": "tidyr",
      "role": "Imports"
    },
    {
      "package": "tidyselect",
      "role": "Imports"
    },
    {
      "package": "ggplot2",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "patchwork",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    }
  ],
  "_owner": "tytell",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2025-31",
      "n": 2
    },
    {
      "week": "2025-33",
      "n": 7
    },
    {
      "week": "2025-34",
      "n": 9
    },
    {
      "week": "2026-11",
      "n": 1
    },
    {
      "week": "2026-12",
      "n": 5
    },
    {
      "week": "2026-13",
      "n": 4
    },
    {
      "week": "2026-15",
      "n": 2
    }
  ],
  "_tags": [
    {
      "name": "v1.0.2",
      "date": "2026-03-13"
    },
    {
      "name": "v1.0.3",
      "date": "2026-03-24"
    }
  ],
  "_stars": 0,
  "_contributors": [
    {
      "user": "tytell",
      "count": 149,
      "uuid": 3587050
    }
  ],
  "_userbio": {
    "uuid": 3587050,
    "type": "user",
    "name": "tytell"
  },
  "_downloads": {
    "count": 493,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/fishmechr"
  },
  "_devurl": "https://github.com/tytell/fishmechr",
  "_pkgdown": "https://tytell.github.io/fishmechr/",
  "_searchresults": 4,
  "_rbuild": "4.6.0",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/fishmechr.html",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "manual.pdf"
  ],
  "_homeurl": "https://github.com/tytell/fishmechr",
  "_realowner": "tytell",
  "_cranurl": true,
  "_releases": [
    {
      "version": "1.0.3",
      "date": "2026-03-29"
    }
  ],
  "_exports": [
    "apply_filter",
    "arclength",
    "build_filter",
    "curvature",
    "deriv",
    "find_gaps_df",
    "get_body_cycle_numbers_df",
    "get_cycle_numbers",
    "get_frequency",
    "get_midline_center_df",
    "get_primary_swimming_axis",
    "get_primary_swimming_axis_df",
    "get_volume",
    "get_wavelength",
    "hilbert_phase",
    "interpolate_peak_location",
    "interpolate_points_df",
    "interpolate_points_frame",
    "interpolate_width",
    "peak_phase",
    "pivot_kinematics_longer",
    "skip_na",
    "smooth_point",
    "smooth_points_df"
  ],
  "_datasets": [
    {
      "name": "fishwidth",
      "title": "Fish body width profiles",
      "object": "fishwidth",
      "class": [
        "tbl_df",
        "tbl",
        "data.frame"
      ],
      "fields": [
        "s",
        "eelwidth",
        "ammowidth"
      ],
      "rows": 20,
      "table": true,
      "tojson": true
    },
    {
      "name": "lampreydata",
      "title": "Lamprey midline data",
      "object": "lampreydata",
      "class": [
        "data.frame"
      ],
      "fields": [
        "t",
        "frame",
        "point",
        "mxmm",
        "mymm"
      ],
      "rows": 1600,
      "table": true,
      "tojson": true
    },
    {
      "name": "xmucosusdata",
      "title": "Prickleback tracking data",
      "object": "xmucosusdata",
      "class": [
        "spec_tbl_df",
        "tbl_df",
        "tbl",
        "data.frame"
      ],
      "fields": [
        "track",
        "frame_idx",
        "instance.score",
        "Snout.x",
        "Snout.y",
        "Snout.score",
        "BP1.x",
        "BP1.y",
        "BP1.score",
        "BP2.x",
        "BP2.y",
        "BP2.score",
        "BP3.x",
        "BP3.y",
        "BP3.score",
        "BP4.x",
        "BP4.y",
        "BP4.score",
        "BP5.x",
        "BP5.y",
        "BP5.score",
        "BP6.x",
        "BP6.y",
        "BP6.score",
        "Tail.x",
        "Tail.y",
        "Tail.score"
      ],
      "rows": 711,
      "table": true,
      "tojson": true
    },
    {
      "name": "zebrafish_shape",
      "title": "Zebrafish body shape",
      "object": "zebrafish_shape",
      "class": [
        "data.frame"
      ],
      "fields": [
        "width",
        "height",
        "s"
      ],
      "rows": 20,
      "table": true,
      "tojson": true
    },
    {
      "name": "zfish_goodframes",
      "title": "Zebrafish good frame ranges",
      "object": "zfish_goodframes",
      "class": [
        "spec_tbl_df",
        "tbl_df",
        "tbl",
        "data.frame"
      ],
      "fields": [
        "File",
        "Start",
        "End",
        "Block"
      ],
      "rows": 8,
      "table": true,
      "tojson": true
    },
    {
      "name": "zfishdata",
      "title": "Zebrafish keypoint tracking data",
      "object": "zfishdata",
      "class": [
        "tbl_df",
        "tbl",
        "data.frame"
      ],
      "fields": [
        "fn",
        "track",
        "frame_idx",
        "instance.score",
        "left_pec_fin_tip.x",
        "left_pec_fin_tip.y",
        "left_pec_fin_tip.score",
        "right_eye.x",
        "right_eye.y",
        "right_eye.score",
        "left_eye.x",
        "left_eye.y",
        "left_eye.score",
        "right_pec_fin_base.x",
        "right_pec_fin_base.y",
        "right_pec_fin_base.score",
        "anus.x",
        "anus.y",
        "anus.score",
        "hyoid.x",
        "hyoid.y",
        "hyoid.score",
        "dorsal_caudal.x",
        "dorsal_caudal.y",
        "dorsal_caudal.score",
        "peduncle.x",
        "peduncle.y",
        "peduncle.score",
        "pelvic_fin_base.x",
        "pelvic_fin_base.y",
        "pelvic_fin_base.score",
        "ventral_caudal.x",
        "ventral_caudal.y",
        "ventral_caudal.score",
        "right_pec_fin_tip.x",
        "right_pec_fin_tip.y",
        "right_pec_fin_tip.score",
        "left_pec_fin_base.x",
        "left_pec_fin_base.y",
        "left_pec_fin_base.score",
        "snout.x",
        "snout.y",
        "snout.score",
        "id",
        "speed",
        "datetime"
      ],
      "rows": 1056,
      "table": true,
      "tojson": true
    }
  ],
  "_help": [
    {
      "page": "apply_filter",
      "title": "Apply a filter constructed with build_filter",
      "topics": [
        "apply_filter"
      ]
    },
    {
      "page": "arclength",
      "title": "Calculate arc length along a 2D curve",
      "concept": [
        "pipeline"
      ],
      "topics": [
        "arclength"
      ]
    },
    {
      "page": "build_filter",
      "title": "Constructs a smoothing filter",
      "topics": [
        "build_filter"
      ]
    },
    {
      "page": "curvature",
      "title": "Estimates curvature for a single curve",
      "concept": [
        "pipeline"
      ],
      "topics": [
        "curvature"
      ]
    },
    {
      "page": "deriv",
      "title": "Estimate first or second derivatives for dy/dx.",
      "topics": [
        "deriv"
      ]
    },
    {
      "page": "find_gaps_df",
      "title": "Find gaps in a data series",
      "topics": [
        "find_gaps_df"
      ]
    },
    {
      "page": "fishwidth",
      "title": "Fish body width profiles",
      "topics": [
        "fishwidth"
      ]
    },
    {
      "page": "get_body_cycle_numbers_df",
      "title": "Gets oscillation cycle numbers for a midline data set",
      "concept": [
        "pipeline"
      ],
      "topics": [
        "get_body_cycle_numbers_df"
      ]
    },
    {
      "page": "get_cycle_numbers",
      "title": "Gets cycle numbers from a phase variable",
      "topics": [
        "get_cycle_numbers"
      ]
    },
    {
      "page": "get_frequency",
      "title": "Estimates the cycle frequency based on time and phase",
      "concept": [
        "pipeline"
      ],
      "topics": [
        "get_frequency"
      ]
    },
    {
      "page": "get_midline_center_df",
      "title": "Gets the center of a midline for many midlines in a data frame",
      "concept": [
        "pipeline"
      ],
      "topics": [
        "get_midline_center_df"
      ]
    },
    {
      "page": "get_primary_swimming_axis",
      "title": "Gets the main swimming axis from a midline",
      "topics": [
        "get_primary_swimming_axis"
      ]
    },
    {
      "page": "get_primary_swimming_axis_df",
      "title": "Gets the primary swimming axis for many midlines",
      "concept": [
        "pipeline"
      ],
      "topics": [
        "get_primary_swimming_axis_df"
      ]
    },
    {
      "page": "get_volume",
      "title": "Gets the volume of segments of a cylindrical body with elliptical cross section",
      "topics": [
        "get_volume"
      ]
    },
    {
      "page": "get_wavelength",
      "title": "Computes the body wavelength based on the phase at each point and the arc length",
      "concept": [
        "pipeline"
      ],
      "topics": [
        "get_wavelength"
      ]
    },
    {
      "page": "hilbert_phase",
      "title": "Compute phase of an oscillation using the Hilbert transform",
      "concept": [
        "pipeline"
      ],
      "topics": [
        "hilbert_phase"
      ]
    },
    {
      "page": "interpolate_peak_location",
      "title": "Interpolate the location of a peak based on three points",
      "topics": [
        "interpolate_peak_location"
      ]
    },
    {
      "page": "interpolate_points_df",
      "title": "Interpolates and smooths a 2D curve at new arc length",
      "concept": [
        "pipeline"
      ],
      "topics": [
        "interpolate_points_df"
      ]
    },
    {
      "page": "interpolate_points_frame",
      "title": "Interpolates x and y points on a curve to different arc lengths",
      "topics": [
        "interpolate_points_frame"
      ]
    },
    {
      "page": "interpolate_width",
      "title": "Interpolates and scales fish body width",
      "concept": [
        "pipeline"
      ],
      "topics": [
        "interpolate_width"
      ]
    },
    {
      "page": "lampreydata",
      "title": "Lamprey midline data",
      "topics": [
        "lampreydata"
      ]
    },
    {
      "page": "peak_phase",
      "title": "Compute phase of an oscillation by locating peaks and zero crossings.",
      "concept": [
        "pipeline"
      ],
      "topics": [
        "peak_phase"
      ]
    },
    {
      "page": "pivot_kinematics_longer",
      "title": "Pivots a kinematics dataset into long format",
      "topics": [
        "pivot_kinematics_longer"
      ]
    },
    {
      "page": "skip_na",
      "title": "Skip NAs when running a function on a vector",
      "topics": [
        "skip_na"
      ]
    },
    {
      "page": "smooth_point",
      "title": "Applies a smoothing spline to a data series, potentially with gaps",
      "topics": [
        "smooth_point"
      ]
    },
    {
      "page": "smooth_points_df",
      "title": "Smooths locations of points over time",
      "topics": [
        "smooth_points_df"
      ]
    },
    {
      "page": "xmucosusdata",
      "title": "Prickleback tracking data",
      "topics": [
        "xmucosusdata"
      ]
    },
    {
      "page": "zebrafish_shape",
      "title": "Zebrafish body shape",
      "topics": [
        "zebrafish_shape"
      ]
    },
    {
      "page": "zfish_goodframes",
      "title": "Zebrafish good frame ranges",
      "topics": [
        "zfish_goodframes"
      ]
    },
    {
      "page": "zfishdata",
      "title": "Zebrafish keypoint tracking data",
      "topics": [
        "zfishdata"
      ]
    }
  ],
  "_readme": "https://github.com/tytell/fishmechr/raw/HEAD/README.md",
  "_rundeps": [
    "assertthat",
    "cli",
    "cpp11",
    "dplyr",
    "generics",
    "glue",
    "gsignal",
    "lifecycle",
    "magrittr",
    "pillar",
    "pkgconfig",
    "pracma",
    "purrr",
    "R6",
    "Rcpp",
    "rlang",
    "stringi",
    "stringr",
    "tibble",
    "tidyr",
    "tidyselect",
    "utf8",
    "vctrs",
    "withr"
  ],
  "_vignettes": [
    {
      "source": "fishmechr.Rmd",
      "filename": "fishmechr.html",
      "title": "fishmechr",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Computing kinematic parameters",
        "1. Compute arc length",
        "2. Interpolate points for a consistent position",
        "3. Estimate a center location",
        "4. Estimate curvature or lateral excursion",
        "Curvature",
        "Lateral excursion",
        "5. Estimate phase",
        "Smoothing",
        "Use the Hilbert transform",
        "Numerical considerations for the Hilbert transform",
        "Detect peaks and zero crossings",
        "6. Use the phase to estimate frequency and wavelength",
        "7. Quantify swimming parameters on a cycle-by-cycle basis",
        "Example analysis of a lamprey data set",
        "Data structure",
        "Kinematics process",
        "Compute arc length",
        "Get the width",
        "Compute the center of mass",
        "Compute curvature",
        "Get excursion",
        "Phase",
        "Smooth the data again",
        "Example phase figure",
        "Frequency",
        "Body wavelength",
        "Methods of estimating wavelength",
        "Amplitude"
      ],
      "created": "2024-07-01 15:50:11",
      "modified": "2025-08-20 19:00:41",
      "commits": 25
    },
    {
      "source": "prickleback_swimming.Rmd",
      "filename": "prickleback_swimming.html",
      "title": "prickleback_swimming",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Rearrange the data",
        "Process the data",
        "Get arc length",
        "Interpolate to constant arc length",
        "Interpolate the width",
        "Get the center",
        "Get the swimming axis"
      ],
      "created": "2024-09-10 21:19:53",
      "modified": "2025-08-20 19:00:41",
      "commits": 2
    },
    {
      "source": "process_sleap_data.Rmd",
      "filename": "process_sleap_data.html",
      "title": "process_sleap_data",
      "engine": "knitr::rmarkdown",
      "headings": [],
      "created": "2025-01-17 22:51:02",
      "modified": "2026-03-24 17:00:56",
      "commits": 8
    }
  ],
  "_score": 5.021189299069938,
  "_indexed": true,
  "_nocasepkg": "fishmechr",
  "_universes": [
    "tytell"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "1.0.3.9000",
      "date": "2026-05-09T08:35:34.000Z",
      "distro": "noble",
      "commit": "1f3d762db08d70afbb248ec5a7d1f4bd78b49fe2",
      "fileid": "23dda8494f2aaa1c0aa7491296281398c4279bed5ec21257d55ca25698b7acb9",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/tytell/actions/runs/25596549053"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "1.0.3.9000",
      "date": "2026-05-09T08:35:40.000Z",
      "distro": "noble",
      "commit": "1f3d762db08d70afbb248ec5a7d1f4bd78b49fe2",
      "fileid": "06896843de552f4f0b52b84c6b94186efdece45ff0c5d69470e970259b5cc9ad",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/tytell/actions/runs/25596549053"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "1.0.3.9000",
      "date": "2026-05-09T08:36:09.000Z",
      "commit": "1f3d762db08d70afbb248ec5a7d1f4bd78b49fe2",
      "fileid": "2923c4acebed73d7fb38c40c0eda6c0a2a171d79eeeec42a9fea1e2c5873582e",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/tytell/actions/runs/25596549053"
    },
    {
      "r": "4.6.0",
      "os": "mac",
      "version": "1.0.3.9000",
      "date": "2026-05-09T08:35:32.000Z",
      "commit": "1f3d762db08d70afbb248ec5a7d1f4bd78b49fe2",
      "fileid": "aeed236bd2b54cd6d1005ebf9f81894b9eb42bacf711ec1772403f00277e020e",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/tytell/actions/runs/25596549053"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "1.0.3.9000",
      "date": "2026-05-09T08:34:41.000Z",
      "commit": "1f3d762db08d70afbb248ec5a7d1f4bd78b49fe2",
      "fileid": "1a5978aed3edc48dac3a5179f093a5fa6f1e37101110011980c4d0b2f35f6682",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/tytell/actions/runs/25596549053"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "1.0.3.9000",
      "date": "2026-05-09T08:34:36.000Z",
      "commit": "1f3d762db08d70afbb248ec5a7d1f4bd78b49fe2",
      "fileid": "6180c9bda7c56fbe4414bd9f3d43d5759330be20c402f0682f96e8673bbd9b26",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/tytell/actions/runs/25596549053"
    },
    {
      "r": "4.6.0",
      "os": "win",
      "version": "1.0.3.9000",
      "date": "2026-05-09T08:34:53.000Z",
      "commit": "1f3d762db08d70afbb248ec5a7d1f4bd78b49fe2",
      "fileid": "4982b94c5e94c6ab348cfbf7566c90df3c81069f14897bdcc06fecde886c7675",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/tytell/actions/runs/25596549053"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "1.0.3.9000",
      "date": "2026-05-22T13:03:57.000Z",
      "commit": "1f3d762db08d70afbb248ec5a7d1f4bd78b49fe2",
      "fileid": "135ba33fbf382626a5efb1d8764b6179f2ad416db6e57a539b87f5845e9acd59",
      "status": "success",
      "buildurl": "https://github.com/r-universe/tytell/actions/runs/25596549053"
    }
  ]
}