Writing reusable cross-platform manifests