interface Explained
abstract val explanation: String?
interface ExplainedInput : Explained
interface ExplainedOutput : Explained