sealed class Result { const Result(); } class Success extends Result { final T data; const Success(this.data); } class Failure extends Result { final String message; final dynamic error; const Failure(this.message, [this.error]); }