Some fields have different types based on what type of artifact they describe. I believe this will introduce unnecessary complications for listeners (and makes type checking harder for shared libraries attempting to make creating these messages).
Example: The "id" field in the artifact array is an integer in many instances. See koji-build.test.complete.json for an example. However, in other examples, such as container-image.test.complete.json, id is a string. Can we just always have it be a string or something since strings can contain integers? Is there any benefit to having it be an integer some of the time? I am not sure if there are other examples of fields with various types; this is the first one I have come across
+1 - one property of messages (like "id") should be using the same name across all different artifact types, and the same type. Users shouldn't be forced to detect this kind of things depending on which artifact they consume. I see no benefit in allowing picking stricter type for some of the artifacts' ID.
Consistency makes sense to me, so +1 for having id as string everywhere.
id
I will change to string ...