MfGames Project Setup Flake Options

This document describes the module options for mfgames-project-setup-flake.

mfgames.project.enable

Whether to enable MfGames Project Setup.

Type: boolean

Default:

false

Example:

true

mfgames.project.conform.enable

Enables using conform for linting Git commits.

Type: boolean

Default:

false

mfgames.project.conform.scopes

The scopes the project is limited to use, or null to allow all scopes.

Type: null or (list of string)

Default:

null

mfgames.project.contributorCovenant.enable

Enables writing out a contribuator covenant file.

Type: boolean

Default:

false

mfgames.project.contributorCovenant.contact

The email address to contact for violations.

Type: string

mfgames.project.developerCertificateOfOrigin.enable

Enables writing out a DCO.md file.

Type: boolean

Default:

false

mfgames.project.dotnet.enable

Enables writing out a DCO.md file.

Type: boolean

Default:

false

mfgames.project.dotnet.csharp.enable

Enables C# formatting and linting configuration.

Type: boolean

Default:

false

mfgames.project.dotnet.csharp.analyzers

Enables running ‘dotnet format analyzers’ on C# files.

Type: boolean

Default:

false

mfgames.project.dotnet.csharp.format

Selects the C# formatter to use.

Type: one of “none”, “csharpier”, “dotnet”

Default:

"csharpier"

mfgames.project.dotnet.csharp.style

Enables running ‘dotnet format style’ on C# files.

Type: boolean

Default:

false

mfgames.project.javascript.enable

Enables formatting JavaScript and TypeScript files with prettier.

Type: boolean

Default:

false

mfgames.project.javascript.format

Enables formatting JavaScript files with prettier.

Type: boolean

Default:

false

mfgames.project.just.enable

Generates a missing top-level Justfile with common defaults and adds a src/just/mfgames-project-setup.just with rules based on other configuration settings. This is based on D. Moonfire’s Project Layout setup.

Type: boolean

Default:

false

mfgames.project.just.extraTargets

Additional targets to add to the generated Just file.

Type: attribute set of (submodule)

Default:

{ }

Example:

{
  build-docs = {
    description = "Documents the options for the flake module.";
    group = "development";
    text = ''
      local-generate-docs
    '';
  };
}

mfgames.project.just.extraTargets.<name>.description

The optional description for the target.

Type: null or string

Default:

null

mfgames.project.just.extraTargets.<name>.group

The optional group for the Just target.

Type: null or string

Default:

null

mfgames.project.just.extraTargets.<name>.text

The text inside the target block.

Type: strings concatenated with “\n”

Example:

''
  echo example
''

mfgames.project.just.format

Enables using ‘just –fmt –unstable’ to format the just file.

Type: boolean

Default:

true

mfgames.project.just.generate

Generate the top-level Justfile if not present.

Type: boolean

Default:

true

mfgames.project.prettier.enable

Enables using prettier to format files.

Type: boolean

Default:

false

mfgames.project.prettier.proseWrap

Sets the default for wrapping prose.

Type: one of “preserve”, “always”, “never”

Default:

"preserve"

mfgames.project.project-uuid.enable

Generate a .config/project-uuid.txt if missing.

Type: boolean

Default:

false

mfgames.project.reuse.enable

Enables using REUSE for license management and checking.

Type: boolean

Default:

false

mfgames.project.reuse.annotations

Additional annotations to add to the top-level REUSE.toml block. See the REUSE specification for more information.

Type: list of (open submodule of attribute set of anything)

Default:

[ ]

Example:

[
  {
    SPDX-FileCopyrightText = "2026 Dylan Moonfire <contact@mfgames.com>";
    SPDX-License-Identifier = "CC-BY-4.0";
    path = [
      "README.md"
      "TASKS.md"
    ];
  }
  {
    SPDX-FileCopyrightText = "2026 Dylan Moonfire <contact@mfgames.com>";
    SPDX-License-Identifier = "MIT";
    path = "src/**/*";
  }
]

mfgames.project.reuse.ignore-dot-config

Annotate the REUSE description of everything in the .config/ directory as having no copyright (NONE) and public domain (CC0-1.0).

Type: boolean

Default:

true

mfgames.project.rust.enable

Enables writing out Rust support files.

Type: boolean

Default:

false

mfgames.project.shell.enable

Enables formatting and checking shell files.

Type: boolean

Default:

false

mfgames.project.shell.check

Runs shellcheck against all shell files.

Type: boolean

Default:

false

mfgames.project.shell.excludes

Lists exclude match patterns, globbing including **, to check or format.

Type: list of string

Default:

[ ]

mfgames.project.shell.format

Formats shells according to shfmt.

Type: boolean

Default:

false

mfgames.project.shell.includes

Lists include match patterns, globbing including **, to check or format.

Type: list of string

Default:

[
  "*.sh"
]

mfgames.project.sql.enable

Enables formatting of SQL files.

Type: boolean

Default:

false

mfgames.project.sql.excludes

Lists exclude match patterns, globbing including **, to check or format.

Type: list of string

Default:

[ ]

mfgames.project.sql.format

Formats SQL scripts according to sql-formatter.

Type: boolean

Default:

false

mfgames.project.sql.includes

Lists include match patterns, globbing including **, to check or format.

Type: list of string

Default:

[
  "*.sql"
]

mfgames.project.sql.language

Sets the language for formatting the SQL.

Type: one of “bigquery”, “db2”, “db2i”, “duckdb”, “hive”, “mariadb”, “mysql”, “n1ql”, “plsql”, “postgresql”, “redshift”, “spark”, “sqlite”, “sql”, “tidb”, “trino”, “transactsql”, “tsql”, “singlestoredb”, “snowflake”

Default:

"sql"

mfgames.project.treefmt.enable

Enables writing out a treefmt.toml file.

Type: boolean

Default:

false

mfgames.project.treefmt.extraFormatters

Additional formatter blocks to add to the generated treefmt.toml file.

Type: attribute set of attribute set of anything

Default:

{ }

Example:

{
  nix = {
    command = "nixfmt";
    includes = [
      "*.nix"
    ];
  };
}

mfgames.project.typescript.enable

Enables TypeScript support.

Type: boolean

Default:

false

mfgames.project.typescript.format

Enables formatting TypeScript files with prettier.

Type: boolean

Default:

false

Metadata

Project

Forges