Add jgvariant-ostree module.

Change-Id: Idf7bacad28d7cf65eb1ddd0994dcc2c2c2a7e18e
diff --git a/jgvariant-ostree/src/main/java/eu/mulk/jgvariant/ostree/Checksum.java b/jgvariant-ostree/src/main/java/eu/mulk/jgvariant/ostree/Checksum.java
new file mode 100644
index 0000000..f77eb57
--- /dev/null
+++ b/jgvariant-ostree/src/main/java/eu/mulk/jgvariant/ostree/Checksum.java
@@ -0,0 +1,24 @@
+package eu.mulk.jgvariant.ostree;
+
+import eu.mulk.jgvariant.core.Decoder;
+
+/**
+ * A wrapper for {@link ByteString} that refers to a content-addressed object in an OSTree
+ * repository.
+ */
+public record Checksum(ByteString bytes) {
+
+  private static final Decoder<Checksum> DECODER = ByteString.decoder().map(Checksum::new);
+
+  public static Decoder<Checksum> decoder() {
+    return DECODER;
+  }
+
+  public String hex() {
+    return bytes.hex();
+  }
+
+  public static Checksum ofHex(String hex) {
+    return new Checksum(ByteString.ofHex(hex));
+  }
+}