pub trait CapturePlatform {
// Required methods
fn active_app(&self) -> Option<ActiveApp>;
fn attempt(
&self,
method: CaptureMethod,
app: Option<&ActiveApp>,
) -> PlatformAttemptResult;
fn cleanup(&self) -> CleanupStatus;
// Provided method
fn focused_window_frame(&self) -> Option<CGRect> { ... }
}