{ pkgs, ... }:

let
  rev = "v0.13.0";
  src = (pkgs.fetchFromGitHub {
    owner = "martinvonz";
    repo = "jj";
    inherit rev;
    hash = "sha256-UFe4hVzn/jN22KtTuTcyNpseJdgIkmh9/eAJdSObfYU=";
  }) // {
    shortRev = rev;
  };
  flake-utils-src = (pkgs.fetchFromGitHub {
    owner = "numtide";
    repo = "flake-utils";
    rev = "v1.0.0";
    sha256 = "0hynd4rbkbplxzl2a8wb3r8z0h17z2alhhdsam78g3vgzpzg0d43";
  });
  flake-utils = (import "${flake-utils-src}/flake.nix").outputs {
    self = flake-utils;
  };
  rust-overlay-src = (pkgs.fetchFromGitHub {
    owner = "oxalica";
    repo = "rust-overlay";
    rev = "b520a3889b24aaf909e287d19d406862ced9ffc9";
    sha256 = "1s20kv0yp5hmydkz9wmm1i4sbgvk9ws8dxw76ypjsckmgjm1sahw";
  });
  rust-overlay = (import "${rust-overlay-src}/flake.nix").outputs {
    self = rust-overlay;
    nixpkgs = pkgs;
    flake-utils = flake-utils;
  };
  flake = (import "${src}/flake.nix").outputs {
    self = flake;
    nixpkgs = pkgs.path;
    flake-utils = flake-utils;
    rust-overlay = rust-overlay;
  };
  fromFlake = (flake.overlays.default pkgs pkgs).jujutsu;
in
fromFlake