version = 1

[defaults]
access_level = "internal"

[defaults.bundle]
mode = "module"

[jobs.assets]
output = "Generated/Assets.swift"

[[jobs.assets.inputs]]
type = "xcassets"
path = "Resources/Assets.xcassets"

[jobs.assets.template.builtin]
language = "swift"
name = "swiftui-assets"

[jobs.l10n]
output = "Generated/L10n.swift"

[[jobs.l10n.inputs]]
type = "strings"
path = "Resources/Localization"

[jobs.l10n.template.builtin]
language = "swift"
name = "l10n"

# Optional generation hooks run only during `numi generate`.
# Numi passes target metadata through environment variables such as:
# NUMI_HOOK_JOB_NAME, NUMI_HOOK_OUTPUT_PATH, NUMI_HOOK_OUTPUT_DIR,
# NUMI_HOOK_CONFIG_PATH, NUMI_HOOK_WORKSPACE_CONFIG_PATH, and for post
# hooks NUMI_HOOK_WRITE_OUTCOME.
#
# Legacy aliases without the NUMI_HOOK_ prefix are also exported for
# compatibility with older hook scripts.
#
# [jobs.l10n.hooks.post_generate]
# command = ["swiftformat"]

# For multi-module repositories, a repo-root numi.toml can switch to:
#
# [workspace]
# members = ["AppUI", "Core"]
#
# [workspace.defaults.hooks.post_generate]
# command = ["Scripts/format-generated.sh"]
#
# [workspace.defaults.jobs.l10n.template]
# path = "Templates/l10n"
#
# [workspace.defaults.jobs.l10n.hooks.post_generate]
# command = ["Scripts/format-generated-localization.sh"]
