→Interface-driven design: Add link to interface-driven-design overview
== Interface-driven design ==
ImageJ uses an interface-driven design where possible. Public interfaces, enumerations and constants (i.e., <code>public static final</code> fields) form the basis of ImageJ's API contract with downstream code. While we make an effort not to change the public methods and fields of non-interfaces, they may require occasional changes to improve the system.
== Versioning ==