Skip to content

status+me.virmesh.success.worldResolved

world manifest が正常に解決されたことを示します。

successdraft

Description

この status は me.virmesh.world.resolveWorld が署名付き world manifest と任意の署名付き world module を返した場合に使います。

When this happens

  • key-authoritative world manifest が解決された

Payload

payload.manifestworldManifestRequired

解決された world manifest です。

References obj+me.virmesh.world.manifest : key-authoritative world の署名対象 core manifest です。

worldIdstringRequired

world identifier です。形式は medi:world:<scheme>:<publicKey> です。

schemastringRequired

manifest schema identifier です。v1 では obj+me.virmesh.world.manifest を使います。

versionIdstringRequired

manifest の immutable version identifier です。

endpointstringRequired

この manifest を解決する WorldServer の absolute URL です。

hostingDelegationworldHostingDelegationRequired

WorldServer がこの world の解決または live session hosting を委任されていることを示す署名付き object です。

References obj+me.virmesh.world.hostingDelegation : world identity key が WorldServer に hosting capability を委任した object です。

payload.worldIdstringRequired

委任元の world identifier です。形式は medi:world:<scheme>:<publicKey> です。

payload.serverstringRequired

委任先 WorldServer の absolute URL です。

payload.capabilitiesstring[]Required

委任する capability 一覧です。v1 では resolveManifesthostLiveSession を定義します。

payload.issuedAtintegerRequired

delegation を発行した epoch second です。

payload.expiresAtintegerOptional

delegation の任意の期限です。epoch second で表します。省略時は明示的に取り消されるまで有効な long-lived delegation として扱います。

signaturestringRequired

canonical JSON of payload に対する world identity key の署名です。

worldProtocolsobject[]Required

クライアントが live session に使える protocol 一覧です。各要素は name, version を持ちます。接続先やポートなどの instance 固有の値は、instance object 側の worldProtocols[].information に載せます。

worldProtocols[].namestringRequired

protocol identifier です。例: me.virmesh.world.websocket

worldProtocols[].versionstringRequired

protocol version です。

assetsobject[]Optional

scene などの asset entry 一覧です。各 entry は kind, contentType, profile, url, hash, size を持ちます。

assets[].kindstringRequired

scene などの asset 種別です。

assets[].contentTypestringRequired

HTTP content type です。

assets[].profilestringRequired

glb, gltf などの実装 profile です。

assets[].urlstringRequired

asset を取得する absolute URL です。

assets[].hashstringRequired

asset body の content hash です。v1 では sha256:<base64url> を使います。

assets[].sizeintegerRequired

asset body の byte size です。

updated_atintegerRequired

manifest を更新した epoch second です。

signaturestringRequired

canonical JSON of payload.manifest に対する world identity key の署名です。

payload.modulesobjectOptional

world module map です。各 entry は { payload, signature } を持ちます。

Client handling

  • payload.manifest を response signature と合わせて検証してから使う
  • hostingDelegation.payloadhostingDelegation.signature と合わせて検証する
  • payload.modules.*.payload を対応する payload.modules.*.signature と合わせて検証する
  • module payload 内の worldIdpayload.manifest.worldId と一致することを確認する
  • asset 取得後に manifest 内の hash と一致することを確認する

Related statuses

Referenced by

HTTPAPIAction
200me.virmesh.world.resolveWorldme.virmesh.world.resolveWorld