There is a bug in the ‘proposed’ mediaPreset capability on Edge. The table you pass into the presets event is modified and the items are removed locally in the Lua code. Running something like this will cause myPresets to be empty after emitting it. I am assuming this is not expected behavior.
local myPresets = {
{ name = 'John', id = 'A' },
{ name = 'Jane', id = 'B' },
{ name = 'Mike', id = 'C' }
}
print(json.encode(myPresets))
device:emit_event(capabilities.mediaPresets.presets(myPresets))
print(json.encode(myPresets))