Appearance
status+me.virmesh.success.worldResolved
world manifest が正常に解決されたことを示します。
Description
この status は me.virmesh.world.resolveWorld が署名付き world manifest と任意の署名付き world module を返した場合に使います。
When this happens
- key-authoritative world manifest が解決された
Payload
解決された world manifest です。
References obj+me.virmesh.world.manifest : key-authoritative world の署名対象 core manifest です。
worldIdstringRequiredworld identifier です。形式は medi:world:<scheme>:<publicKey> です。
schemastringRequiredmanifest schema identifier です。v1 では obj+me.virmesh.world.manifest を使います。
versionIdstringRequiredmanifest の immutable version identifier です。
endpointstringRequiredこの manifest を解決する WorldServer の absolute URL です。
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 では resolveManifest と hostLiveSession を定義します。
payload.issuedAtintegerRequireddelegation を発行した epoch second です。
payload.expiresAtintegerOptionaldelegation の任意の期限です。epoch second で表します。省略時は明示的に取り消されるまで有効な long-lived delegation として扱います。
signaturestringRequiredcanonical JSON of payload に対する world identity key の署名です。
worldProtocolsobject[]Requiredクライアントが live session に使える protocol 一覧です。各要素は name, version を持ちます。接続先やポートなどの instance 固有の値は、instance object 側の worldProtocols[].information に載せます。
worldProtocols[].namestringRequiredprotocol identifier です。例: me.virmesh.world.websocket。
worldProtocols[].versionstringRequiredprotocol version です。
assetsobject[]Optionalscene などの asset entry 一覧です。各 entry は kind, contentType, profile, url, hash, size を持ちます。
assets[].kindstringRequiredscene などの asset 種別です。
assets[].contentTypestringRequiredHTTP content type です。
assets[].profilestringRequiredglb, gltf などの実装 profile です。
assets[].urlstringRequiredasset を取得する absolute URL です。
assets[].hashstringRequiredasset body の content hash です。v1 では sha256:<base64url> を使います。
assets[].sizeintegerRequiredasset body の byte size です。
updated_atintegerRequiredmanifest を更新した epoch second です。
signaturestringRequiredcanonical JSON of payload.manifest に対する world identity key の署名です。
payload.modulesobjectOptionalworld module map です。各 entry は { payload, signature } を持ちます。
Client handling
payload.manifestを responsesignatureと合わせて検証してから使うhostingDelegation.payloadをhostingDelegation.signatureと合わせて検証するpayload.modules.*.payloadを対応するpayload.modules.*.signatureと合わせて検証する- module payload 内の
worldIdがpayload.manifest.worldIdと一致することを確認する - asset 取得後に manifest 内の
hashと一致することを確認する
Related statuses
Referenced by
| HTTP | API | Action |
|---|---|---|
200 | me.virmesh.world.resolveWorld | me.virmesh.world.resolveWorld |