Making the critical value computation into a published library as a common bucket to put generic stuff produced by Open Targets backend sounds like a good idea. This helps to reduce code duplication. Doing the scala way (see this example) might be the right way to go. Having a look at the most recent way (from the Scala community) of doing this task and whether a specific SBT plugin exists that does most of the job.
Making the critical value computation into a published library as a common bucket to put generic stuff produced by Open Targets backend sounds like a good idea. This helps to reduce code duplication. Doing the scala way (see this example) might be the right way to go. Having a look at the most recent way (from the Scala community) of doing this task and whether a specific SBT plugin exists that does most of the job.