Ok, let’s leave it as an object. Yekaterina, if you just need a sequence, you can use property names "1", "2", …
From: Michael Fanning <Michael.Fanning@microsoft.com>
Sent: Monday, May 14, 2018 9:31 AM
To: Larry Golding (Comcast) <email@example.com>; 'O'Neil, Yekaterina Tsipenyuk' <firstname.lastname@example.org>
Subject: RE: Multiple fingerprints
instanceGuid is an option value that is an opaque guid identifier that in no way derives from a result’s data. A fingerprint is an identifier that derives from the data associated with a result which is intended to be stable (or as stable as possible).
The argument for making result.fingerprints an object would be the same as the rationale for partial fingerprints: a stable key name providers some way to correlate ids produced by a specific fingerprint-generating algorithm run-over-run.
Thanks Yekaterina. Yes, result.id (or, as we propose to rename it in Issue #159, result.instanceGuid) is optional (MAY be present).
Michael et. al., any thoughts on scenarios that would require result.fingerprints to be an object rather than an array?
I think an array should be sufficient.
I also want to double check that result.id is optional because we don’t generate separate ids — the fingerprints are our ids.
As the spec stands, the result.fingerprints property is a JSON object, where the property values are computed fingerprints, and the property names are arbitrary values that identify the fingerprints.
Yekaterina, I understand that SCA needs multiple fingerprints so that it can recompute a fingerprint (perhaps if the algorithm changed?) and still keep the old value around. If that is your scenario, do you need each fingerprint to be associated with an identifier (the property name, in the current design), or would it be enough if result.fingerprints were an array?
Michael et al, is there any other scenario for multiple fingerprints than SCA’s? That is, is there any other reason to prefer an object over an array, or vice versa, for result.fingerprints? As the spec stands, it suggests that you could use the property names to identify different fingerprinting algorithms, and a result management system could choose among them to decide which sets of results were logically identical.