複数のファイルに依存関係がある場合には、async 属性と defer 属性の併用は不可でしょうか?

・「Google Maps API」で両方指定しているのは、htmlにjsを直接記述しているから?


質問

・例えば、リンク先でhtmlに直接記述しているjs部分を外部js(init.js)として読み込む場合にはどう書けば良いでしょうか?

案1.

<script async defer src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap"></script>
<script async defer src="init.js"></script>

案2.後のみasyncなし

<script async defer src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap"></script>
<script defer src="init.js"></script>

案3.asyncなし

<script defer src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap"></script>
<script defer src="init.js"></script>

<追記>

「async 属性」を複数付与した場合は、いつ実行されるかは全く予想がつかないけれども、実行順序は保証される、ということでしょうか?

<script async id="lib" src="https://maps.googleapis.com/maps/api/js"></script>
<script async src="local.js"></script>

・回答いただいた内容は、asyncに対応しているブラウザの場合、最終的に上記と同じ挙動になる、ということでしょうか?
・非同期で最初のスクリプトが処理された後、次のスクリプトが非同期で処理される?

asyncとdefer両方指定した場合、デフォルトはasyncで、asyncに対応していないブラウザのみdeferのタイミングになります