{
  "name": "Yendoller 表示規則",
  "version": "1.0",
  "published": "2026-08-15",
  "canonical": "https://yendoller.com/api/v0/view_policy.json",
  "principle": "画面に何を載せるかは、事前に公開された規則によって定まる。運営者がその日に「これが重要そうだ」と判断して載せ替えることはしない（会則第15条）。表示枠の増減・並べ替えは、本規則の新版発行によってのみ行う。",
  "policies": {
    "xray.core.v1": {
      "applies_to": [
        "/xray.html",
        "/index.html#now"
      ],
      "selection_rule": "fixed",
      "slot_order": "fixed",
      "description": "USDJPY X-RAY の表示枠。七層のうち、日次以上の頻度で更新され、かつ実データが配信中の層から固定枠で構成する。",
      "slots": [
        {
          "slot": "PRICE",
          "layer": 1,
          "series": "drv.usdjpy.decomposition",
          "field": "usdjpy"
        },
        {
          "slot": "CURRENCY_DECOMPOSITION",
          "layer": 1,
          "series": "drv.usdjpy.decomposition",
          "rule": "fx.decomp.leg@2"
        },
        {
          "slot": "RATE_GAP_2Y",
          "layer": 2,
          "series": "drv.gap.jp_us",
          "field": "gap2y"
        },
        {
          "slot": "RATE_GAP_10Y",
          "layer": 2,
          "series": "drv.gap.jp_us",
          "field": "gap10y"
        },
        {
          "slot": "POSITIONING",
          "layer": 3,
          "series": "cftc.legacy.jpy.noncomm_net"
        },
        {
          "slot": "NEXT_OBSERVATIONS",
          "layer": null,
          "source": "calendar.json",
          "filter": "precision=exact かつ直近3件"
        }
      ],
      "excluded": [
        {
          "layer": 4,
          "reason": "資金流は週次・月次であり、日次画面の固定枠に置かない"
        },
        {
          "layer": 5,
          "reason": "実現ボラは配信準備中"
        },
        {
          "layer": 6,
          "reason": "政策金利は会合都度であり、変化のない日が大半"
        },
        {
          "layer": 7,
          "reason": "介入は月次・四半期であり、かつ evidence_relation の説明を要するため独立画面が適切"
        }
      ],
      "change_procedure": "枠の追加・削除・並べ替えは xray.core.v2 として新版を発行し、旧版と差分・理由を保存する（会則第46条に準ずる）。"
    },
    "index.upcoming.v1": {
      "applies_to": [
        "/index.html#upcoming"
      ],
      "selection_rule": "chronological",
      "description": "今後の公表予定。events.json のうち公表時刻が現在以降のものを、日時順に先頭6件。区分・公表元による選別を行わない。",
      "limit": 6
    },
    "index.changes.v1": {
      "applies_to": [
        "/index.html#changes"
      ],
      "selection_rule": "detection_order",
      "description": "変更記録。changes.json を検出順に先頭5件。種別による選別・強調を行わない。",
      "limit": 5
    },
    "index.news.v1": {
      "applies_to": [
        "/index.html#news"
      ],
      "selection_rule": "reverse_chronological",
      "description": "お知らせ。news.json を新しい順に5件。全件は news.json に保持する。",
      "limit": 5
    },
    "daily.strip.v1": {
      "applies_to": [
        "/index.html",
        "/xray.html",
        "/changes.html",
        "/events.html"
      ],
      "selection_rule": "fixed",
      "slot_order": "fixed",
      "description": "nav直下に常設する1行サマリー。毎日開く利用者が、スクロールせずに状態を把握できるようにする。",
      "slots": [
        {
          "slot": "PRICE",
          "series": "drv.usdjpy.decomposition"
        },
        {
          "slot": "CURRENCY_DECOMPOSITION",
          "series": "drv.usdjpy.decomposition",
          "rule": "fx.decomp.leg@2"
        },
        {
          "slot": "RATE_GAP_2Y",
          "series": "drv.gap.jp_us"
        },
        {
          "slot": "RATE_GAP_10Y",
          "series": "drv.gap.jp_us"
        },
        {
          "slot": "POSITIONING",
          "series": "cftc.legacy.jpy.noncomm_net"
        },
        {
          "slot": "NEXT_RELEASE",
          "source": "calendar.json",
          "filter": "precision=exact の直近1件"
        },
        {
          "slot": "FRESHNESS",
          "desc": "最終観測日と経過日数。5日以上経過すると警告色にする"
        }
      ]
    }
  },
  "note": "本規則は表示枠の定義であり、値の選別を許すものではない。枠に該当する観測値は、内容にかかわらず表示される。",
  "encoding": {
    "direction": {
      "principle": "方向は記号を主とし、色を従とする。色だけに意味を持たせない（色覚多様性と誤読への対処）。",
      "symbols": {
        "up": "▲",
        "down": "▼",
        "flat": "＝"
      },
      "colors": {
        "up": "#E0584A（赤）",
        "down": "#0FA3BF（青緑）",
        "flat": "#8B98B0"
      },
      "convention": "日本の板・チャートの慣習に合わせ、赤を上昇とする。国際的な慣習（緑＝上昇）とは逆である点に注意。",
      "brand_color": "#E9A23B（燈）は規則による判定・訂正・強調にのみ用い、方向の意味を持たせない。"
    },
    "sparkline": {
      "desc": "各値に直近の推移をインラインSVGで併記する。観測値の描画であり、予想でも煽りでもない。",
      "windows": {
        "daily": "直近120営業日",
        "weekly": "直近156週"
      },
      "note": "縦軸は当該窓の最小〜最大に正規化。絶対水準の比較には使えない。"
    }
  },
  "motion": {
    "principle": "演出は表示の補助であり、観測値そのものを変えない。",
    "prohibited": [
      "数値のカウントアップ。観測されていない中間値を画面に出すことになるため行わない",
      "値の点滅・振動など、変化していない値を変化しているように見せる表現",
      "緊急性を演出する速い動きや強い色変化（会則第13条）"
    ],
    "allowed": [
      "初回訪問時のローディング（初回のみ・スキップ可・最長2.4秒・データ画面では表示しない）",
      "スクロールに応じた段差つきの出現（データ画面では無効）",
      "スパークラインの描画。線を引く順序を見せるだけで値は変えない",
      "操作への微細な反応（ホバー・押下）",
      "ヒーロー背景の緩やかな明暗（周期48秒。注意を引かない速度）"
    ],
    "accessibility": "prefers-reduced-motion: reduce では、ローディングを表示せず全アニメーションを無効化する。JavaScriptが動作しない場合、演出は一切適用されず内容がそのまま表示される。",
    "terminal_pages": "body.terminal（X-RAY・変更記録・系列詳細・管理画面）では出現アニメーションを行わない。毎日見る画面で待ち時間を作らないため。"
  }
}