Shared OD core

The shared object-dictionary IR (fieldbus-od-core (BB_0080)): OD types lifted out of ethercat-esi so both the EtherCAT and CANopen parsers share the same IR.

Feature: Shared OD core FEAT_0061
status: open
satisfies: FEAT_0060
is implemented by: BB_0080

A new crate fieldbus-od-core carrying the OD types both ESI and EDS parsers need (CiA 301 semantics). Lifted out of ethercat-esi so both fieldbuses parse against the same IR. Executes the lift foreseen by Future CANopen support via ... (ADR_0073).

Requirement: No transport-specific types in fieldbus-od-core REQ_0700
status: open
satisfies: FEAT_0061
is verified by: TEST_0601

fieldbus-od-core shall declare no transport-specific types. The crate shall not name ethercrab, socketcan, taktora_connector_*, or any I/O-bearing crate as a dependency.

Requirement: no_std + alloc, no mandatory serde REQ_0701
status: open
satisfies: FEAT_0061
is verified by: TEST_0602

The crate shall be #![no_std] with an alloc dependency. No serde, no quick-xml, no serde-ini in the default feature set. Type derives (Serialize, Deserialize, Hash) shall sit behind opt-in cargo features so embedded consumers do not pay for them.

Requirement: OD type surface REQ_0702
status: open
satisfies: FEAT_0061
is verified by: TEST_0600

The crate shall carry Identity (vendor_id, product_code, revision — all u32), DataType (enumerating the CiA 301 data-type table), AccessRights (Const / ReadOnly / WriteOnly / ReadWrite), DictEntry (index, sub_index, name, data_type, access, default/min/max bytes), PdoEntry (index, sub_index, bit_len, optional name), and PdoMap (assigned-to OD index plus entry list).

Requirement: ethercat-esi re-exports lifted types REQ_0703
status: open
satisfies: FEAT_0061
is verified by: TEST_0603

ethercat-esi shall re-export Identity, DataType, AccessRights, DictEntry, PdoEntry, and PdoMap from fieldbus-od-core so existing Device-driver codegen toolc... (FEAT_0050)-era consumers compile source-unchanged. The re-export façade shall stay in place permanently — it is not deprecated.

Requirement: canopen-eds uses fieldbus-od-core types REQ_0704
status: open
satisfies: FEAT_0061
is verified by: TEST_0603

canopen-eds shall use fieldbus-od-core types for every OD-shaped field in its IR. The crate shall not redefine Identity, DictEntry, PdoEntry, or PdoMap locally.