OptionalactiveWhen false, this contract is excluded from the generated manifest, docs' required section, and exclusiveGroup checks -- it still appears, marked disabled, in the feature catalog. Defaults to true.
OptionalauditDefault audit-required assertion for this contract's variables -- see VariableDocs.auditRequired.
OptionalcategoryGroups this contract under a heading in the generated docs' feature catalog.
OptionaldataDefault data residency for this contract's variables -- see VariableDocs.dataResidency.
OptionaldeprecatedMarks this whole contract/feature as being phased out. Independent of active (on/off, not a phase-out signal).
OptionaldeprecatedWhy this contract is deprecated, and/or what to use instead. Only meaningful alongside deprecated: true.
OptionalexclusiveThe generator throws if two active contracts declare the same exclusiveGroup -- use it to mark interchangeable features (e.g. two database backends) as mutually exclusive.
OptionalexpiresWhole-contract/feature sunset date, ISO date string.
OptionallegalDefault legal basis for this contract's variables -- see VariableDocs.legalBasis.
OptionalmetadataArbitrary contract-level documentation (e.g. runbook), rendered alongside this feature -- see VariableDocs.metadata.
OptionalnameOverrides the auto-generated label used in generated docs. Purely cosmetic. Wins over createEnv()'s own name option, which in turn wins over the exported binding name.
OptionalownerDefault owner for every variable in this contract that doesn't set its own owner.
OptionalpurposeDefault reason this contract's variables' values are collected/used -- see VariableDocs.purpose.
OptionalretentionDefault retention policy for this contract's variables -- see VariableDocs.retention.
OptionalsensitivityDefault sensitivity for every variable in this contract that doesn't set its own sensitivity -- see VariableDocs.sensitivity for why this is an open string.
OptionalvariablesPer-variable documentation, keyed by variable name -- keys are checked against S's own keys
at compile time, so documenting a variable that was renamed or removed from schema (or a
plain typo) is a type error here, not a silently-ignored entry the generator would otherwise
have to report as "stale" after the fact. A schema key absent from variables entirely is
still valid (not every variable needs documentation) and is reported as undocumented by the
generator, exactly as before.
Contract-level documentation, plus everything documentEnv's options used to carry that only the generator ever read.
Remarks
Generic over
S, the exact schema type documentEnv infers from itsschemaargument -- this is what makesvariablesbelow a closed, checked map (a typo'd or renamed key is a compile error, not a silent no-op) rather than an openRecord<string, VariableDocs>any string would satisfy.Sdefaults to the widest possible schema so this type is still nameable on its own (e.g. in a helper function's own parameter type) without narrowing to one specific contract.