3a59c3f638
Re-verified #105 item 2 on the real write paths: ManagementActor bulk attribute overrides (CLI set-overrides / management API) and InstanceService.SetAttributeOverrideAsync (Central UI single editor) both match the template member ordinally and refuse a case-variant name, so nothing is stored for the flattener to drop. Native-source overrides already validate against the flattener's own output. - New theory tests drive each path, feed whatever it stored into the real FlatteningService, and assert every stored override is applied (exact-case row is the positive control). Mutation: accepting case variants (OrdinalIgnoreCase) fails them with "stored ... but the flattener dropped it as unresolved". - The did-you-mean hint moves to TemplateEngine.OverrideNameMatching and is now also on the UI single-attribute path; ambiguous matches get no hint. Claude-Session: https://claude.ai/code/session_01GT67ACmpMR7b9LGRPLijMi