Extended data carries an application’s own values on an entity: register the application, attach the values to a line, then read them back from the saved file.
Each set of extended data names the application it belongs to, and the APPID table registers that name. Edit::Add adds the record, and fails when the table holds that name already.
An entity’s Record.Base.Extended holds one Xdata for each application: its name, then its groups in order. Give each value the type dxfio reads its code back as: std::string for 1000, double for 1040, std::int64_t for 1070.
FindEntity finds the line by the handle Edit::Add returned, and BaseOf gives the extended data of any entity. Other applications’ data may sit beside yours, kept as it was read; Edit::Same matches the name as AutoCAD does, without case.