Ficaria assim:
mapsData: [{
id: Number,
name: String,
gates: [{
toId: Number,
coords: {
x: Number,
y: Number
}
}],
waypoints: [[{x: Number, y: Number}]]
}]
você sempre pode fazer
mapsData:JSON
quando você não tem certeza e sente as coisas.