Transmission #061: Loot tables return internal models
Loot table repository mapping
LootTableRepository.getLootTablesForItems now hydrates InternalLootTable models from jOOQ rows instead of stopping at the join scaffold. The repository filters by harvested item ids, preserves deterministic ordering, groups entries under each loot table, and carries the timestamp and reward-count fields into the internal loot entry model so server-side item drops can use the typed model path.