API design doc.