public static Gson instance() {
        return SingletonHolder.INSTANCE;
    }
@SuppressWarnings("unchecked")
    @Test
    void successfullySerializesArtifactStoreBecauseGoCipherIsHiddenFromSerialization() {
        assertDoesNotThrow(() -> {
            final String json = Serialization.instance().toJson(
                    new ArtifactStore("store", "plugin",
                            plainProperty("plain", "text"),
                            secretProperty("secret", "!llet t'nod"))
            );
            Map<String, Object> actual = new Gson().fromJson(json, Map.class);
            List<Map<String, Object>> props = (List<Map<String, Object>>) actual.get("configuration");
            assertEquals(2, props.size());
            assertEquals("plain", props.get(0).get("key"));
            assertEquals("text", props.get(0).get("value"));
            assertEquals("secret", props.get(1).get("key"));
            assertEquals("don't tell!", props.get(1).get("value"));
        }, "ArtifactStore should serialize without error because its type adapter hides the nested GoCipher from Gson");
    }