Semantic Map / Help

図を変更するための全契約

正本は、承認済みの意味変更を1件1行で追記するDecisionLogです。StateはLogを決定的にreduceした結果、SceneとmaxGraphは表示です。座標が意味となるmap以外では、表示座標を正本にしません。

URLとState

通常は副作用のない/app#smap=<token>です。Envelope/3をcanonical JSON→gzip→base64urlで保持します。上限超過時だけ、利用者が明示publishしたdigestを/app#smap-ref=<sha256>でGET解決できます。自動publish・QUERY・旧schemaは受理せず、path、tab、storageからBaseを推測しません。

Pattern

1 Scene=1 Patternです。有効なのはmap/1graph/1seq/1chart/1は予約のみで受理しません。mapは位置・包含・重なり、graphは接続、seqはlane+LR軸です。同じStateを再投影し、異種Patternは親子Sceneで合成します。

seqではparentがWBS、temporal.actorが担当です。ordinalとcalendarを併記でき、Viewが読み方だけを選びます。不足値は推測せず拒否します。Themeはrendererだけが所有し、URLへ入れません。

URL Portal

leaf regionのmount.srcは完全な子#smapです。hostの同一性を保ったまま、十分な画面面積で子Sceneを表示します。子IDは@mount/へnamespace化し読み取り専用です。子Proposal・camera・selection・循環・過大数を拒否し、relationを親へ代理接続しません。

GeoSpecとPolicy

meta.geoSpecはOGC:CRS84のPoint/Polygonを保持し、生成後も失わず編集不可です。root kindがpolicy-model/1の時だけPolicyの包含・node・relation・endpointを厳密検査します。

編集と承認

GUI操作はOperationとしてLocal Draftだけへ積みます。Acceptはfork reduce、Scene、hash、append後Log、完成URLを先に検査し、成功時だけProposalと同じbytesをappendします。Reject・失敗ではLog、State、Draft、URLを受理前へ戻します。

受け渡し

①Textは完全な#smap URL+依頼だけを作り、画像を生成しません。②Imageを押した時だけ全Scene overlayを含む画像を生成します。Clipboard拒否時は旧方式へ逃げず、失敗として表示します。

境界

secret禁止。旧#doc#apply、貼付fallback、shortener、backend、認証、DB、自動mergeはありません。URL上限8,192文字、Scene上限2,048要素を超えたらfail-closedです。

YAGNI: 未要求機構を作らない。KISS: 1 Log、1 Envelope、1 fragment。DRY: ProposalとDecision、appと公開codecを共通化。SOLID: Domain、Pattern、Protocol、Transport、Projection、Renderer、Appを分離する。