{
"id": "public-mutable-state",
"language": "all",
"group": "maintainability",
"listingTitle": "Encapsulate public mutable state",
"title": "Encapsulate public mutable state",
"mvvm": false,
"defaultSeverity": "info",
"legacyGroup": "maintainability",
"why": "Publicly writable state lets callers bypass invariants and couples them to representation details.",
"suggestion": "Make the field private and expose behavior or a deliberately constrained immutable view.",
"version": 5,
"semanticMaturity": "token",
"securityKind": "none",
"taxonomy": [
"maintainability"
],
"requirements": [
"sourceText"
],
"packs": [
"clean-code"
],
"implementation": "src/rules/clean_code.rs",
"languages": [],
"frameworks": [],
"languageVersions": [],
"limitations": [
"Types explicitly named Mutable followed by a domain type name are treated as intentionally mutable containers.",
"Class and struct declarations must begin a source statement; declaration prose, C# expression-bodied properties and events, and Dart operator declarations are excluded."
]
}