{ lib, ... }:
let
  inherit (lib) mkOption;
  inherit (lib.types)
    attrsOf
    submodule
    int
    float
    str
    ;
in
{
  options.modules.system.outputs = mkOption {
    type = attrsOf (
      submodule (
        { name, config, ... }:
        {
          options = {
            name = mkOption {
              type = str;
              default = name;
            };
            scale = mkOption {
              type = float;
              default = 1.0;
            };
            posX = mkOption {
              type = int;
              default = 0;
            };
            posY = mkOption {
              type = int;
              default = 0;
            };
            resX = mkOption { type = int; };
            resY = mkOption { type = int; };
          };
        }
      )
    );
    default = { };
  };
}