public Set<Property> getProperties() {
        return Collections.unmodifiableSet(state.keySet());
    }