I do something like that (closed repository, sorry). I have a syntaxdot flake which has a nixpkgs and utils inputs. Then I use these inputs in another flake syntaxdot-models (the rec might be superfluous?):
{
description = "SyntaxDot models";
inputs = rec {
nixpkgs.follows = "syntaxdot/nixpkgs";
syntaxdot.url = "github:tensordot/syntaxdot";
utils.follows = "syntaxdot/utils";
};
outputs = { self, nixpkgs, syntaxdot, utils }: {
# ...
};
}
(I don’t think this was documented anywhere, I just got here by trial and error, reading the error messages, and reading Nix source code. These stringly-typed inputs are not really helpful and quite ugly.)