# Export Format The sanitized JSON export uses: ```json { "format": "nte-history-export", "format_version": 1, "game": "Neverness to Everness", "source": "packet_capture", "exporter": { "name": "nte-history-exporter", "version": "0.1.0" }, "banner": { "id": "Lottery_Permanent", "name": "Standard Board", "system": "Monopoly", "shared_pity": false }, "scan": { "mode": "stable_only", "boundary_policy": "drop_incomplete_timestamp_groups", "decoded_records": 0, "exported_records": 0, "skipped_records": 0, "warnings": [] }, "records": [] } ``` Record UIDs are deterministic: Monopoly: ```text nte|monopoly|Lottery_Permanent|timestamp_raw|timestamp_group_ordinal|roll_result|reward_key_hex|quantity ``` Limited character records use `Lottery_LimitedCharacter` in the same UID source position. Arc: ```text nte|gashapon|Arc_MiracleBox|timestamp_raw|timestamp_group_ordinal|reward_key_hex ``` The final UID is `sha256(source).hexdigest()[0:32]`. Each record includes `pool_group_id`. Arc records use the shared `reward_*` fields and include `source_type: "miracle_box"`. Example Monopoly pull record: ```json { "uid": "7aae34232160e950ecc7b5da38812caa", "pool_group_id": "Lottery_LimitedCharacter", "timestamp": "2026-06-10 13:32:17", "timestamp_group_ordinal": 0, "roll_result": 5, "result_type": "dice", "reward_type": "character", "reward_id": "1033", "reward_name": "Adler", "reward_rank": "A", "quantity": 1 } ``` Example Arc record: ```json { "uid": "75c42ad1171d1d0f72b2c8d8307f7230", "pool_group_id": "Arc_MiracleBox", "timestamp": "2026-06-10 23:46:29", "timestamp_group_ordinal": 0, "reward_type": "arc", "reward_id": "fork_nonos", "reward_name": "First Step to Success", "reward_rank": "B", "source_type": "miracle_box" } ``` Normal JSON exports do not include raw packets or capture-only metadata.