score-go is a reference library for parsing and loading Score files in Go.
Score is a specification for defining workloads, services, and resources in a portable way. This library solves the problem of implementing Score support by providing pre-built Go types, validation logic, and loading functions that handle the complexity of parsing and interpreting Score files. Rather than each implementation writing its own types and validation, developers can use the generated types derived from the official JSON schema, a schema validation package, and utility functions for loading validated structures into workload objects.
Teams building Score implementations in Go should use this library as their foundation. It is particularly suited for projects that need to read and interpret Score files without reimplementing schema validation or type definitions. The library includes packages for schema validation, auto-generated types, file loading, and framework utilities. Projects still using hand-written types from earlier versions can remain on the older release branch, though newer schema fixes will only be applied to the current version. The reference implementation score-compose demonstrates how to build a complete Score implementation using this library.
The project maintains close alignment with the official Score specification by regenerating its types whenever the JSON schema is updated in the specification repository. Test coverage is verified after schema updates to ensure compatibility. The library is structured as a set of focused packages that separate concerns between schema validation, type definitions, file loading, and framework abstractions, allowing implementations to use only the components they need.