Echodot with clockで使えるAPLTのドキュメントを和訳した

#はじめに
この記事は[develper.amazon.com](https://developer.amazon.com/ja/docs/alexa-presentation-language/document-aplt.html)で公開されてるドキュメントをそのまま日本語訳したものです。
中の人が翻訳したものではないので、一部意訳をしていたり、表現や記述が異なる可能性があります。
その際は、コメントなどでご報告をよろしくお願いいたします。


#ドキュメント
APLTドキュメントは、明確に定義された構造を持つJSONオブジェクトです。
このドキュメントは、文字表示を備えたデバイスで表示するテンプレートを定義しています（echo dot with clockなど）
`Alexa.Presentation.APLT.RenderDocument`を使用することで、デバイスで文字を表示させることができます。

#目次
- [使用例](#使用例)
- [構成](#構成)

#使用例
APLTは、次のようなシンプルなコンポーネントで追加できます。 
APLTはディスプレイの左上角から描画されるようになります。

```
{
  "type": "APLT",
  "version": "1.0",
  "mainTemplate": {
    "items": [
      {
        "type": "Text",
        "text": "HI."
      }
    ]
  }
}
```

さらにリッチなAPLTを表現したい場合は、複数のコンポーネントをネストすることで利用できます。

```
{
  "type": "APLT",
  "version": "1.0",
  "description": "This is a more complex example",
  "layouts": {},
  "resources": [],
  "mainTemplate": {
    "items": [
      {
        "id": "myPager",
        "type": "Pager",
        "items": [
          {
            "type": "Text",
            "text": "P9: 1"
          },
          {
            "type": "Text",
            "text": "P9: 2"
          }
        ]
      }
    ]
  },
  "onMount": {
    "type": "AutoPage",
    "componentId": "myPager",
    "delay": 500,
    "count": 2,
    "duration": 500
  },
  "settings": {
    "idleTimeout": 10000
  }
}
```

#構成
APLTのトップレベルで使用できるプロパティは以下のようになります。

| プロパティ | タイプ | 必要性 | 説明 |
|:--|:--|:--|:-- 
|description|string|なくても可|オプションの説明|
|layout|map|なくても可|カスタムレイアウト|
|mainTemplate|Array of components|必須|レイアウトの開始位置|
|onMount|Array of commands|なくても可|ドキュメントが表示された時に最初に実行するコマンド|
|resources|Array of resources|なくても可|リソースの定義|
|setting|map|なくても可|ドキュメント全体の設定|
|type|"APLT"|必須|この値は必ず"APLT"であること|
|version|"1.0"|必須|APLTのバージョン。2019年10月時点は"1.0"|

##mainTemplate
`mainTemplate`は、ドキュメントが最初に画面に表示されるときに拡大されるレイアウトです。
mainTemplateで定義されたパラメーターは、APLTドキュメントを表示を開始した`RenderDocument`によって提供されます。 
詳細については、APLTインターフェイスの[RenderDocument](https://developer.amazon.com/ja/docs/alexa-presentation-language/aplt-interface.html#renderdocument-directive)を参照してください。

##onMount
ドキュメントが最初に画面に表示されるときに実行するコマンドです。
このコマンドは、コンポーネント`onMount`コマンドが実行された後に実行されます。

最初にドキュメントが画面に表示されるとき、次のアクションが実行されます。

1. 全ての`onMount`コマンドを並列で処理します
2. `onMount`コマンドでドキュメントを表示していきます

これらのコマンドについては次のメタコマンドで効果的にまとめることができます。

```
{
  "type": "Sequential",
  "commands": [
    {
      "type": "Parallel",
      "commands": "<COMPONENT_ON_MOUNT_COMMANDS>"
    }
  ],
  "finally": "<DOCUMENT_ON_MOUNT_COMMAND>"
}
```

##settings
`settings`プロパティは、ドキュメント全体のプロパティを定義するキーと、値のペアのマップを保持します。
次のようなプロパティが定義されています

|プロパティ|タイプ|デフォルト値|説明|
|:--|:--|:--|:--|
|idolTimeout|Number|`<system>`|ドキュメントの表示が終了するまでの時間|

例として2分間でタイムアウトするような場合は、次のように書いていきます
`idolTimeout`はミリ秒単位で設定します

```
{
  "type": "APLT",
  "version": "1.0",
  "settings": {
    "idleTimeout": 120000
  }
}
```
###idolTimeout
上の例のようなタイムアウトの時間は推奨値であり、動作を保証する値ではありません。
特定のデバイスでは、`idolTimeout`を無視、もしくは制限することが可能です。
ライフサイクルについては`lifecycle_session`を参照してください

##version
`version`プロパティは、APLTのバージョンを指定します。
APLTレンダリングエンジンは、バージョンプロパティを使用して必要な機能を識別し、レンダリングの精度を確保します。 
このバージョンプロパティについては、開発者自身で正しく設定されているか確認してください。

APLTレンダリングエンジンは、ドキュメントのバージョン番号をサポートしていない場合、ドキュメントの読み込みはしません。
なお、APLTレンダリングエンジンは後方互換性があるため、「1.1」をサポートするエンジンは「1.0」ドキュメントもサポートします。