isAlreadyJoined
True when this is a channel the radio already has configured (design#140 behavior 10). Null currentLora or an empty currentChannels means "can't tell" and returns false, never hiding a still-relevant invitation on missing data. Comparison uses resolved ChannelIdentity (effective name plus expanded PSK) so a blank-name primary or a short-code PSK still matches; differing PSK under an identical name is deliberately not a match, since same name with a different key is a different mesh. Secondary slots are skipped when isChannelPlaceholder (blank name, no PSK): SwitchingChannelSetDataSource pads a gap left by a removed channel with a bare ChannelSettings, and those placeholders are read back unfiltered here, so without this exclusion a beacon offering a genuinely blank/cleartext channel would misclassify a padding slot as a real match. The primary slot (index 0) is never skipped: it always represents a real channel, matching the same convention in normalizeReplacementSettings.
True when this beacon's offered channel is already configured on the radio; see ChannelSettings.isAlreadyJoined.