Posted by: John Hudson
The current shipping version of SBL Hebrew, and previous versions, uses your method 1. As you say, it is a bit of a pain to implement, since you have to approximate and then proof the positioning. First you have to contextually adjust the position of the first mark on the base in context of following mark(s) and then position the latter relative to the first mark. Not only is this difficult, but it also doesn't provide ideal results, unless you include huge numbers of contextual lookups for discrete mark sequences, rather than grouping marks by similar width as in SBL Hebrew and Ezra SIL, the two fonts for which this method was developed. The problems with this approach are particulaly acute when mark sequences involve pre-positional characters like dehi and yetiv that are input after the characters they visually precede.
In the next version of SBl Hebrew, 2.00, I am employing a different method. The above described method is still provided as a fallback for arbitrary mark sequences, but I also include precomposed mark combination glyphs for all of the unique below base sequences that occur in the Bible text. So this is a little like your method 2, only instead of making combinations of base + marks, I am only making combinations of marks + marks. And only for combinations below the letters: the contextual behaviour of holam makes it difficult to do the same thing for above base combinations. The precomposed mark combination glyphs are applied with a ligature lookup in the feature.
Regarding the vs feature distinction: the latter feature is not normally used for Hebrew. It is very useful to have this distinction for some scripts, but for Hebrew you can do everything in the feature, and since there is a lot of contextual interaction between the rules for marks applied to bases and marks relative to marks it is easier to group the lookups within a single feature.
The OpenType Layout logic for Biblical Hebrew in the SBL font is open source. My eventual aim is to provide a template font for developers to follow, but I want to do this in a way that clearly distinguishes the layout logic from the letterform design, which is not open source. So I will create a kind of skeletal template design. In the meantime though I will be happy to provide you with a VOLT project source file for the current SBL Hebrew release. I am at a conference this week, but if you contact me by email after next Tuesday I can arrange this.