{ config, lib, ... }:

{
  options.sovran_systemsOS = {
    roles = {
      server-desktop = lib.mkOption {
        type = lib.types.bool;
        default = !config.sovran_systemsOS.roles.desktop && !config.sovran_systemsOS.roles.node;
      };
      desktop = lib.mkEnableOption "Desktop Role";
      node = lib.mkEnableOption "Bitcoin Node Only Role";
    };

    features = {
      coturn = lib.mkEnableOption "TURN server";
      synapse = lib.mkEnableOption "Matrix Synapse";
      bitcoin = lib.mkEnableOption "Bitcoin Ecosystem";
      vaultwarden = lib.mkEnableOption "Vaultwarden";
      haven = lib.mkEnableOption "Haven NOSTR relay";
      bip110 = lib.mkEnableOption "BIP-110 Bitcoin Better Money";
      mempool = lib.mkEnableOption "Bitcoin Mempool Explorer";
      element-calling = lib.mkEnableOption "Element Video and Audio Calling";
      bitcoin-core = lib.mkEnableOption "Bitcoin Core";
      rdp = lib.mkEnableOption "Gnome Remote Desktop";
    };

    nostr_npub = lib.mkOption {
      type = lib.types.str;
      default = "";
      description = "Nostr public key (npub1...) for Haven relay";
    };
  };
}
