Add dezh and tesh with retroflex hook. (#2263) (#2616)

This commit is contained in:
John McWilliams 2024-12-15 15:43:42 -05:00 committed by GitHub
parent 95db38ba9d
commit ce80ec0407
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 109 additions and 74 deletions

View file

@ -45,8 +45,8 @@
- MODIFIER LETTER CAPITAL W (`U+1D42`).
- MODIFIER LETTER SMALL TURNED AE (`U+1D46`).
- MODIFIER LETTER SMALL M (`U+1D50`).
- MODIFIER LETTER SMALL TURNED M (`U+015A`).
- LATIN SMALL LETTER UE (`U+016B`).
- MODIFIER LETTER SMALL TURNED M (`U+1D5A`).
- LATIN SMALL LETTER UE (`U+1D6B`).
- LATIN SMALL LETTER M WITH MIDDLE TILDE (`U+1D6F`).
- LATIN SMALL LETTER M WITH PALATAL HOOK (`U+1D86`).
- MODIFIER LETTER SMALL M WITH HOOK (`U+1DAC`) ... MODIFIER LETTER SMALL TURNED M WITH LONG LEG (`U+1DAD`).
@ -112,3 +112,5 @@
- CLOSED SUBSET (`U+2ACF`) ... CLOSED SUPERSET OR EQUAL TO (`U+2AD2`).
- ANTICLOCKWISE TRIANGLE-HEADED RIGHT U-SHAPED ARROW (`U+2B8C`) ... FOUR CORNER ARROWS CIRCLING ANTICLOCKWISE (`U+2B94`).
- DOWNWARDS TRIANGLE-HEADED ARROW WITH LONG TIP LEFTWARDS (`U+2BA0`) ... RIGHTWARDS TRIANGLE-HEADED ARROW WITH LONG TIP DOWNWARDS (`U+2BA7`).
- LATIN SMALL LETTER DEZH DIGRAPH WITH RETROFLEX HOOK (`U+1DF19`).
- LATIN SMALL LETTER TESH DIGRAPH WITH RETROFLEX HOOK (`U+1DF1C`).

View file

@ -1637,8 +1637,10 @@ glyph-block Autobuild-Pnonetic-Ligatures : begin
list 0xAB67 { 't/phoneticLeft1' 'sRTail' } 'bp'
list 0x1DF12 { 'd/phoneticLeft' 'ezhPalatalHook/phoneticRight' } 'bp'
list 0x1DF17 { 't/teshLeft' 'eshPalatalHook' } 'bp'
list 0xFB05 { 'longs/flatExt' 't/phoneticRight' } null
list 0xFB06 { 's/compLigLeft' 't/phoneticRight' } null
list 0x1DF19 { 'd/phoneticLeft' 'ezhRetroflexHook/phoneticRight' } 'bp'
list 0x1DF1C { 't/teshLeft' 'eshRetroflexHook/teshRight' } 'bp'
list 0xFB05 { 'longs/compLigLeft' 't/compLigRight' } null
list 0xFB06 { 's/compLigLeft' 't/compLigRight' } null
createPhoneticLigatures ToLetter 'phonetic3' para.diversityMM 3 stdShrink 1 : list
list 0xFB03 { 'f/compLigLeft1' 'f/compLigLeft1' 'dotlessi/compLigRight' } null

View file

@ -216,6 +216,22 @@ glyph-block Letter-Latin-Ezh : begin
ada -- SmallArchDepthA
adb -- SmallArchDepthB
create-glyph "ezhRetroflexHook/phoneticRight.\(suffix)" : glyph-proc
include : MarkSet.p
local b : Math.min (O - SHook) ((-LongVJut) + 0.25 * Stroke)
include : EzhShape [DivFrame 1] XH b
pLeft -- (4/15)
isCursive -- isCursive
isSerifed -- isSerifed
hook -- SHook
ada -- SmallArchDepthA
adb -- SmallArchDepthB
terminalShape -- RetroflexConnectionTerminal
include : RetroflexHook.l
x -- SB
y -- b
yAttach -- (b + SHook)
create-glyph "ezhPalatalHook/phoneticRight.\(suffix)" : glyph-proc
include : MarkSet.p
local [object yMidBar] : include : EzhShape [DivFrame 1] XH Descender
@ -241,6 +257,7 @@ glyph-block Letter-Latin-Ezh : begin
select-variant 'ezhRetroflexHook' 0x1D9A (follow -- 'ezh')
select-variant 'ezhPalatalHook' 0x1DF18 (follow -- 'ezh')
select-variant 'ezh/phoneticRight'
select-variant 'ezhRetroflexHook/phoneticRight' (follow -- 'ezh/phoneticRight')
select-variant 'ezhPalatalHook/phoneticRight' (follow -- 'ezh/phoneticRight')
alias 'cyrl/abk/Dze' 0x4E0 'Ezh'

View file

@ -174,7 +174,8 @@ glyph-block Letter-Latin-Long-S : begin
include : MarkSet.bp
currentGlyph.copyBaseAnchorIfAbsent 'leaningAbove' 'above'
include : union
intersection [MaskAbove 0] [LongSShape Ascender Descender (HookX + 0.25 * Stroke) Hook]
intersection [MaskAbove 0]
LongSShape Ascender Descender (HookX + 0.25 * Stroke) Hook
SmallFDiagonalTail [DivFrame 1] (Middle - [HSwToV HalfStroke])
StandardSerifs (Middle - [HSwToV HalfStroke]) serifStyle
create-forked-glyph "longsBar.flatHookDiagonalTailed\(suffix)" : LongSSymmetricOverlayBar Middle
@ -212,37 +213,50 @@ glyph-block Letter-Latin-Long-S : begin
include : LongSShape Ascender 0 (HookX + 0.25 * Stroke) Hook
select-variant "longs" 0x17F
select-variant "longs/flatExt" (shapeFrom -- "longs")
select-variant "longs/compLigLeft" (shapeFrom -- "longs")
select-variant "longsBar" 0x1E9D
alias "esh" 0x283 "longs.flatHookTailedSerifless"
derive-composites "eshPalatalHook" 0x1D8B "esh"
PalatalHook.r (x -- RightSB) (y -- 0) (xLink -- Middle) (refSw -- [AdviceStroke 3])
maskOut -- [intersection [MaskBelow 0] [MaskLeft (Middle + [HSwToV HalfStroke])]]
derive-composites "eshPalatalHook" 0x1D8B "esh" : PalatalHook.r
x -- RightSB
y -- 0
xLink -- Middle
refSw -- [AdviceStroke 3]
maskOut -- [intersection [MaskBelow 0] [MaskLeft : Middle + [HSwToV HalfStroke]]]
create-glyph "eshRetroflexHook" 0x1D98 : glyph-proc
include : MarkSet.bp
include : LongSShape Ascender 0 (HookX + 0.25 * Stroke) Hook
include : RetroflexHook.l
x -- Middle - (HookX + 0.25 * Stroke)
x -- (Middle - (HookX + 0.25 * Stroke))
y -- 0
yOverflow -- Stroke
create-glyph "eshRetroflexHook/teshRight" : glyph-proc
include : MarkSet.bp
local b : Math.min (2 * O - Stroke) ((-LongVJut) + 0.25 * Stroke)
include : LongSShape Ascender b (HookX + 0.25 * Stroke) Hook
include : RetroflexHook.l
x -- (Middle - (HookX + 0.25 * Stroke))
y -- b
yOverflow -- Stroke
create-glyph "eshCurlyTail" 0x286 : glyph-proc
include : MarkSet.bp
local fine : AdviceStroke 3.5
local rinner : LongJut / 2 - fine / 2
local m1 : Middle + [HSwToV HalfStroke] - FBalance
# local x2 : mix RightSB m1 0.25
# local rinner : LongJut / 2 - fine / 2
local m : Middle + [HSwToV HalfStroke] - FBalance
# local x2 : mix RightSB m 0.25
# local y2 : Descender + O
include : union
LongSUpperHalf 1 (Middle - FBalance) Ascender 0 (HookX + 0.25 * Stroke) Hook
dispiro
widths.rhs
flat m1 (-O) [heading Downward]
curl m1 (Descender + fine + rinner * 2)
CurlyTail.n fine Descender (m1 - LongJut - [HSwToV Stroke])
x2 -- RightSB + [HSwToV : 0.5 * fine]
y2 -- Descender + 0.5 * fine
flat m (-O) [heading Downward]
curl m (Descender + LongJut)
CurlyTail.n fine Descender (m - LongJut - [HSwToV Stroke])
x2 -- (RightSB + [HSwToV : 0.5 * fine])
y2 -- (Descender + 0.5 * fine)
create-glyph "iFishHook" 0x27F : glyph-proc
include : MarkSet.p

View file

@ -107,8 +107,8 @@ glyph-block Letter-Latin-Lower-T : begin
define Flat : namespace
export : define [xCrossBarPos df sym] : match sym
([Just SYM-LEFT] || [Just SYM-PR-LEFT]) {([BarLeftPos df sym] + TanSlope * Stroke) [mix df.width df.rightSB [mix 1 df.div 2]]}
__ {[mix 0 df.leftSB [mix 1 df.div 2]] [mix df.width df.rightSB [mix 1 df.div 2]]}
([Just SYM-LEFT] || [Just SYM-PR-LEFT]) {([BarLeftPos df sym] + TanSlope * Stroke) [mix df.width df.rightSB : mix 1 df.div 2]}
__ {[mix 0 df.leftSB [mix 1 df.div 2]] [mix df.width df.rightSB : mix 1 df.div 2]}
define [CrossLeft df] : mix 0 df.leftSB [mix 1 df.div 2]
@ -230,7 +230,7 @@ glyph-block Letter-Latin-Lower-T : begin
include : df.markSet.b
include : (Style.PLBody || Style.Body) df sym top 0
create-glyph "t/phoneticRight.\(suffix)" : glyph-proc
create-glyph "t/compLigRight.\(suffix)" : glyph-proc
set-width df.width
include : df.markSet.b
include : difference
@ -280,7 +280,7 @@ glyph-block Letter-Latin-Lower-T : begin
local df : DivFrame 1
local fine : AdviceStroke 3.5
local rinner : LongJut / 2 - fine / 2
# local rinner : LongJut / 2 - fine / 2
local xLeft : Style.BarLeftPos df sym
@ -291,14 +291,14 @@ glyph-block Letter-Latin-Lower-T : begin
include : dispiro
widths.lhs
flat xLeft (yCrossBar - Stroke) [heading Downward]
curl xLeft (fine + rinner * 2)
curl xLeft LongJut
CurlyTail.n fine 0 (xLeft + [HSwToV Stroke] + LongJut) 0 0
select-variant 't' 't'
select-variant 't/teshLeft' (follow -- 't')
select-variant 't/phoneticLeft1' (shapeFrom -- 't')
select-variant 't/phoneticLeft2'
select-variant 't/phoneticRight'
select-variant 't/compLigRight'
CreateCommaCaronComposition 'tcaron' 0x165 't'
derive-glyphs 'tCedilla' 0x163 't' ConnectedCedilla
CreateAccentedComposition 'tComma' 0x21B 't' 'commaBelow'

View file

@ -394,13 +394,13 @@ glyph-block Letter-Latin-S : begin
derive-composites 'sPalatalHook' 0x1D8A 's' : PalatalHook.r
x -- [mix [arch.adjust-x.bot Middle] DfLower.rightSB 0.75]
y -- 0
yAttach -- [mix O [AdviceSArchDepth XH (-1) [AdviceStroke2 2 3 XH]] : archv.yFromX 0.75]
yAttach -- [mix O [AdviceSArchDepth XH (-1) : AdviceStroke2 2 3 XH] : archv.yFromX 0.75]
select-variant 's/ascBase' (shapeFrom -- 's')
derive-composites "s/compLigLeft" null "s/ascBase" : glyph-proc
eject-contour 'arcStartSerifR'
local sw : ArcStartSerifWidth [AdviceStroke2 2 3 XH]
local sw : ArcStartSerifWidth : AdviceStroke2 2 3 XH
local fine : sw * [mix CThinB 1 0.6]
local hd : FlatHookDepth DfCapital
local yStart : XH - [ArcStartSerifDepth SHook]
@ -410,8 +410,8 @@ glyph-block Letter-Latin-S : begin
widths.rhs fine
flat (RightSB - [HSwToV fine]) yStart [heading Upward]
curl (RightSB - [HSwToV fine]) (yStart + neckLength) [heading Upward]
alsoThru.g2 0.5 0.5 [widths.center [mix fine sw 0.35]]
g4 (RightSB - leftExt) [Math.min ([mix XH Ascender 0.5]) (Ascender - 1.375 * sw)] [widths.lhs : mix fine sw 0.7]
alsoThru.g2 0.5 0.5 [widths.center : mix fine sw 0.35]
g4 (RightSB - leftExt) [Math.min (Ascender - 1.375 * sw) : mix XH Ascender 0.5] [widths.lhs : mix fine sw 0.7]
arcvh
flat RightSB Ascender [widths.rhs.heading sw Rightward]
curl (4 * Width) Ascender [widths.rhs.heading sw Rightward]
@ -437,8 +437,8 @@ glyph-block Letter-Latin-S : begin
df -- df
top -- CAP
hook -- Hook
swStart -- BBS * [if (sign > 0) CThin 1]
swEnd -- BBS * [if (sign < 0) CThin 1]
swStart -- (BBS * [if (sign > 0) CThin 1])
swEnd -- (BBS * [if (sign < 0) CThin 1])
oXLeftTop -- O
ess -- BBD
offsetC -- {
@ -463,8 +463,8 @@ glyph-block Letter-Latin-S : begin
df -- df
top -- XH
hook -- SHook
swStart -- BBS * [if (sign > 0) CThin 1]
swEnd -- BBS * [if (sign < 0) CThin 1]
swStart -- (BBS * [if (sign > 0) CThin 1])
swEnd -- (BBS * [if (sign < 0) CThin 1])
oXLeftTop -- (OX / 8)
ess -- BBD
offsetC -- {
@ -499,7 +499,7 @@ glyph-block Letter-Latin-S : begin
define top : CAP * kTop
define swBarThick : AdviceStroke 3
define swBarFine : AdviceStroke [StrokeWidthBlend 3 5.5]
define swBarFine : AdviceStroke : StrokeWidthBlend 3 5.5
define [FullBar df sw] : dispiro
flat [xBot df] (0 + overflow) [widths.center.heading sw Downward]
@ -527,7 +527,7 @@ glyph-block Letter-Latin-S : begin
flat @x1 (@y5 + archDepthB)
define [InterruptMask df] : begin
local gap : (swBarThick / Stroke * EssUpper) + [Math.max ((top - bot) / 6) [AdviceStroke2 3 3 (top - bot)]]
local gap : (swBarThick / Stroke * EssUpper) + [Math.max ((top - bot) / 6) : AdviceStroke2 3 3 (top - bot)]
local yMid : mix bot top 0.5
local yTermLeft : mix yMid (top - [AdviceSArchDepth (top - bot) (-1) swBarThick]) 0.5
local yTermRight : mix yMid (bot + [AdviceSArchDepth (top - bot) (-1) swBarThick]) 0.5
@ -539,7 +539,7 @@ glyph-block Letter-Latin-S : begin
set-base-anchor 'cvDecompose' df.middle (CAP / 2)
DependentSelector.set currentGlyph selector
local [outlineMask] : DollarMask df [AdviceStroke2 2 3 CAP]
local [outlineMask] : DollarMask df : AdviceStroke2 2 3 CAP
include : difference [FullBar df swBarThick] [outlineMask]
if (fillType === 1) : include : intersection [FullBar df swBarFine] [outlineMask]

View file

@ -4243,7 +4243,7 @@ descriptionAffix = "bent hook"
selectorAffix.t = "bentHook"
selectorAffix."t/phoneticLeft1" = "flatHook"
selectorAffix."t/phoneticLeft2" = "flatHook"
selectorAffix."t/phoneticRight" = "bentHook"
selectorAffix."t/compLigRight" = "bentHook"
selectorAffix.tHookTop = "bentHook"
selectorAffix.tHookTopRTail = "hookless"
selectorAffix.tRTail = "hookless"
@ -4257,7 +4257,7 @@ descriptionAffix = "flat hook"
selectorAffix.t = "flatHook"
selectorAffix."t/phoneticLeft1" = "flatHook"
selectorAffix."t/phoneticLeft2" = "flatHook"
selectorAffix."t/phoneticRight" = "flatHook"
selectorAffix."t/compLigRight" = "flatHook"
selectorAffix.tHookTop = "flatHook"
selectorAffix.tHookTopRTail = "hookless"
selectorAffix.tRTail = "hookless"
@ -4271,7 +4271,7 @@ descriptionAffix = "diagonal tail"
selectorAffix.t = "diagonalTailed"
selectorAffix."t/phoneticLeft1" = "flatHook"
selectorAffix."t/phoneticLeft2" = "flatHook"
selectorAffix."t/phoneticRight" = "diagonalTailed"
selectorAffix."t/compLigRight" = "diagonalTailed"
selectorAffix.tHookTop = "diagonalTailed"
selectorAffix.tHookTopRTail = "hookless"
selectorAffix.tRTail = "hookless"
@ -4286,7 +4286,7 @@ descriptionJoiner = "without"
selectorAffix.t = "hookless"
selectorAffix."t/phoneticLeft1" = "hookless"
selectorAffix."t/phoneticLeft2" = "hookless"
selectorAffix."t/phoneticRight" = "hookless"
selectorAffix."t/compLigRight" = "hookless"
selectorAffix.tHookTop = "hookless"
selectorAffix.tHookTopRTail = "hookless"
selectorAffix.tRTail = "hookless"
@ -4304,7 +4304,7 @@ descriptionAffix = "crossbar at both sides of the vertical stem"
selectorAffix.t = ""
selectorAffix."t/phoneticLeft1" = ""
selectorAffix."t/phoneticLeft2" = ""
selectorAffix."t/phoneticRight" = ""
selectorAffix."t/compLigRight" = ""
selectorAffix.tHookTop = ""
selectorAffix.tHookTopRTail = ""
selectorAffix.tRTail = ""
@ -4319,7 +4319,7 @@ descriptionAffix = "crossbar at only right side of the vertical stem"
selectorAffix.t = "asymmetric"
selectorAffix."t/phoneticLeft1" = "asymmetric"
selectorAffix."t/phoneticLeft2" = "asymmetric"
selectorAffix."t/phoneticRight" = "asymmetric"
selectorAffix."t/compLigRight" = "asymmetric"
selectorAffix.tHookTop = "asymmetric"
selectorAffix.tHookTopRTail = "asymmetric"
selectorAffix.tRTail = "asymmetric"
@ -4335,7 +4335,7 @@ keyAffix = ""
selectorAffix.t = ""
selectorAffix."t/phoneticLeft1" = ""
selectorAffix."t/phoneticLeft2" = ""
selectorAffix."t/phoneticRight" = ""
selectorAffix."t/compLigRight" = ""
selectorAffix.tHookTop = ""
selectorAffix.tHookTopRTail = ""
selectorAffix.tRTail = ""
@ -4349,7 +4349,7 @@ descriptionAffix = "a shorter neck"
selectorAffix.t = "shortNeck"
selectorAffix."t/phoneticLeft1" = "shortNeck"
selectorAffix."t/phoneticLeft2" = "shortNeck"
selectorAffix."t/phoneticRight" = ""
selectorAffix."t/compLigRight" = ""
selectorAffix.tHookTop = ""
selectorAffix.tHookTopRTail = ""
selectorAffix.tRTail = "shortNeck"
@ -4363,7 +4363,7 @@ descriptionAffix = "a more shorter neck"
selectorAffix.t = "shortNeck2"
selectorAffix."t/phoneticLeft1" = "shortNeck2"
selectorAffix."t/phoneticLeft2" = "shortNeck2"
selectorAffix."t/phoneticRight" = ""
selectorAffix."t/compLigRight" = ""
selectorAffix.tHookTop = ""
selectorAffix.tHookTopRTail = ""
selectorAffix.tRTail = "shortNeck2"
@ -5197,7 +5197,7 @@ rank = 1
groupRank = 10
descriptionAffix = "bending top hook"
selectorAffix."longs" = "bentHook"
selectorAffix."longs/flatExt" = "flatHookExt"
selectorAffix."longs/compLigLeft" = "flatHookExt"
selectorAffix."longsBar" = "bentHook"
[prime.long-s.variants-buildup.stages.top.flat-hook]
@ -5205,7 +5205,7 @@ rank = 2
groupRank = 20
descriptionAffix = "flat top hook"
selectorAffix."longs" = "flatHook"
selectorAffix."longs/flatExt" = "flatHookExt"
selectorAffix."longs/compLigLeft" = "flatHookExt"
selectorAffix."longsBar" = "flatHook"
[prime.long-s.variants-buildup.stages.bottom."*"]
@ -5216,7 +5216,7 @@ rank = 1
groupRank = 1
keyAffix = ""
selectorAffix."longs" = ""
selectorAffix."longs/flatExt" = ""
selectorAffix."longs/compLigLeft" = ""
selectorAffix."longsBar" = ""
[prime.long-s.variants-buildup.stages.bottom.descending]
@ -5224,7 +5224,7 @@ rank = 2
groupRank = 2
descriptionAffix = "terminal descends baseline"
selectorAffix."longs" = "descending"
selectorAffix."longs/flatExt" = "descending"
selectorAffix."longs/compLigLeft" = "descending"
selectorAffix."longsBar" = "descending"
[prime.long-s.variants-buildup.stages.bottom.tailed]
@ -5232,7 +5232,7 @@ rank = 3
groupRank = 3
descriptionAffix = "terminal has a tail"
selectorAffix."longs" = "tailed"
selectorAffix."longs/flatExt" = "tailed"
selectorAffix."longs/compLigLeft" = "tailed"
selectorAffix."longsBar" = "tailed"
[prime.long-s.variants-buildup.stages.bottom.diagonal-tailed]
@ -5240,7 +5240,7 @@ rank = 4
groupRank = 4
descriptionAffix = "terminal has a diagonal tail"
selectorAffix."longs" = "diagonalTailed"
selectorAffix."longs/flatExt" = "diagonalTailed"
selectorAffix."longs/compLigLeft" = "diagonalTailed"
selectorAffix."longsBar" = "diagonalTailed"
[prime.long-s.variants-buildup.stages.serifs.serifless__non-descending]
@ -5250,7 +5250,7 @@ keyAffix = "serifless"
descriptionJoiner = "without"
descriptionAffix = "serifs"
selectorAffix."longs" = "serifless"
selectorAffix."longs/flatExt" = "serifless"
selectorAffix."longs/compLigLeft" = "serifless"
selectorAffix."longsBar" = "serifless"
[prime.long-s.variants-buildup.stages.serifs.serifless__descending]
@ -5260,21 +5260,21 @@ keyAffix = ""
descriptionJoiner = "without"
descriptionAffix = "serifs"
selectorAffix."longs" = "serifless"
selectorAffix."longs/flatExt" = "serifless"
selectorAffix."longs/compLigLeft" = "serifless"
selectorAffix."longsBar" = "serifless"
[prime.long-s.variants-buildup.stages.serifs.middle-serifed]
rank = 2
descriptionAffix = "middle serif"
selectorAffix."longs" = "middleSerifed"
selectorAffix."longs/flatExt" = "middleSerifed"
selectorAffix."longs/compLigLeft" = "middleSerifed"
selectorAffix."longsBar" = "serifless"
[prime.long-s.variants-buildup.stages.serifs.middle-serifed-xh]
rank = 3
descriptionAffix = "middle serif at x-height"
selectorAffix."longs" = "middleSerifedXH"
selectorAffix."longs/flatExt" = "middleSerifedXH"
selectorAffix."longs/compLigLeft" = "middleSerifedXH"
selectorAffix."longsBar" = "serifless"
[prime.long-s.variants-buildup.stages.serifs.bottom-serifed]
@ -5282,7 +5282,7 @@ rank = 4
enableIf = [{ bottom = "non-descending" }]
descriptionAffix = "bottom serif"
selectorAffix."longs" = "bottomSerifed"
selectorAffix."longs/flatExt" = "bottomSerifed"
selectorAffix."longs/compLigLeft" = "bottomSerifed"
selectorAffix."longsBar" = "bottomSerifed"
[prime.long-s.variants-buildup.stages.serifs.double-serifed]
@ -5290,7 +5290,7 @@ rank = 5
enableIf = [{ bottom = "non-descending" }]
descriptionAffix = "bottom and middle serifs"
selectorAffix."longs" = "doubleSerifed"
selectorAffix."longs/flatExt" = "doubleSerifed"
selectorAffix."longs/compLigLeft" = "doubleSerifed"
selectorAffix."longsBar" = "bottomSerifed"
[prime.long-s.variants-buildup.stages.serifs.double-serifed-xh]
@ -5298,7 +5298,7 @@ rank = 6
enableIf = [{ bottom = "non-descending" }]
descriptionAffix = "bottom and middle serifs at x-height"
selectorAffix."longs" = "doubleSerifedXH"
selectorAffix."longs/flatExt" = "doubleSerifedXH"
selectorAffix."longs/compLigLeft" = "doubleSerifedXH"
selectorAffix."longsBar" = "bottomSerifed"
@ -5362,7 +5362,7 @@ selectorAffix.eszet = "serifless"
[prime.eszet.variants-buildup.stages.serifs.middle-serifed]
rank = 2
descriptionAffix = "serif at middle"
selectorAffix.eszet = "middleSerifed"
selectorAffix.eszet = { if = [{ body = "traditional" }, { body = "traditional-flat-hook" }], then = "middleSerifedXH", else = "middleSerifed" }
[prime.eszet.variants-buildup.stages.serifs.middle-serifed-xh]
rank = 3
@ -5380,7 +5380,7 @@ selectorAffix.eszet = "bottomSerifed"
enableIf = [{terminal = "non-descending"}]
rank = 5
descriptionAffix = "serif at middle and bottom"
selectorAffix.eszet = "dualSerifed"
selectorAffix.eszet = { if = [{ body = "traditional" }, { body = "traditional-flat-hook" }], then = "dualSerifedXH", else = "dualSerifed" }
[prime.eszet.variants-buildup.stages.serifs.dual-serifed-xh]
enableIf = [