VisualEditor/API

Use cases
Involves providing model and view classes, converter rules and possibly tools and inspectors for working with the content. Involves interacting with a surface fragment, which provides a wrapper around a surface, it's document and the current selection. Supported actions include getting information about the current selection, applying annotations to selected content, and modifying the structure of the document.
 * Adding support for a new kind of content or annotations
 * Getting information about and making changes to the surface.

Interfaces

 * /Data Model/ (ve*/dm/)
 * Models
 * MWTransclusionModel, MWTemplateModel, and MWTemplateSpecModel
 * Annotations
 * Nodes
 * Surface (ve/dm/Nodes/)
 * /Content Editable/ (ve*/ce/)
 * /User Interface/ (ve*/ui/)
 * Inspectors
 * Dialogs
 * Nodes