Complete MultiLeader host model coverage

Extends the adapter generator (Color, LineWeight, mixed unit/payload enums,
fixed float arrays, bitflags-2 newtypes, keep_types override) and maps
MultiLeader with a merge-style context patch, host validation and
reference checks. staged_python_multileader_lifecycle_over_real_ipc passes
the full gate including DWG and DXF reopen.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Felix RiestraandClaude Sonnet 5 committed 2026-09-20 14:27:43 +02:00
1 parent 22f9c20fe8
commit b3f5388208
14 files changed
+523 -31

No files matched your search

+17 -1
View File
@@ -24,7 +24,8 @@
"Hatch",
"Leader",
"MLine",
"Dimension"
"Dimension",
"MultiLeader"
],
"manual_kinds": ["Dimension"],
"base_fields": ["handle", "layer", "owner_handle"],
@@ -264,6 +265,21 @@
"dwg_unknown_bit5": { "exclude": true },
"dwg_unknown_short1": { "exclude": true }
}
},
"MultiLeader": {
"fields": {
"arrowhead_overrides": { "exclude": true, "_comment": "Per-arrow override records carry linked block handles; preserved untouched until dedicated validation exists." },
"block_attributes": { "exclude": true, "_comment": "Block attribute records carry attribute-definition handles; preserved untouched." },
"dwg_version": { "read_only": true },
"text_height": { "read_only": true, "_comment": "Neither writer stores the entity-level text height; scripts set the persisted context.text_height." },
"property_override_flags": { "read_only": true },
"text_align_in_ipe": { "read_only": true },
"context": {
"keep_types": true,
"rust_getter": "multi_leader_annot_context_to_dict(vm, &VAR.context)?",
"rust_setter": "if let Some(v) = dict.get_item_opt(\"context\", vm)? { VAR.context = merge_multileader_context(&VAR.context, v, vm)?; }"
}
}
}
}
}