conformanceReport function

Map<String, Object?> conformanceReport(
  1. String plugin,
  2. List<PluginCheckOutcome> outcomes
)

outcomes as a JSON document in the format envelope: the suite, the badge, and each outcome.

{"format": "f3d.conformance", "version": 1, "requires": [], "generator": "flutter3d_conformance", "plugin": ..., "suite": "1.0", "badge": "conformant@1.0" | null, "outcomes": [...]}. Keys are only added within a version.

Implementation

Map<String, Object?> conformanceReport(
  String plugin,
  List<PluginCheckOutcome> outcomes,
) => <String, Object?>{
  ...conformanceReportFormat.envelope(generator: 'flutter3d_conformance'),
  'plugin': plugin,
  'suite': conformanceSuiteVersion,
  'badge': badgeFor(outcomes),
  'outcomes': <Object?>[
    for (final o in outcomes)
      <String, Object?>{
        'check': o.check,
        'backend': ?o.backend,
        'passed': o.passed,
        'declined': o.declined,
        'says': o.says,
        if (o.requires.isNotEmpty) 'requires': o.requires,
      },
  ],
};