SvEx. Config. Project
(SvEx v0.4.2)
Identity of the project being scaffolded — the project: section.
name and app are independent: name is the mix new positional
directory argument, app is the OTP application name, and
mix sv_ex.new NAME --app other_app is a supported invocation. Never
derive one from the other, and never require them to match.
This struct accepts any non-blank name, because it is also the model of
priv/templates/*, whose placeholder default is "NAME". A name arriving
from a project's target.exs is additionally held to
~r/\A[a-z][a-z0-9_]*\z/ — by SvEx.Config.read!/1, at the file
boundary, which is the only place that grammar applies.
type gates the assets section only. security and container are
type-independent, so they apply to an :otp project too.
github_org is the canonical name. The retired scaffolder skills spelled it
github.org, a sectioned TOML key flattened to one atom here; see the
mapping table in SvEx.Config.