128. if ( strlen( $name ) > self::MAX_LENGTH ) { $hash = substr( md5( $original ), 0, self::HASH_LENGTH ); $name = substr( $name, 0, self::TRUNCATE_LENGTH ) . '-' . $hash; } // Step 6: Final check - only empty is possible failure after sanitization. // Characters are guaranteed valid (replaced), length is handled (truncated). if ( empty( $name ) ) { return new WP_Error( 'mcp_name_invalid', sprintf( /* translators: %s: original ability name */ __( 'Unable to derive valid MCP name from: %s', 'mcp-adapter' ), $original ) ); } return $name; } }