Let's see, in alienDeployments you define a mapsize of 40x40x9. Nothing odd there as I'm assuming you're ommiting the data with all the alien loadouts here for brevety.
However, mapScripts does have an issue with the example you're trying to implement. You haven't specified the 'size' parameter in the 'addBlock' which will default to 1 (or [1,1,0] to be precise). This means the map generator will attempt to locate and use mapBlocks of 10x10 from group 0, but as none of that size are defined in terrains, this part will fail and move on, now your 'fillArea' has no size defined either so the default is use again (size: 1), in this case looking for 10x10 mapBlocks within de defined list composed of solely block ID 1, but the only defined block is of size 40x40 and its ID would be 0, so this command fails to place any blocks too. Remember that mapBlocks are sequentially defined starting with 0.
If you were to add size: 4 to your 'addBlock' command it would now search for blocks of 40x40. Yes, 'size' uses blocks as meassurement, not tiles. For 'fillArea', if your map were larger for any reason, you need to make and define the corresponding blocks in terrais so it can use something to fill. For either case, I don't believe you need 'maxUses', moreso if the map is larger as you would be limiting 'fillArea' which could result in yet another not fully generated map.
MAPSCRIPT: (sample)
mapScripts:
- type: MAP_PLACE_HOLDER_NAME
commands:
- type: addBlock
size: 4
groups: 0
- type: fillArea
If you're absolutely sure your map will always be the same size as the one specified in the 'addBlock' command you could even ommit the 'fillArea' as this is mostly used, but not exclusively, to fill empty gaps that don't have anything placed in them.