ModuleMetadata
data class ModuleMetadata(val path: String, val purpose: String? = null, val owner: String? = null, val layer: String? = null, val status: String? = null, val links: Map<String, String> = emptyMap())(source)
Metadata a team declares about a module, in a committed .aalekh/modules.json.
This is the escape hatch from inference. Anything stated here is Provenance.OBSERVED and overrides whatever Aalekh would otherwise guess - a module's purpose, its owner, its layer. Nothing is required; a file that names only the ten modules a newcomer keeps asking about is a perfectly good use of it.
Parameters
path
Module Gradle path this describes.
purpose
One or two sentences on what the module is for, in the team's own words.
owner
Team or person responsible, overriding both teams { } and CODEOWNERS.
layer
Architectural layer, overriding both layers { } matching and path inference.
status
Lifecycle marker, e.g. "experimental", "deprecated", "frozen".
links
Named URLs - design docs, dashboards, ADRs.