Some questions about the nonce in 2.0

Can the nonce contain non-digit value such as ‘a’ or ‘@’?
It looks like there is no verification logic for the nonce value,
the nonce is just treated as byte array.

In the CreditCoin 2.0 developed in the Rust language,
the type of the nonce is std::u64.

In the middle of mining,
the nonce could be 18446744073709551615(u64::MAX) by generated randomly or incresed.
In that case, next incresing the nonce occurs
‘attempt to add with overflow’. Right?

What will happen next?

a) Finding nonce is extremly hard. Because the given difficulty(50) is too high.

b) So, miner X decids to summit nonce that meets lower difficulty(40) to make long chain while others are trying to find the very difficulty answer.

c) So miner x modifies the given ‘challange.difficulty’ by 40 before broadcasting the answer to network like below.

challenge.difficulty = 40;
channel.send(
MessageToMiner::Solved(
Answer {challenge: challenge.clone(),nonce,}
));

Will the wrong nonce is accepted?

answer myself to the Question 2.
→ It does not occur overflow. In release mode ‘u64:MAX+1’ will become 0.