Using attributes to define compatible workflow engines


I am writing a suite of workflows in our cwl-ica repository.

These workflows were written for ICAv1 (which is being deprecated). We are moving to using ICAv2 along with testing out other CWL compatible workflow engines such as Amazon Omics etc.

Some workflows will be compatible only with ICAv2, and I assume some in future will only be compatible with Omics etc.

Rather than create separate repositories for each workflow engine, I would like to know if there are any official schemas to use to be able to specify which workflow engines are appropriate for a given workflow.

# Extensions

# Metadata
  - cwltool.local
  - omics
  - toil

For dragen-specific workflows, may be the only compatible workflow engine.

Our catalogue (see example) would then be able to denote which engines are compatible by scraping the workflow.

I would not want anyone to come across our workflows on the likes of GitHub or Dockstore only to realise after testing that the workflow is not compatible with their setup.

Is there a best-practise for documenting this?

Would be keen to hear any other solutions / workarounds people have come across as well.