Section Mapping (+2)
Section Mapping
The extractor uses three mapping dicts from schema/generic.py:
| Mapping | Purpose | Example |
|---|---|---|
FIELD_TO_SECTION |
spec field → OrcaFlex YAML key | "line_types" → "LineTypes" |
SINGLETON_SECTIONS |
singleton section → field | "FrictionCoefficients" → "friction_coefficients" |
TYPED_FIELD_MAP |
typed field → OrcaFlex prop | "mass" → "Mass" |
Section Name Aliases
OrcaFlex SaveData() exports may use different section names than the API:
| YAML Export Name | API/Internal Name |
|---|---|
Groups |
BrowserGroups |
FrictionCoefficients |
SolidFrictionCoefficients |
The extractor handles both via _SECTION_ALIASES fallback in _extract_singleton().
Object Extraction Strategy
For each object in a list section:
- Keys in
TYPED_FIELD_MAP→ extracted as typed Pydantic fields - All other keys → placed in
propertiesdict (pass-through bag) - Both recombined by builder's
_merge_object()during generation