critical = max( 0, $critical ); $this->warning = max( 0, $warning ); $this->info = max( 0, $info ); } /** @param array $payload API boundary payload. */ public static function from_payload( array $payload ): ?self { $critical = $payload['critical'] ?? null; $warning = $payload['warning'] ?? null; $info = $payload['info'] ?? null; if ( ! is_int( $critical ) || ! is_int( $warning ) || ! is_int( $info ) ) { return null; } return new self( $critical, $warning, $info ); } /** @return array{critical: int, warning: int, info: int} */ public function to_payload(): array { return array( 'critical' => $this->critical, 'warning' => $this->warning, 'info' => $this->info, ); } }