1) I would agree with the 2 versions strict and exact might be the better way to go. I would say for the strict, why would you not just use the draft 7 "integer" type as you have with the error code? instead of "number" with a min length and multiple of, unless you're explicitly trying to negate the implementation disagreements in which case it should be the same for error code? just I do not say which way should be done but just that the same method is used in both cases.
2) "processing gains in single additional field validation," i think you need to this about lower power IoT Devices say an Arduino Nano, "
Otherwise one would have to somehow decide which schema to use: request or notification" yeah that's my point if they are sending notifications they should be using the notification schema to make sure it's actually a notification. To me the whole point of schemas is to validate the data being used is correct for the purpose the data was created to merge them into one undermines the points of a schema IMO. but again this could be fixed by having a merged and separate so people pick for their specific use-case.
Explanation of where my opinion comes from in an example: In a TCP setup I want to send a notification but I have included an ID, so because it's a notification the sender is not going to wait to read the response so close the socket. so the receiver is going to build a response try to send it and then have to handle that the socket is closed and destroy that response it just built, in that scenario you're just wasting receiver resources and processing power. even in UDP you're still building and sending a response that's going to be ignored and a waste of resources on the receiver.
Whereas going this is a notification use the notification schema in the sender the schema failing with "you're sending an unsupported property" would fix that, it would also prevent it from having to be fixed in the future because having merged means it passed the test and seemingly works gets deployed to thousands of devices and then IT Dept noticed the server/s are having high resource utilization for the fix to be made of removing the "id" property than trying to deploy that update to all the devices. and yeah on PC it's easy to do the moment you go IoT devices that becomes 1000 times more difficult to deploy. there is also loading a smaller schema is a lower memory footprint for the string of the schema on the sender device.
Anyway, I would like to know what others in the group think about even having a schema and if we should what their input to the conversation of how each thinks it should be built.