1# How To Fix
2
3This file describes the causes of common problems that OTS detects.
4
5### DFLT script doesn't satisfy the spec
6
7    DFLT script doesn't satisfy the spec. DefaultLangSys is NULL
8    DFLT script doesn't satisfy the spec. LangSysCount is not zero: $lang_sys_count
9
10These errors are related to the language system declaration and how the lookup language tags are declared in the feature syntax.
11
12Old files made in FontLab Studio version 5.0, using Adobe FDK version 2.5 or so, then the `latin` language was the default, and thus could go unspecified.
13And sometimes a language tag was declared after the untagged feature.
14This was a common practice to assume that script `latn` is the default script.
15For example:
16
17```
18feature liga {
19   sub f f i by ffi;
20   sub f f l by ffl;
21   sub f f by ff;
22   sub f i by fi;
23   sub f l by fl;
24   language AZE;
25   language CRT;
26   language MOL;
27   language ROM;
28   language TRK;
29   script DFLT;
30   sub f f i by ffi;
31   sub f f l by ffl;
32   sub f f by ff;
33   sub f i by fi;
34   sub f l by fl;
35} liga;
36```
37
38But the script `latn` should be declared before language tags.
39For example,
40
41```
42feature liga {
43   script DFLT;
44   sub f f i by ffi;
45   sub f f l by ffl;
46   sub f f by ff;
47   sub f i by fi;
48   sub f l by fl;
49   script latn;
50   sub f f i by ffi;
51   sub f f l by ffl;
52   sub f f by ff;
53   sub f i by fi;
54   sub f l by fl;
55   language AZE;
56   language CRT;
57   language MOL;
58   language ROM;
59   language TRK;
60} liga;
61```
62
63For fonts where sources are missing, or rebuilding is undesirable, there is a FontTools [script](https://github.com/fonttools/fonttools/blob/master/Snippets/fix-dflt-langsys.py) that can be used to hotfix the binary files.
64