Add dataset to pool after creation in Disko

I set up a ZFS pool and datasets using disko-config.nix then removed the filesystem information in hardware-configuration.nix and imported disko-config.nix per the Quick Start. I like that disko-config.nix is the single source of truth about the datasets. However I need to add a new dataset and am wondering the best way to do it. I have found nothing in the disko docs that tells how to evolve disko-config.nix over time.

Before starting to use disko, I would create the new dataset manually and add a new filesystem entry in hardware-configuration.nix. My guess is to manually create the dataset as I would have done before and add a new entry in disko-config.nix but that seems potentially error prone. What is the proper way to do it using disko?

Note: I am aware of the suggestion to use systemd to create a new dataset but that seems more complicated than just creating the dataset by hand. Besides it also breaks the single source of truth property that disko-config.nix provides.

I am surprised that no one seems to have had the need to evolve disko-config.nix over time. Maybe the question got lost so I will ask again: what is the best way to evolve disko-config.nix over time, particularly by adding additional datasets?

I’m using this workaround, maybe a bit risky so use with caution:

let
  zpoolName = "tank";
  diskoConfig = {...};
  diskoFile = pkgs.writeText "disko.nix" (lib.generators.toPretty { } { disko = diskoConfig; });
in
{
  disko = diskoConfig;
  boot.zfs.extraPools = [ "${zpoolName}" ]; # required if no mountpoint defined in datasets
  systemd.services."zfs-import-${zpoolName}".preStart = ''
    ${lib.getExe pkgs.disko} --mode format ${diskoFile}
  '';
}