You could use Json.Net Schema to make sure that received json contains everything you need.
Here is a simple application how to use it
static JSchemaGenerator generator = new();
static JSchema schema = generator.Generate(typeof(Temp));
public static void Main()
{
    var jsons = new[] {
        "{}",
        "{'Field1': \"1\"}",
        "{'Field1': \"1\", 'Field2': 2}",
        "{'Field1': \"1\", 'Field2': 2, 'Field3': 'false'}",
        "{'Field1': \"1\", 'Field2': 2, 'Field3': false}",
        "{'Field1': \"1\", 'Field2': 2, 'Field3': false, 'Field4': 4.0}",
    };
    
    foreach(var json in jsons)
    {
        var semiParsedJson = JObject.Parse(json);
        Console.WriteLine($"{json} is valid: {semiParsedJson.IsValid(schema)}");
    }
}
and here is the output
{} is valid: False
{'Field1': "1"} is valid: False
{'Field1': "1", 'Field2': 2} is valid: False
{'Field1': "1", 'Field2': 2, 'Field3': 'false'} is valid: False
{'Field1': "1", 'Field2': 2, 'Field3': false} is valid: True
{'Field1': "1", 'Field2': 2, 'Field3': false, 'Field4': 4.0} is valid: True
Dotnet Fiddle link