General fixes:
=============

- Ligature matching and match_input() of (Chain)Context should use the
  same logic.  Right now the Ligature logic is more involved.  Possibly
  merge, or duplicate.

- mask propagation? (when ligation, "or" the masks).

- Warn at compile time (and runtime with HB_DEBUG?) if no Unicode / font
  funcs found / set.

- Fix TT 'kern' on/off and GPOS interaction (move kerning before GPOS).

- Do proper rounding when scaling from font space?  May be a non-issue.

- Misc features:
  * init/medi/fina/isol for non-cursive scripts
  * vkna,hkna etc for kana, etc
  * smpl,trad for ZHS / ZHT

- Add Pango backend?

- Add ICUlayout backend?

- Add ICUlayout API?


API issues to fix before 1.0:
============================

- Add default font_funcs / Unicode funcs API and to utils.

- Add init_func to font_funcs.  Adjust ft.

- Add pkg-config files for glue codes (harfbuzz-glib, etc)

- Figure out how many .so objects, how to link, etc

- 'const' for getter APIs? (use mutable internally)

- blob_from_file?


API additions
=============

- Language to/from script.

- Buffer (de)serialize API ala hb-shape?

- Move feature parsing from util into the library

- Add hb-cairo glue

- Add sanitize API (and a cached version, that saves result on blob user-data)

- Add glib GBoxedType stuff and introspection

- Finish Uniscribe / CoreText face / font get API

- BCP 47 language handling / API (language_matches?)

- Add hb_face_get_glyph_count()?

- Add hb_font_create_linear()?

- Add hb_shape_plan()/hb_shape_planned()

- Add query API for aalt-like features?

- SFNT api? get_num_faces? get_table_tags? (there's something in stash)

- Add segmentation API

- Add hb-fribidi glue?


hb-view / hb-shape enhancements:
===============================

- --output-format should list available formats.
- Add --width, --height, --auto-size, --align, etc?
- Add XML and JSON formats to hb-shape
- --features="init=medi=isol=fina=0"


Tests to write:
==============

- ot-layout enumeration API (needs font)

- Finish test-shape.c, grep for TODO

- Finish test-unicode.c, grep for TODO

- GObject, FreeType, etc

- hb_set_t

- hb_cache_t and relatives
