{
  text: {
    display: {
      size: {
        $value: '{base.text.size.2xl}',
        $type: 'dimension',
        $extensions: {
          'org.primer.figma': {
            collection: 'typography',
            scopes: ['fontSize'],
          },
        },
      },
      lineHeight: {
        $value: '{base.text.lineHeight.snug}',
        $type: 'number',
        $extensions: {
          'org.primer.data': {
            fontSize: 40,
          },
          'org.primer.figma': {
            collection: 'typography',
            scopes: ['lineHeight'],
          },
        },
      },
      weight: {
        $value: '{base.text.weight.medium}',
        $type: 'fontWeight',
        $extensions: {
          'org.primer.figma': {
            collection: 'typography',
            scopes: ['fontWeight'],
          },
        },
      },
      shorthand: {
        $value: {
          fontWeight: '{text.display.weight}',
          fontSize: '{text.display.size}',
          lineHeight: '{text.display.lineHeight}',
          fontFamily: '{fontStack.sansSerifDisplay}',
        },
        $type: 'typography',
        $description: 'Hero-style text for brand to product transition pages. Utilize Title (large) styles on narrow viewports.',
        $extensions: {
          'org.primer.llm': {
            usage: ['hero-section', 'landing-page', 'marketing-header'],
            rules: 'Use sparingly for hero sections. Switch to title.large on narrow viewports.',
          },
        },
      },
    },
    title: {
      size: {
        large: {
          $value: '{base.text.size.xl}',
          $type: 'dimension',
          $extensions: {
            'org.primer.figma': {
              collection: 'typography',
              scopes: ['fontSize'],
            },
          },
        },
        medium: {
          $value: '{base.text.size.lg}',
          $type: 'dimension',
          $extensions: {
            'org.primer.figma': {
              collection: 'typography',
              scopes: ['fontSize'],
            },
          },
        },
        small: {
          $value: '{base.text.size.md}',
          $type: 'dimension',
          $extensions: {
            'org.primer.figma': {
              collection: 'typography',
              scopes: ['fontSize'],
            },
          },
        },
      },
      lineHeight: {
        large: {
          $value: '{base.text.lineHeight.normal}',
          $type: 'number',
          $extensions: {
            'org.primer.data': {
              fontSize: 32,
            },
            'org.primer.figma': {
              collection: 'typography',
              scopes: ['lineHeight'],
            },
          },
        },
        medium: {
          $value: '{base.text.lineHeight.relaxed}',
          $type: 'number',
          $extensions: {
            'org.primer.data': {
              fontSize: 20,
            },
            'org.primer.figma': {
              collection: 'typography',
              scopes: ['lineHeight'],
            },
          },
        },
        small: {
          $value: '{base.text.lineHeight.normal}',
          $type: 'number',
          $extensions: {
            'org.primer.data': {
              fontSize: 16,
            },
            'org.primer.figma': {
              collection: 'typography',
              scopes: ['lineHeight'],
            },
          },
        },
      },
      weight: {
        large: {
          $value: '{base.text.weight.semibold}',
          $type: 'fontWeight',
          $extensions: {
            'org.primer.figma': {
              collection: 'typography',
              scopes: ['fontWeight'],
            },
          },
        },
        medium: {
          $value: '{base.text.weight.semibold}',
          $type: 'fontWeight',
          $extensions: {
            'org.primer.figma': {
              collection: 'typography',
              scopes: ['fontWeight'],
            },
          },
        },
        small: {
          $value: '{base.text.weight.semibold}',
          $type: 'fontWeight',
          $extensions: {
            'org.primer.figma': {
              collection: 'typography',
              scopes: ['fontWeight'],
            },
          },
        },
      },
      shorthand: {
        large: {
          $value: {
            fontWeight: '{text.title.weight.large}',
            fontSize: '{text.title.size.large}',
            lineHeight: '{text.title.lineHeight.large}',
            fontFamily: '{fontStack.sansSerifDisplay}',
          },
          $type: 'typography',
          $description: 'Page headings for user-created objects, such as issues or pull requests. Utilize title (medium) styles on narrow viewports.',
          $extensions: {
            'org.primer.llm': {
              usage: ['page-heading', 'issue-title', 'pr-title', 'h1'],
              rules: 'Use for primary page headings. Switch to title.medium on narrow viewports.',
            },
          },
        },
        medium: {
          $value: {
            fontWeight: '{text.title.weight.medium}',
            fontSize: '{text.title.size.medium}',
            lineHeight: '{text.title.lineHeight.medium}',
            fontFamily: '{fontStack.sansSerifDisplay}',
          },
          $type: 'typography',
          $description: 'Default page title. The 32px-equivalent line-height matches with button and other medium control heights. Great for page header composition.',
          $extensions: {
            'org.primer.llm': {
              usage: ['section-heading', 'card-title', 'dialog-title', 'h2'],
              rules: 'RECOMMENDED default for page titles. Use for section headings and dialog titles.',
            },
          },
        },
        small: {
          $value: {
            fontWeight: '{text.title.weight.small}',
            fontSize: '{text.title.size.small}',
            lineHeight: '{text.title.lineHeight.small}',
            fontFamily: '{fontStack.sansSerif}',
          },
          $type: 'typography',
          $description: 'Uses the same size as body (large) with a heavier weight of semibold (600).',
          $extensions: {
            'org.primer.llm': {
              usage: ['subsection-heading', 'list-title', 'h3', 'sidebar-heading'],
              rules: 'Use for smaller headings within sections. Same size as body.large but semibold.',
            },
          },
        },
      },
    },
    subtitle: {
      size: {
        $value: '{base.text.size.lg}',
        $type: 'dimension',
        $extensions: {
          'org.primer.figma': {
            collection: 'typography',
            scopes: ['fontSize'],
          },
        },
      },
      lineHeight: {
        $value: '{base.text.lineHeight.relaxed}',
        $type: 'number',
        $extensions: {
          'org.primer.data': {
            fontSize: 20,
          },
          'org.primer.figma': {
            collection: 'typography',
            scopes: ['lineHeight'],
          },
        },
      },
      weight: {
        $value: '{base.text.weight.normal}',
        $type: 'fontWeight',
        $extensions: {
          'org.primer.figma': {
            collection: 'typography',
            scopes: ['fontWeight'],
          },
        },
      },
      shorthand: {
        $value: {
          fontWeight: '{text.subtitle.weight}',
          fontSize: '{text.subtitle.size}',
          lineHeight: '{text.subtitle.lineHeight}',
          fontFamily: '{fontStack.sansSerifDisplay}',
        },
        $type: 'typography',
        $description: 'Page sections/sub headings, or less important object names in page titles (automated action titles, for example). Same line-height as title (medium).',
        $extensions: {
          'org.primer.llm': {
            usage: ['subtitle', 'description', 'secondary-heading', 'lead-text'],
            rules: 'Use below titles for supporting text. Normal weight distinguishes from title styles.',
          },
        },
      },
    },
    body: {
      size: {
        large: {
          $value: '{base.text.size.md}',
          $type: 'dimension',
          $extensions: {
            'org.primer.figma': {
              collection: 'typography',
              scopes: ['fontSize'],
            },
          },
        },
        medium: {
          $value: '{base.text.size.sm}',
          $type: 'dimension',
          $extensions: {
            'org.primer.figma': {
              collection: 'typography',
              scopes: ['fontSize'],
            },
          },
        },
        small: {
          $value: '{base.text.size.xs}',
          $type: 'dimension',
          $extensions: {
            'org.primer.figma': {
              collection: 'typography',
              scopes: ['fontSize'],
            },
          },
        },
      },
      lineHeight: {
        large: {
          $value: '{base.text.lineHeight.normal}',
          $type: 'number',
          $extensions: {
            'org.primer.data': {
              fontSize: 16,
            },
            'org.primer.figma': {
              collection: 'typography',
              scopes: ['lineHeight'],
            },
          },
        },
        medium: {
          $value: '{base.text.lineHeight.normal}',
          $type: 'number',
          $extensions: {
            'org.primer.data': {
              fontSize: 14,
            },
            'org.primer.figma': {
              collection: 'typography',
              scopes: ['lineHeight'],
            },
          },
        },
        small: {
          $value: '{base.text.lineHeight.relaxed}',
          $type: 'number',
          $extensions: {
            'org.primer.data': {
              fontSize: 12,
            },
            'org.primer.figma': {
              collection: 'typography',
              scopes: ['lineHeight'],
            },
          },
        },
      },
      weight: {
        $value: '{base.text.weight.normal}',
        $type: 'fontWeight',
        $extensions: {
          'org.primer.figma': {
            collection: 'typography',
            scopes: ['fontWeight'],
          },
        },
      },
      shorthand: {
        large: {
          $value: {
            fontWeight: '{text.body.weight}',
            fontSize: '{text.body.size.large}',
            lineHeight: '{text.body.lineHeight.large}',
            fontFamily: '{fontStack.sansSerif}',
          },
          $type: 'typography',
          $description: 'User-generated content, markdown rendering.',
          $extensions: {
            'org.primer.llm': {
              usage: ['markdown-content', 'article-text', 'readme', 'comment-body'],
              rules: 'Use for user-generated content and markdown. Better readability for longer text.',
            },
          },
        },
        medium: {
          $value: {
            fontWeight: '{text.body.weight}',
            fontSize: '{text.body.size.medium}',
            lineHeight: '{text.body.lineHeight.medium}',
            fontFamily: '{fontStack.sansSerif}',
          },
          $type: 'typography',
          $description: 'Default UI font. Most commonly used for body text.',
          $extensions: {
            'org.primer.llm': {
              usage: ['body-text', 'ui-text', 'form-label', 'button-text', 'navigation'],
              rules: 'RECOMMENDED default for UI text. Use for buttons, labels, and general interface text.',
            },
          },
        },
        small: {
          $value: {
            fontWeight: '{text.body.weight}',
            fontSize: '{text.body.size.small}',
            lineHeight: '{text.body.lineHeight.small}',
            fontFamily: '{fontStack.sansSerif}',
          },
          $type: 'typography',
          $description: 'Small body text for discrete UI applications, such as helper, footnote text. Should be used sparingly across pages. Line-height matches Body (medium) at 20px.',
          $extensions: {
            'org.primer.llm': {
              usage: ['helper-text', 'footnote', 'metadata', 'timestamp'],
              rules: 'Use sparingly for secondary information. Do NOT use for primary content or interactive elements.',
            },
          },
        },
      },
    },
    caption: {
      size: {
        $value: '{base.text.size.xs}',
        $type: 'dimension',
        $extensions: {
          'org.primer.figma': {
            collection: 'typography',
            scopes: ['fontSize'],
          },
        },
      },
      lineHeight: {
        $value: '{base.text.lineHeight.tight}',
        $type: 'number',
        $extensions: {
          'org.primer.data': {
            fontSize: 12,
          },
          'org.primer.figma': {
            collection: 'typography',
            scopes: ['lineHeight'],
          },
        },
      },
      weight: {
        $value: '{base.text.weight.normal}',
        $type: 'fontWeight',
        $extensions: {
          'org.primer.figma': {
            collection: 'typography',
            scopes: ['fontWeight'],
          },
        },
      },
      shorthand: {
        $value: {
          fontWeight: '{text.caption.weight}',
          fontSize: '{text.caption.size}',
          lineHeight: '{text.caption.lineHeight}',
          fontFamily: '{fontStack.sansSerif}',
        },
        $type: 'typography',
        $description: 'Compact small font with a smaller line height of 16px. Use it for single-line scenarios, as the small sizing doesn’t pass accessibility requirements.',
        $extensions: {
          'org.primer.llm': {
            usage: ['caption', 'label', 'badge-text', 'single-line-metadata'],
            rules: 'Use only for single-line or short text. Does NOT meet accessibility requirements for body text.',
          },
        },
      },
    },
    codeBlock: {
      size: {
        $value: {value: 13, unit: 'px'},
        $type: 'dimension',
        $extensions: {
          'org.primer.figma': {
            collection: 'typography',
            scopes: ['fontSize'],
          },
        },
      },
      lineHeight: {
        $value: '{base.text.lineHeight.normal}',
        $type: 'number',
        $extensions: {
          'org.primer.data': {
            fontSize: 13,
          },
          'org.primer.figma': {
            collection: 'typography',
            scopes: ['lineHeight'],
          },
        },
      },
      weight: {
        $value: '{base.text.weight.normal}',
        $type: 'fontWeight',
        $extensions: {
          'org.primer.figma': {
            collection: 'typography',
            scopes: ['fontWeight'],
          },
        },
      },
      shorthand: {
        $value: {
          fontWeight: '{text.codeBlock.weight}',
          fontSize: '{text.codeBlock.size}',
          lineHeight: '{text.codeBlock.lineHeight}',
          fontFamily: '{fontStack.monospace}',
        },
        $type: 'typography',
        $description: 'Default style for rendering code blocks.',
        $extensions: {
          'org.primer.llm': {
            usage: ['code-block', 'pre-element', 'code-snippet', 'terminal-output'],
            rules: 'MUST use for multi-line code. Use monospace font stack.',
          },
        },
      },
    },
    codeInline: {
      size: {
        $value: {
          value: 0.9285,
          unit: 'em',
        },
        $type: 'dimension',
        $extensions: {
          'org.primer.figma': {
            collection: 'typography',
            scopes: ['fontSize'],
          },
        },
      },
      weight: {
        $value: '{base.text.weight.normal}',
        $type: 'fontWeight',
        $extensions: {
          'org.primer.figma': {
            collection: 'typography',
            scopes: ['fontWeight'],
          },
        },
      },
      shorthand: {
        $value: {
          fontWeight: '{text.codeInline.weight}',
          fontSize: '{text.codeInline.size}',
          fontFamily: '{fontStack.monospace}',
        },
        $type: 'typography',
        $description: 'Inline code blocks using em units to inherit size from its parent.',
        $extensions: {
          'org.primer.llm': {
            usage: ['inline-code', 'code-element', 'variable-name', 'command'],
            rules: 'Use for inline code within text. Size inherits from parent using em units.',
          },
        },
      },
    },
  },
}
