private JsonObject serializePublicationSettings(final PublicationSettings settings) {
        final JsonObject publicationJson = new JsonObject();
        if (MeshAddress.isValidVirtualAddress(settings.getPublishAddress()) && settings.getLabelUUID() != null) {
            publicationJson.addProperty("address", MeshParserUtils.uuidToHex(settings.getLabelUUID()));
        } else {
            publicationJson.addProperty("address", MeshAddress.formatAddress(settings.getPublishAddress(), false));
        }
        publicationJson.addProperty("index", settings.getAppKeyIndex());
        publicationJson.addProperty("ttl", settings.getPublishTtl());

        final JsonObject periodJson = new JsonObject();
        periodJson.addProperty("numberOfSteps", settings.getPublicationSteps());
        periodJson.addProperty("resolution", settings.serializePublicationResolution());
        publicationJson.add("period", periodJson);

        final JsonObject retransmitJson = new JsonObject();
        retransmitJson.addProperty("count", settings.getPublishRetransmitCount());
        // Here we should export the retransmit interval steps as an internal to be compatible with iOS
        retransmitJson.addProperty("interval", settings.getRetransmissionInterval());
        publicationJson.add("retransmit", retransmitJson);
        publicationJson.addProperty("credentials", settings.getCredentialFlag() ? 1 : 0);
        return publicationJson;
    }
Returns JsonElement containing the subscription addresses addresses from json

@param settings publication settings for this node
mesh/src/main/java/no/nordicsemi/android/mesh/transport/MeshModelListDeserializer.java