What is the convention for naming custom variables in configuration.nix?

Consider the excerpt from my /etc/nixos/configuration.nix below. It defines a custom variable inside my nix expression, and uses it inside a bash script. Running nixos-rebuild build results in an error, because custom.variable is not an available option.

{ config, pkgs, ... }: {
  custom.variable = "my value";
  systemd.services."my-service" = {
    script = ''
      MY_VARIABLE="${custom.variable}"
    '';
  };
}

Is there a way to declare custom variables like this? I am aware that I could use e.g. a let-in expression, however I want my custom variable to live in a different file than where it is used.

https://nixos.org/manual/nixos/stable/#sec-option-declarations

Thanks. I would like to avoid creating options explicitly. I would just want to drop variables into my nix expression, and be able to use them within the expression, without making the compiler complain that my variable does not exist as option.

{
  _module.args.custom.foo = "bar";
}
{ custom, ... }
{
  systemd.services.my-service.script = ''
    FOO="${custom.foo}"
  ''; 
}

Though, I don’t understand this frequent allergy among new NixOS users to creating options, as it allows to specify the type, merge multiple definitions, and ultimately work as the module system is intended to.