*/ public function candidates( $limit ); /** * Current version of one candidate, or null when it no longer applies. * * @param string $key Candidate key. * @return array|null */ public function find( $key ); /** * Whether the current user may change this item. * * @param array $item Candidate. * @return bool */ public function can_apply( array $item ); /** * Makes the change. * * @param array $item Candidate from find(). * @return array{before:mixed,after:mixed,summary:string}|WP_Error */ public function apply( array $item ); /** * Checks that an applied change had the intended result. * * @param array $change Change-log row. * @return array{ok:bool,note:string} */ public function verify( array $change ); /** * Restores the before state if the object still has the after state. * * @param array $change Change-log row. * @return true|WP_Error */ public function rollback( array $change ); }