We should make this API easier to consume, for instance:
- enforce important components to be non-null (eg. description)
- decouple entirely the score computation from whether there is a match or not (Explanation assumes there is a match if the score is > 0, you need to use ComplexExplanation to override this behaviour)
- return an empty array instead of null when there are no "details"