{
  "$description": "파파야 디자인 토큰 구조 예시 — 위시켓 158662 제안용 디자인 시연에서 내보낸 파일입니다. 편집 가능한 Figma 원본이 아니며, 토큰을 이렇게 나눈다는 구조를 보여 줍니다.",
  "color": {
    "canvas": {
      "$type": "color",
      "$value": {
        "colorSpace": "srgb",
        "components": [
          0.9804,
          0.9725,
          0.9529
        ],
        "hex": "#FAF8F3"
      },
      "$description": "페이지 바탕(순백 금지)"
    },
    "surface": {
      "$type": "color",
      "$value": {
        "colorSpace": "srgb",
        "components": [
          1,
          1,
          1
        ],
        "hex": "#FFFFFF"
      },
      "$description": "카드·시트"
    },
    "subtle": {
      "$type": "color",
      "$value": {
        "colorSpace": "srgb",
        "components": [
          0.9529,
          0.9373,
          0.902
        ],
        "hex": "#F3EFE6"
      },
      "$description": "칩·입력 배경"
    },
    "border": {
      "$type": "color",
      "$value": {
        "colorSpace": "srgb",
        "components": [
          0.902,
          0.8745,
          0.8196
        ],
        "hex": "#E6DFD1"
      },
      "$description": "경계선"
    },
    "muted": {
      "$type": "color",
      "$value": {
        "colorSpace": "srgb",
        "components": [
          0.4157,
          0.3804,
          0.3216
        ],
        "hex": "#6A6152"
      },
      "$description": "보조 텍스트"
    },
    "ink": {
      "$type": "color",
      "$value": {
        "colorSpace": "srgb",
        "components": [
          0.1176,
          0.102,
          0.0745
        ],
        "hex": "#1E1A13"
      },
      "$description": "본문·교집합 해치"
    },
    "brand": {
      "$type": "color",
      "$value": {
        "colorSpace": "srgb",
        "components": [
          1,
          0.7216,
          0.1098
        ],
        "hex": "#FFB81C"
      },
      "$description": "파파야 노랑 — 선택 칩·브랜드 면(글자색 금지)"
    },
    "accent": {
      "$type": "color",
      "$value": {
        "colorSpace": "srgb",
        "components": [
          0.949,
          0.4706,
          0.0471
        ],
        "hex": "#F2780C"
      },
      "$description": "주요 CTA 한 곳 + 목적지 A · 위 글자는 ink"
    },
    "accent-text": {
      "$type": "color",
      "$value": {
        "colorSpace": "srgb",
        "components": [
          0.651,
          0.2941,
          0
        ],
        "hex": "#A64B00"
      },
      "$description": "오렌지 계열을 글자로 쓸 때만"
    },
    "dest-b": {
      "$type": "color",
      "$value": {
        "colorSpace": "srgb",
        "components": [
          0.1451,
          0.3882,
          0.7882
        ],
        "hex": "#2563C9"
      },
      "$description": "목적지 B 전용"
    },
    "loan": {
      "$type": "color",
      "$value": {
        "colorSpace": "srgb",
        "components": [
          0.1216,
          0.4784,
          0.302
        ],
        "hex": "#1F7A4D"
      },
      "$description": "「대출 가능」 배지 전용"
    },
    "danger": {
      "$type": "color",
      "$value": {
        "colorSpace": "srgb",
        "components": [
          0.7137,
          0.2275,
          0.1961
        ],
        "hex": "#B63A32"
      },
      "$description": "오류"
    },
    "derived": {
      "brand-soft": {
        "$type": "color",
        "$value": {
          "colorSpace": "srgb",
          "components": [
            1,
            0.9569,
            0.851
          ],
          "hex": "#FFF4D9"
        },
        "$description": "공공임대 태그·강조 면"
      },
      "accent-soft": {
        "$type": "color",
        "$value": {
          "colorSpace": "srgb",
          "components": [
            0.9922,
            0.9255,
            0.8588
          ],
          "hex": "#FDECDB"
        },
        "$description": "통근 칩 바탕"
      },
      "dest-b-soft": {
        "$type": "color",
        "$value": {
          "colorSpace": "srgb",
          "components": [
            0.8941,
            0.9294,
            0.9804
          ],
          "hex": "#E4EDFA"
        },
        "$description": "모집 예정 배지"
      },
      "loan-soft": {
        "$type": "color",
        "$value": {
          "colorSpace": "srgb",
          "components": [
            0.8902,
            0.9451,
            0.9137
          ],
          "hex": "#E3F1E9"
        },
        "$description": "대출 배지 바탕"
      },
      "danger-soft": {
        "$type": "color",
        "$value": {
          "colorSpace": "srgb",
          "components": [
            0.9725,
            0.902,
            0.8941
          ],
          "hex": "#F8E6E4"
        },
        "$description": "오류 카드"
      },
      "line-strong": {
        "$type": "color",
        "$value": {
          "colorSpace": "srgb",
          "components": [
            0.8275,
            0.7843,
            0.702
          ],
          "hex": "#D3C8B3"
        },
        "$description": "스위치 끔·빈 칩 점선"
      },
      "skeleton": {
        "$type": "color",
        "$value": {
          "colorSpace": "srgb",
          "components": [
            0.9294,
            0.9059,
            0.8549
          ],
          "hex": "#EDE7DA"
        },
        "$description": "스켈레톤"
      }
    }
  },
  "font": {
    "family": {
      "sans": {
        "$type": "fontFamily",
        "$value": [
          "Pretendard Variable",
          "Pretendard",
          "system-ui",
          "sans-serif"
        ],
        "$description": "한글 본문"
      },
      "num": {
        "$type": "fontFamily",
        "$value": [
          "Geist",
          "Pretendard Variable",
          "sans-serif"
        ],
        "$description": "숫자·가격·시간·면적 — font-variant-numeric: tabular-nums"
      }
    }
  },
  "typography": {
    "display": {
      "$type": "typography",
      "$value": {
        "fontFamily": "{font.family.num}",
        "fontSize": {
          "value": 26,
          "unit": "px"
        },
        "fontWeight": 800,
        "lineHeight": 1.25,
        "letterSpacing": {
          "value": 0,
          "unit": "px"
        }
      }
    },
    "title-lg": {
      "$type": "typography",
      "$value": {
        "fontFamily": "{font.family.sans}",
        "fontSize": {
          "value": 24,
          "unit": "px"
        },
        "fontWeight": 800,
        "lineHeight": 1.3,
        "letterSpacing": {
          "value": 0,
          "unit": "px"
        }
      }
    },
    "title": {
      "$type": "typography",
      "$value": {
        "fontFamily": "{font.family.sans}",
        "fontSize": {
          "value": 18,
          "unit": "px"
        },
        "fontWeight": 700,
        "lineHeight": 1.35,
        "letterSpacing": {
          "value": 0,
          "unit": "px"
        }
      }
    },
    "body-strong": {
      "$type": "typography",
      "$value": {
        "fontFamily": "{font.family.sans}",
        "fontSize": {
          "value": 15,
          "unit": "px"
        },
        "fontWeight": 700,
        "lineHeight": 1.45,
        "letterSpacing": {
          "value": 0,
          "unit": "px"
        }
      }
    },
    "body": {
      "$type": "typography",
      "$value": {
        "fontFamily": "{font.family.sans}",
        "fontSize": {
          "value": 14,
          "unit": "px"
        },
        "fontWeight": 400,
        "lineHeight": 1.5,
        "letterSpacing": {
          "value": 0,
          "unit": "px"
        }
      }
    },
    "label": {
      "$type": "typography",
      "$value": {
        "fontFamily": "{font.family.sans}",
        "fontSize": {
          "value": 13,
          "unit": "px"
        },
        "fontWeight": 600,
        "lineHeight": 1.4,
        "letterSpacing": {
          "value": 0,
          "unit": "px"
        }
      }
    },
    "caption": {
      "$type": "typography",
      "$value": {
        "fontFamily": "{font.family.sans}",
        "fontSize": {
          "value": 12,
          "unit": "px"
        },
        "fontWeight": 400,
        "lineHeight": 1.45,
        "letterSpacing": {
          "value": 0,
          "unit": "px"
        }
      }
    },
    "micro": {
      "$type": "typography",
      "$value": {
        "fontFamily": "{font.family.sans}",
        "fontSize": {
          "value": 11,
          "unit": "px"
        },
        "fontWeight": 600,
        "lineHeight": 1.3,
        "letterSpacing": {
          "value": 0,
          "unit": "px"
        }
      }
    },
    "price-tag": {
      "$type": "typography",
      "$value": {
        "fontFamily": "{font.family.num}",
        "fontSize": {
          "value": 12,
          "unit": "px"
        },
        "fontWeight": 700,
        "lineHeight": 1,
        "letterSpacing": {
          "value": 0,
          "unit": "px"
        }
      }
    }
  },
  "space": {
    "4": {
      "$type": "dimension",
      "$value": {
        "value": 4,
        "unit": "px"
      }
    },
    "8": {
      "$type": "dimension",
      "$value": {
        "value": 8,
        "unit": "px"
      }
    },
    "12": {
      "$type": "dimension",
      "$value": {
        "value": 12,
        "unit": "px"
      }
    },
    "16": {
      "$type": "dimension",
      "$value": {
        "value": 16,
        "unit": "px"
      }
    },
    "24": {
      "$type": "dimension",
      "$value": {
        "value": 24,
        "unit": "px"
      }
    },
    "32": {
      "$type": "dimension",
      "$value": {
        "value": 32,
        "unit": "px"
      }
    },
    "48": {
      "$type": "dimension",
      "$value": {
        "value": 48,
        "unit": "px"
      }
    },
    "72": {
      "$type": "dimension",
      "$value": {
        "value": 72,
        "unit": "px"
      }
    }
  },
  "radius": {
    "control": {
      "$type": "dimension",
      "$value": {
        "value": 10,
        "unit": "px"
      },
      "$description": "버튼·칩·입력"
    },
    "card": {
      "$type": "dimension",
      "$value": {
        "value": 20,
        "unit": "px"
      },
      "$description": "카드·시트 상단"
    }
  },
  "shadow": {
    "float": {
      "$type": "shadow",
      "$value": [
        {
          "color": {
            "colorSpace": "srgb",
            "components": [
              0.1176,
              0.102,
              0.0745
            ],
            "hex": "#1E1A13",
            "alpha": 0.06
          },
          "offsetX": {
            "value": 0,
            "unit": "px"
          },
          "offsetY": {
            "value": 1,
            "unit": "px"
          },
          "blur": {
            "value": 2,
            "unit": "px"
          },
          "spread": {
            "value": 0,
            "unit": "px"
          }
        },
        {
          "color": {
            "colorSpace": "srgb",
            "components": [
              0.1176,
              0.102,
              0.0745
            ],
            "hex": "#1E1A13",
            "alpha": 0.2
          },
          "offsetX": {
            "value": 0,
            "unit": "px"
          },
          "offsetY": {
            "value": 10,
            "unit": "px"
          },
          "blur": {
            "value": 28,
            "unit": "px"
          },
          "spread": {
            "value": -8,
            "unit": "px"
          }
        }
      ],
      "$description": "시트·떠 있는 카드"
    },
    "marker": {
      "$type": "shadow",
      "$value": {
        "color": {
          "colorSpace": "srgb",
          "components": [
            0.1176,
            0.102,
            0.0745
          ],
          "hex": "#1E1A13",
          "alpha": 0.28
        },
        "offsetX": {
          "value": 0,
          "unit": "px"
        },
        "offsetY": {
          "value": 2,
          "unit": "px"
        },
        "blur": {
          "value": 6,
          "unit": "px"
        },
        "spread": {
          "value": 0,
          "unit": "px"
        }
      },
      "$description": "선택된 마커"
    }
  },
  "motion": {
    "base": {
      "duration": {
        "$type": "duration",
        "$value": {
          "value": 180,
          "unit": "ms"
        },
        "$description": "기본 전환 · 진입 opacity+6px"
      },
      "easing": {
        "$type": "cubicBezier",
        "$value": [
          0.2,
          0.7,
          0.2,
          1
        ]
      }
    },
    "stagger": {
      "duration": {
        "$type": "duration",
        "$value": {
          "value": 32,
          "unit": "ms"
        },
        "$description": "리스트 처음 8개"
      }
    },
    "sheet-snap": {
      "duration": {
        "$type": "duration",
        "$value": {
          "value": 220,
          "unit": "ms"
        },
        "$description": "바텀시트 스냅"
      },
      "easing": {
        "$type": "cubicBezier",
        "$value": [
          0.2,
          0.7,
          0.2,
          1
        ]
      }
    },
    "zone-reveal": {
      "duration": {
        "$type": "duration",
        "$value": {
          "value": 240,
          "unit": "ms"
        },
        "$description": "권역 30→45→60 · 60ms 간격"
      },
      "easing": {
        "$type": "cubicBezier",
        "$value": [
          0.2,
          0.7,
          0.2,
          1
        ]
      }
    },
    "camera": {
      "duration": {
        "$type": "duration",
        "$value": {
          "value": 650,
          "unit": "ms"
        },
        "$description": "flyTo·fitBounds (700ms 이내)"
      }
    }
  },
  "map": {
    "$description": "지도 레이어 토큰 — 폴리곤·해치·마커가 지도 타일·클러스터와 겹쳐도 읽히게 하는 값",
    "zone": {
      "A": {
        "fill-30": {
          "$type": "color",
          "$value": {
            "colorSpace": "srgb",
            "components": [
              0.949,
              0.4706,
              0.0471
            ],
            "hex": "#F2780C",
            "alpha": 0.32
          },
          "$description": "권역 A 30분 채움(농도형 · 겹친 결과의 불투명도)"
        },
        "line-width-30": {
          "$type": "dimension",
          "$value": {
            "value": 1.5,
            "unit": "px"
          }
        },
        "fill-45": {
          "$type": "color",
          "$value": {
            "colorSpace": "srgb",
            "components": [
              0.949,
              0.4706,
              0.0471
            ],
            "hex": "#F2780C",
            "alpha": 0.2
          },
          "$description": "권역 A 45분 채움(농도형 · 겹친 결과의 불투명도)"
        },
        "line-width-45": {
          "$type": "dimension",
          "$value": {
            "value": 1.25,
            "unit": "px"
          }
        },
        "fill-60": {
          "$type": "color",
          "$value": {
            "colorSpace": "srgb",
            "components": [
              0.949,
              0.4706,
              0.0471
            ],
            "hex": "#F2780C",
            "alpha": 0.1
          },
          "$description": "권역 A 60분 채움(농도형 · 겹친 결과의 불투명도)"
        },
        "line-width-60": {
          "$type": "dimension",
          "$value": {
            "value": 1,
            "unit": "px"
          }
        },
        "line": {
          "$type": "color",
          "$value": {
            "colorSpace": "srgb",
            "components": [
              0.7608,
              0.3765,
              0.0392
            ],
            "hex": "#C2600A"
          },
          "$description": "외곽선 — 목적지 색 명도 −20%"
        }
      },
      "B": {
        "fill-30": {
          "$type": "color",
          "$value": {
            "colorSpace": "srgb",
            "components": [
              0.1451,
              0.3882,
              0.7882
            ],
            "hex": "#2563C9",
            "alpha": 0.28
          },
          "$description": "권역 B 30분 채움(농도형 · 겹친 결과의 불투명도)"
        },
        "line-width-30": {
          "$type": "dimension",
          "$value": {
            "value": 1.5,
            "unit": "px"
          }
        },
        "fill-45": {
          "$type": "color",
          "$value": {
            "colorSpace": "srgb",
            "components": [
              0.1451,
              0.3882,
              0.7882
            ],
            "hex": "#2563C9",
            "alpha": 0.17
          },
          "$description": "권역 B 45분 채움(농도형 · 겹친 결과의 불투명도)"
        },
        "line-width-45": {
          "$type": "dimension",
          "$value": {
            "value": 1.25,
            "unit": "px"
          }
        },
        "fill-60": {
          "$type": "color",
          "$value": {
            "colorSpace": "srgb",
            "components": [
              0.1451,
              0.3882,
              0.7882
            ],
            "hex": "#2563C9",
            "alpha": 0.09
          },
          "$description": "권역 B 60분 채움(농도형 · 겹친 결과의 불투명도)"
        },
        "line-width-60": {
          "$type": "dimension",
          "$value": {
            "value": 1,
            "unit": "px"
          }
        },
        "line": {
          "$type": "color",
          "$value": {
            "colorSpace": "srgb",
            "components": [
              0.1176,
              0.3098,
              0.6314
            ],
            "hex": "#1E4FA1"
          },
          "$description": "외곽선 — 목적지 색 명도 −20%"
        }
      },
      "halo": {
        "color": {
          "$type": "color",
          "$value": {
            "colorSpace": "srgb",
            "components": [
              1,
              1,
              1
            ],
            "hex": "#FFFFFF",
            "alpha": 0.9
          },
          "$description": "외곽선 밑 흰 halo"
        },
        "width": {
          "$type": "dimension",
          "$value": {
            "value": 3,
            "unit": "px"
          }
        }
      },
      "steps": {
        "fill-opacity": {
          "$type": "number",
          "$value": 0.06
        },
        "line-width": {
          "$type": "dimension",
          "$value": {
            "value": 2,
            "unit": "px"
          },
          "$description": "계단형 외곽선 + 「30분」 선 위 라벨"
        }
      }
    },
    "intersection": {
      "hatch": {
        "$type": "color",
        "$value": {
          "colorSpace": "srgb",
          "components": [
            0.1176,
            0.102,
            0.0745
          ],
          "hex": "#1E1A13",
          "alpha": 0.35
        },
        "$description": "교집합 사선 해치"
      },
      "hatch-size": {
        "$type": "dimension",
        "$value": {
          "value": 8,
          "unit": "px"
        }
      },
      "hatch-line": {
        "$type": "dimension",
        "$value": {
          "value": 1,
          "unit": "px"
        }
      },
      "line-width": {
        "$type": "dimension",
        "$value": {
          "value": 2,
          "unit": "px"
        },
        "$description": "ink 외곽선 + 라벨 「둘 다 N분」"
      }
    },
    "marker": {
      "inside": {
        "background": {
          "$type": "color",
          "$value": "{color.surface}"
        },
        "text": {
          "$type": "color",
          "$value": "{color.ink}"
        },
        "border": {
          "$type": "dimension",
          "$value": {
            "value": 2,
            "unit": "px"
          },
          "$description": "목적지 색 테두리"
        }
      },
      "selected": {
        "background": {
          "$type": "color",
          "$value": "{color.ink}"
        },
        "text": {
          "$type": "color",
          "$value": "{color.surface}"
        }
      },
      "outside": {
        "background": {
          "$type": "color",
          "$value": "{color.subtle}"
        },
        "text": {
          "$type": "color",
          "$value": "{color.muted}"
        },
        "opacity": {
          "$type": "number",
          "$value": 0.55
        }
      },
      "cluster-inside": {
        "background": {
          "$type": "color",
          "$value": "{color.ink}"
        },
        "text": {
          "$type": "color",
          "$value": "{color.surface}"
        }
      },
      "cluster-outside": {
        "background": {
          "$type": "color",
          "$value": "{color.border}"
        },
        "text": {
          "$type": "color",
          "$value": "{color.muted}"
        }
      }
    }
  }
}
